Skip to content

Instantly share code, notes, and snippets.

@hypeartist
Created September 22, 2019 18:56
Show Gist options
  • Save hypeartist/b2ddeffd44cce3bf59cbcf6703a8f4a6 to your computer and use it in GitHub Desktop.
Save hypeartist/b2ddeffd44cce3bf59cbcf6703a8f4a6 to your computer and use it in GitHub Desktop.
JitDump output
****** START compiling Test2:DoTest(int,int,ubyte):int (MethodHash=8bafdb7c)
Generating code for Windows x64
OPTIONS: compCodeOpt = BLENDED_CODE
OPTIONS: compDbgCode = false
OPTIONS: compDbgInfo = true
OPTIONS: compDbgEnC = false
OPTIONS: compProcedureSplitting = false
OPTIONS: compProcedureSplittingEH = false
IL to import:
IL_0000 02 ldarg.0
IL_0001 03 ldarg.1
IL_0002 04 ldarg.2
IL_0003 28 0a 00 00 2b call 0x2B00000A
IL_0008 02 ldarg.0
IL_0009 03 ldarg.1
IL_000a 04 ldarg.2
IL_000b 28 0b 00 00 2b call 0x2B00000B
IL_0010 0a stloc.0
IL_0011 12 05 ldloca.s 0x5
IL_0013 fe 15 07 00 00 02 initobj 0x2000007
IL_0019 11 05 ldloc.s 0x5
IL_001b 02 ldarg.0
IL_001c 03 ldarg.1
IL_001d 04 ldarg.2
IL_001e 28 0c 00 00 2b call 0x2B00000C
IL_0023 0b stloc.1
IL_0024 73 0d 00 00 06 newobj 0x600000D
IL_0029 02 ldarg.0
IL_002a 03 ldarg.1
IL_002b 04 ldarg.2
IL_002c 28 0d 00 00 2b call 0x2B00000D
IL_0031 0c stloc.2
IL_0032 02 ldarg.0
IL_0033 03 ldarg.1
IL_0034 04 ldarg.2
IL_0035 28 0e 00 00 2b call 0x2B00000E
IL_003a 0d stloc.3
IL_003b 02 ldarg.0
IL_003c 03 ldarg.1
IL_003d 04 ldarg.2
IL_003e 28 0f 00 00 2b call 0x2B00000F
IL_0043 13 04 stloc.s 0x4
IL_0045 06 ldloc.0
IL_0046 58 add
IL_0047 07 ldloc.1
IL_0048 58 add
IL_0049 08 ldloc.2
IL_004a 58 add
IL_004b 09 ldloc.3
IL_004c 58 add
IL_004d 11 04 ldloc.s 0x4
IL_004f 58 add
IL_0050 2a ret
Arg #0 passed in register(s) rcx
Arg #1 passed in register(s) rdx
Arg #2 passed in register(s) r8
lvaGrabTemp returning 9 (V09 tmp0) (a long lifetime temp) called for OutgoingArgSpace.
; Initial local variable assignments
;
; V00 arg0 int
; V01 arg1 int
; V02 arg2 ubyte
; V03 loc0 int
; V04 loc1 int
; V05 loc2 int
; V06 loc3 int
; V07 loc4 int
; V08 loc5 struct ( 8)
; V09 OutArgs lclBlk (na) "OutgoingArgSpace"
*************** In compInitDebuggingInfo() for Test2:DoTest(int,int,ubyte):int
getVars() returned cVars = 0, extendOthers = true
info.compVarScopesCount = 9
VarNum LVNum Name Beg End
0: 00h 00h V00 arg0 000h 051h
1: 01h 01h V01 arg1 000h 051h
2: 02h 02h V02 arg2 000h 051h
3: 03h 03h V03 loc0 000h 051h
4: 04h 04h V04 loc1 000h 051h
5: 05h 05h V05 loc2 000h 051h
6: 06h 06h V06 loc3 000h 051h
7: 07h 07h V07 loc4 000h 051h
8: 08h 08h V08 loc5 000h 051h
info.compStmtOffsetsCount = 0
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE )
*************** In fgFindBasicBlocks() for Test2:DoTest(int,int,ubyte):int
Marked V03 as a single def local
Marked V04 as a single def local
Marked V05 as a single def local
Marked V06 as a single def local
Marked V07 as a single def local
Jump targets:
none
New Basic Block BB01 [0000] created.
BB01 [000..051)
IL Code Size,Instr 81, 44, Basic Block count 1, Local Variable Num,Ref count 10, 30 for method Test2:DoTest(int,int,ubyte):int
OPTIONS: opts.MinOpts() == false
Basic block list for 'Test2:DoTest(int,int,ubyte):int'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Test2:DoTest(int,int,ubyte):int
impImportBlockPending for BB01
Importing BB01 (PC=000) of 'Test2:DoTest(int,int,ubyte):int'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldarg.1
[ 2] 2 (0x002) ldarg.2
[ 3] 3 (0x003) call 2B00000A
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
STMT00000 (IL 0x000... ???)
[000003] I-C-G------- * CALL int Test2.DoTestImpl1 (exactContextHnd=0x00000000D1FFAB1E)
[000000] ------------ arg0 +--* LCL_VAR int V00 arg0
[000001] ------------ arg1 +--* LCL_VAR int V01 arg1
[000002] ------------ arg2 \--* LCL_VAR ubyte V02 arg2
[ 1] 8 (0x008) ldarg.0
[ 2] 9 (0x009) ldarg.1
[ 3] 10 (0x00a) ldarg.2
[ 4] 11 (0x00b) call 2B00000B
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
lvaGrabTemp returning 10 (V10 tmp1) called for impAppendStmt.
STMT00002 (IL ???... ???)
[000011] -AC--------- * ASG int
[000010] D------N---- +--* LCL_VAR int V10 tmp1
[000004] --C--------- \--* RET_EXPR int (inl return from call [000003])
STMT00001 (IL ???... ???)
[000008] I-C-G------- * CALL int Test2.DoTestImpl2 (exactContextHnd=0x00000000D1FFAB1E)
[000009] ------------ arg0 +--* CNS_INT(h) long 0xd1ffab1e method
[000005] ------------ arg1 +--* LCL_VAR int V00 arg0
[000006] ------------ arg2 +--* LCL_VAR int V01 arg1
[000007] ------------ arg3 \--* LCL_VAR ubyte V02 arg2
[ 2] 16 (0x010) stloc.0
STMT00003 (IL ???... ???)
[000015] -AC--------- * ASG int
[000014] D------N---- +--* LCL_VAR int V03 loc0
[000013] --C--------- \--* RET_EXPR int (inl return from call [000008])
[ 1] 17 (0x011) ldloca.s 5
[ 2] 19 (0x013) initobj 02000007
STMT00004 (IL ???... ???)
[000019] IA---------- * ASG struct (init)
[000016] D------N---- +--* LCL_VAR struct V08 loc5
[000018] ------------ \--* CNS_INT int 0
[ 1] 25 (0x019) ldloc.s 5
[ 2] 27 (0x01b) ldarg.0
[ 3] 28 (0x01c) ldarg.1
[ 4] 29 (0x01d) ldarg.2
[ 5] 30 (0x01e) call 2B00000C
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
Calling impNormStructVal on:
[000020] ------------ * LCL_VAR struct V08 loc5
resulting tree:
[000026] n----------- * OBJ(1) struct
[000025] ------------ \--* ADDR byref
[000020] ------------ \--* LCL_VAR struct V08 loc5
STMT00005 (IL ???... ???)
[000024] I-C-G------- * CALL int Test2.DoTestImpl3 (exactContextHnd=0x00000000D1FFAB1E)
[000026] n----------- arg0 +--* OBJ(1) struct
[000025] ------------ | \--* ADDR byref
[000020] ------------ | \--* LCL_VAR struct V08 loc5
[000021] ------------ arg1 +--* LCL_VAR int V00 arg0
[000022] ------------ arg2 +--* LCL_VAR int V01 arg1
[000023] ------------ arg3 \--* LCL_VAR ubyte V02 arg2
[ 2] 35 (0x023) stloc.1
STMT00006 (IL ???... ???)
[000029] -AC--------- * ASG int
[000028] D------N---- +--* LCL_VAR int V04 loc1
[000027] --C--------- \--* RET_EXPR int (inl return from call [000024])
[ 1] 36 (0x024) newobj
lvaGrabTemp returning 11 (V11 tmp2) called for NewObj constructor temp.
STMT00007 (IL ???... ???)
[000033] -A---------- * ASG ref
[000032] D------N---- +--* LCL_VAR ref V11 tmp2
[000031] ------------ \--* ALLOCOBJ ref
[000030] ------------ \--* CNS_INT(h) long 0xd1ffab1e method
Marked V11 as a single def local
lvaSetClass: setting class for V11 to (00000000D1FFAB1E) CalculatorClass [exact]
0600000D
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
STMT00008 (IL ???... ???)
[000035] I-C-G------- * CALL void CalculatorClass..ctor (exactContextHnd=0x00000000D1FFAB1E)
[000034] ------------ this in rcx \--* LCL_VAR ref V11 tmp2
[ 2] 41 (0x029) ldarg.0
[ 3] 42 (0x02a) ldarg.1
[ 4] 43 (0x02b) ldarg.2
[ 5] 44 (0x02c) call 2B00000D
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
STMT00009 (IL 0x029... ???)
[000040] I-C-G------- * CALL int Test2.DoTestImpl4 (exactContextHnd=0x00000000D1FFAB1E)
[000041] ------------ arg0 +--* CNS_INT(h) long 0xd1ffab1e method
[000036] ------------ arg1 +--* LCL_VAR ref V11 tmp2
[000037] ------------ arg2 +--* LCL_VAR int V00 arg0
[000038] ------------ arg3 +--* LCL_VAR int V01 arg1
[000039] ------------ arg4 \--* LCL_VAR ubyte V02 arg2
[ 2] 49 (0x031) stloc.2
STMT00010 (IL ???... ???)
[000044] -AC--------- * ASG int
[000043] D------N---- +--* LCL_VAR int V05 loc2
[000042] --C--------- \--* RET_EXPR int (inl return from call [000040])
[ 1] 50 (0x032) ldarg.0
[ 2] 51 (0x033) ldarg.1
[ 3] 52 (0x034) ldarg.2
[ 4] 53 (0x035) call 2B00000E
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
STMT00011 (IL ???... ???)
[000048] I-C-G------- * CALL int Test2.DoTestImpl5 (exactContextHnd=0x00000000D1FFAB1E)
[000045] ------------ arg0 +--* LCL_VAR int V00 arg0
[000046] ------------ arg1 +--* LCL_VAR int V01 arg1
[000047] ------------ arg2 \--* LCL_VAR ubyte V02 arg2
[ 2] 58 (0x03a) stloc.3
STMT00012 (IL ???... ???)
[000051] -AC--------- * ASG int
[000050] D------N---- +--* LCL_VAR int V06 loc3
[000049] --C--------- \--* RET_EXPR int (inl return from call [000048])
[ 1] 59 (0x03b) ldarg.0
[ 2] 60 (0x03c) ldarg.1
[ 3] 61 (0x03d) ldarg.2
[ 4] 62 (0x03e) call 2B00000F
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
STMT00013 (IL ???... ???)
[000055] I-C-G------- * CALL int Test2.DoTestImpl6 (exactContextHnd=0x00000000D1FFAB1E)
[000052] ------------ arg0 +--* LCL_VAR int V00 arg0
[000053] ------------ arg1 +--* LCL_VAR int V01 arg1
[000054] ------------ arg2 \--* LCL_VAR ubyte V02 arg2
[ 2] 67 (0x043) stloc.s 4
STMT00014 (IL ???... ???)
[000058] -AC--------- * ASG int
[000057] D------N---- +--* LCL_VAR int V07 loc4
[000056] --C--------- \--* RET_EXPR int (inl return from call [000055])
[ 1] 69 (0x045) ldloc.0
[ 2] 70 (0x046) add
[ 1] 71 (0x047) ldloc.1
[ 2] 72 (0x048) add
[ 1] 73 (0x049) ldloc.2
[ 2] 74 (0x04a) add
[ 1] 75 (0x04b) ldloc.3
[ 2] 76 (0x04c) add
[ 1] 77 (0x04d) ldloc.s 4
[ 2] 79 (0x04f) add
[ 1] 80 (0x050) ret
STMT00015 (IL ???... ???)
[000069] ------------ * RETURN int
[000068] ------------ \--* ADD int
[000066] ------------ +--* ADD int
[000064] ------------ | +--* ADD int
[000062] ------------ | | +--* ADD int
[000060] ------------ | | | +--* ADD int
[000012] ------------ | | | | +--* LCL_VAR int V10 tmp1
[000059] ------------ | | | | \--* LCL_VAR int V03 loc0
[000061] ------------ | | | \--* LCL_VAR int V04 loc1
[000063] ------------ | | \--* LCL_VAR int V05 loc2
[000065] ------------ | \--* LCL_VAR int V06 loc3
[000067] ------------ \--* LCL_VAR int V07 loc4
*************** in fgTransformIndirectCalls(root)
-- no candidates to transform
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 STMT00000 in BB01:
STMT00000 (IL 0x000...0x010)
[000003] I-C-G------- * CALL int Test2.DoTestImpl1 (exactContextHnd=0x00000000D1FFAB1E)
[000000] ------------ arg0 +--* LCL_VAR int V00 arg0
[000001] ------------ arg1 +--* LCL_VAR int V01 arg1
[000002] ------------ arg2 \--* LCL_VAR ubyte V02 arg2
Argument #0: is a local var
[000000] ------------ * LCL_VAR int V00 arg0
Argument #1: is a local var
[000001] ------------ * LCL_VAR int V01 arg1
Argument #2: is a local var
[000002] ------------ * LCL_VAR ubyte V02 arg2
INLINER: inlineInfo.tokenLookupContextHandle for Test2:DoTestImpl1(int,int,ubyte):int set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method Test2:DoTestImpl1(int,int,ubyte):int :
IL to import:
IL_0000 12 00 ldloca.s 0x0
IL_0002 fe 15 06 00 00 1b initobj 0x1B000006
IL_0008 12 00 ldloca.s 0x0
IL_000a 02 ldarg.0
IL_000b 03 ldarg.1
IL_000c 04 ldarg.2
IL_000d fe 16 06 00 00 1b constrained. 0x1B000006
IL_0013 6f 10 00 00 2b callvirt 0x2B000010
IL_0018 2a ret
INLINER impTokenLookupContextHandle for Test2:DoTestImpl1(int,int,ubyte):int is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for Test2:DoTestImpl1(int,int,ubyte):int
Jump targets:
none
New Basic Block BB02 [0001] created.
BB02 [000..019)
Basic block list for 'Test2:DoTestImpl1(int,int,ubyte):int'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB02 [0001] 1 1 [000..019) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Test2:DoTestImpl1(int,int,ubyte):int
impImportBlockPending for BB02
Importing BB02 (PC=000) of 'Test2:DoTestImpl1(int,int,ubyte):int'
[ 0] 0 (0x000) ldloca.s 0
lvaGrabTemp returning 12 (V12 tmp3) (a long lifetime temp) called for Inline ldloca(s) first use temp.
[ 1] 2 (0x002) initobj 1B000006
[000073] IA---------- * ASG struct (init)
[000070] D------N---- +--* LCL_VAR struct V12 tmp3
[000072] ------------ \--* CNS_INT int 0
[ 0] 8 (0x008) ldloca.s 0
[ 1] 10 (0x00a) ldarg.0
[ 2] 11 (0x00b) ldarg.1
[ 3] 12 (0x00c) ldarg.2
[ 4] 13 (0x00d) constrained. (1B000006) callvirt 2B000010
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is int, structSize is 0
** Note: inlinee IL was partially imported -- imported 0 of 25 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
Inlining [000003] failed, so bashing STMT00000 to NOP
INLINER: during 'fgInline' result 'failed this callee' reason 'generic virtual' for 'Test2:DoTest(int,int,ubyte):int' calling 'Test2:DoTestImpl1(int,int,ubyte):int'
INLINER: Marking Test2:DoTestImpl1(int,int,ubyte):int as NOINLINE because of generic virtual
INLINER: during 'fgInline' result 'failed this callee' reason 'generic virtual'
Replacing the return expression placeholder [000004] with [000003]
[000004] --C--------- * RET_EXPR int (inl return from call [000003])
Inserting the inline return expression
[000003] --C-G------- * CALL int Test2.DoTestImpl1
[000000] ------------ arg0 +--* LCL_VAR int V00 arg0
[000001] ------------ arg1 +--* LCL_VAR int V01 arg1
[000002] ------------ arg2 \--* LCL_VAR ubyte V02 arg2
Expanding INLINE_CANDIDATE in statement STMT00001 in BB01:
STMT00001 (IL ???... ???)
[000008] I-C-G------- * CALL int Test2.DoTestImpl2 (exactContextHnd=0x00000000D1FFAB1E)
[000009] ------------ arg0 +--* CNS_INT(h) long 0xd1ffab1e method
[000005] ------------ arg1 +--* LCL_VAR int V00 arg0
[000006] ------------ arg2 +--* LCL_VAR int V01 arg1
[000007] ------------ arg3 \--* LCL_VAR ubyte V02 arg2
Argument #0: is a local var
[000005] ------------ * LCL_VAR int V00 arg0
Argument #1: is a local var
[000006] ------------ * LCL_VAR int V01 arg1
Argument #2: is a local var
[000007] ------------ * LCL_VAR ubyte V02 arg2
INLINER: inlineInfo.tokenLookupContextHandle for Test2:DoTestImpl2(int,int,ubyte):int set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method Test2:DoTestImpl2(int,int,ubyte):int :
IL to import:
IL_0000 28 11 00 00 2b call 0x2B000011
IL_0005 8c 06 00 00 1b box 0x1B000006
IL_000a 02 ldarg.0
IL_000b 03 ldarg.1
IL_000c 04 ldarg.2
IL_000d 6f 12 00 00 2b callvirt 0x2B000012
IL_0012 2a ret
INLINER impTokenLookupContextHandle for Test2:DoTestImpl2(int,int,ubyte):int is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for Test2:DoTestImpl2(int,int,ubyte):int
Jump targets:
none
New Basic Block BB03 [0002] created.
BB03 [000..013)
Basic block list for 'Test2:DoTestImpl2(int,int,ubyte):int'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB03 [0002] 1 1 [000..013) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Test2:DoTestImpl2(int,int,ubyte):int
impImportBlockPending for BB03
Importing BB03 (PC=000) of 'Test2:DoTestImpl2(int,int,ubyte):int'
[ 0] 0 (0x000) call 2B000011
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0
Named Intrinsic System.ActivatorCreateInstance: Not recognized
[000077] I-C-G------- * CALL ref Activator.CreateInstance (exactContextHnd=0x00000000D1FFAB1E)
[000078] ------------ arg0 \--* CNS_INT(h) long 0xd1ffab1e method
[ 1] 5 (0x005) box 1B000006
Importing BOX(refClass) as NOP
[ 1] 10 (0x00a) ldarg.0
[ 2] 11 (0x00b) ldarg.1
[ 3] 12 (0x00c) ldarg.2
[ 4] 13 (0x00d) callvirt 2B000012
In Compiler::impImportCall: opcode is callvirt, kind=3, callRetType is int, structSize is 0
** Note: inlinee IL was partially imported -- imported 0 of 19 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
Inlining [000008] failed, so bashing STMT00001 to NOP
INLINER: during 'fgInline' result 'failed this callee' reason 'generic virtual' for 'Test2:DoTest(int,int,ubyte):int' calling 'Test2:DoTestImpl2(int,int,ubyte):int'
INLINER: Marking Test2:DoTestImpl2(int,int,ubyte):int as NOINLINE because of generic virtual
INLINER: during 'fgInline' result 'failed this callee' reason 'generic virtual'
Replacing the return expression placeholder [000013] with [000008]
[000013] --C--------- * RET_EXPR int (inl return from call [000008])
Inserting the inline return expression
[000008] --C-G------- * CALL int Test2.DoTestImpl2
[000009] ------------ arg0 +--* CNS_INT(h) long 0xd1ffab1e method
[000005] ------------ arg1 +--* LCL_VAR int V00 arg0
[000006] ------------ arg2 +--* LCL_VAR int V01 arg1
[000007] ------------ arg3 \--* LCL_VAR ubyte V02 arg2
Expanding INLINE_CANDIDATE in statement STMT00005 in BB01:
STMT00005 (IL ???...0x023)
[000024] I-C-G------- * CALL int Test2.DoTestImpl3 (exactContextHnd=0x00000000D1FFAB1E)
[000026] n----------- arg0 +--* OBJ(1) struct
[000025] ------------ | \--* ADDR byref
[000020] ------------ | \--* LCL_VAR struct V08 loc5
[000021] ------------ arg1 +--* LCL_VAR int V00 arg0
[000022] ------------ arg2 +--* LCL_VAR int V01 arg1
[000023] ------------ arg3 \--* LCL_VAR ubyte V02 arg2
Argument #0: has caller local ref
[000026] n----------- * OBJ(1) struct
[000025] ------------ \--* ADDR byref
[000020] ------------ \--* LCL_VAR struct V08 loc5
Argument #1: is a local var
[000021] ------------ * LCL_VAR int V00 arg0
Argument #2: is a local var
[000022] ------------ * LCL_VAR int V01 arg1
Argument #3: is a local var
[000023] ------------ * LCL_VAR ubyte V02 arg2
INLINER: inlineInfo.tokenLookupContextHandle for Test2:DoTestImpl3(struct,int,int,ubyte):int set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method Test2:DoTestImpl3(struct,int,int,ubyte):int :
IL to import:
IL_0000 0f 00 ldarga.s 0x0
IL_0002 03 ldarg.1
IL_0003 04 ldarg.2
IL_0004 05 ldarg.3
IL_0005 fe 16 06 00 00 1b constrained. 0x1B000006
IL_000b 6f 10 00 00 2b callvirt 0x2B000010
IL_0010 2a ret
INLINER impTokenLookupContextHandle for Test2:DoTestImpl3(struct,int,int,ubyte):int is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for Test2:DoTestImpl3(struct,int,int,ubyte):int
Jump targets:
none
New Basic Block BB04 [0003] created.
BB04 [000..011)
Basic block list for 'Test2:DoTestImpl3(struct,int,int,ubyte):int'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB04 [0003] 1 1 [000..011) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Test2:DoTestImpl3(struct,int,int,ubyte):int
impImportBlockPending for BB04
Importing BB04 (PC=000) of 'Test2:DoTestImpl3(struct,int,int,ubyte):int'
[ 0] 0 (0x000) ldarga.s 0
lvaGrabTemp returning 12 (V12 tmp3) called for Inlining Arg.
[ 1] 2 (0x002) ldarg.1
[ 2] 3 (0x003) ldarg.2
[ 3] 4 (0x004) ldarg.3
[ 4] 5 (0x005) constrained. (1B000006) callvirt 2B000010
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is int, structSize is 0
** Note: inlinee IL was partially imported -- imported 0 of 17 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
Inlining [000024] failed, so bashing STMT00005 to NOP
INLINER: during 'fgInline' result 'failed this callee' reason 'generic virtual' for 'Test2:DoTest(int,int,ubyte):int' calling 'Test2:DoTestImpl3(struct,int,int,ubyte):int'
INLINER: Marking Test2:DoTestImpl3(struct,int,int,ubyte):int as NOINLINE because of generic virtual
INLINER: during 'fgInline' result 'failed this callee' reason 'generic virtual'
Replacing the return expression placeholder [000027] with [000024]
[000027] --C--------- * RET_EXPR int (inl return from call [000024])
Inserting the inline return expression
[000024] --C-G------- * CALL int Test2.DoTestImpl3
[000026] n----------- arg0 +--* OBJ(1) struct
[000025] ------------ | \--* ADDR byref
[000020] ------------ | \--* LCL_VAR struct V08 loc5
[000021] ------------ arg1 +--* LCL_VAR int V00 arg0
[000022] ------------ arg2 +--* LCL_VAR int V01 arg1
[000023] ------------ arg3 \--* LCL_VAR ubyte V02 arg2
Expanding INLINE_CANDIDATE in statement STMT00008 in BB01:
STMT00008 (IL ???... ???)
[000035] I-C-G------- * CALL void CalculatorClass..ctor (exactContextHnd=0x00000000D1FFAB1E)
[000034] ------------ this in rcx \--* LCL_VAR ref V11 tmp2
thisArg: is a local var
[000034] ------------ * LCL_VAR ref V11 tmp2
INLINER: inlineInfo.tokenLookupContextHandle for CalculatorClass:.ctor():this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method CalculatorClass:.ctor():this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 28 0b 00 00 06 call 0x600000B
IL_0006 2a ret
INLINER impTokenLookupContextHandle for CalculatorClass:.ctor():this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for CalculatorClass:.ctor():this
Jump targets:
none
New Basic Block BB05 [0004] created.
BB05 [000..007)
Basic block list for 'CalculatorClass:.ctor():this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB05 [0004] 1 1 [000..007) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for CalculatorClass:.ctor():this
impImportBlockPending for BB05
Importing BB05 (PC=000) of 'CalculatorClass:.ctor():this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) call 0600000B
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
[000084] I-C-G------- * CALL void CalculatorBase..ctor (exactContextHnd=0x00000000D1FFAB1E)
[000034] ------------ this in rcx \--* LCL_VAR ref V11 tmp2
[ 0] 6 (0x006) ret
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000035] -----------
Arguments setup:
Inlinee method body:
STMT00018 (IL ???... ???)
[000084] I-C-G------- * CALL void CalculatorBase..ctor (exactContextHnd=0x00000000D1FFAB1E)
[000034] ------------ this in rcx \--* LCL_VAR ref V11 tmp2
fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined CalculatorClass:.ctor():this (7 IL bytes) (depth 1) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Test2:DoTest(int,int,ubyte):int' calling 'CalculatorClass:.ctor():this'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement STMT00018 in BB01:
STMT00018 (IL ???... ???)
[000084] I-C-G------- * CALL void CalculatorBase..ctor (exactContextHnd=0x00000000D1FFAB1E)
[000034] ------------ this in rcx \--* LCL_VAR ref V11 tmp2
thisArg: is a local var
[000034] ------------ * LCL_VAR ref V11 tmp2
INLINER: inlineInfo.tokenLookupContextHandle for CalculatorBase:.ctor():this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method CalculatorBase:.ctor():this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 28 1a 00 00 0a call 0xA00001A
IL_0006 2a ret
INLINER impTokenLookupContextHandle for CalculatorBase:.ctor():this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for CalculatorBase:.ctor():this
Jump targets:
none
New Basic Block BB06 [0005] created.
BB06 [000..007)
Basic block list for 'CalculatorBase:.ctor():this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB06 [0005] 1 1 [000..007) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for CalculatorBase:.ctor():this
impImportBlockPending for BB06
Importing BB06 (PC=000) of 'CalculatorBase:.ctor():this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) call 0A00001A
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
[000086] I-C-G------- * CALL void Object..ctor (exactContextHnd=0x00000000D1FFAB1E)
[000034] ------------ this in rcx \--* LCL_VAR ref V11 tmp2
[ 0] 6 (0x006) ret
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000084] -----------
Arguments setup:
Inlinee method body:
STMT00019 (IL ???... ???)
[000086] I-C-G------- * CALL void Object..ctor (exactContextHnd=0x00000000D1FFAB1E)
[000034] ------------ this in rcx \--* LCL_VAR ref V11 tmp2
fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined CalculatorBase:.ctor():this (7 IL bytes) (depth 2) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Test2:DoTest(int,int,ubyte):int' calling 'CalculatorBase:.ctor():this'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement STMT00019 in BB01:
STMT00019 (IL ???... ???)
[000086] I-C-G------- * CALL void Object..ctor (exactContextHnd=0x00000000D1FFAB1E)
[000034] ------------ this in rcx \--* LCL_VAR ref V11 tmp2
thisArg: is a local var
[000034] ------------ * LCL_VAR ref V11 tmp2
INLINER: inlineInfo.tokenLookupContextHandle for Object:.ctor():this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method Object:.ctor():this :
IL to import:
IL_0000 2a ret
INLINER impTokenLookupContextHandle for Object:.ctor():this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for Object:.ctor():this
Jump targets:
none
New Basic Block BB07 [0006] created.
BB07 [000..001)
Basic block list for 'Object:.ctor():this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB07 [0006] 1 1 [000..001) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Object:.ctor():this
impImportBlockPending for BB07
Importing BB07 (PC=000) of 'Object:.ctor():this'
[ 0] 0 (0x000) ret
** Note: inlinee IL was partially imported -- imported 0 of 1 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000086] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined Object:.ctor():this (1 IL bytes) (depth 3) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Test2:DoTest(int,int,ubyte):int' calling 'Object:.ctor():this'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement STMT00009 in BB01:
STMT00009 (IL 0x029... ???)
[000040] I-C-G------- * CALL int Test2.DoTestImpl4 (exactContextHnd=0x00000000D1FFAB1E)
[000041] ------------ arg0 +--* CNS_INT(h) long 0xd1ffab1e method
[000036] ------------ arg1 +--* LCL_VAR ref V11 tmp2
[000037] ------------ arg2 +--* LCL_VAR int V00 arg0
[000038] ------------ arg3 +--* LCL_VAR int V01 arg1
[000039] ------------ arg4 \--* LCL_VAR ubyte V02 arg2
Argument #0: is a local var
[000036] ------------ * LCL_VAR ref V11 tmp2
Argument #1: is a local var
[000037] ------------ * LCL_VAR int V00 arg0
Argument #2: is a local var
[000038] ------------ * LCL_VAR int V01 arg1
Argument #3: is a local var
[000039] ------------ * LCL_VAR ubyte V02 arg2
INLINER: inlineInfo.tokenLookupContextHandle for Test2:DoTestImpl4(ref,int,int,ubyte):int set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method Test2:DoTestImpl4(ref,int,int,ubyte):int :
IL to import:
IL_0000 02 ldarg.0
IL_0001 8c 06 00 00 1b box 0x1B000006
IL_0006 03 ldarg.1
IL_0007 04 ldarg.2
IL_0008 05 ldarg.3
IL_0009 6f 12 00 00 2b callvirt 0x2B000012
IL_000e 2a ret
INLINER impTokenLookupContextHandle for Test2:DoTestImpl4(ref,int,int,ubyte):int is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for Test2:DoTestImpl4(ref,int,int,ubyte):int
Jump targets:
none
New Basic Block BB08 [0007] created.
BB08 [000..00F)
Basic block list for 'Test2:DoTestImpl4(ref,int,int,ubyte):int'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB08 [0007] 1 1 [000..00F) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Test2:DoTestImpl4(ref,int,int,ubyte):int
impImportBlockPending for BB08
Importing BB08 (PC=000) of 'Test2:DoTestImpl4(ref,int,int,ubyte):int'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) box 1B000006
Importing BOX(refClass) as NOP
[ 1] 6 (0x006) ldarg.1
[ 2] 7 (0x007) ldarg.2
[ 3] 8 (0x008) ldarg.3
[ 4] 9 (0x009) callvirt 2B000012
In Compiler::impImportCall: opcode is callvirt, kind=3, callRetType is int, structSize is 0
** Note: inlinee IL was partially imported -- imported 0 of 15 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
Inlining [000040] failed, so bashing STMT00009 to NOP
INLINER: during 'fgInline' result 'failed this callee' reason 'generic virtual' for 'Test2:DoTest(int,int,ubyte):int' calling 'Test2:DoTestImpl4(ref,int,int,ubyte):int'
INLINER: Marking Test2:DoTestImpl4(ref,int,int,ubyte):int as NOINLINE because of generic virtual
INLINER: during 'fgInline' result 'failed this callee' reason 'generic virtual'
Replacing the return expression placeholder [000042] with [000040]
[000042] --C--------- * RET_EXPR int (inl return from call [000040])
Inserting the inline return expression
[000040] --C-G------- * CALL int Test2.DoTestImpl4
[000041] ------------ arg0 +--* CNS_INT(h) long 0xd1ffab1e method
[000036] ------------ arg1 +--* LCL_VAR ref V11 tmp2
[000037] ------------ arg2 +--* LCL_VAR int V00 arg0
[000038] ------------ arg3 +--* LCL_VAR int V01 arg1
[000039] ------------ arg4 \--* LCL_VAR ubyte V02 arg2
Expanding INLINE_CANDIDATE in statement STMT00011 in BB01:
STMT00011 (IL ???...0x03A)
[000048] I-C-G------- * CALL int Test2.DoTestImpl5 (exactContextHnd=0x00000000D1FFAB1E)
[000045] ------------ arg0 +--* LCL_VAR int V00 arg0
[000046] ------------ arg1 +--* LCL_VAR int V01 arg1
[000047] ------------ arg2 \--* LCL_VAR ubyte V02 arg2
Argument #0: is a local var
[000045] ------------ * LCL_VAR int V00 arg0
Argument #1: is a local var
[000046] ------------ * LCL_VAR int V01 arg1
Argument #2: is a local var
[000047] ------------ * LCL_VAR ubyte V02 arg2
INLINER: inlineInfo.tokenLookupContextHandle for Test2:DoTestImpl5(int,int,ubyte):int set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method Test2:DoTestImpl5(int,int,ubyte):int :
IL to import:
IL_0000 73 0d 00 00 06 newobj 0x600000D
IL_0005 02 ldarg.0
IL_0006 03 ldarg.1
IL_0007 04 ldarg.2
IL_0008 6f 12 00 00 2b callvirt 0x2B000012
IL_000d 2a ret
INLINER impTokenLookupContextHandle for Test2:DoTestImpl5(int,int,ubyte):int is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for Test2:DoTestImpl5(int,int,ubyte):int
Jump targets:
none
New Basic Block BB09 [0008] created.
BB09 [000..00E)
Basic block list for 'Test2:DoTestImpl5(int,int,ubyte):int'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB09 [0008] 1 1 [000..00E) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Test2:DoTestImpl5(int,int,ubyte):int
impImportBlockPending for BB09
Importing BB09 (PC=000) of 'Test2:DoTestImpl5(int,int,ubyte):int'
[ 0] 0 (0x000) newobj
lvaGrabTemp returning 12 (V12 tmp3) called for NewObj constructor temp.
[000093] -A---------- * ASG ref
[000092] D------N---- +--* LCL_VAR ref V12 tmp3
[000091] ------------ \--* ALLOCOBJ ref
[000090] ------------ \--* CNS_INT(h) long 0xd1ffab1e method
Marked V12 as a single def local
lvaSetClass: setting class for V12 to (00000000D1FFAB1E) CalculatorClass [exact]
0600000D
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
[000095] I-C-G------- * CALL void CalculatorClass..ctor (exactContextHnd=0x00000000D1FFAB1E)
[000094] ------------ this in rcx \--* LCL_VAR ref V12 tmp3
[ 1] 5 (0x005) ldarg.0
[ 2] 6 (0x006) ldarg.1
[ 3] 7 (0x007) ldarg.2
[ 4] 8 (0x008) callvirt 2B000012
In Compiler::impImportCall: opcode is callvirt, kind=3, callRetType is int, structSize is 0
** Note: inlinee IL was partially imported -- imported 0 of 14 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
Inlining [000048] failed, so bashing STMT00011 to NOP
INLINER: during 'fgInline' result 'failed this callee' reason 'generic virtual' for 'Test2:DoTest(int,int,ubyte):int' calling 'Test2:DoTestImpl5(int,int,ubyte):int'
INLINER: Marking Test2:DoTestImpl5(int,int,ubyte):int as NOINLINE because of generic virtual
INLINER: during 'fgInline' result 'failed this callee' reason 'generic virtual'
Replacing the return expression placeholder [000049] with [000048]
[000049] --C--------- * RET_EXPR int (inl return from call [000048])
Inserting the inline return expression
[000048] --C-G------- * CALL int Test2.DoTestImpl5
[000045] ------------ arg0 +--* LCL_VAR int V00 arg0
[000046] ------------ arg1 +--* LCL_VAR int V01 arg1
[000047] ------------ arg2 \--* LCL_VAR ubyte V02 arg2
Expanding INLINE_CANDIDATE in statement STMT00013 in BB01:
STMT00013 (IL ???...0x043)
[000055] I-C-G------- * CALL int Test2.DoTestImpl6 (exactContextHnd=0x00000000D1FFAB1E)
[000052] ------------ arg0 +--* LCL_VAR int V00 arg0
[000053] ------------ arg1 +--* LCL_VAR int V01 arg1
[000054] ------------ arg2 \--* LCL_VAR ubyte V02 arg2
Argument #0: is a local var
[000052] ------------ * LCL_VAR int V00 arg0
Argument #1: is a local var
[000053] ------------ * LCL_VAR int V01 arg1
Argument #2: is a local var
[000054] ------------ * LCL_VAR ubyte V02 arg2
INLINER: inlineInfo.tokenLookupContextHandle for Test2:DoTestImpl6(int,int,ubyte):int set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method Test2:DoTestImpl6(int,int,ubyte):int :
IL to import:
IL_0000 12 00 ldloca.s 0x0
IL_0002 fe 15 07 00 00 02 initobj 0x2000007
IL_0008 12 00 ldloca.s 0x0
IL_000a 02 ldarg.0
IL_000b 03 ldarg.1
IL_000c 04 ldarg.2
IL_000d 28 13 00 00 2b call 0x2B000013
IL_0012 2a ret
INLINER impTokenLookupContextHandle for Test2:DoTestImpl6(int,int,ubyte):int is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for Test2:DoTestImpl6(int,int,ubyte):int
Jump targets:
none
New Basic Block BB10 [0009] created.
BB10 [000..013)
Basic block list for 'Test2:DoTestImpl6(int,int,ubyte):int'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB10 [0009] 1 1 [000..013) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Test2:DoTestImpl6(int,int,ubyte):int
impImportBlockPending for BB10
Importing BB10 (PC=000) of 'Test2:DoTestImpl6(int,int,ubyte):int'
[ 0] 0 (0x000) ldloca.s 0
lvaGrabTemp returning 12 (V12 tmp3) (a long lifetime temp) called for Inline ldloca(s) first use temp.
[ 1] 2 (0x002) initobj 02000007
[000101] IA---------- * ASG struct (init)
[000098] D------N---- +--* LCL_VAR struct V12 tmp3
[000100] ------------ \--* CNS_INT int 0
[ 0] 8 (0x008) ldloca.s 0
[ 1] 10 (0x00a) ldarg.0
[ 2] 11 (0x00b) ldarg.1
[ 3] 12 (0x00c) ldarg.2
[ 4] 13 (0x00d) call 2B000013
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
[000104] I-C-G------- * CALL int CalculatorStruct.Calc (exactContextHnd=0x00000000D1FFAB1E)
[000103] ------------ this in rcx +--* ADDR byref
[000102] ------------ | \--* LCL_VAR struct V12 tmp3
[000052] ------------ arg1 +--* LCL_VAR int V00 arg0
[000053] ------------ arg2 +--* LCL_VAR int V01 arg1
[000054] ------------ arg3 \--* LCL_VAR ubyte V02 arg2
[ 1] 18 (0x012) ret
Inlinee Return expression (before normalization) =>
[000105] --C--------- * RET_EXPR int (inl return from call [000104])
Inlinee Return expression (after normalization) =>
[000105] --C--------- * RET_EXPR int (inl return from call [000104])
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000055] -----------
Arguments setup:
Zero init inlinee locals:
STMT00013 (IL ???...0x043)
[000055] I-C-G------- * CALL int Test2.DoTestImpl6 (exactContextHnd=0x00000000D1FFAB1E)
[000052] ------------ arg0 +--* LCL_VAR int V00 arg0
[000053] ------------ arg1 +--* LCL_VAR int V01 arg1
[000054] ------------ arg2 \--* LCL_VAR ubyte V02 arg2
Inlinee method body:
STMT00022 (IL ???... ???)
[000101] IA---------- * ASG struct (init)
[000098] D------N---- +--* LCL_VAR struct V12 tmp3
[000100] ------------ \--* CNS_INT int 0
STMT00023 (IL ???... ???)
[000104] I-C-G------- * CALL int CalculatorStruct.Calc (exactContextHnd=0x00000000D1FFAB1E)
[000103] ------------ this in rcx +--* ADDR byref
[000102] ------------ | \--* LCL_VAR struct V12 tmp3
[000052] ------------ arg1 +--* LCL_VAR int V00 arg0
[000053] ------------ arg2 +--* LCL_VAR int V01 arg1
[000054] ------------ arg3 \--* LCL_VAR ubyte V02 arg2
fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000055] is
[000105] --C--------- * RET_EXPR int (inl return from call [000104])
Successfully inlined Test2:DoTestImpl6(int,int,ubyte):int (19 IL bytes) (depth 1) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test2:DoTest(int,int,ubyte):int' calling 'Test2:DoTestImpl6(int,int,ubyte):int'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement STMT00023 in BB01:
STMT00023 (IL ???... ???)
[000104] I-C-G------- * CALL int CalculatorStruct.Calc (exactContextHnd=0x00000000D1FFAB1E)
[000103] ------------ this in rcx +--* ADDR byref
[000102] ------------ | \--* LCL_VAR struct V12 tmp3
[000052] ------------ arg1 +--* LCL_VAR int V00 arg0
[000053] ------------ arg2 +--* LCL_VAR int V01 arg1
[000054] ------------ arg3 \--* LCL_VAR ubyte V02 arg2
thisArg: is a constant is byref to a struct local
[000103] ------------ * ADDR byref
[000102] ------------ \--* LCL_VAR struct V12 tmp3
Argument #1: is a local var
[000052] ------------ * LCL_VAR int V00 arg0
Argument #2: is a local var
[000053] ------------ * LCL_VAR int V01 arg1
Argument #3: is a local var
[000054] ------------ * LCL_VAR ubyte V02 arg2
INLINER: inlineInfo.tokenLookupContextHandle for CalculatorStruct:Calc(int,int,ubyte):int:this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method CalculatorStruct:Calc(int,int,ubyte):int:this :
IL to import:
IL_0000 03 ldarg.1
IL_0001 04 ldarg.2
IL_0002 05 ldarg.3
IL_0003 28 09 00 00 2b call 0x2B000009
IL_0008 2a ret
INLINER impTokenLookupContextHandle for CalculatorStruct:Calc(int,int,ubyte):int:this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for CalculatorStruct:Calc(int,int,ubyte):int:this
Jump targets:
none
New Basic Block BB11 [0010] created.
BB11 [000..009)
Basic block list for 'CalculatorStruct:Calc(int,int,ubyte):int:this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB11 [0010] 1 1 [000..009) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for CalculatorStruct:Calc(int,int,ubyte):int:this
impImportBlockPending for BB11
Importing BB11 (PC=000) of 'CalculatorStruct:Calc(int,int,ubyte):int:this'
[ 0] 0 (0x000) ldarg.1
[ 1] 1 (0x001) ldarg.2
[ 2] 2 (0x002) ldarg.3
[ 3] 3 (0x003) call 2B000009
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
[000107] I-C-G------- * CALL int CalcMethods.Calc (exactContextHnd=0x00000000D1FFAB1E)
[000052] ------------ arg0 +--* LCL_VAR int V00 this
[000053] ------------ arg1 +--* LCL_VAR int V01 arg1
[000054] ------------ arg2 \--* LCL_VAR ubyte V02 arg2
[ 1] 8 (0x008) ret
Inlinee Return expression (before normalization) =>
[000108] --C--------- * RET_EXPR int (inl return from call [000107])
Inlinee Return expression (after normalization) =>
[000108] --C--------- * RET_EXPR int (inl return from call [000107])
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000104] -----------
Arguments setup:
Inlinee method body:
STMT00024 (IL ???... ???)
[000107] I-C-G------- * CALL int CalcMethods.Calc (exactContextHnd=0x00000000D1FFAB1E)
[000052] ------------ arg0 +--* LCL_VAR int V00 arg0
[000053] ------------ arg1 +--* LCL_VAR int V01 arg1
[000054] ------------ arg2 \--* LCL_VAR ubyte V02 arg2
fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000104] is
[000108] --C--------- * RET_EXPR int (inl return from call [000107])
Successfully inlined CalculatorStruct:Calc(int,int,ubyte):int:this (9 IL bytes) (depth 2) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test2:DoTest(int,int,ubyte):int' calling 'CalculatorStruct:Calc(int,int,ubyte):int:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement STMT00024 in BB01:
STMT00024 (IL ???... ???)
[000107] I-C-G------- * CALL int CalcMethods.Calc (exactContextHnd=0x00000000D1FFAB1E)
[000052] ------------ arg0 +--* LCL_VAR int V00 arg0
[000053] ------------ arg1 +--* LCL_VAR int V01 arg1
[000054] ------------ arg2 \--* LCL_VAR ubyte V02 arg2
Argument #0: is a local var
[000052] ------------ * LCL_VAR int V00 arg0
Argument #1: is a local var
[000053] ------------ * LCL_VAR int V01 arg1
Argument #2: is a local var
[000054] ------------ * LCL_VAR ubyte V02 arg2
INLINER: inlineInfo.tokenLookupContextHandle for CalcMethods:Calc(int,int,ubyte):int set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method CalcMethods:Calc(int,int,ubyte):int :
IL to import:
IL_0000 02 ldarg.0
IL_0001 03 ldarg.1
IL_0002 28 04 00 00 2b call 0x2B000004
IL_0007 04 ldarg.2
IL_0008 28 05 00 00 2b call 0x2B000005
IL_000d 28 06 00 00 2b call 0x2B000006
IL_0012 0a stloc.0
IL_0013 02 ldarg.0
IL_0014 04 ldarg.2
IL_0015 28 05 00 00 2b call 0x2B000005
IL_001a 28 06 00 00 2b call 0x2B000006
IL_001f 06 ldloc.0
IL_0020 18 ldc.i4.2
IL_0021 28 07 00 00 2b call 0x2B000007
IL_0026 28 08 00 00 2b call 0x2B000008
IL_002b 2a ret
INLINER impTokenLookupContextHandle for CalcMethods:Calc(int,int,ubyte):int is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for CalcMethods:Calc(int,int,ubyte):int
Jump targets:
none
New Basic Block BB12 [0011] created.
BB12 [000..02C)
Basic block list for 'CalcMethods:Calc(int,int,ubyte):int'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB12 [0011] 1 1 [000..02C) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for CalcMethods:Calc(int,int,ubyte):int
impImportBlockPending for BB12
Importing BB12 (PC=000) of 'CalcMethods:Calc(int,int,ubyte):int'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldarg.1
[ 2] 2 (0x002) call 2B000004
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
[000110] I-C-G------- * CALL int UnsafeMath.Add (exactContextHnd=0x00000000D1FFAB1E)
[000052] ------------ arg0 +--* LCL_VAR int V00 arg0
[000053] ------------ arg1 \--* LCL_VAR int V01 arg1
[ 1] 7 (0x007) ldarg.2
[ 2] 8 (0x008) call 2B000005
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
lvaGrabTemp returning 13 (V13 tmp4) called for impAppendStmt.
[000114] -AC--------- * ASG int
[000113] D------N---- +--* LCL_VAR int V13 tmp4
[000111] --C--------- \--* RET_EXPR int (inl return from call [000110])
[000112] I-C-G------- * CALL int UnsafeMath.Cast (exactContextHnd=0x00000000D1FFAB1E)
[000054] ------------ arg0 \--* LCL_VAR ubyte V02 arg2
[ 2] 13 (0x00d) call 2B000006
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
[000117] I-C-G------- * CALL int UnsafeMath.Mul (exactContextHnd=0x00000000D1FFAB1E)
[000115] ------------ arg0 +--* LCL_VAR int V13 tmp4
[000116] --C--------- arg1 \--* RET_EXPR int (inl return from call [000112])
[ 1] 18 (0x012) stloc.0
lvaGrabTemp returning 14 (V14 tmp5) (a long lifetime temp) called for Inline stloc first use temp.
[000120] -AC--------- * ASG int
[000119] D------N---- +--* LCL_VAR int V14 tmp5
[000118] --C--------- \--* RET_EXPR int (inl return from call [000117])
[ 0] 19 (0x013) ldarg.0
[ 1] 20 (0x014) ldarg.2
[ 2] 21 (0x015) call 2B000005
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
[000123] I-C-G------- * CALL int UnsafeMath.Cast (exactContextHnd=0x00000000D1FFAB1E)
[000122] ------------ arg0 \--* LCL_VAR ubyte V02 arg2
[ 2] 26 (0x01a) call 2B000006
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
[000125] I-C-G------- * CALL int UnsafeMath.Mul (exactContextHnd=0x00000000D1FFAB1E)
[000121] ------------ arg0 +--* LCL_VAR int V00 arg0
[000124] --C--------- arg1 \--* RET_EXPR int (inl return from call [000123])
[ 1] 31 (0x01f) ldloc.0
[ 2] 32 (0x020) ldc.i4.2 2
[ 3] 33 (0x021) call 2B000007
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
lvaGrabTemp returning 15 (V15 tmp6) called for impAppendStmt.
[000131] -AC--------- * ASG int
[000130] D------N---- +--* LCL_VAR int V15 tmp6
[000126] --C--------- \--* RET_EXPR int (inl return from call [000125])
[000129] I-C-G------- * CALL int UnsafeMath.Shr (exactContextHnd=0x00000000D1FFAB1E)
[000127] ------------ arg0 +--* LCL_VAR int V14 tmp5
[000128] ------------ arg1 \--* CNS_INT int 2
[ 2] 38 (0x026) call 2B000008
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
[000134] I-C-G------- * CALL int UnsafeMath.Div (exactContextHnd=0x00000000D1FFAB1E)
[000132] ------------ arg0 +--* LCL_VAR int V15 tmp6
[000133] --C--------- arg1 \--* RET_EXPR int (inl return from call [000129])
[ 1] 43 (0x02b) ret
Inlinee Return expression (before normalization) =>
[000135] --C--------- * RET_EXPR int (inl return from call [000134])
Inlinee Return expression (after normalization) =>
[000135] --C--------- * RET_EXPR int (inl return from call [000134])
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000107] -----------
Arguments setup:
Zero init inlinee locals:
STMT00035 (IL ???... ???)
[000138] -A---------- * ASG int
[000137] D------N---- +--* LCL_VAR int V14 tmp5
[000136] ------------ \--* CNS_INT int 0
Inlinee method body:
STMT00025 (IL ???... ???)
[000110] I-C-G------- * CALL int UnsafeMath.Add (exactContextHnd=0x00000000D1FFAB1E)
[000052] ------------ arg0 +--* LCL_VAR int V00 arg0
[000053] ------------ arg1 \--* LCL_VAR int V01 arg1
STMT00027 (IL ???... ???)
[000114] -AC--------- * ASG int
[000113] D------N---- +--* LCL_VAR int V13 tmp4
[000111] --C--------- \--* RET_EXPR int (inl return from call [000110])
STMT00026 (IL ???... ???)
[000112] I-C-G------- * CALL int UnsafeMath.Cast (exactContextHnd=0x00000000D1FFAB1E)
[000054] ------------ arg0 \--* LCL_VAR ubyte V02 arg2
STMT00028 (IL ???... ???)
[000117] I-C-G------- * CALL int UnsafeMath.Mul (exactContextHnd=0x00000000D1FFAB1E)
[000115] ------------ arg0 +--* LCL_VAR int V13 tmp4
[000116] --C--------- arg1 \--* RET_EXPR int (inl return from call [000112])
STMT00029 (IL ???... ???)
[000120] -AC--------- * ASG int
[000119] D------N---- +--* LCL_VAR int V14 tmp5
[000118] --C--------- \--* RET_EXPR int (inl return from call [000117])
STMT00030 (IL ???... ???)
[000123] I-C-G------- * CALL int UnsafeMath.Cast (exactContextHnd=0x00000000D1FFAB1E)
[000122] ------------ arg0 \--* LCL_VAR ubyte V02 arg2
STMT00031 (IL ???... ???)
[000125] I-C-G------- * CALL int UnsafeMath.Mul (exactContextHnd=0x00000000D1FFAB1E)
[000121] ------------ arg0 +--* LCL_VAR int V00 arg0
[000124] --C--------- arg1 \--* RET_EXPR int (inl return from call [000123])
STMT00033 (IL ???... ???)
[000131] -AC--------- * ASG int
[000130] D------N---- +--* LCL_VAR int V15 tmp6
[000126] --C--------- \--* RET_EXPR int (inl return from call [000125])
STMT00032 (IL ???... ???)
[000129] I-C-G------- * CALL int UnsafeMath.Shr (exactContextHnd=0x00000000D1FFAB1E)
[000127] ------------ arg0 +--* LCL_VAR int V14 tmp5
[000128] ------------ arg1 \--* CNS_INT int 2
STMT00034 (IL ???... ???)
[000134] I-C-G------- * CALL int UnsafeMath.Div (exactContextHnd=0x00000000D1FFAB1E)
[000132] ------------ arg0 +--* LCL_VAR int V15 tmp6
[000133] --C--------- arg1 \--* RET_EXPR int (inl return from call [000129])
fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000107] is
[000135] --C--------- * RET_EXPR int (inl return from call [000134])
Successfully inlined CalcMethods:Calc(int,int,ubyte):int (44 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test2:DoTest(int,int,ubyte):int' calling 'CalcMethods:Calc(int,int,ubyte):int'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement STMT00025 in BB01:
STMT00025 (IL ???... ???)
[000110] I-C-G------- * CALL int UnsafeMath.Add (exactContextHnd=0x00000000D1FFAB1E)
[000052] ------------ arg0 +--* LCL_VAR int V00 arg0
[000053] ------------ arg1 \--* LCL_VAR int V01 arg1
Argument #0: is a local var
[000052] ------------ * LCL_VAR int V00 arg0
Argument #1: is a local var
[000053] ------------ * LCL_VAR int V01 arg1
INLINER: inlineInfo.tokenLookupContextHandle for UnsafeMath:Add(int,int):int set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method UnsafeMath:Add(int,int):int :
IL to import:
IL_0000 02 ldarg.0
IL_0001 03 ldarg.1
IL_0002 58 add
IL_0003 2a ret
INLINER impTokenLookupContextHandle for UnsafeMath:Add(int,int):int is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for UnsafeMath:Add(int,int):int
Jump targets:
none
New Basic Block BB13 [0012] created.
BB13 [000..004)
Basic block list for 'UnsafeMath:Add(int,int):int'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB13 [0012] 1 1 [000..004) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for UnsafeMath:Add(int,int):int
impImportBlockPending for BB13
Importing BB13 (PC=000) of 'UnsafeMath:Add(int,int):int'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldarg.1
[ 2] 2 (0x002) add
[ 1] 3 (0x003) ret
Inlinee Return expression (before normalization) =>
[000140] ------------ * ADD int
[000052] ------------ +--* LCL_VAR int V00 arg0
[000053] ------------ \--* LCL_VAR int V01 arg1
Inlinee Return expression (after normalization) =>
[000140] ------------ * ADD int
[000052] ------------ +--* LCL_VAR int V00 arg0
[000053] ------------ \--* LCL_VAR int V01 arg1
** Note: inlinee IL was partially imported -- imported 0 of 4 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000110] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000110] is
[000140] ------------ * ADD int
[000052] ------------ +--* LCL_VAR int V00 arg0
[000053] ------------ \--* LCL_VAR int V01 arg1
Successfully inlined UnsafeMath:Add(int,int):int (4 IL bytes) (depth 4) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test2:DoTest(int,int,ubyte):int' calling 'UnsafeMath:Add(int,int):int'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000111] with [000140]
[000111] --C--------- * RET_EXPR int (inl return from call [000140])
Inserting the inline return expression
[000140] ------------ * ADD int
[000052] ------------ +--* LCL_VAR int V00 arg0
[000053] ------------ \--* LCL_VAR int V01 arg1
Expanding INLINE_CANDIDATE in statement STMT00026 in BB01:
STMT00026 (IL ???... ???)
[000112] I-C-G------- * CALL int UnsafeMath.Cast (exactContextHnd=0x00000000D1FFAB1E)
[000054] ------------ arg0 \--* LCL_VAR ubyte V02 arg2
Argument #0: is a local var
[000054] ------------ * LCL_VAR ubyte V02 arg2
INLINER: inlineInfo.tokenLookupContextHandle for UnsafeMath:Cast(ubyte):int set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method UnsafeMath:Cast(ubyte):int :
IL to import:
IL_0000 02 ldarg.0
IL_0001 2a ret
INLINER impTokenLookupContextHandle for UnsafeMath:Cast(ubyte):int is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for UnsafeMath:Cast(ubyte):int
Jump targets:
none
New Basic Block BB14 [0013] created.
BB14 [000..002)
Basic block list for 'UnsafeMath:Cast(ubyte):int'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB14 [0013] 1 1 [000..002) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for UnsafeMath:Cast(ubyte):int
impImportBlockPending for BB14
Importing BB14 (PC=000) of 'UnsafeMath:Cast(ubyte):int'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ret
Inlinee Return expression (before normalization) =>
[000054] ------------ * LCL_VAR ubyte V02 arg2
Inlinee Return expression (after normalization) =>
[000142] ------------ * CAST int <- int
[000054] ------------ \--* LCL_VAR ubyte V02 arg2
** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000112] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000112] is
[000142] ------------ * CAST int <- int
[000054] ------------ \--* LCL_VAR ubyte V02 arg2
Successfully inlined UnsafeMath:Cast(ubyte):int (2 IL bytes) (depth 4) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test2:DoTest(int,int,ubyte):int' calling 'UnsafeMath:Cast(ubyte):int'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement STMT00028 in BB01:
STMT00028 (IL ???... ???)
[000117] I-C-G------- * CALL int UnsafeMath.Mul (exactContextHnd=0x00000000D1FFAB1E)
[000115] ------------ arg0 +--* LCL_VAR int V13 tmp4
[000116] --C--------- arg1 \--* RET_EXPR int (inl return from call [000142])
Argument #0: is a local var
[000115] ------------ * LCL_VAR int V13 tmp4
Argument #1:
[000142] ------------ * CAST int <- int
[000054] ------------ \--* LCL_VAR ubyte V02 arg2
INLINER: inlineInfo.tokenLookupContextHandle for UnsafeMath:Mul(int,int):int set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method UnsafeMath:Mul(int,int):int :
IL to import:
IL_0000 02 ldarg.0
IL_0001 03 ldarg.1
IL_0002 5a mul
IL_0003 2a ret
INLINER impTokenLookupContextHandle for UnsafeMath:Mul(int,int):int is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for UnsafeMath:Mul(int,int):int
Jump targets:
none
New Basic Block BB15 [0014] created.
BB15 [000..004)
Basic block list for 'UnsafeMath:Mul(int,int):int'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB15 [0014] 1 1 [000..004) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for UnsafeMath:Mul(int,int):int
impImportBlockPending for BB15
Importing BB15 (PC=000) of 'UnsafeMath:Mul(int,int):int'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldarg.1
lvaGrabTemp returning 16 (V16 tmp7) called for Inlining Arg.
[ 2] 2 (0x002) mul
[ 1] 3 (0x003) ret
Inlinee Return expression (before normalization) =>
[000145] ------------ * MUL int
[000115] ------------ +--* LCL_VAR int V13 tmp4
[000144] ------------ \--* LCL_VAR int V16 tmp7
Inlinee Return expression (after normalization) =>
[000145] ------------ * MUL int
[000115] ------------ +--* LCL_VAR int V13 tmp4
[000144] ------------ \--* LCL_VAR int V16 tmp7
** Note: inlinee IL was partially imported -- imported 0 of 4 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000117] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000117] is
[000145] ------------ * MUL int
[000115] ------------ +--* LCL_VAR int V13 tmp4
[000142] ------------ \--* CAST int <- int
[000054] ------------ \--* LCL_VAR ubyte V02 arg2
Successfully inlined UnsafeMath:Mul(int,int):int (4 IL bytes) (depth 4) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test2:DoTest(int,int,ubyte):int' calling 'UnsafeMath:Mul(int,int):int'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000118] with [000145]
[000118] --C--------- * RET_EXPR int (inl return from call [000145])
Inserting the inline return expression
[000145] ------------ * MUL int
[000115] ------------ +--* LCL_VAR int V13 tmp4
[000142] ------------ \--* CAST int <- int
[000054] ------------ \--* LCL_VAR ubyte V02 arg2
Expanding INLINE_CANDIDATE in statement STMT00030 in BB01:
STMT00030 (IL ???... ???)
[000123] I-C-G------- * CALL int UnsafeMath.Cast (exactContextHnd=0x00000000D1FFAB1E)
[000122] ------------ arg0 \--* LCL_VAR ubyte V02 arg2
Argument #0: is a local var
[000122] ------------ * LCL_VAR ubyte V02 arg2
INLINER: inlineInfo.tokenLookupContextHandle for UnsafeMath:Cast(ubyte):int set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method UnsafeMath:Cast(ubyte):int :
IL to import:
IL_0000 02 ldarg.0
IL_0001 2a ret
INLINER impTokenLookupContextHandle for UnsafeMath:Cast(ubyte):int is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for UnsafeMath:Cast(ubyte):int
Jump targets:
none
New Basic Block BB16 [0015] created.
BB16 [000..002)
Basic block list for 'UnsafeMath:Cast(ubyte):int'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB16 [0015] 1 1 [000..002) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for UnsafeMath:Cast(ubyte):int
impImportBlockPending for BB16
Importing BB16 (PC=000) of 'UnsafeMath:Cast(ubyte):int'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ret
Inlinee Return expression (before normalization) =>
[000122] ------------ * LCL_VAR ubyte V02 arg2
Inlinee Return expression (after normalization) =>
[000147] ------------ * CAST int <- int
[000122] ------------ \--* LCL_VAR ubyte V02 arg2
** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000123] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000123] is
[000147] ------------ * CAST int <- int
[000122] ------------ \--* LCL_VAR ubyte V02 arg2
Successfully inlined UnsafeMath:Cast(ubyte):int (2 IL bytes) (depth 4) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test2:DoTest(int,int,ubyte):int' calling 'UnsafeMath:Cast(ubyte):int'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement STMT00031 in BB01:
STMT00031 (IL ???... ???)
[000125] I-C-G------- * CALL int UnsafeMath.Mul (exactContextHnd=0x00000000D1FFAB1E)
[000121] ------------ arg0 +--* LCL_VAR int V00 arg0
[000124] --C--------- arg1 \--* RET_EXPR int (inl return from call [000147])
Argument #0: is a local var
[000121] ------------ * LCL_VAR int V00 arg0
Argument #1:
[000147] ------------ * CAST int <- int
[000122] ------------ \--* LCL_VAR ubyte V02 arg2
INLINER: inlineInfo.tokenLookupContextHandle for UnsafeMath:Mul(int,int):int set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method UnsafeMath:Mul(int,int):int :
IL to import:
IL_0000 02 ldarg.0
IL_0001 03 ldarg.1
IL_0002 5a mul
IL_0003 2a ret
INLINER impTokenLookupContextHandle for UnsafeMath:Mul(int,int):int is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for UnsafeMath:Mul(int,int):int
Jump targets:
none
New Basic Block BB17 [0016] created.
BB17 [000..004)
Basic block list for 'UnsafeMath:Mul(int,int):int'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB17 [0016] 1 1 [000..004) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for UnsafeMath:Mul(int,int):int
impImportBlockPending for BB17
Importing BB17 (PC=000) of 'UnsafeMath:Mul(int,int):int'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldarg.1
lvaGrabTemp returning 17 (V17 tmp8) called for Inlining Arg.
[ 2] 2 (0x002) mul
[ 1] 3 (0x003) ret
Inlinee Return expression (before normalization) =>
[000150] ------------ * MUL int
[000121] ------------ +--* LCL_VAR int V00 arg0
[000149] ------------ \--* LCL_VAR int V17 tmp8
Inlinee Return expression (after normalization) =>
[000150] ------------ * MUL int
[000121] ------------ +--* LCL_VAR int V00 arg0
[000149] ------------ \--* LCL_VAR int V17 tmp8
** Note: inlinee IL was partially imported -- imported 0 of 4 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000125] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000125] is
[000150] ------------ * MUL int
[000121] ------------ +--* LCL_VAR int V00 arg0
[000147] ------------ \--* CAST int <- int
[000122] ------------ \--* LCL_VAR ubyte V02 arg2
Successfully inlined UnsafeMath:Mul(int,int):int (4 IL bytes) (depth 4) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test2:DoTest(int,int,ubyte):int' calling 'UnsafeMath:Mul(int,int):int'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000126] with [000150]
[000126] --C--------- * RET_EXPR int (inl return from call [000150])
Inserting the inline return expression
[000150] ------------ * MUL int
[000121] ------------ +--* LCL_VAR int V00 arg0
[000147] ------------ \--* CAST int <- int
[000122] ------------ \--* LCL_VAR ubyte V02 arg2
Expanding INLINE_CANDIDATE in statement STMT00032 in BB01:
STMT00032 (IL ???... ???)
[000129] I-C-G------- * CALL int UnsafeMath.Shr (exactContextHnd=0x00000000D1FFAB1E)
[000127] ------------ arg0 +--* LCL_VAR int V14 tmp5
[000128] ------------ arg1 \--* CNS_INT int 2
Argument #0: is a local var
[000127] ------------ * LCL_VAR int V14 tmp5
Argument #1: is a constant
[000128] ------------ * CNS_INT int 2
INLINER: inlineInfo.tokenLookupContextHandle for UnsafeMath:Shr(int,int):int set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method UnsafeMath:Shr(int,int):int :
IL to import:
IL_0000 02 ldarg.0
IL_0001 03 ldarg.1
IL_0002 63 shr
IL_0003 2a ret
INLINER impTokenLookupContextHandle for UnsafeMath:Shr(int,int):int is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for UnsafeMath:Shr(int,int):int
Jump targets:
none
New Basic Block BB18 [0017] created.
BB18 [000..004)
Basic block list for 'UnsafeMath:Shr(int,int):int'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB18 [0017] 1 1 [000..004) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for UnsafeMath:Shr(int,int):int
impImportBlockPending for BB18
Importing BB18 (PC=000) of 'UnsafeMath:Shr(int,int):int'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldarg.1
[ 2] 2 (0x002) shr
[ 1] 3 (0x003) ret
Inlinee Return expression (before normalization) =>
[000153] ------------ * RSH int
[000127] ------------ +--* LCL_VAR int V14 tmp5
[000152] ------------ \--* CNS_INT int 2
Inlinee Return expression (after normalization) =>
[000153] ------------ * RSH int
[000127] ------------ +--* LCL_VAR int V14 tmp5
[000152] ------------ \--* CNS_INT int 2
** Note: inlinee IL was partially imported -- imported 0 of 4 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000129] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000129] is
[000153] ------------ * RSH int
[000127] ------------ +--* LCL_VAR int V14 tmp5
[000152] ------------ \--* CNS_INT int 2
Successfully inlined UnsafeMath:Shr(int,int):int (4 IL bytes) (depth 4) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test2:DoTest(int,int,ubyte):int' calling 'UnsafeMath:Shr(int,int):int'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement STMT00034 in BB01:
STMT00034 (IL ???... ???)
[000134] I-C-G------- * CALL int UnsafeMath.Div (exactContextHnd=0x00000000D1FFAB1E)
[000132] ------------ arg0 +--* LCL_VAR int V15 tmp6
[000133] --C--------- arg1 \--* RET_EXPR int (inl return from call [000153])
Argument #0: is a local var
[000132] ------------ * LCL_VAR int V15 tmp6
Argument #1:
[000153] ------------ * RSH int
[000127] ------------ +--* LCL_VAR int V14 tmp5
[000152] ------------ \--* CNS_INT int 2
INLINER: inlineInfo.tokenLookupContextHandle for UnsafeMath:Div(int,int):int set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method UnsafeMath:Div(int,int):int :
IL to import:
IL_0000 02 ldarg.0
IL_0001 03 ldarg.1
IL_0002 5b div
IL_0003 2a ret
INLINER impTokenLookupContextHandle for UnsafeMath:Div(int,int):int is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for UnsafeMath:Div(int,int):int
Jump targets:
none
New Basic Block BB19 [0018] created.
BB19 [000..004)
Basic block list for 'UnsafeMath:Div(int,int):int'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB19 [0018] 1 1 [000..004) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for UnsafeMath:Div(int,int):int
impImportBlockPending for BB19
Importing BB19 (PC=000) of 'UnsafeMath:Div(int,int):int'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldarg.1
lvaGrabTemp returning 18 (V18 tmp9) called for Inlining Arg.
[ 2] 2 (0x002) div
[ 1] 3 (0x003) ret
Inlinee Return expression (before normalization) =>
[000156] ---X-------- * DIV int
[000132] ------------ +--* LCL_VAR int V15 tmp6
[000155] ------------ \--* LCL_VAR int V18 tmp9
Inlinee Return expression (after normalization) =>
[000156] ---X-------- * DIV int
[000132] ------------ +--* LCL_VAR int V15 tmp6
[000155] ------------ \--* LCL_VAR int V18 tmp9
** Note: inlinee IL was partially imported -- imported 0 of 4 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000134] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000134] is
[000156] ---X-------- * DIV int
[000132] ------------ +--* LCL_VAR int V15 tmp6
[000153] ------------ \--* RSH int
[000127] ------------ +--* LCL_VAR int V14 tmp5
[000152] ------------ \--* CNS_INT int 2
Successfully inlined UnsafeMath:Div(int,int):int (4 IL bytes) (depth 4) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test2:DoTest(int,int,ubyte):int' calling 'UnsafeMath:Div(int,int):int'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000056] with [000156]
[000056] --C--------- * RET_EXPR int (inl return from call [000105])
Inserting the inline return expression
[000156] ---X-------- * DIV int
[000132] ------------ +--* LCL_VAR int V15 tmp6
[000153] ------------ \--* RSH int
[000127] ------------ +--* LCL_VAR int V14 tmp5
[000152] ------------ \--* CNS_INT int 2
*************** After fgInline()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (return) i newobj
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..051) (return), preds={} succs={}
***** BB01
STMT00002 (IL ???... ???)
[000011] -AC--------- * ASG int
[000010] D------N---- +--* LCL_VAR int V10 tmp1
[000003] --C-G------- \--* CALL int Test2.DoTestImpl1
[000000] ------------ arg0 +--* LCL_VAR int V00 arg0
[000001] ------------ arg1 +--* LCL_VAR int V01 arg1
[000002] ------------ arg2 \--* LCL_VAR ubyte V02 arg2
***** BB01
STMT00003 (IL ???... ???)
[000015] -AC--------- * ASG int
[000014] D------N---- +--* LCL_VAR int V03 loc0
[000008] --C-G------- \--* CALL int Test2.DoTestImpl2
[000009] ------------ arg0 +--* CNS_INT(h) long 0xd1ffab1e method
[000005] ------------ arg1 +--* LCL_VAR int V00 arg0
[000006] ------------ arg2 +--* LCL_VAR int V01 arg1
[000007] ------------ arg3 \--* LCL_VAR ubyte V02 arg2
***** BB01
STMT00004 (IL ???...0x014)
[000019] IA---------- * ASG struct (init)
[000016] D------N---- +--* LCL_VAR struct V08 loc5
[000018] ------------ \--* CNS_INT int 0
***** BB01
STMT00006 (IL ???... ???)
[000029] -AC--------- * ASG int
[000028] D------N---- +--* LCL_VAR int V04 loc1
[000024] --C-G------- \--* CALL int Test2.DoTestImpl3
[000026] n----------- arg0 +--* OBJ(1) struct
[000025] ------------ | \--* ADDR byref
[000020] ------------ | \--* LCL_VAR struct V08 loc5
[000021] ------------ arg1 +--* LCL_VAR int V00 arg0
[000022] ------------ arg2 +--* LCL_VAR int V01 arg1
[000023] ------------ arg3 \--* LCL_VAR ubyte V02 arg2
***** BB01
STMT00007 (IL ???...0x031)
[000033] -A---------- * ASG ref
[000032] D------N---- +--* LCL_VAR ref V11 tmp2
[000031] ------------ \--* ALLOCOBJ ref
[000030] ------------ \--* CNS_INT(h) long 0xd1ffab1e method
***** BB01
STMT00010 (IL ???... ???)
[000044] -AC--------- * ASG int
[000043] D------N---- +--* LCL_VAR int V05 loc2
[000040] --C-G------- \--* CALL int Test2.DoTestImpl4
[000041] ------------ arg0 +--* CNS_INT(h) long 0xd1ffab1e method
[000036] ------------ arg1 +--* LCL_VAR ref V11 tmp2
[000037] ------------ arg2 +--* LCL_VAR int V00 arg0
[000038] ------------ arg3 +--* LCL_VAR int V01 arg1
[000039] ------------ arg4 \--* LCL_VAR ubyte V02 arg2
***** BB01
STMT00012 (IL ???... ???)
[000051] -AC--------- * ASG int
[000050] D------N---- +--* LCL_VAR int V06 loc3
[000048] --C-G------- \--* CALL int Test2.DoTestImpl5
[000045] ------------ arg0 +--* LCL_VAR int V00 arg0
[000046] ------------ arg1 +--* LCL_VAR int V01 arg1
[000047] ------------ arg2 \--* LCL_VAR ubyte V02 arg2
***** BB01
STMT00022 (IL ???... ???)
[000101] IA---------- * ASG struct (init)
[000098] D------N---- +--* LCL_VAR struct V12 tmp3
[000100] ------------ \--* CNS_INT int 0
***** BB01
STMT00035 (IL ???... ???)
[000138] -A---------- * ASG int
[000137] D------N---- +--* LCL_VAR int V14 tmp5
[000136] ------------ \--* CNS_INT int 0
***** BB01
STMT00027 (IL ???... ???)
[000114] -AC--------- * ASG int
[000113] D------N---- +--* LCL_VAR int V13 tmp4
[000140] ------------ \--* ADD int
[000052] ------------ +--* LCL_VAR int V00 arg0
[000053] ------------ \--* LCL_VAR int V01 arg1
***** BB01
STMT00029 (IL ???... ???)
[000120] -AC--------- * ASG int
[000119] D------N---- +--* LCL_VAR int V14 tmp5
[000145] ------------ \--* MUL int
[000115] ------------ +--* LCL_VAR int V13 tmp4
[000142] ------------ \--* CAST int <- int
[000054] ------------ \--* LCL_VAR ubyte V02 arg2
***** BB01
STMT00033 (IL ???... ???)
[000131] -AC--------- * ASG int
[000130] D------N---- +--* LCL_VAR int V15 tmp6
[000150] ------------ \--* MUL int
[000121] ------------ +--* LCL_VAR int V00 arg0
[000147] ------------ \--* CAST int <- int
[000122] ------------ \--* LCL_VAR ubyte V02 arg2
***** BB01
STMT00014 (IL ???... ???)
[000058] -AC--------- * ASG int
[000057] D------N---- +--* LCL_VAR int V07 loc4
[000156] ---X-------- \--* DIV int
[000132] ------------ +--* LCL_VAR int V15 tmp6
[000153] ------------ \--* RSH int
[000127] ------------ +--* LCL_VAR int V14 tmp5
[000152] ------------ \--* CNS_INT int 2
***** BB01
STMT00015 (IL ???...0x050)
[000069] ------------ * RETURN int
[000068] ------------ \--* ADD int
[000066] ------------ +--* ADD int
[000064] ------------ | +--* ADD int
[000062] ------------ | | +--* ADD int
[000060] ------------ | | | +--* ADD int
[000012] ------------ | | | | +--* LCL_VAR int V10 tmp1
[000059] ------------ | | | | \--* LCL_VAR int V03 loc0
[000061] ------------ | | | \--* LCL_VAR int V04 loc1
[000063] ------------ | | \--* LCL_VAR int V05 loc2
[000065] ------------ | \--* LCL_VAR int V06 loc3
[000067] ------------ \--* LCL_VAR int V07 loc4
-------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
**************** Inline Tree
Inlines into 0600000F Test2:DoTest(int,int,ubyte):int
[0 IL=0003 TR=000003 06000010] [FAILED: generic virtual] Test2:DoTestImpl1(int,int,ubyte):int
[0 IL=0011 TR=000008 06000011] [FAILED: generic virtual] Test2:DoTestImpl2(int,int,ubyte):int
[0 IL=0030 TR=000024 06000012] [FAILED: generic virtual] Test2:DoTestImpl3(struct,int,int,ubyte):int
[1 IL=0036 TR=000035 0600000D] [below ALWAYS_INLINE size] CalculatorClass:.ctor():this
[2 IL=0001 TR=000084 0600000B] [below ALWAYS_INLINE size] CalculatorBase:.ctor():this
[3 IL=0001 TR=000086 06000464] [below ALWAYS_INLINE size] Object:.ctor():this
[0 IL=0044 TR=000040 06000013] [FAILED: generic virtual] Test2:DoTestImpl4(ref,int,int,ubyte):int
[0 IL=0053 TR=000048 06000014] [FAILED: generic virtual] Test2:DoTestImpl5(int,int,ubyte):int
[4 IL=0062 TR=000055 06000015] [aggressive inline attribute] Test2:DoTestImpl6(int,int,ubyte):int
[5 IL=0013 TR=000104 06000009] [aggressive inline attribute] CalculatorStruct:Calc(int,int,ubyte):int:this
[6 IL=0003 TR=000107 0600000E] [aggressive inline attribute] CalcMethods:Calc(int,int,ubyte):int
[7 IL=0002 TR=000110 0600002B] [aggressive inline attribute] UnsafeMath:Add(int,int):int
[8 IL=0008 TR=000112 0600003A] [aggressive inline attribute] UnsafeMath:Cast(ubyte):int
[9 IL=0013 TR=000117 0600002D] [aggressive inline attribute] UnsafeMath:Mul(int,int):int
[10 IL=0021 TR=000123 0600003A] [aggressive inline attribute] UnsafeMath:Cast(ubyte):int
[11 IL=0026 TR=000125 0600002D] [aggressive inline attribute] UnsafeMath:Mul(int,int):int
[12 IL=0033 TR=000129 0600002F] [aggressive inline attribute] UnsafeMath:Shr(int,int):int
[13 IL=0038 TR=000134 0600002E] [aggressive inline attribute] UnsafeMath:Div(int,int):int
Budget: initialTime=303, finalTime=293, initialBudget=3030, currentBudget=3132
Budget: increased by 102 because of force inlines
Budget: initialSize=1978, finalSize=1978
*************** In Allocate Objects
Trees before Allocate Objects
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (return) i newobj
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..051) (return), preds={} succs={}
***** BB01
STMT00002 (IL ???... ???)
[000011] -AC--------- * ASG int
[000010] D------N---- +--* LCL_VAR int V10 tmp1
[000003] --C-G------- \--* CALL int Test2.DoTestImpl1
[000000] ------------ arg0 +--* LCL_VAR int V00 arg0
[000001] ------------ arg1 +--* LCL_VAR int V01 arg1
[000002] ------------ arg2 \--* LCL_VAR ubyte V02 arg2
***** BB01
STMT00003 (IL ???... ???)
[000015] -AC--------- * ASG int
[000014] D------N---- +--* LCL_VAR int V03 loc0
[000008] --C-G------- \--* CALL int Test2.DoTestImpl2
[000009] ------------ arg0 +--* CNS_INT(h) long 0xd1ffab1e method
[000005] ------------ arg1 +--* LCL_VAR int V00 arg0
[000006] ------------ arg2 +--* LCL_VAR int V01 arg1
[000007] ------------ arg3 \--* LCL_VAR ubyte V02 arg2
***** BB01
STMT00004 (IL ???...0x014)
[000019] IA---------- * ASG struct (init)
[000016] D------N---- +--* LCL_VAR struct V08 loc5
[000018] ------------ \--* CNS_INT int 0
***** BB01
STMT00006 (IL ???... ???)
[000029] -AC--------- * ASG int
[000028] D------N---- +--* LCL_VAR int V04 loc1
[000024] --C-G------- \--* CALL int Test2.DoTestImpl3
[000026] n----------- arg0 +--* OBJ(1) struct
[000025] ------------ | \--* ADDR byref
[000020] ------------ | \--* LCL_VAR struct V08 loc5
[000021] ------------ arg1 +--* LCL_VAR int V00 arg0
[000022] ------------ arg2 +--* LCL_VAR int V01 arg1
[000023] ------------ arg3 \--* LCL_VAR ubyte V02 arg2
***** BB01
STMT00007 (IL ???...0x031)
[000033] -A---------- * ASG ref
[000032] D------N---- +--* LCL_VAR ref V11 tmp2
[000031] ------------ \--* ALLOCOBJ ref
[000030] ------------ \--* CNS_INT(h) long 0xd1ffab1e method
***** BB01
STMT00010 (IL ???... ???)
[000044] -AC--------- * ASG int
[000043] D------N---- +--* LCL_VAR int V05 loc2
[000040] --C-G------- \--* CALL int Test2.DoTestImpl4
[000041] ------------ arg0 +--* CNS_INT(h) long 0xd1ffab1e method
[000036] ------------ arg1 +--* LCL_VAR ref V11 tmp2
[000037] ------------ arg2 +--* LCL_VAR int V00 arg0
[000038] ------------ arg3 +--* LCL_VAR int V01 arg1
[000039] ------------ arg4 \--* LCL_VAR ubyte V02 arg2
***** BB01
STMT00012 (IL ???... ???)
[000051] -AC--------- * ASG int
[000050] D------N---- +--* LCL_VAR int V06 loc3
[000048] --C-G------- \--* CALL int Test2.DoTestImpl5
[000045] ------------ arg0 +--* LCL_VAR int V00 arg0
[000046] ------------ arg1 +--* LCL_VAR int V01 arg1
[000047] ------------ arg2 \--* LCL_VAR ubyte V02 arg2
***** BB01
STMT00022 (IL ???... ???)
[000101] IA---------- * ASG struct (init)
[000098] D------N---- +--* LCL_VAR struct V12 tmp3
[000100] ------------ \--* CNS_INT int 0
***** BB01
STMT00035 (IL ???... ???)
[000138] -A---------- * ASG int
[000137] D------N---- +--* LCL_VAR int V14 tmp5
[000136] ------------ \--* CNS_INT int 0
***** BB01
STMT00027 (IL ???... ???)
[000114] -AC--------- * ASG int
[000113] D------N---- +--* LCL_VAR int V13 tmp4
[000140] ------------ \--* ADD int
[000052] ------------ +--* LCL_VAR int V00 arg0
[000053] ------------ \--* LCL_VAR int V01 arg1
***** BB01
STMT00029 (IL ???... ???)
[000120] -AC--------- * ASG int
[000119] D------N---- +--* LCL_VAR int V14 tmp5
[000145] ------------ \--* MUL int
[000115] ------------ +--* LCL_VAR int V13 tmp4
[000142] ------------ \--* CAST int <- int
[000054] ------------ \--* LCL_VAR ubyte V02 arg2
***** BB01
STMT00033 (IL ???... ???)
[000131] -AC--------- * ASG int
[000130] D------N---- +--* LCL_VAR int V15 tmp6
[000150] ------------ \--* MUL int
[000121] ------------ +--* LCL_VAR int V00 arg0
[000147] ------------ \--* CAST int <- int
[000122] ------------ \--* LCL_VAR ubyte V02 arg2
***** BB01
STMT00014 (IL ???... ???)
[000058] -AC--------- * ASG int
[000057] D------N---- +--* LCL_VAR int V07 loc4
[000156] ---X-------- \--* DIV int
[000132] ------------ +--* LCL_VAR int V15 tmp6
[000153] ------------ \--* RSH int
[000127] ------------ +--* LCL_VAR int V14 tmp5
[000152] ------------ \--* CNS_INT int 2
***** BB01
STMT00015 (IL ???...0x050)
[000069] ------------ * RETURN int
[000068] ------------ \--* ADD int
[000066] ------------ +--* ADD int
[000064] ------------ | +--* ADD int
[000062] ------------ | | +--* ADD int
[000060] ------------ | | | +--* ADD int
[000012] ------------ | | | | +--* LCL_VAR int V10 tmp1
[000059] ------------ | | | | \--* LCL_VAR int V03 loc0
[000061] ------------ | | | \--* LCL_VAR int V04 loc1
[000063] ------------ | | \--* LCL_VAR int V05 loc2
[000065] ------------ | \--* LCL_VAR int V06 loc3
[000067] ------------ \--* LCL_VAR int V07 loc4
-------------------------------------------------------------------------------------------------------------------
*** ObjectAllocationPhase: disabled, punting
*************** Exiting Allocate Objects
Trees after Allocate Objects
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (return) i newobj
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..051) (return), preds={} succs={}
***** BB01
STMT00002 (IL ???... ???)
[000011] -AC--------- * ASG int
[000010] D------N---- +--* LCL_VAR int V10 tmp1
[000003] --C-G------- \--* CALL int Test2.DoTestImpl1
[000000] ------------ arg0 +--* LCL_VAR int V00 arg0
[000001] ------------ arg1 +--* LCL_VAR int V01 arg1
[000002] ------------ arg2 \--* LCL_VAR ubyte V02 arg2
***** BB01
STMT00003 (IL ???... ???)
[000015] -AC--------- * ASG int
[000014] D------N---- +--* LCL_VAR int V03 loc0
[000008] --C-G------- \--* CALL int Test2.DoTestImpl2
[000009] ------------ arg0 +--* CNS_INT(h) long 0xd1ffab1e method
[000005] ------------ arg1 +--* LCL_VAR int V00 arg0
[000006] ------------ arg2 +--* LCL_VAR int V01 arg1
[000007] ------------ arg3 \--* LCL_VAR ubyte V02 arg2
***** BB01
STMT00004 (IL ???...0x014)
[000019] IA---------- * ASG struct (init)
[000016] D------N---- +--* LCL_VAR struct V08 loc5
[000018] ------------ \--* CNS_INT int 0
***** BB01
STMT00006 (IL ???... ???)
[000029] -AC--------- * ASG int
[000028] D------N---- +--* LCL_VAR int V04 loc1
[000024] --C-G------- \--* CALL int Test2.DoTestImpl3
[000026] n----------- arg0 +--* OBJ(1) struct
[000025] ------------ | \--* ADDR byref
[000020] ------------ | \--* LCL_VAR struct V08 loc5
[000021] ------------ arg1 +--* LCL_VAR int V00 arg0
[000022] ------------ arg2 +--* LCL_VAR int V01 arg1
[000023] ------------ arg3 \--* LCL_VAR ubyte V02 arg2
***** BB01
STMT00007 (IL ???...0x031)
[000033] -AC--------- * ASG ref
[000032] D------N---- +--* LCL_VAR ref V11 tmp2
[000031] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
[000030] ------------ arg0 \--* CNS_INT(h) long 0xd1ffab1e method
***** BB01
STMT00010 (IL ???... ???)
[000044] -AC--------- * ASG int
[000043] D------N---- +--* LCL_VAR int V05 loc2
[000040] --C-G------- \--* CALL int Test2.DoTestImpl4
[000041] ------------ arg0 +--* CNS_INT(h) long 0xd1ffab1e method
[000036] ------------ arg1 +--* LCL_VAR ref V11 tmp2
[000037] ------------ arg2 +--* LCL_VAR int V00 arg0
[000038] ------------ arg3 +--* LCL_VAR int V01 arg1
[000039] ------------ arg4 \--* LCL_VAR ubyte V02 arg2
***** BB01
STMT00012 (IL ???... ???)
[000051] -AC--------- * ASG int
[000050] D------N---- +--* LCL_VAR int V06 loc3
[000048] --C-G------- \--* CALL int Test2.DoTestImpl5
[000045] ------------ arg0 +--* LCL_VAR int V00 arg0
[000046] ------------ arg1 +--* LCL_VAR int V01 arg1
[000047] ------------ arg2 \--* LCL_VAR ubyte V02 arg2
***** BB01
STMT00022 (IL ???... ???)
[000101] IA---------- * ASG struct (init)
[000098] D------N---- +--* LCL_VAR struct V12 tmp3
[000100] ------------ \--* CNS_INT int 0
***** BB01
STMT00035 (IL ???... ???)
[000138] -A---------- * ASG int
[000137] D------N---- +--* LCL_VAR int V14 tmp5
[000136] ------------ \--* CNS_INT int 0
***** BB01
STMT00027 (IL ???... ???)
[000114] -AC--------- * ASG int
[000113] D------N---- +--* LCL_VAR int V13 tmp4
[000140] ------------ \--* ADD int
[000052] ------------ +--* LCL_VAR int V00 arg0
[000053] ------------ \--* LCL_VAR int V01 arg1
***** BB01
STMT00029 (IL ???... ???)
[000120] -AC--------- * ASG int
[000119] D------N---- +--* LCL_VAR int V14 tmp5
[000145] ------------ \--* MUL int
[000115] ------------ +--* LCL_VAR int V13 tmp4
[000142] ------------ \--* CAST int <- int
[000054] ------------ \--* LCL_VAR ubyte V02 arg2
***** BB01
STMT00033 (IL ???... ???)
[000131] -AC--------- * ASG int
[000130] D------N---- +--* LCL_VAR int V15 tmp6
[000150] ------------ \--* MUL int
[000121] ------------ +--* LCL_VAR int V00 arg0
[000147] ------------ \--* CAST int <- int
[000122] ------------ \--* LCL_VAR ubyte V02 arg2
***** BB01
STMT00014 (IL ???... ???)
[000058] -AC--------- * ASG int
[000057] D------N---- +--* LCL_VAR int V07 loc4
[000156] ---X-------- \--* DIV int
[000132] ------------ +--* LCL_VAR int V15 tmp6
[000153] ------------ \--* RSH int
[000127] ------------ +--* LCL_VAR int V14 tmp5
[000152] ------------ \--* CNS_INT int 2
***** BB01
STMT00015 (IL ???...0x050)
[000069] ------------ * RETURN int
[000068] ------------ \--* ADD int
[000066] ------------ +--* ADD int
[000064] ------------ | +--* ADD int
[000062] ------------ | | +--* ADD int
[000060] ------------ | | | +--* ADD int
[000012] ------------ | | | | +--* LCL_VAR int V10 tmp1
[000059] ------------ | | | | \--* LCL_VAR int V03 loc0
[000061] ------------ | | | \--* LCL_VAR int V04 loc1
[000063] ------------ | | \--* LCL_VAR int V05 loc2
[000065] ------------ | \--* LCL_VAR int V06 loc3
[000067] ------------ \--* LCL_VAR int V07 loc4
-------------------------------------------------------------------------------------------------------------------
*************** After fgAddInternal()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (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 fgResetImplicitByRefRefCount()
*************** In fgPromoteStructs()
lvaTable before fgPromoteStructs
; Initial local variable assignments
;
; V00 arg0 int
; V01 arg1 int
; V02 arg2 ubyte
; V03 loc0 int
; V04 loc1 int
; V05 loc2 int
; V06 loc3 int
; V07 loc4 int
; V08 loc5 struct ( 8) ld-addr-op
; V09 OutArgs lclBlk (na) "OutgoingArgSpace"
; V10 tmp1 int "impAppendStmt"
; V11 tmp2 ref class-hnd exact "NewObj constructor temp"
; V12 tmp3 struct ( 8) ld-addr-op "Inline ldloca(s) first use temp"
; V13 tmp4 int "impAppendStmt"
; V14 tmp5 int "Inline stloc first use temp"
; V15 tmp6 int "impAppendStmt"
; V16 tmp7 int "Inlining Arg"
; V17 tmp8 int "Inlining Arg"
; V18 tmp9 int "Inlining Arg"
lvaTable after fgPromoteStructs
; Initial local variable assignments
;
; V00 arg0 int
; V01 arg1 int
; V02 arg2 ubyte
; V03 loc0 int
; V04 loc1 int
; V05 loc2 int
; V06 loc3 int
; V07 loc4 int
; V08 loc5 struct ( 8) ld-addr-op
; V09 OutArgs lclBlk (na) "OutgoingArgSpace"
; V10 tmp1 int "impAppendStmt"
; V11 tmp2 ref class-hnd exact "NewObj constructor temp"
; V12 tmp3 struct ( 8) ld-addr-op "Inline ldloca(s) first use temp"
; V13 tmp4 int "impAppendStmt"
; V14 tmp5 int "Inline stloc first use temp"
; V15 tmp6 int "impAppendStmt"
; V16 tmp7 int "Inlining Arg"
; V17 tmp8 int "Inlining Arg"
; V18 tmp9 int "Inlining Arg"
*************** In fgMarkAddressExposedLocals()
LocalAddressVisitor visiting statement:
STMT00002 (IL ???... ???)
[000011] -AC--------- * ASG int
[000010] D------N---- +--* LCL_VAR int V10 tmp1
[000003] --C-G------- \--* CALL int Test2.DoTestImpl1
[000000] ------------ arg0 +--* LCL_VAR int V00 arg0
[000001] ------------ arg1 +--* LCL_VAR int V01 arg1
[000002] ------------ arg2 \--* LCL_VAR ubyte V02 arg2
LocalAddressVisitor visiting statement:
STMT00003 (IL ???... ???)
[000015] -AC--------- * ASG int
[000014] D------N---- +--* LCL_VAR int V03 loc0
[000008] --C-G------- \--* CALL int Test2.DoTestImpl2
[000009] ------------ arg0 +--* CNS_INT(h) long 0xd1ffab1e method
[000005] ------------ arg1 +--* LCL_VAR int V00 arg0
[000006] ------------ arg2 +--* LCL_VAR int V01 arg1
[000007] ------------ arg3 \--* LCL_VAR ubyte V02 arg2
LocalAddressVisitor visiting statement:
STMT00004 (IL ???...0x014)
[000019] IA---------- * ASG struct (init)
[000016] D------N---- +--* LCL_VAR struct V08 loc5
[000018] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
STMT00006 (IL ???... ???)
[000029] -AC--------- * ASG int
[000028] D------N---- +--* LCL_VAR int V04 loc1
[000024] --C-G------- \--* CALL int Test2.DoTestImpl3
[000026] n----------- arg0 +--* OBJ(1) struct
[000025] ------------ | \--* ADDR byref
[000020] ------------ | \--* LCL_VAR struct V08 loc5
[000021] ------------ arg1 +--* LCL_VAR int V00 arg0
[000022] ------------ arg2 +--* LCL_VAR int V01 arg1
[000023] ------------ arg3 \--* LCL_VAR ubyte V02 arg2
LocalAddressVisitor visiting statement:
STMT00007 (IL ???...0x031)
[000033] -AC--------- * ASG ref
[000032] D------N---- +--* LCL_VAR ref V11 tmp2
[000031] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
[000030] ------------ arg0 \--* CNS_INT(h) long 0xd1ffab1e method
LocalAddressVisitor visiting statement:
STMT00010 (IL ???... ???)
[000044] -AC--------- * ASG int
[000043] D------N---- +--* LCL_VAR int V05 loc2
[000040] --C-G------- \--* CALL int Test2.DoTestImpl4
[000041] ------------ arg0 +--* CNS_INT(h) long 0xd1ffab1e method
[000036] ------------ arg1 +--* LCL_VAR ref V11 tmp2
[000037] ------------ arg2 +--* LCL_VAR int V00 arg0
[000038] ------------ arg3 +--* LCL_VAR int V01 arg1
[000039] ------------ arg4 \--* LCL_VAR ubyte V02 arg2
LocalAddressVisitor visiting statement:
STMT00012 (IL ???... ???)
[000051] -AC--------- * ASG int
[000050] D------N---- +--* LCL_VAR int V06 loc3
[000048] --C-G------- \--* CALL int Test2.DoTestImpl5
[000045] ------------ arg0 +--* LCL_VAR int V00 arg0
[000046] ------------ arg1 +--* LCL_VAR int V01 arg1
[000047] ------------ arg2 \--* LCL_VAR ubyte V02 arg2
LocalAddressVisitor visiting statement:
STMT00022 (IL ???... ???)
[000101] IA---------- * ASG struct (init)
[000098] D------N---- +--* LCL_VAR struct V12 tmp3
[000100] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
STMT00035 (IL ???... ???)
[000138] -A---------- * ASG int
[000137] D------N---- +--* LCL_VAR int V14 tmp5
[000136] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
STMT00027 (IL ???... ???)
[000114] -AC--------- * ASG int
[000113] D------N---- +--* LCL_VAR int V13 tmp4
[000140] ------------ \--* ADD int
[000052] ------------ +--* LCL_VAR int V00 arg0
[000053] ------------ \--* LCL_VAR int V01 arg1
LocalAddressVisitor visiting statement:
STMT00029 (IL ???... ???)
[000120] -AC--------- * ASG int
[000119] D------N---- +--* LCL_VAR int V14 tmp5
[000145] ------------ \--* MUL int
[000115] ------------ +--* LCL_VAR int V13 tmp4
[000142] ------------ \--* CAST int <- int
[000054] ------------ \--* LCL_VAR ubyte V02 arg2
LocalAddressVisitor visiting statement:
STMT00033 (IL ???... ???)
[000131] -AC--------- * ASG int
[000130] D------N---- +--* LCL_VAR int V15 tmp6
[000150] ------------ \--* MUL int
[000121] ------------ +--* LCL_VAR int V00 arg0
[000147] ------------ \--* CAST int <- int
[000122] ------------ \--* LCL_VAR ubyte V02 arg2
LocalAddressVisitor visiting statement:
STMT00014 (IL ???... ???)
[000058] -AC--------- * ASG int
[000057] D------N---- +--* LCL_VAR int V07 loc4
[000156] ---X-------- \--* DIV int
[000132] ------------ +--* LCL_VAR int V15 tmp6
[000153] ------------ \--* RSH int
[000127] ------------ +--* LCL_VAR int V14 tmp5
[000152] ------------ \--* CNS_INT int 2
LocalAddressVisitor visiting statement:
STMT00015 (IL ???...0x050)
[000069] ------------ * RETURN int
[000068] ------------ \--* ADD int
[000066] ------------ +--* ADD int
[000064] ------------ | +--* ADD int
[000062] ------------ | | +--* ADD int
[000060] ------------ | | | +--* ADD int
[000012] ------------ | | | | +--* LCL_VAR int V10 tmp1
[000059] ------------ | | | | \--* LCL_VAR int V03 loc0
[000061] ------------ | | | \--* LCL_VAR int V04 loc1
[000063] ------------ | | \--* LCL_VAR int V05 loc2
[000065] ------------ | \--* LCL_VAR int V06 loc3
[000067] ------------ \--* LCL_VAR int V07 loc4
*************** In fgRetypeImplicitByRefArgs()
*************** In fgMorphBlocks()
Morphing BB01 of 'Test2:DoTest(int,int,ubyte):int'
fgMorphTree BB01, STMT00002 (before)
[000011] -AC--------- * ASG int
[000010] D------N---- +--* LCL_VAR int V10 tmp1
[000003] --C-G------- \--* CALL int Test2.DoTestImpl1
[000000] ------------ arg0 +--* LCL_VAR int V00 arg0
[000001] ------------ arg1 +--* LCL_VAR int V01 arg1
[000002] ------------ arg2 \--* LCL_VAR ubyte V02 arg2
Initializing arg info for 3.CALL:
ArgTable for 3.CALL after fgInitArgInfo:
fgArgTabEntry[arg 0 0.LCL_VAR int, 1 reg: rcx, align=1]
fgArgTabEntry[arg 1 1.LCL_VAR int, 1 reg: rdx, align=1]
fgArgTabEntry[arg 2 2.LCL_VAR ubyte, 1 reg: r8, align=1]
Morphing args for 3.CALL:
argSlots=3, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('r8'):
[000158] -----+------ * CAST int <- ubyte <- int
[000002] -----+------ \--* LCL_VAR int V02 arg2
Replaced with placeholder node:
[000159] ----------L- * ARGPLACE int
Deferred argument ('rcx'):
[000000] -----+------ * LCL_VAR int V00 arg0
Replaced with placeholder node:
[000160] ----------L- * ARGPLACE int
Deferred argument ('rdx'):
[000001] -----+------ * LCL_VAR int V01 arg1
Replaced with placeholder node:
[000161] ----------L- * ARGPLACE int
Shuffled argument table: r8 rcx rdx
ArgTable for 3.CALL after fgMorphArgs:
fgArgTabEntry[arg 2 158.CAST ubyte, 1 reg: r8, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 0 0.LCL_VAR int, 1 reg: rcx, align=1, lateArgInx=1, processed]
fgArgTabEntry[arg 1 1.LCL_VAR int, 1 reg: rdx, align=1, lateArgInx=2, processed]
fgMorphTree BB01, STMT00002 (after)
[000011] -ACXG+------ * ASG int
[000010] D----+-N---- +--* LCL_VAR int V10 tmp1
[000003] --CXG+------ \--* CALL int Test2.DoTestImpl1
[000158] -----+------ arg2 in r8 +--* CAST int <- ubyte <- int
[000002] -----+------ | \--* LCL_VAR int V02 arg2
[000000] -----+------ arg0 in rcx +--* LCL_VAR int V00 arg0
[000001] -----+------ arg1 in rdx \--* LCL_VAR int V01 arg1
fgMorphTree BB01, STMT00003 (before)
[000015] -AC--------- * ASG int
[000014] D------N---- +--* LCL_VAR int V03 loc0
[000008] --C-G------- \--* CALL int Test2.DoTestImpl2
[000009] ------------ arg0 +--* CNS_INT(h) long 0xd1ffab1e method
[000005] ------------ arg1 +--* LCL_VAR int V00 arg0
[000006] ------------ arg2 +--* LCL_VAR int V01 arg1
[000007] ------------ arg3 \--* LCL_VAR ubyte V02 arg2
Initializing arg info for 8.CALL:
ArgTable for 8.CALL after fgInitArgInfo:
fgArgTabEntry[arg 0 9.CNS_INT long, 1 reg: rcx, align=1]
fgArgTabEntry[arg 1 5.LCL_VAR int, 1 reg: rdx, align=1]
fgArgTabEntry[arg 2 6.LCL_VAR int, 1 reg: r8, align=1]
fgArgTabEntry[arg 3 7.LCL_VAR ubyte, 1 reg: r9, align=1]
Morphing args for 8.CALL:
argSlots=4, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('r9'):
[000162] -----+------ * CAST int <- ubyte <- int
[000007] -----+------ \--* LCL_VAR int V02 arg2
Replaced with placeholder node:
[000163] ----------L- * ARGPLACE int
Deferred argument ('rdx'):
[000005] -----+------ * LCL_VAR int V00 arg0
Replaced with placeholder node:
[000164] ----------L- * ARGPLACE int
Deferred argument ('r8'):
[000006] -----+------ * LCL_VAR int V01 arg1
Replaced with placeholder node:
[000165] ----------L- * ARGPLACE int
Deferred argument ('rcx'):
[000009] -----+------ * CNS_INT(h) long 0xd1ffab1e method
Replaced with placeholder node:
[000166] ----------L- * ARGPLACE long
Shuffled argument table: r9 rdx r8 rcx
ArgTable for 8.CALL after fgMorphArgs:
fgArgTabEntry[arg 3 162.CAST ubyte, 1 reg: r9, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 1 5.LCL_VAR int, 1 reg: rdx, align=1, lateArgInx=1, processed]
fgArgTabEntry[arg 2 6.LCL_VAR int, 1 reg: r8, align=1, lateArgInx=2, processed]
fgArgTabEntry[arg 0 9.CNS_INT long, 1 reg: rcx, align=1, lateArgInx=3, processed]
fgMorphTree BB01, STMT00003 (after)
[000015] -ACXG+------ * ASG int
[000014] D----+-N---- +--* LCL_VAR int V03 loc0
[000008] --CXG+------ \--* CALL int Test2.DoTestImpl2
[000162] -----+------ arg3 in r9 +--* CAST int <- ubyte <- int
[000007] -----+------ | \--* LCL_VAR int V02 arg2
[000005] -----+------ arg1 in rdx +--* LCL_VAR int V00 arg0
[000006] -----+------ arg2 in r8 +--* LCL_VAR int V01 arg1
[000009] -----+------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method
fgMorphTree BB01, STMT00004 (before)
[000019] IA---------- * ASG struct (init)
[000016] D------N---- +--* LCL_VAR struct V08 loc5
[000018] ------------ \--* CNS_INT int 0
fgMorphInitBlock:
Local V08 should not be enregistered because: was accessed as a local field
fgMorphOneAsgBlock (after):
[000019] -A---------- * ASG byte
[000168] n------N---- +--* IND byte
[000167] ------------ | \--* ADDR byref
[000016] D----+-N---- | \--* LCL_VAR struct V08 loc5
[000018] -----+------ \--* CNS_INT int 0
using oneAsgTree.
fgMorphTree BB01, STMT00004 (after)
[000019] -A---+------ * ASG byte
[000168] n------N---- +--* IND byte
[000167] ------------ | \--* ADDR byref
[000016] D----+-N---- | \--* LCL_VAR struct V08 loc5
[000018] -----+------ \--* CNS_INT int 0
fgMorphTree BB01, STMT00006 (before)
[000029] -AC--------- * ASG int
[000028] D------N---- +--* LCL_VAR int V04 loc1
[000024] --C-G------- \--* CALL int Test2.DoTestImpl3
[000026] n----------- arg0 +--* OBJ(1) struct
[000025] ------------ | \--* ADDR byref
[000020] ------------ | \--* LCL_VAR struct V08 loc5
[000021] ------------ arg1 +--* LCL_VAR int V00 arg0
[000022] ------------ arg2 +--* LCL_VAR int V01 arg1
[000023] ------------ arg3 \--* LCL_VAR ubyte V02 arg2
Initializing arg info for 24.CALL:
ArgTable for 24.CALL after fgInitArgInfo:
fgArgTabEntry[arg 0 26.OBJ byte, 1 reg: rcx, align=1, isStruct]
fgArgTabEntry[arg 1 21.LCL_VAR int, 1 reg: rdx, align=1]
fgArgTabEntry[arg 2 22.LCL_VAR int, 1 reg: r8, align=1]
fgArgTabEntry[arg 3 23.LCL_VAR ubyte, 1 reg: r9, align=1]
Morphing args for 24.CALL:
argSlots=4, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('r9'):
[000169] -----+------ * CAST int <- ubyte <- int
[000023] -----+------ \--* LCL_VAR int V02 arg2
Replaced with placeholder node:
[000170] ----------L- * ARGPLACE int
Deferred argument ('rcx'):
[000020] -----+------ * LCL_FLD byte V08 loc5 [+0]
Replaced with placeholder node:
[000171] ----------L- * ARGPLACE byte
Deferred argument ('rdx'):
[000021] -----+------ * LCL_VAR int V00 arg0
Replaced with placeholder node:
[000172] ----------L- * ARGPLACE int
Deferred argument ('r8'):
[000022] -----+------ * LCL_VAR int V01 arg1
Replaced with placeholder node:
[000173] ----------L- * ARGPLACE int
Shuffled argument table: r9 rcx rdx r8
ArgTable for 24.CALL after fgMorphArgs:
fgArgTabEntry[arg 3 169.CAST ubyte, 1 reg: r9, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 0 20.LCL_FLD byte, 1 reg: rcx, align=1, lateArgInx=1, processed, isStruct]
fgArgTabEntry[arg 1 21.LCL_VAR int, 1 reg: rdx, align=1, lateArgInx=2, processed]
fgArgTabEntry[arg 2 22.LCL_VAR int, 1 reg: r8, align=1, lateArgInx=3, processed]
fgMorphTree BB01, STMT00006 (after)
[000029] -ACXG+------ * ASG int
[000028] D----+-N---- +--* LCL_VAR int V04 loc1
[000024] --CXG+------ \--* CALL int Test2.DoTestImpl3
[000169] -----+------ arg3 in r9 +--* CAST int <- ubyte <- int
[000023] -----+------ | \--* LCL_VAR int V02 arg2
[000020] -----+------ arg0 in rcx +--* LCL_FLD byte V08 loc5 [+0]
[000021] -----+------ arg1 in rdx +--* LCL_VAR int V00 arg0
[000022] -----+------ arg2 in r8 \--* LCL_VAR int V01 arg1
fgMorphTree BB01, STMT00007 (before)
[000033] -AC--------- * ASG ref
[000032] D------N---- +--* LCL_VAR ref V11 tmp2
[000031] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
[000030] ------------ arg0 \--* CNS_INT(h) long 0xd1ffab1e method
Initializing arg info for 31.CALL:
ArgTable for 31.CALL after fgInitArgInfo:
fgArgTabEntry[arg 0 30.CNS_INT long, 1 reg: rcx, align=1]
Morphing args for 31.CALL:
argSlots=1, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('rcx'):
[000030] -----+------ * CNS_INT(h) long 0xd1ffab1e method
Replaced with placeholder node:
[000174] ----------L- * ARGPLACE long
Shuffled argument table: rcx
ArgTable for 31.CALL after fgMorphArgs:
fgArgTabEntry[arg 0 30.CNS_INT long, 1 reg: rcx, align=1, lateArgInx=0, processed]
fgMorphTree BB01, STMT00007 (after)
[000033] -AC--+------ * ASG ref
[000032] D----+-N---- +--* LCL_VAR ref V11 tmp2
[000031] --C--+------ \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
[000030] -----+------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method
fgMorphTree BB01, STMT00010 (before)
[000044] -AC--------- * ASG int
[000043] D------N---- +--* LCL_VAR int V05 loc2
[000040] --C-G------- \--* CALL int Test2.DoTestImpl4
[000041] ------------ arg0 +--* CNS_INT(h) long 0xd1ffab1e method
[000036] ------------ arg1 +--* LCL_VAR ref V11 tmp2
[000037] ------------ arg2 +--* LCL_VAR int V00 arg0
[000038] ------------ arg3 +--* LCL_VAR int V01 arg1
[000039] ------------ arg4 \--* LCL_VAR ubyte V02 arg2
Initializing arg info for 40.CALL:
ArgTable for 40.CALL after fgInitArgInfo:
fgArgTabEntry[arg 0 41.CNS_INT long, 1 reg: rcx, align=1]
fgArgTabEntry[arg 1 36.LCL_VAR ref, 1 reg: rdx, align=1]
fgArgTabEntry[arg 2 37.LCL_VAR int, 1 reg: r8, align=1]
fgArgTabEntry[arg 3 38.LCL_VAR int, 1 reg: r9, align=1]
fgArgTabEntry[arg 4 39.LCL_VAR ubyte, numSlots=1, slotNum=4, align=1]
Morphing args for 40.CALL:
argSlots=5, preallocatedArgCount=5, nextSlotNum=5, outgoingArgSpaceSize=40
Sorting the arguments:
Deferred argument ('rdx'):
[000036] -----+------ * LCL_VAR ref V11 tmp2
Replaced with placeholder node:
[000176] ----------L- * ARGPLACE ref
Deferred argument ('r8'):
[000037] -----+------ * LCL_VAR int V00 arg0
Replaced with placeholder node:
[000177] ----------L- * ARGPLACE int
Deferred argument ('r9'):
[000038] -----+------ * LCL_VAR int V01 arg1
Replaced with placeholder node:
[000178] ----------L- * ARGPLACE int
Deferred argument ('rcx'):
[000041] -----+------ * CNS_INT(h) long 0xd1ffab1e method
Replaced with placeholder node:
[000179] ----------L- * ARGPLACE long
Shuffled argument table: rdx r8 r9 rcx
ArgTable for 40.CALL after fgMorphArgs:
fgArgTabEntry[arg 4 175.CAST ubyte, numSlots=1, slotNum=4, align=1, processed]
fgArgTabEntry[arg 1 36.LCL_VAR ref, 1 reg: rdx, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 2 37.LCL_VAR int, 1 reg: r8, align=1, lateArgInx=1, processed]
fgArgTabEntry[arg 3 38.LCL_VAR int, 1 reg: r9, align=1, lateArgInx=2, processed]
fgArgTabEntry[arg 0 41.CNS_INT long, 1 reg: rcx, align=1, lateArgInx=3, processed]
fgMorphTree BB01, STMT00010 (after)
[000044] -ACXG+------ * ASG int
[000043] D----+-N---- +--* LCL_VAR int V05 loc2
[000040] --CXG+------ \--* CALL int Test2.DoTestImpl4
[000175] -----+------ arg4 out+20 +--* CAST int <- ubyte <- int
[000039] -----+------ | \--* LCL_VAR int V02 arg2
[000036] -----+------ arg1 in rdx +--* LCL_VAR ref V11 tmp2
[000037] -----+------ arg2 in r8 +--* LCL_VAR int V00 arg0
[000038] -----+------ arg3 in r9 +--* LCL_VAR int V01 arg1
[000041] -----+------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method
fgMorphTree BB01, STMT00012 (before)
[000051] -AC--------- * ASG int
[000050] D------N---- +--* LCL_VAR int V06 loc3
[000048] --C-G------- \--* CALL int Test2.DoTestImpl5
[000045] ------------ arg0 +--* LCL_VAR int V00 arg0
[000046] ------------ arg1 +--* LCL_VAR int V01 arg1
[000047] ------------ arg2 \--* LCL_VAR ubyte V02 arg2
Initializing arg info for 48.CALL:
ArgTable for 48.CALL after fgInitArgInfo:
fgArgTabEntry[arg 0 45.LCL_VAR int, 1 reg: rcx, align=1]
fgArgTabEntry[arg 1 46.LCL_VAR int, 1 reg: rdx, align=1]
fgArgTabEntry[arg 2 47.LCL_VAR ubyte, 1 reg: r8, align=1]
Morphing args for 48.CALL:
argSlots=3, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('r8'):
[000180] -----+------ * CAST int <- ubyte <- int
[000047] -----+------ \--* LCL_VAR int V02 arg2
Replaced with placeholder node:
[000181] ----------L- * ARGPLACE int
Deferred argument ('rcx'):
[000045] -----+------ * LCL_VAR int V00 arg0
Replaced with placeholder node:
[000182] ----------L- * ARGPLACE int
Deferred argument ('rdx'):
[000046] -----+------ * LCL_VAR int V01 arg1
Replaced with placeholder node:
[000183] ----------L- * ARGPLACE int
Shuffled argument table: r8 rcx rdx
ArgTable for 48.CALL after fgMorphArgs:
fgArgTabEntry[arg 2 180.CAST ubyte, 1 reg: r8, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 0 45.LCL_VAR int, 1 reg: rcx, align=1, lateArgInx=1, processed]
fgArgTabEntry[arg 1 46.LCL_VAR int, 1 reg: rdx, align=1, lateArgInx=2, processed]
fgMorphTree BB01, STMT00012 (after)
[000051] -ACXG+------ * ASG int
[000050] D----+-N---- +--* LCL_VAR int V06 loc3
[000048] --CXG+------ \--* CALL int Test2.DoTestImpl5
[000180] -----+------ arg2 in r8 +--* CAST int <- ubyte <- int
[000047] -----+------ | \--* LCL_VAR int V02 arg2
[000045] -----+------ arg0 in rcx +--* LCL_VAR int V00 arg0
[000046] -----+------ arg1 in rdx \--* LCL_VAR int V01 arg1
fgMorphTree BB01, STMT00022 (before)
[000101] IA---------- * ASG struct (init)
[000098] D------N---- +--* LCL_VAR struct V12 tmp3
[000100] ------------ \--* CNS_INT int 0
fgMorphInitBlock:
Local V12 should not be enregistered because: was accessed as a local field
fgMorphOneAsgBlock (after):
[000101] -A---------- * ASG byte
[000185] n------N---- +--* IND byte
[000184] ------------ | \--* ADDR byref
[000098] D----+-N---- | \--* LCL_VAR struct V12 tmp3
[000100] -----+------ \--* CNS_INT int 0
using oneAsgTree.
fgMorphTree BB01, STMT00022 (after)
[000101] -A---+------ * ASG byte
[000185] n------N---- +--* IND byte
[000184] ------------ | \--* ADDR byref
[000098] D----+-N---- | \--* LCL_VAR struct V12 tmp3
[000100] -----+------ \--* CNS_INT int 0
fgMorphTree BB01, STMT00035 (before)
[000138] -A---------- * ASG int
[000137] D------N---- +--* LCL_VAR int V14 tmp5
[000136] ------------ \--* CNS_INT int 0
GenTreeNode creates assertion:
[000138] -A---------- * ASG int
In BB01 New Local Constant Assertion: V14 == 0 index=#01, mask=0000000000000001
fgMorphTree BB01, STMT00027 (before)
[000114] -AC--------- * ASG int
[000113] D------N---- +--* LCL_VAR int V13 tmp4
[000140] ------------ \--* ADD int
[000052] ------------ +--* LCL_VAR int V00 arg0
[000053] ------------ \--* LCL_VAR int V01 arg1
fgMorphTree BB01, STMT00029 (before)
[000120] -AC--------- * ASG int
[000119] D------N---- +--* LCL_VAR int V14 tmp5
[000145] ------------ \--* MUL int
[000115] ------------ +--* LCL_VAR int V13 tmp4
[000142] ------------ \--* CAST int <- int
[000054] ------------ \--* LCL_VAR ubyte V02 arg2
The assignment [000120] using V14 removes: Constant Assertion: V14 == 0
fgMorphTree BB01, STMT00029 (after)
[000120] -A---+------ * ASG int
[000119] D----+-N---- +--* LCL_VAR int V14 tmp5
[000145] -----+------ \--* MUL int
[000115] -----+------ +--* LCL_VAR int V13 tmp4
[000186] -----+------ \--* CAST int <- ubyte <- int
[000054] -----+------ \--* LCL_VAR int V02 arg2
fgMorphTree BB01, STMT00033 (before)
[000131] -AC--------- * ASG int
[000130] D------N---- +--* LCL_VAR int V15 tmp6
[000150] ------------ \--* MUL int
[000121] ------------ +--* LCL_VAR int V00 arg0
[000147] ------------ \--* CAST int <- int
[000122] ------------ \--* LCL_VAR ubyte V02 arg2
fgMorphTree BB01, STMT00033 (after)
[000131] -A---+------ * ASG int
[000130] D----+-N---- +--* LCL_VAR int V15 tmp6
[000150] -----+------ \--* MUL int
[000121] -----+------ +--* LCL_VAR int V00 arg0
[000187] -----+------ \--* CAST int <- ubyte <- int
[000122] -----+------ \--* LCL_VAR int V02 arg2
fgMorphTree BB01, STMT00014 (before)
[000058] -AC--------- * ASG int
[000057] D------N---- +--* LCL_VAR int V07 loc4
[000156] ---X-------- \--* DIV int
[000132] ------------ +--* LCL_VAR int V15 tmp6
[000153] ------------ \--* RSH int
[000127] ------------ +--* LCL_VAR int V14 tmp5
[000152] ------------ \--* CNS_INT int 2
fgMorphTree BB01, STMT00015 (before)
[000069] ------------ * RETURN int
[000068] ------------ \--* ADD int
[000066] ------------ +--* ADD int
[000064] ------------ | +--* ADD int
[000062] ------------ | | +--* ADD int
[000060] ------------ | | | +--* ADD int
[000012] ------------ | | | | +--* LCL_VAR int V10 tmp1
[000059] ------------ | | | | \--* LCL_VAR int V03 loc0
[000061] ------------ | | | \--* LCL_VAR int V04 loc1
[000063] ------------ | | \--* LCL_VAR int V05 loc2
[000065] ------------ | \--* LCL_VAR int V06 loc3
[000067] ------------ \--* LCL_VAR int V07 loc4
Renumbering the basic blocks for fgComputePred
*************** Before renumbering the basic blocks
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (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 lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (return) i gcsafe newobj
-----------------------------------------------------------------------------------------------------------------------------------------
*************** After fgComputePreds()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (return) i label target gcsafe newobj
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In fgComputeBlockAndEdgeWeights()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (return) i label target gcsafe newobj
-----------------------------------------------------------------------------------------------------------------------------------------
-- no profile data, so using default called count
fgComputeEdgeWeights() was able to compute exact edge weights for all of the 0 edges, using 1 passes.
*************** In fgCreateFunclets()
After fgCreateFunclets()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (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 lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (return) i label target gcsafe newobj
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In fgUpdateFlowGraph()
Before updating the flow graph:
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (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 lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (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 lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (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 optOptimizeLoops()
*************** In fgDebugCheckBBlist
*************** In optCloneLoops()
*************** In lvaMarkLocalVars()
*** lvaComputeRefCounts ***
*** lvaComputeRefCounts -- explicit counts ***
*** marking local variables in block BB01 (weight=1 )
STMT00002 (IL ???... ???)
[000011] -ACXG+------ * ASG int
[000010] D----+-N---- +--* LCL_VAR int V10 tmp1
[000003] --CXG+------ \--* CALL int Test2.DoTestImpl1
[000158] -----+------ arg2 in r8 +--* CAST int <- ubyte <- int
[000002] -----+------ | \--* LCL_VAR int V02 arg2
[000000] -----+------ arg0 in rcx +--* LCL_VAR int V00 arg0
[000001] -----+------ arg1 in rdx \--* LCL_VAR int V01 arg1
New refCnts for V10: refCnt = 1, refCntWtd = 2
New refCnts for V02: refCnt = 1, refCntWtd = 1
New refCnts for V00: refCnt = 1, refCntWtd = 1
New refCnts for V01: refCnt = 1, refCntWtd = 1
STMT00003 (IL ???... ???)
[000015] -ACXG+------ * ASG int
[000014] D----+-N---- +--* LCL_VAR int V03 loc0
[000008] --CXG+------ \--* CALL int Test2.DoTestImpl2
[000162] -----+------ arg3 in r9 +--* CAST int <- ubyte <- int
[000007] -----+------ | \--* LCL_VAR int V02 arg2
[000005] -----+------ arg1 in rdx +--* LCL_VAR int V00 arg0
[000006] -----+------ arg2 in r8 +--* LCL_VAR int V01 arg1
[000009] -----+------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method
New refCnts for V03: refCnt = 1, refCntWtd = 1
New refCnts for V02: refCnt = 2, refCntWtd = 2
New refCnts for V00: refCnt = 2, refCntWtd = 2
New refCnts for V01: refCnt = 2, refCntWtd = 2
STMT00004 (IL ???...0x014)
[000019] -A---+------ * ASG byte
[000168] n------N---- +--* IND byte
[000167] ------------ | \--* ADDR byref
[000016] D----+-N---- | \--* LCL_VAR struct V08 loc5
[000018] -----+------ \--* CNS_INT int 0
New refCnts for V08: refCnt = 1, refCntWtd = 1
STMT00006 (IL ???... ???)
[000029] -ACXG+------ * ASG int
[000028] D----+-N---- +--* LCL_VAR int V04 loc1
[000024] --CXG+------ \--* CALL int Test2.DoTestImpl3
[000169] -----+------ arg3 in r9 +--* CAST int <- ubyte <- int
[000023] -----+------ | \--* LCL_VAR int V02 arg2
[000020] -----+------ arg0 in rcx +--* LCL_FLD byte V08 loc5 [+0]
[000021] -----+------ arg1 in rdx +--* LCL_VAR int V00 arg0
[000022] -----+------ arg2 in r8 \--* LCL_VAR int V01 arg1
New refCnts for V04: refCnt = 1, refCntWtd = 1
New refCnts for V02: refCnt = 3, refCntWtd = 3
New refCnts for V08: refCnt = 2, refCntWtd = 2
New refCnts for V00: refCnt = 3, refCntWtd = 3
New refCnts for V01: refCnt = 3, refCntWtd = 3
STMT00007 (IL ???...0x031)
[000033] -AC--+------ * ASG ref
[000032] D----+-N---- +--* LCL_VAR ref V11 tmp2
[000031] --C--+------ \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
[000030] -----+------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method
New refCnts for V11: refCnt = 1, refCntWtd = 2
STMT00010 (IL ???... ???)
[000044] -ACXG+------ * ASG int
[000043] D----+-N---- +--* LCL_VAR int V05 loc2
[000040] --CXG+------ \--* CALL int Test2.DoTestImpl4
[000175] -----+------ arg4 out+20 +--* CAST int <- ubyte <- int
[000039] -----+------ | \--* LCL_VAR int V02 arg2
[000036] -----+------ arg1 in rdx +--* LCL_VAR ref V11 tmp2
[000037] -----+------ arg2 in r8 +--* LCL_VAR int V00 arg0
[000038] -----+------ arg3 in r9 +--* LCL_VAR int V01 arg1
[000041] -----+------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method
New refCnts for V05: refCnt = 1, refCntWtd = 1
New refCnts for V02: refCnt = 4, refCntWtd = 4
New refCnts for V11: refCnt = 2, refCntWtd = 4
New refCnts for V00: refCnt = 4, refCntWtd = 4
New refCnts for V01: refCnt = 4, refCntWtd = 4
STMT00012 (IL ???... ???)
[000051] -ACXG+------ * ASG int
[000050] D----+-N---- +--* LCL_VAR int V06 loc3
[000048] --CXG+------ \--* CALL int Test2.DoTestImpl5
[000180] -----+------ arg2 in r8 +--* CAST int <- ubyte <- int
[000047] -----+------ | \--* LCL_VAR int V02 arg2
[000045] -----+------ arg0 in rcx +--* LCL_VAR int V00 arg0
[000046] -----+------ arg1 in rdx \--* LCL_VAR int V01 arg1
New refCnts for V06: refCnt = 1, refCntWtd = 1
New refCnts for V02: refCnt = 5, refCntWtd = 5
New refCnts for V00: refCnt = 5, refCntWtd = 5
New refCnts for V01: refCnt = 5, refCntWtd = 5
STMT00022 (IL ???... ???)
[000101] -A---+------ * ASG byte
[000185] n------N---- +--* IND byte
[000184] ------------ | \--* ADDR byref
[000098] D----+-N---- | \--* LCL_VAR struct V12 tmp3
[000100] -----+------ \--* CNS_INT int 0
New refCnts for V12: refCnt = 1, refCntWtd = 1
STMT00035 (IL ???... ???)
[000138] -A---+------ * ASG int
[000137] D----+-N---- +--* LCL_VAR int V14 tmp5
[000136] -----+------ \--* CNS_INT int 0
New refCnts for V14: refCnt = 1, refCntWtd = 1
STMT00027 (IL ???... ???)
[000114] -A---+------ * ASG int
[000113] D----+-N---- +--* LCL_VAR int V13 tmp4
[000140] -----+------ \--* ADD int
[000052] -----+------ +--* LCL_VAR int V00 arg0
[000053] -----+------ \--* LCL_VAR int V01 arg1
New refCnts for V13: refCnt = 1, refCntWtd = 2
New refCnts for V00: refCnt = 6, refCntWtd = 6
New refCnts for V01: refCnt = 6, refCntWtd = 6
STMT00029 (IL ???... ???)
[000120] -A---+------ * ASG int
[000119] D----+-N---- +--* LCL_VAR int V14 tmp5
[000145] -----+------ \--* MUL int
[000115] -----+------ +--* LCL_VAR int V13 tmp4
[000186] -----+------ \--* CAST int <- ubyte <- int
[000054] -----+------ \--* LCL_VAR int V02 arg2
New refCnts for V14: refCnt = 2, refCntWtd = 2
New refCnts for V13: refCnt = 2, refCntWtd = 4
New refCnts for V02: refCnt = 6, refCntWtd = 6
STMT00033 (IL ???... ???)
[000131] -A---+------ * ASG int
[000130] D----+-N---- +--* LCL_VAR int V15 tmp6
[000150] -----+------ \--* MUL int
[000121] -----+------ +--* LCL_VAR int V00 arg0
[000187] -----+------ \--* CAST int <- ubyte <- int
[000122] -----+------ \--* LCL_VAR int V02 arg2
New refCnts for V15: refCnt = 1, refCntWtd = 2
New refCnts for V00: refCnt = 7, refCntWtd = 7
New refCnts for V02: refCnt = 7, refCntWtd = 7
STMT00014 (IL ???... ???)
[000058] -A-X-+------ * ASG int
[000057] D----+-N---- +--* LCL_VAR int V07 loc4
[000156] ---X-+------ \--* DIV int
[000132] -----+------ +--* LCL_VAR int V15 tmp6
[000153] -----+------ \--* RSH int
[000127] -----+------ +--* LCL_VAR int V14 tmp5
[000152] -----+------ \--* CNS_INT int 2
New refCnts for V07: refCnt = 1, refCntWtd = 1
New refCnts for V15: refCnt = 2, refCntWtd = 4
New refCnts for V14: refCnt = 3, refCntWtd = 3
STMT00015 (IL ???...0x050)
[000069] -----+------ * RETURN int
[000068] -----+------ \--* ADD int
[000066] -----+------ +--* ADD int
[000064] -----+------ | +--* ADD int
[000062] -----+------ | | +--* ADD int
[000060] -----+------ | | | +--* ADD int
[000012] -----+------ | | | | +--* LCL_VAR int V10 tmp1
[000059] -----+------ | | | | \--* LCL_VAR int V03 loc0
[000061] -----+------ | | | \--* LCL_VAR int V04 loc1
[000063] -----+------ | | \--* LCL_VAR int V05 loc2
[000065] -----+------ | \--* LCL_VAR int V06 loc3
[000067] -----+------ \--* LCL_VAR int V07 loc4
New refCnts for V10: refCnt = 2, refCntWtd = 4
New refCnts for V03: refCnt = 2, refCntWtd = 2
New refCnts for V04: refCnt = 2, refCntWtd = 2
New refCnts for V05: refCnt = 2, refCntWtd = 2
New refCnts for V06: refCnt = 2, refCntWtd = 2
New refCnts for V07: refCnt = 2, refCntWtd = 2
*** lvaComputeRefCounts -- implicit counts ***
New refCnts for V00: refCnt = 8, refCntWtd = 8
New refCnts for V00: refCnt = 9, refCntWtd = 9
New refCnts for V01: refCnt = 7, refCntWtd = 7
New refCnts for V01: refCnt = 8, refCntWtd = 8
New refCnts for V02: refCnt = 8, refCntWtd = 8
New refCnts for V02: refCnt = 9, refCntWtd = 9
*************** In optAddCopies()
*************** In optOptimizeBools()
*************** In fgDebugCheckBBlist
*************** In fgFindOperOrder()
*************** In fgSetBlockOrder()
The biggest BB has 13 tree nodes
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (return) i label target gcsafe newobj
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..051) (return), preds={} succs={}
***** BB01
STMT00002 (IL ???... ???)
N010 ( 19, 14) [000011] -ACXG---R--- * ASG int
N009 ( 1, 1) [000010] D------N---- +--* LCL_VAR int V10 tmp1
N008 ( 19, 14) [000003] --CXG------- \--* CALL int Test2.DoTestImpl1
N005 ( 3, 4) [000158] ------------ arg2 in r8 +--* CAST int <- ubyte <- int
N004 ( 2, 2) [000002] ------------ | \--* LCL_VAR int V02 arg2
N006 ( 1, 1) [000000] ------------ arg0 in rcx +--* LCL_VAR int V00 arg0
N007 ( 1, 1) [000001] ------------ arg1 in rdx \--* LCL_VAR int V01 arg1
***** BB01
STMT00003 (IL ???... ???)
N012 ( 26, 28) [000015] -ACXG---R--- * ASG int
N011 ( 3, 2) [000014] D------N---- +--* LCL_VAR int V03 loc0
N010 ( 22, 25) [000008] --CXG------- \--* CALL int Test2.DoTestImpl2
N006 ( 3, 4) [000162] ------------ arg3 in r9 +--* CAST int <- ubyte <- int
N005 ( 2, 2) [000007] ------------ | \--* LCL_VAR int V02 arg2
N007 ( 1, 1) [000005] ------------ arg1 in rdx +--* LCL_VAR int V00 arg0
N008 ( 1, 1) [000006] ------------ arg2 in r8 +--* LCL_VAR int V01 arg1
N009 ( 3, 10) [000009] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method
***** BB01
STMT00004 (IL ???...0x014)
N005 ( 9, 8) [000019] -A------R--- * ASG byte
N004 ( 7, 6) [000168] n------N---- +--* IND byte
N003 ( 3, 3) [000167] ------------ | \--* ADDR byref
N002 ( 3, 2) [000016] D------N---- | \--* LCL_VAR struct V08 loc5
N001 ( 1, 1) [000018] ------------ \--* CNS_INT int 0
***** BB01
STMT00006 (IL ???... ???)
N012 ( 27, 23) [000029] -ACXG---R--- * ASG int
N011 ( 3, 2) [000028] D------N---- +--* LCL_VAR int V04 loc1
N010 ( 23, 20) [000024] --CXG------- \--* CALL int Test2.DoTestImpl3
N006 ( 3, 4) [000169] ------------ arg3 in r9 +--* CAST int <- ubyte <- int
N005 ( 2, 2) [000023] ------------ | \--* LCL_VAR int V02 arg2
N007 ( 4, 5) [000020] ------------ arg0 in rcx +--* LCL_FLD byte V08 loc5 [+0]
N008 ( 1, 1) [000021] ------------ arg1 in rdx +--* LCL_VAR int V00 arg0
N009 ( 1, 1) [000022] ------------ arg2 in r8 \--* LCL_VAR int V01 arg1
***** BB01
STMT00007 (IL ???...0x031)
N005 ( 17, 16) [000033] -AC-----R--- * ASG ref
N004 ( 1, 1) [000032] D------N---- +--* LCL_VAR ref V11 tmp2
N003 ( 17, 16) [000031] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
N002 ( 3, 10) [000030] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method
***** BB01
STMT00010 (IL ???... ???)
N013 ( 30, 29) [000044] -ACXG---R--- * ASG int
N012 ( 3, 2) [000043] D------N---- +--* LCL_VAR int V05 loc2
N011 ( 26, 26) [000040] --CXG------- \--* CALL int Test2.DoTestImpl4
N006 ( 3, 4) [000175] ------------ arg4 out+20 +--* CAST int <- ubyte <- int
N005 ( 2, 2) [000039] ------------ | \--* LCL_VAR int V02 arg2
N007 ( 1, 1) [000036] ------------ arg1 in rdx +--* LCL_VAR ref V11 tmp2
N008 ( 1, 1) [000037] ------------ arg2 in r8 +--* LCL_VAR int V00 arg0
N009 ( 1, 1) [000038] ------------ arg3 in r9 +--* LCL_VAR int V01 arg1
N010 ( 3, 10) [000041] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method
***** BB01
STMT00012 (IL ???... ???)
N010 ( 23, 17) [000051] -ACXG---R--- * ASG int
N009 ( 3, 2) [000050] D------N---- +--* LCL_VAR int V06 loc3
N008 ( 19, 14) [000048] --CXG------- \--* CALL int Test2.DoTestImpl5
N005 ( 3, 4) [000180] ------------ arg2 in r8 +--* CAST int <- ubyte <- int
N004 ( 2, 2) [000047] ------------ | \--* LCL_VAR int V02 arg2
N006 ( 1, 1) [000045] ------------ arg0 in rcx +--* LCL_VAR int V00 arg0
N007 ( 1, 1) [000046] ------------ arg1 in rdx \--* LCL_VAR int V01 arg1
***** BB01
STMT00022 (IL ???... ???)
N005 ( 9, 8) [000101] -A------R--- * ASG byte
N004 ( 7, 6) [000185] n------N---- +--* IND byte
N003 ( 3, 3) [000184] ------------ | \--* ADDR byref
N002 ( 3, 2) [000098] D------N---- | \--* LCL_VAR struct V12 tmp3
N001 ( 1, 1) [000100] ------------ \--* CNS_INT int 0
***** BB01
STMT00035 (IL ???... ???)
N003 ( 1, 3) [000138] -A------R--- * ASG int
N002 ( 1, 1) [000137] D------N---- +--* LCL_VAR int V14 tmp5
N001 ( 1, 1) [000136] ------------ \--* CNS_INT int 0
***** BB01
STMT00027 (IL ???... ???)
N005 ( 3, 3) [000114] -A------R--- * ASG int
N004 ( 1, 1) [000113] D------N---- +--* LCL_VAR int V13 tmp4
N003 ( 3, 3) [000140] ------------ \--* ADD int
N001 ( 1, 1) [000052] ------------ +--* LCL_VAR int V00 arg0
N002 ( 1, 1) [000053] ------------ \--* LCL_VAR int V01 arg1
***** BB01
STMT00029 (IL ???... ???)
N006 ( 8, 8) [000120] -A------R--- * ASG int
N005 ( 1, 1) [000119] D------N---- +--* LCL_VAR int V14 tmp5
N004 ( 8, 8) [000145] ------------ \--* MUL int
N001 ( 1, 1) [000115] ------------ +--* LCL_VAR int V13 tmp4
N003 ( 3, 4) [000186] ------------ \--* CAST int <- ubyte <- int
N002 ( 2, 2) [000054] ------------ \--* LCL_VAR int V02 arg2
***** BB01
STMT00033 (IL ???... ???)
N006 ( 8, 8) [000131] -A------R--- * ASG int
N005 ( 1, 1) [000130] D------N---- +--* LCL_VAR int V15 tmp6
N004 ( 8, 8) [000150] ------------ \--* MUL int
N001 ( 1, 1) [000121] ------------ +--* LCL_VAR int V00 arg0
N003 ( 3, 4) [000187] ------------ \--* CAST int <- ubyte <- int
N002 ( 2, 2) [000122] ------------ \--* LCL_VAR int V02 arg2
***** BB01
STMT00014 (IL ???... ???)
N007 ( 28, 10) [000058] -A-X----R--- * ASG int
N006 ( 3, 2) [000057] D------N---- +--* LCL_VAR int V07 loc4
N005 ( 24, 7) [000156] ---X-------- \--* DIV int
N001 ( 1, 1) [000132] ------------ +--* LCL_VAR int V15 tmp6
N004 ( 3, 3) [000153] ------------ \--* RSH int
N002 ( 1, 1) [000127] ------------ +--* LCL_VAR int V14 tmp5
N003 ( 1, 1) [000152] ------------ \--* CNS_INT int 2
***** BB01
STMT00015 (IL ???...0x050)
N012 ( 22, 17) [000069] ------------ * RETURN int
N011 ( 21, 16) [000068] ------------ \--* ADD int
N009 ( 17, 13) [000066] ------------ +--* ADD int
N007 ( 13, 10) [000064] ------------ | +--* ADD int
N005 ( 9, 7) [000062] ------------ | | +--* ADD int
N003 ( 5, 4) [000060] ------------ | | | +--* ADD int
N001 ( 1, 1) [000012] ------------ | | | | +--* LCL_VAR int V10 tmp1
N002 ( 3, 2) [000059] ------------ | | | | \--* LCL_VAR int V03 loc0
N004 ( 3, 2) [000061] ------------ | | | \--* LCL_VAR int V04 loc1
N006 ( 3, 2) [000063] ------------ | | \--* LCL_VAR int V05 loc2
N008 ( 3, 2) [000065] ------------ | \--* LCL_VAR int V06 loc3
N010 ( 3, 2) [000067] ------------ \--* LCL_VAR int V07 loc4
-------------------------------------------------------------------------------------------------------------------
*************** In SsaBuilder::Build()
[SsaBuilder] Max block count is 2.
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (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 fgLocalVarLiveness()
In fgLocalVarLivenessInit
Local V08 should not be enregistered because: it is a struct
Local V12 should not be enregistered because: it is a struct
Tracked variable (15 out of 19) table:
V00 arg0 [ int]: refCnt = 9, refCntWtd = 9
V02 arg2 [ ubyte]: refCnt = 9, refCntWtd = 9
V01 arg1 [ int]: refCnt = 8, refCntWtd = 8
V11 tmp2 [ ref]: refCnt = 2, refCntWtd = 4
V10 tmp1 [ int]: refCnt = 2, refCntWtd = 4
V13 tmp4 [ int]: refCnt = 2, refCntWtd = 4
V15 tmp6 [ int]: refCnt = 2, refCntWtd = 4
V14 tmp5 [ int]: refCnt = 3, refCntWtd = 3
V03 loc0 [ int]: refCnt = 2, refCntWtd = 2
V04 loc1 [ int]: refCnt = 2, refCntWtd = 2
V05 loc2 [ int]: refCnt = 2, refCntWtd = 2
V06 loc3 [ int]: refCnt = 2, refCntWtd = 2
V07 loc4 [ int]: refCnt = 2, refCntWtd = 2
V08 loc5 [struct]: refCnt = 2, refCntWtd = 2
V12 tmp3 [struct]: refCnt = 1, refCntWtd = 1
*************** In fgPerBlockLocalVarLiveness()
BB01 USE(3)={V00 V02 V01 } + ByrefExposed + GcHeap
DEF(12)={ V11 V10 V13 V15 V14 V03 V04 V05 V06 V07 V08 V12} + ByrefExposed* + GcHeap*
** Memory liveness computed, GcHeap states and ByrefExposed states match
*************** In fgInterBlockLocalVarLiveness()
BB liveness after fgLiveVarAnalysis():
BB01 IN (3)={V00 V02 V01} + ByrefExposed + GcHeap
OUT(0)={ }
top level assign
removing stmt with no side effects
Removing statement STMT00035 (IL ???... ???)
N003 ( 1, 3) [000138] -A------R--- * ASG int
N002 ( 1, 1) [000137] D------N---- +--* LCL_VAR int V14 tmp5
N001 ( 1, 1) [000136] ------------ \--* CNS_INT int 0
in BB01 as useless:
top level assign
removing stmt with no side effects
Removing statement STMT00022 (IL ???... ???)
N005 ( 9, 8) [000101] -A------R--- * ASG byte
N004 ( 7, 6) [000185] n------N---- +--* IND byte
N003 ( 3, 3) [000184] ------------ | \--* ADDR byref
N002 ( 3, 2) [000098] D------N---- | \--* LCL_VAR struct V12 tmp3
N001 ( 1, 1) [000100] ------------ \--* CNS_INT int 0
in BB01 as useless:
*************** In SsaBuilder::InsertPhiFunctions()
Inserting phi functions:
*************** In SsaBuilder::RenameVariables()
After fgSsaBuild:
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (return) i label target gcsafe newobj
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..051) (return), preds={} succs={}
***** BB01
STMT00002 (IL ???... ???)
N010 ( 19, 14) [000011] -ACXG---R--- * ASG int
N009 ( 1, 1) [000010] D------N---- +--* LCL_VAR int V10 tmp1 d:2
N008 ( 19, 14) [000003] --CXG------- \--* CALL int Test2.DoTestImpl1
N005 ( 3, 4) [000158] ------------ arg2 in r8 +--* CAST int <- ubyte <- int
N004 ( 2, 2) [000002] ------------ | \--* LCL_VAR int V02 arg2 u:1
N006 ( 1, 1) [000000] ------------ arg0 in rcx +--* LCL_VAR int V00 arg0 u:1
N007 ( 1, 1) [000001] ------------ arg1 in rdx \--* LCL_VAR int V01 arg1 u:1
***** BB01
STMT00003 (IL ???... ???)
N012 ( 26, 28) [000015] -ACXG---R--- * ASG int
N011 ( 3, 2) [000014] D------N---- +--* LCL_VAR int V03 loc0 d:2
N010 ( 22, 25) [000008] --CXG------- \--* CALL int Test2.DoTestImpl2
N006 ( 3, 4) [000162] ------------ arg3 in r9 +--* CAST int <- ubyte <- int
N005 ( 2, 2) [000007] ------------ | \--* LCL_VAR int V02 arg2 u:1
N007 ( 1, 1) [000005] ------------ arg1 in rdx +--* LCL_VAR int V00 arg0 u:1
N008 ( 1, 1) [000006] ------------ arg2 in r8 +--* LCL_VAR int V01 arg1 u:1
N009 ( 3, 10) [000009] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method
***** BB01
STMT00004 (IL ???...0x014)
N005 ( 9, 8) [000019] -A------R--- * ASG byte
N004 ( 7, 6) [000168] n------N---- +--* IND byte
N003 ( 3, 3) [000167] ------------ | \--* ADDR byref
N002 ( 3, 2) [000016] D------N---- | \--* LCL_VAR struct V08 loc5 d:2
N001 ( 1, 1) [000018] ------------ \--* CNS_INT int 0
***** BB01
STMT00006 (IL ???... ???)
N012 ( 27, 23) [000029] -ACXG---R--- * ASG int
N011 ( 3, 2) [000028] D------N---- +--* LCL_VAR int V04 loc1 d:2
N010 ( 23, 20) [000024] --CXG------- \--* CALL int Test2.DoTestImpl3
N006 ( 3, 4) [000169] ------------ arg3 in r9 +--* CAST int <- ubyte <- int
N005 ( 2, 2) [000023] ------------ | \--* LCL_VAR int V02 arg2 u:1
N007 ( 4, 5) [000020] ------------ arg0 in rcx +--* LCL_FLD byte V08 loc5 u:2[+0] (last use)
N008 ( 1, 1) [000021] ------------ arg1 in rdx +--* LCL_VAR int V00 arg0 u:1
N009 ( 1, 1) [000022] ------------ arg2 in r8 \--* LCL_VAR int V01 arg1 u:1
***** BB01
STMT00007 (IL ???...0x031)
N005 ( 17, 16) [000033] -AC-----R--- * ASG ref
N004 ( 1, 1) [000032] D------N---- +--* LCL_VAR ref V11 tmp2 d:2
N003 ( 17, 16) [000031] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
N002 ( 3, 10) [000030] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method
***** BB01
STMT00010 (IL ???... ???)
N013 ( 30, 29) [000044] -ACXG---R--- * ASG int
N012 ( 3, 2) [000043] D------N---- +--* LCL_VAR int V05 loc2 d:2
N011 ( 26, 26) [000040] --CXG------- \--* CALL int Test2.DoTestImpl4
N006 ( 3, 4) [000175] ------------ arg4 out+20 +--* CAST int <- ubyte <- int
N005 ( 2, 2) [000039] ------------ | \--* LCL_VAR int V02 arg2 u:1
N007 ( 1, 1) [000036] ------------ arg1 in rdx +--* LCL_VAR ref V11 tmp2 u:2 (last use)
N008 ( 1, 1) [000037] ------------ arg2 in r8 +--* LCL_VAR int V00 arg0 u:1
N009 ( 1, 1) [000038] ------------ arg3 in r9 +--* LCL_VAR int V01 arg1 u:1
N010 ( 3, 10) [000041] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method
***** BB01
STMT00012 (IL ???... ???)
N010 ( 23, 17) [000051] -ACXG---R--- * ASG int
N009 ( 3, 2) [000050] D------N---- +--* LCL_VAR int V06 loc3 d:2
N008 ( 19, 14) [000048] --CXG------- \--* CALL int Test2.DoTestImpl5
N005 ( 3, 4) [000180] ------------ arg2 in r8 +--* CAST int <- ubyte <- int
N004 ( 2, 2) [000047] ------------ | \--* LCL_VAR int V02 arg2 u:1
N006 ( 1, 1) [000045] ------------ arg0 in rcx +--* LCL_VAR int V00 arg0 u:1
N007 ( 1, 1) [000046] ------------ arg1 in rdx \--* LCL_VAR int V01 arg1 u:1
***** BB01
STMT00027 (IL ???... ???)
N005 ( 3, 3) [000114] -A------R--- * ASG int
N004 ( 1, 1) [000113] D------N---- +--* LCL_VAR int V13 tmp4 d:2
N003 ( 3, 3) [000140] ------------ \--* ADD int
N001 ( 1, 1) [000052] ------------ +--* LCL_VAR int V00 arg0 u:1
N002 ( 1, 1) [000053] ------------ \--* LCL_VAR int V01 arg1 u:1 (last use)
***** BB01
STMT00029 (IL ???... ???)
N006 ( 8, 8) [000120] -A------R--- * ASG int
N005 ( 1, 1) [000119] D------N---- +--* LCL_VAR int V14 tmp5 d:2
N004 ( 8, 8) [000145] ------------ \--* MUL int
N001 ( 1, 1) [000115] ------------ +--* LCL_VAR int V13 tmp4 u:2 (last use)
N003 ( 3, 4) [000186] ------------ \--* CAST int <- ubyte <- int
N002 ( 2, 2) [000054] ------------ \--* LCL_VAR int V02 arg2 u:1
***** BB01
STMT00033 (IL ???... ???)
N006 ( 8, 8) [000131] -A------R--- * ASG int
N005 ( 1, 1) [000130] D------N---- +--* LCL_VAR int V15 tmp6 d:2
N004 ( 8, 8) [000150] ------------ \--* MUL int
N001 ( 1, 1) [000121] ------------ +--* LCL_VAR int V00 arg0 u:1 (last use)
N003 ( 3, 4) [000187] ------------ \--* CAST int <- ubyte <- int
N002 ( 2, 2) [000122] ------------ \--* LCL_VAR int V02 arg2 u:1 (last use)
***** BB01
STMT00014 (IL ???... ???)
N007 ( 28, 10) [000058] -A-X----R--- * ASG int
N006 ( 3, 2) [000057] D------N---- +--* LCL_VAR int V07 loc4 d:2
N005 ( 24, 7) [000156] ---X-------- \--* DIV int
N001 ( 1, 1) [000132] ------------ +--* LCL_VAR int V15 tmp6 u:2 (last use)
N004 ( 3, 3) [000153] ------------ \--* RSH int
N002 ( 1, 1) [000127] ------------ +--* LCL_VAR int V14 tmp5 u:2 (last use)
N003 ( 1, 1) [000152] ------------ \--* CNS_INT int 2
***** BB01
STMT00015 (IL ???...0x050)
N012 ( 22, 17) [000069] ------------ * RETURN int
N011 ( 21, 16) [000068] ------------ \--* ADD int
N009 ( 17, 13) [000066] ------------ +--* ADD int
N007 ( 13, 10) [000064] ------------ | +--* ADD int
N005 ( 9, 7) [000062] ------------ | | +--* ADD int
N003 ( 5, 4) [000060] ------------ | | | +--* ADD int
N001 ( 1, 1) [000012] ------------ | | | | +--* LCL_VAR int V10 tmp1 u:2 (last use)
N002 ( 3, 2) [000059] ------------ | | | | \--* LCL_VAR int V03 loc0 u:2 (last use)
N004 ( 3, 2) [000061] ------------ | | | \--* LCL_VAR int V04 loc1 u:2 (last use)
N006 ( 3, 2) [000063] ------------ | | \--* LCL_VAR int V05 loc2 u:2 (last use)
N008 ( 3, 2) [000065] ------------ | \--* LCL_VAR int V06 loc3 u:2 (last use)
N010 ( 3, 2) [000067] ------------ \--* LCL_VAR int V07 loc4 u:2 (last use)
-------------------------------------------------------------------------------------------------------------------
*************** In optEarlyProp()
*************** In fgValueNumber()
Memory Initial Value in BB01 is: $100
The SSA definition for ByrefExposed (#1) at start of BB01 is $100 {InitVal($43)}
The SSA definition for GcHeap (#1) at start of BB01 is $100 {InitVal($43)}
***** BB01, STMT00002(before)
N010 ( 19, 14) [000011] -ACXG---R--- * ASG int
N009 ( 1, 1) [000010] D------N---- +--* LCL_VAR int V10 tmp1 d:2
N008 ( 19, 14) [000003] --CXG------- \--* CALL int Test2.DoTestImpl1
N005 ( 3, 4) [000158] ------------ arg2 in r8 +--* CAST int <- ubyte <- int
N004 ( 2, 2) [000002] ------------ | \--* LCL_VAR int V02 arg2 u:1
N006 ( 1, 1) [000000] ------------ arg0 in rcx +--* LCL_VAR int V00 arg0 u:1
N007 ( 1, 1) [000001] ------------ arg1 in rdx \--* LCL_VAR int V01 arg1 u:1
N001 [000160] ARGPLACE => $140 {140}
N002 [000161] ARGPLACE => $141 {141}
N003 [000159] ARGPLACE => $142 {142}
N004 [000002] LCL_VAR V02 arg2 u:1 => $c0 {InitVal($42)}
VNForCastOper(ubyte) is $44
N005 [000158] CAST => $180 {Cast($c0, $44)}
N006 [000000] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)}
N007 [000001] LCL_VAR V01 arg1 u:1 => $81 {InitVal($41)}
VN of ARGPLACE tree [000160] updated to $80 {InitVal($40)}
VN of ARGPLACE tree [000161] updated to $81 {InitVal($41)}
VN of ARGPLACE tree [000159] updated to $180 {Cast($c0, $44)}
fgCurMemoryVN[GcHeap] assigned for CALL at [000003] to VN: $1c0.
N008 [000003] CALL => $143 {143}
N009 [000010] LCL_VAR V10 tmp1 d:2 => $143 {143}
N010 [000011] ASG => $143 {143}
***** BB01, STMT00002(after)
N010 ( 19, 14) [000011] -ACXG---R--- * ASG int $143
N009 ( 1, 1) [000010] D------N---- +--* LCL_VAR int V10 tmp1 d:2 $143
N008 ( 19, 14) [000003] --CXG------- \--* CALL int Test2.DoTestImpl1 $143
N005 ( 3, 4) [000158] ------------ arg2 in r8 +--* CAST int <- ubyte <- int $180
N004 ( 2, 2) [000002] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0
N006 ( 1, 1) [000000] ------------ arg0 in rcx +--* LCL_VAR int V00 arg0 u:1 $80
N007 ( 1, 1) [000001] ------------ arg1 in rdx \--* LCL_VAR int V01 arg1 u:1 $81
---------
***** BB01, STMT00003(before)
N012 ( 26, 28) [000015] -ACXG---R--- * ASG int
N011 ( 3, 2) [000014] D------N---- +--* LCL_VAR int V03 loc0 d:2
N010 ( 22, 25) [000008] --CXG------- \--* CALL int Test2.DoTestImpl2
N006 ( 3, 4) [000162] ------------ arg3 in r9 +--* CAST int <- ubyte <- int
N005 ( 2, 2) [000007] ------------ | \--* LCL_VAR int V02 arg2 u:1
N007 ( 1, 1) [000005] ------------ arg1 in rdx +--* LCL_VAR int V00 arg0 u:1
N008 ( 1, 1) [000006] ------------ arg2 in r8 +--* LCL_VAR int V01 arg1 u:1
N009 ( 3, 10) [000009] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method
N001 [000166] ARGPLACE => $200 {200}
N002 [000164] ARGPLACE => $145 {145}
N003 [000165] ARGPLACE => $146 {146}
N004 [000163] ARGPLACE => $147 {147}
N005 [000007] LCL_VAR V02 arg2 u:1 => $c0 {InitVal($42)}
VNForCastOper(ubyte) is $44
N006 [000162] CAST => $180 {Cast($c0, $44)}
N007 [000005] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)}
N008 [000006] LCL_VAR V01 arg1 u:1 => $81 {InitVal($41)}
N009 [000009] CNS_INT(h) 0xd1ffab1e method => $240 {Hnd const: 0x00000000D1FFAB1E}
VN of ARGPLACE tree [000166] updated to $240 {Hnd const: 0x00000000D1FFAB1E}
VN of ARGPLACE tree [000164] updated to $80 {InitVal($40)}
VN of ARGPLACE tree [000165] updated to $81 {InitVal($41)}
VN of ARGPLACE tree [000163] updated to $180 {Cast($c0, $44)}
fgCurMemoryVN[GcHeap] assigned for CALL at [000008] to VN: $1c1.
N010 [000008] CALL => $148 {148}
N011 [000014] LCL_VAR V03 loc0 d:2 => $148 {148}
N012 [000015] ASG => $148 {148}
***** BB01, STMT00003(after)
N012 ( 26, 28) [000015] -ACXG---R--- * ASG int $148
N011 ( 3, 2) [000014] D------N---- +--* LCL_VAR int V03 loc0 d:2 $148
N010 ( 22, 25) [000008] --CXG------- \--* CALL int Test2.DoTestImpl2 $148
N006 ( 3, 4) [000162] ------------ arg3 in r9 +--* CAST int <- ubyte <- int $180
N005 ( 2, 2) [000007] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0
N007 ( 1, 1) [000005] ------------ arg1 in rdx +--* LCL_VAR int V00 arg0 u:1 $80
N008 ( 1, 1) [000006] ------------ arg2 in r8 +--* LCL_VAR int V01 arg1 u:1 $81
N009 ( 3, 10) [000009] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method $240
---------
***** BB01, STMT00004(before)
N005 ( 9, 8) [000019] -A------R--- * ASG byte
N004 ( 7, 6) [000168] n------N---- +--* IND byte
N003 ( 3, 3) [000167] ------------ | \--* ADDR byref
N002 ( 3, 2) [000016] D------N---- | \--* LCL_VAR struct V08 loc5 d:2
N001 ( 1, 1) [000018] ------------ \--* CNS_INT int 0
N001 [000018] CNS_INT 0 => $40 {IntCns 0}
N003 [000167] ADDR => $2c0 {PtrToLoc($44, $0)}
VNForCastOper(byte) is $45
Tree [000019] assigned VN to local var V08/2: VN $40 {IntCns 0}
N005 [000019] ASG => $VN.Void
***** BB01, STMT00004(after)
N005 ( 9, 8) [000019] -A------R--- * ASG byte $VN.Void
N004 ( 7, 6) [000168] n------N---- +--* IND byte $40
N003 ( 3, 3) [000167] ------------ | \--* ADDR byref $2c0
N002 ( 3, 2) [000016] D------N---- | \--* LCL_VAR struct V08 loc5 d:2
N001 ( 1, 1) [000018] ------------ \--* CNS_INT int 0 $40
---------
***** BB01, STMT00006(before)
N012 ( 27, 23) [000029] -ACXG---R--- * ASG int
N011 ( 3, 2) [000028] D------N---- +--* LCL_VAR int V04 loc1 d:2
N010 ( 23, 20) [000024] --CXG------- \--* CALL int Test2.DoTestImpl3
N006 ( 3, 4) [000169] ------------ arg3 in r9 +--* CAST int <- ubyte <- int
N005 ( 2, 2) [000023] ------------ | \--* LCL_VAR int V02 arg2 u:1
N007 ( 4, 5) [000020] ------------ arg0 in rcx +--* LCL_FLD byte V08 loc5 u:2[+0] (last use)
N008 ( 1, 1) [000021] ------------ arg1 in rdx +--* LCL_VAR int V00 arg0 u:1
N009 ( 1, 1) [000022] ------------ arg2 in r8 \--* LCL_VAR int V01 arg1 u:1
N001 [000171] ARGPLACE => $300 {300}
N002 [000172] ARGPLACE => $14a {14a}
N003 [000173] ARGPLACE => $14b {14b}
N004 [000170] ARGPLACE => $14c {14c}
N005 [000023] LCL_VAR V02 arg2 u:1 => $c0 {InitVal($42)}
VNForCastOper(ubyte) is $44
N006 [000169] CAST => $180 {Cast($c0, $44)}
N007 [000020] LCL_FLD V08 loc5 u:2[+0] (last use) => $301 {301}
N008 [000021] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)}
N009 [000022] LCL_VAR V01 arg1 u:1 => $81 {InitVal($41)}
VN of ARGPLACE tree [000171] updated to $301 {301}
VN of ARGPLACE tree [000172] updated to $80 {InitVal($40)}
VN of ARGPLACE tree [000173] updated to $81 {InitVal($41)}
VN of ARGPLACE tree [000170] updated to $180 {Cast($c0, $44)}
fgCurMemoryVN[GcHeap] assigned for CALL at [000024] to VN: $1c2.
N010 [000024] CALL => $14d {14d}
N011 [000028] LCL_VAR V04 loc1 d:2 => $14d {14d}
N012 [000029] ASG => $14d {14d}
***** BB01, STMT00006(after)
N012 ( 27, 23) [000029] -ACXG---R--- * ASG int $14d
N011 ( 3, 2) [000028] D------N---- +--* LCL_VAR int V04 loc1 d:2 $14d
N010 ( 23, 20) [000024] --CXG------- \--* CALL int Test2.DoTestImpl3 $14d
N006 ( 3, 4) [000169] ------------ arg3 in r9 +--* CAST int <- ubyte <- int $180
N005 ( 2, 2) [000023] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0
N007 ( 4, 5) [000020] ------------ arg0 in rcx +--* LCL_FLD byte V08 loc5 u:2[+0] (last use) $301
N008 ( 1, 1) [000021] ------------ arg1 in rdx +--* LCL_VAR int V00 arg0 u:1 $80
N009 ( 1, 1) [000022] ------------ arg2 in r8 \--* LCL_VAR int V01 arg1 u:1 $81
---------
***** BB01, STMT00007(before)
N005 ( 17, 16) [000033] -AC-----R--- * ASG ref
N004 ( 1, 1) [000032] D------N---- +--* LCL_VAR ref V11 tmp2 d:2
N003 ( 17, 16) [000031] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
N002 ( 3, 10) [000030] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method
N001 [000174] ARGPLACE => $201 {201}
N002 [000030] CNS_INT(h) 0xd1ffab1e method => $241 {Hnd const: 0x00000000D1FFAB1E}
VN of ARGPLACE tree [000174] updated to $241 {Hnd const: 0x00000000D1FFAB1E}
N003 [000031] CALL help => $340 {JitNew($241, $1c3)}
N004 [000032] LCL_VAR V11 tmp2 d:2 => $340 {JitNew($241, $1c3)}
N005 [000033] ASG => $340 {JitNew($241, $1c3)}
***** BB01, STMT00007(after)
N005 ( 17, 16) [000033] -AC-----R--- * ASG ref $340
N004 ( 1, 1) [000032] D------N---- +--* LCL_VAR ref V11 tmp2 d:2 $340
N003 ( 17, 16) [000031] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $340
N002 ( 3, 10) [000030] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method $241
---------
***** BB01, STMT00010(before)
N013 ( 30, 29) [000044] -ACXG---R--- * ASG int
N012 ( 3, 2) [000043] D------N---- +--* LCL_VAR int V05 loc2 d:2
N011 ( 26, 26) [000040] --CXG------- \--* CALL int Test2.DoTestImpl4
N006 ( 3, 4) [000175] ------------ arg4 out+20 +--* CAST int <- ubyte <- int
N005 ( 2, 2) [000039] ------------ | \--* LCL_VAR int V02 arg2 u:1
N007 ( 1, 1) [000036] ------------ arg1 in rdx +--* LCL_VAR ref V11 tmp2 u:2 (last use)
N008 ( 1, 1) [000037] ------------ arg2 in r8 +--* LCL_VAR int V00 arg0 u:1
N009 ( 1, 1) [000038] ------------ arg3 in r9 +--* LCL_VAR int V01 arg1 u:1
N010 ( 3, 10) [000041] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method
N001 [000179] ARGPLACE => $202 {202}
N002 [000176] ARGPLACE => $1c5 {1c5}
N003 [000177] ARGPLACE => $14f {14f}
N004 [000178] ARGPLACE => $150 {150}
N005 [000039] LCL_VAR V02 arg2 u:1 => $c0 {InitVal($42)}
VNForCastOper(ubyte) is $44
N006 [000175] CAST => $180 {Cast($c0, $44)}
N007 [000036] LCL_VAR V11 tmp2 u:2 (last use) => $340 {JitNew($241, $1c3)}
N008 [000037] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)}
N009 [000038] LCL_VAR V01 arg1 u:1 => $81 {InitVal($41)}
N010 [000041] CNS_INT(h) 0xd1ffab1e method => $242 {Hnd const: 0x00000000D1FFAB1E}
VN of ARGPLACE tree [000179] updated to $242 {Hnd const: 0x00000000D1FFAB1E}
VN of ARGPLACE tree [000176] updated to $340 {JitNew($241, $1c3)}
VN of ARGPLACE tree [000177] updated to $80 {InitVal($40)}
VN of ARGPLACE tree [000178] updated to $81 {InitVal($41)}
fgCurMemoryVN[GcHeap] assigned for CALL at [000040] to VN: $1c6.
N011 [000040] CALL => $151 {151}
N012 [000043] LCL_VAR V05 loc2 d:2 => $151 {151}
N013 [000044] ASG => $151 {151}
***** BB01, STMT00010(after)
N013 ( 30, 29) [000044] -ACXG---R--- * ASG int $151
N012 ( 3, 2) [000043] D------N---- +--* LCL_VAR int V05 loc2 d:2 $151
N011 ( 26, 26) [000040] --CXG------- \--* CALL int Test2.DoTestImpl4 $151
N006 ( 3, 4) [000175] ------------ arg4 out+20 +--* CAST int <- ubyte <- int $180
N005 ( 2, 2) [000039] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0
N007 ( 1, 1) [000036] ------------ arg1 in rdx +--* LCL_VAR ref V11 tmp2 u:2 (last use) $340
N008 ( 1, 1) [000037] ------------ arg2 in r8 +--* LCL_VAR int V00 arg0 u:1 $80
N009 ( 1, 1) [000038] ------------ arg3 in r9 +--* LCL_VAR int V01 arg1 u:1 $81
N010 ( 3, 10) [000041] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method $242
---------
***** BB01, STMT00012(before)
N010 ( 23, 17) [000051] -ACXG---R--- * ASG int
N009 ( 3, 2) [000050] D------N---- +--* LCL_VAR int V06 loc3 d:2
N008 ( 19, 14) [000048] --CXG------- \--* CALL int Test2.DoTestImpl5
N005 ( 3, 4) [000180] ------------ arg2 in r8 +--* CAST int <- ubyte <- int
N004 ( 2, 2) [000047] ------------ | \--* LCL_VAR int V02 arg2 u:1
N006 ( 1, 1) [000045] ------------ arg0 in rcx +--* LCL_VAR int V00 arg0 u:1
N007 ( 1, 1) [000046] ------------ arg1 in rdx \--* LCL_VAR int V01 arg1 u:1
N001 [000182] ARGPLACE => $153 {153}
N002 [000183] ARGPLACE => $154 {154}
N003 [000181] ARGPLACE => $155 {155}
N004 [000047] LCL_VAR V02 arg2 u:1 => $c0 {InitVal($42)}
VNForCastOper(ubyte) is $44
N005 [000180] CAST => $180 {Cast($c0, $44)}
N006 [000045] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)}
N007 [000046] LCL_VAR V01 arg1 u:1 => $81 {InitVal($41)}
VN of ARGPLACE tree [000182] updated to $80 {InitVal($40)}
VN of ARGPLACE tree [000183] updated to $81 {InitVal($41)}
VN of ARGPLACE tree [000181] updated to $180 {Cast($c0, $44)}
fgCurMemoryVN[GcHeap] assigned for CALL at [000048] to VN: $1c7.
N008 [000048] CALL => $156 {156}
N009 [000050] LCL_VAR V06 loc3 d:2 => $156 {156}
N010 [000051] ASG => $156 {156}
***** BB01, STMT00012(after)
N010 ( 23, 17) [000051] -ACXG---R--- * ASG int $156
N009 ( 3, 2) [000050] D------N---- +--* LCL_VAR int V06 loc3 d:2 $156
N008 ( 19, 14) [000048] --CXG------- \--* CALL int Test2.DoTestImpl5 $156
N005 ( 3, 4) [000180] ------------ arg2 in r8 +--* CAST int <- ubyte <- int $180
N004 ( 2, 2) [000047] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0
N006 ( 1, 1) [000045] ------------ arg0 in rcx +--* LCL_VAR int V00 arg0 u:1 $80
N007 ( 1, 1) [000046] ------------ arg1 in rdx \--* LCL_VAR int V01 arg1 u:1 $81
---------
***** BB01, STMT00027(before)
N005 ( 3, 3) [000114] -A------R--- * ASG int
N004 ( 1, 1) [000113] D------N---- +--* LCL_VAR int V13 tmp4 d:2
N003 ( 3, 3) [000140] ------------ \--* ADD int
N001 ( 1, 1) [000052] ------------ +--* LCL_VAR int V00 arg0 u:1
N002 ( 1, 1) [000053] ------------ \--* LCL_VAR int V01 arg1 u:1 (last use)
N001 [000052] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)}
N002 [000053] LCL_VAR V01 arg1 u:1 (last use) => $81 {InitVal($41)}
N003 [000140] ADD => $181 {ADD($80, $81)}
N004 [000113] LCL_VAR V13 tmp4 d:2 => $181 {ADD($80, $81)}
N005 [000114] ASG => $181 {ADD($80, $81)}
***** BB01, STMT00027(after)
N005 ( 3, 3) [000114] -A------R--- * ASG int $181
N004 ( 1, 1) [000113] D------N---- +--* LCL_VAR int V13 tmp4 d:2 $181
N003 ( 3, 3) [000140] ------------ \--* ADD int $181
N001 ( 1, 1) [000052] ------------ +--* LCL_VAR int V00 arg0 u:1 $80
N002 ( 1, 1) [000053] ------------ \--* LCL_VAR int V01 arg1 u:1 (last use) $81
---------
***** BB01, STMT00029(before)
N006 ( 8, 8) [000120] -A------R--- * ASG int
N005 ( 1, 1) [000119] D------N---- +--* LCL_VAR int V14 tmp5 d:2
N004 ( 8, 8) [000145] ------------ \--* MUL int
N001 ( 1, 1) [000115] ------------ +--* LCL_VAR int V13 tmp4 u:2 (last use)
N003 ( 3, 4) [000186] ------------ \--* CAST int <- ubyte <- int
N002 ( 2, 2) [000054] ------------ \--* LCL_VAR int V02 arg2 u:1
N001 [000115] LCL_VAR V13 tmp4 u:2 (last use) => $181 {ADD($80, $81)}
N002 [000054] LCL_VAR V02 arg2 u:1 => $c0 {InitVal($42)}
VNForCastOper(ubyte) is $44
N003 [000186] CAST => $180 {Cast($c0, $44)}
N004 [000145] MUL => $182 {MUL($180, $181)}
N005 [000119] LCL_VAR V14 tmp5 d:2 => $182 {MUL($180, $181)}
N006 [000120] ASG => $182 {MUL($180, $181)}
***** BB01, STMT00029(after)
N006 ( 8, 8) [000120] -A------R--- * ASG int $182
N005 ( 1, 1) [000119] D------N---- +--* LCL_VAR int V14 tmp5 d:2 $182
N004 ( 8, 8) [000145] ------------ \--* MUL int $182
N001 ( 1, 1) [000115] ------------ +--* LCL_VAR int V13 tmp4 u:2 (last use) $181
N003 ( 3, 4) [000186] ------------ \--* CAST int <- ubyte <- int $180
N002 ( 2, 2) [000054] ------------ \--* LCL_VAR int V02 arg2 u:1 $c0
---------
***** BB01, STMT00033(before)
N006 ( 8, 8) [000131] -A------R--- * ASG int
N005 ( 1, 1) [000130] D------N---- +--* LCL_VAR int V15 tmp6 d:2
N004 ( 8, 8) [000150] ------------ \--* MUL int
N001 ( 1, 1) [000121] ------------ +--* LCL_VAR int V00 arg0 u:1 (last use)
N003 ( 3, 4) [000187] ------------ \--* CAST int <- ubyte <- int
N002 ( 2, 2) [000122] ------------ \--* LCL_VAR int V02 arg2 u:1 (last use)
N001 [000121] LCL_VAR V00 arg0 u:1 (last use) => $80 {InitVal($40)}
N002 [000122] LCL_VAR V02 arg2 u:1 (last use) => $c0 {InitVal($42)}
VNForCastOper(ubyte) is $44
N003 [000187] CAST => $180 {Cast($c0, $44)}
N004 [000150] MUL => $183 {MUL($80, $180)}
N005 [000130] LCL_VAR V15 tmp6 d:2 => $183 {MUL($80, $180)}
N006 [000131] ASG => $183 {MUL($80, $180)}
***** BB01, STMT00033(after)
N006 ( 8, 8) [000131] -A------R--- * ASG int $183
N005 ( 1, 1) [000130] D------N---- +--* LCL_VAR int V15 tmp6 d:2 $183
N004 ( 8, 8) [000150] ------------ \--* MUL int $183
N001 ( 1, 1) [000121] ------------ +--* LCL_VAR int V00 arg0 u:1 (last use) $80
N003 ( 3, 4) [000187] ------------ \--* CAST int <- ubyte <- int $180
N002 ( 2, 2) [000122] ------------ \--* LCL_VAR int V02 arg2 u:1 (last use) $c0
---------
***** BB01, STMT00014(before)
N007 ( 28, 10) [000058] -A-X----R--- * ASG int
N006 ( 3, 2) [000057] D------N---- +--* LCL_VAR int V07 loc4 d:2
N005 ( 24, 7) [000156] ---X-------- \--* DIV int
N001 ( 1, 1) [000132] ------------ +--* LCL_VAR int V15 tmp6 u:2 (last use)
N004 ( 3, 3) [000153] ------------ \--* RSH int
N002 ( 1, 1) [000127] ------------ +--* LCL_VAR int V14 tmp5 u:2 (last use)
N003 ( 1, 1) [000152] ------------ \--* CNS_INT int 2
N001 [000132] LCL_VAR V15 tmp6 u:2 (last use) => $183 {MUL($80, $180)}
N002 [000127] LCL_VAR V14 tmp5 u:2 (last use) => $182 {MUL($180, $181)}
N003 [000152] CNS_INT 2 => $42 {IntCns 2}
N004 [000153] RSH => $184 {RSH($182, $42)}
N005 [000156] DIV => $186 {norm=$185 {DIV($183, $184)}, exc=$344( {DivideByZeroExc($184)}, {ArithmeticExc($183, $184)})}
N006 [000057] LCL_VAR V07 loc4 d:2 => $185 {DIV($183, $184)}
N007 [000058] ASG => $186 {norm=$185 {DIV($183, $184)}, exc=$344( {DivideByZeroExc($184)}, {ArithmeticExc($183, $184)})}
***** BB01, STMT00014(after)
N007 ( 28, 10) [000058] -A-X----R--- * ASG int $186
N006 ( 3, 2) [000057] D------N---- +--* LCL_VAR int V07 loc4 d:2 $185
N005 ( 24, 7) [000156] ---X-------- \--* DIV int $186
N001 ( 1, 1) [000132] ------------ +--* LCL_VAR int V15 tmp6 u:2 (last use) $183
N004 ( 3, 3) [000153] ------------ \--* RSH int $184
N002 ( 1, 1) [000127] ------------ +--* LCL_VAR int V14 tmp5 u:2 (last use) $182
N003 ( 1, 1) [000152] ------------ \--* CNS_INT int 2 $42
---------
***** BB01, STMT00015(before)
N012 ( 22, 17) [000069] ------------ * RETURN int
N011 ( 21, 16) [000068] ------------ \--* ADD int
N009 ( 17, 13) [000066] ------------ +--* ADD int
N007 ( 13, 10) [000064] ------------ | +--* ADD int
N005 ( 9, 7) [000062] ------------ | | +--* ADD int
N003 ( 5, 4) [000060] ------------ | | | +--* ADD int
N001 ( 1, 1) [000012] ------------ | | | | +--* LCL_VAR int V10 tmp1 u:2 (last use)
N002 ( 3, 2) [000059] ------------ | | | | \--* LCL_VAR int V03 loc0 u:2 (last use)
N004 ( 3, 2) [000061] ------------ | | | \--* LCL_VAR int V04 loc1 u:2 (last use)
N006 ( 3, 2) [000063] ------------ | | \--* LCL_VAR int V05 loc2 u:2 (last use)
N008 ( 3, 2) [000065] ------------ | \--* LCL_VAR int V06 loc3 u:2 (last use)
N010 ( 3, 2) [000067] ------------ \--* LCL_VAR int V07 loc4 u:2 (last use)
N001 [000012] LCL_VAR V10 tmp1 u:2 (last use) => $143 {143}
N002 [000059] LCL_VAR V03 loc0 u:2 (last use) => $148 {148}
N003 [000060] ADD => $187 {ADD($143, $148)}
N004 [000061] LCL_VAR V04 loc1 u:2 (last use) => $14d {14d}
N005 [000062] ADD => $188 {ADD($14d, $187)}
N006 [000063] LCL_VAR V05 loc2 u:2 (last use) => $151 {151}
N007 [000064] ADD => $189 {ADD($151, $188)}
N008 [000065] LCL_VAR V06 loc3 u:2 (last use) => $156 {156}
N009 [000066] ADD => $18a {ADD($156, $189)}
N010 [000067] LCL_VAR V07 loc4 u:2 (last use) => $185 {DIV($183, $184)}
N011 [000068] ADD => $18b {ADD($185, $18a)}
N012 [000069] RETURN => $15c {15c}
***** BB01, STMT00015(after)
N012 ( 22, 17) [000069] ------------ * RETURN int $15c
N011 ( 21, 16) [000068] ------------ \--* ADD int $18b
N009 ( 17, 13) [000066] ------------ +--* ADD int $18a
N007 ( 13, 10) [000064] ------------ | +--* ADD int $189
N005 ( 9, 7) [000062] ------------ | | +--* ADD int $188
N003 ( 5, 4) [000060] ------------ | | | +--* ADD int $187
N001 ( 1, 1) [000012] ------------ | | | | +--* LCL_VAR int V10 tmp1 u:2 (last use) $143
N002 ( 3, 2) [000059] ------------ | | | | \--* LCL_VAR int V03 loc0 u:2 (last use) $148
N004 ( 3, 2) [000061] ------------ | | | \--* LCL_VAR int V04 loc1 u:2 (last use) $14d
N006 ( 3, 2) [000063] ------------ | | \--* LCL_VAR int V05 loc2 u:2 (last use) $151
N008 ( 3, 2) [000065] ------------ | \--* LCL_VAR int V06 loc3 u:2 (last use) $156
N010 ( 3, 2) [000067] ------------ \--* LCL_VAR int V07 loc4 u:2 (last use) $185
finish(BB01).
*************** In optVnCopyProp()
*************** In SsaBuilder::ComputeDominators(Compiler*, ...)
Copy Assertion for BB01
curSsaName stack: { }
Live vars: {V00 V01 V02} => {V00 V01 V02 V10}
Live vars: {V00 V01 V02 V10} => {V00 V01 V02 V03 V10}
Live vars: {V00 V01 V02 V03 V10} => {V00 V01 V02 V03 V08 V10}
Live vars: {V00 V01 V02 V03 V08 V10} => {V00 V01 V02 V03 V10}
Live vars: {V00 V01 V02 V03 V10} => {V00 V01 V02 V03 V04 V10}
Live vars: {V00 V01 V02 V03 V04 V10} => {V00 V01 V02 V03 V04 V10 V11}
Live vars: {V00 V01 V02 V03 V04 V10 V11} => {V00 V01 V02 V03 V04 V10}
Live vars: {V00 V01 V02 V03 V04 V10} => {V00 V01 V02 V03 V04 V05 V10}
Live vars: {V00 V01 V02 V03 V04 V05 V10} => {V00 V01 V02 V03 V04 V05 V06 V10}
Live vars: {V00 V01 V02 V03 V04 V05 V06 V10} => {V00 V02 V03 V04 V05 V06 V10}
Live vars: {V00 V02 V03 V04 V05 V06 V10} => {V00 V02 V03 V04 V05 V06 V10 V13}
Live vars: {V00 V02 V03 V04 V05 V06 V10 V13} => {V00 V02 V03 V04 V05 V06 V10}
Live vars: {V00 V02 V03 V04 V05 V06 V10} => {V00 V02 V03 V04 V05 V06 V10 V14}
Live vars: {V00 V02 V03 V04 V05 V06 V10 V14} => {V02 V03 V04 V05 V06 V10 V14}
Live vars: {V02 V03 V04 V05 V06 V10 V14} => {V03 V04 V05 V06 V10 V14}
Live vars: {V03 V04 V05 V06 V10 V14} => {V03 V04 V05 V06 V10 V14 V15}
Live vars: {V03 V04 V05 V06 V10 V14 V15} => {V03 V04 V05 V06 V10 V14}
Live vars: {V03 V04 V05 V06 V10 V14} => {V03 V04 V05 V06 V10}
Live vars: {V03 V04 V05 V06 V10} => {V03 V04 V05 V06 V07 V10}
Live vars: {V03 V04 V05 V06 V07 V10} => {V03 V04 V05 V06 V07}
Live vars: {V03 V04 V05 V06 V07} => {V04 V05 V06 V07}
Live vars: {V04 V05 V06 V07} => {V05 V06 V07}
Live vars: {V05 V06 V07} => {V06 V07}
Live vars: {V06 V07} => {V07}
Live vars: {V07} => {}
*************** In optOptimizeCSEs()
Blocks/Trees at start of optOptimizeCSE phase
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (return) i label target gcsafe newobj
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..051) (return), preds={} succs={}
***** BB01
STMT00002 (IL ???... ???)
N010 ( 19, 14) [000011] -ACXG---R--- * ASG int $143
N009 ( 1, 1) [000010] D------N---- +--* LCL_VAR int V10 tmp1 d:2 $143
N008 ( 19, 14) [000003] --CXG------- \--* CALL int Test2.DoTestImpl1 $143
N005 ( 3, 4) [000158] ------------ arg2 in r8 +--* CAST int <- ubyte <- int $180
N004 ( 2, 2) [000002] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0
N006 ( 1, 1) [000000] ------------ arg0 in rcx +--* LCL_VAR int V00 arg0 u:1 $80
N007 ( 1, 1) [000001] ------------ arg1 in rdx \--* LCL_VAR int V01 arg1 u:1 $81
***** BB01
STMT00003 (IL ???... ???)
N012 ( 26, 28) [000015] -ACXG---R--- * ASG int $148
N011 ( 3, 2) [000014] D------N---- +--* LCL_VAR int V03 loc0 d:2 $148
N010 ( 22, 25) [000008] --CXG------- \--* CALL int Test2.DoTestImpl2 $148
N006 ( 3, 4) [000162] ------------ arg3 in r9 +--* CAST int <- ubyte <- int $180
N005 ( 2, 2) [000007] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0
N007 ( 1, 1) [000005] ------------ arg1 in rdx +--* LCL_VAR int V00 arg0 u:1 $80
N008 ( 1, 1) [000006] ------------ arg2 in r8 +--* LCL_VAR int V01 arg1 u:1 $81
N009 ( 3, 10) [000009] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method $240
***** BB01
STMT00004 (IL ???...0x014)
N005 ( 9, 8) [000019] -A------R--- * ASG byte $VN.Void
N004 ( 7, 6) [000168] n------N---- +--* IND byte $40
N003 ( 3, 3) [000167] ------------ | \--* ADDR byref $2c0
N002 ( 3, 2) [000016] D------N---- | \--* LCL_VAR struct V08 loc5 d:2
N001 ( 1, 1) [000018] ------------ \--* CNS_INT int 0 $40
***** BB01
STMT00006 (IL ???... ???)
N012 ( 27, 23) [000029] -ACXG---R--- * ASG int $14d
N011 ( 3, 2) [000028] D------N---- +--* LCL_VAR int V04 loc1 d:2 $14d
N010 ( 23, 20) [000024] --CXG------- \--* CALL int Test2.DoTestImpl3 $14d
N006 ( 3, 4) [000169] ------------ arg3 in r9 +--* CAST int <- ubyte <- int $180
N005 ( 2, 2) [000023] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0
N007 ( 4, 5) [000020] ------------ arg0 in rcx +--* LCL_FLD byte V08 loc5 u:2[+0] (last use) $301
N008 ( 1, 1) [000021] ------------ arg1 in rdx +--* LCL_VAR int V00 arg0 u:1 $80
N009 ( 1, 1) [000022] ------------ arg2 in r8 \--* LCL_VAR int V01 arg1 u:1 $81
***** BB01
STMT00007 (IL ???...0x031)
N005 ( 17, 16) [000033] -AC-----R--- * ASG ref $340
N004 ( 1, 1) [000032] D------N---- +--* LCL_VAR ref V11 tmp2 d:2 $340
N003 ( 17, 16) [000031] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $340
N002 ( 3, 10) [000030] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method $241
***** BB01
STMT00010 (IL ???... ???)
N013 ( 30, 29) [000044] -ACXG---R--- * ASG int $151
N012 ( 3, 2) [000043] D------N---- +--* LCL_VAR int V05 loc2 d:2 $151
N011 ( 26, 26) [000040] --CXG------- \--* CALL int Test2.DoTestImpl4 $151
N006 ( 3, 4) [000175] ------------ arg4 out+20 +--* CAST int <- ubyte <- int $180
N005 ( 2, 2) [000039] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0
N007 ( 1, 1) [000036] ------------ arg1 in rdx +--* LCL_VAR ref V11 tmp2 u:2 (last use) $340
N008 ( 1, 1) [000037] ------------ arg2 in r8 +--* LCL_VAR int V00 arg0 u:1 $80
N009 ( 1, 1) [000038] ------------ arg3 in r9 +--* LCL_VAR int V01 arg1 u:1 $81
N010 ( 3, 10) [000041] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method $242
***** BB01
STMT00012 (IL ???... ???)
N010 ( 23, 17) [000051] -ACXG---R--- * ASG int $156
N009 ( 3, 2) [000050] D------N---- +--* LCL_VAR int V06 loc3 d:2 $156
N008 ( 19, 14) [000048] --CXG------- \--* CALL int Test2.DoTestImpl5 $156
N005 ( 3, 4) [000180] ------------ arg2 in r8 +--* CAST int <- ubyte <- int $180
N004 ( 2, 2) [000047] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0
N006 ( 1, 1) [000045] ------------ arg0 in rcx +--* LCL_VAR int V00 arg0 u:1 $80
N007 ( 1, 1) [000046] ------------ arg1 in rdx \--* LCL_VAR int V01 arg1 u:1 $81
***** BB01
STMT00027 (IL ???... ???)
N005 ( 3, 3) [000114] -A------R--- * ASG int $181
N004 ( 1, 1) [000113] D------N---- +--* LCL_VAR int V13 tmp4 d:2 $181
N003 ( 3, 3) [000140] ------------ \--* ADD int $181
N001 ( 1, 1) [000052] ------------ +--* LCL_VAR int V00 arg0 u:1 $80
N002 ( 1, 1) [000053] ------------ \--* LCL_VAR int V01 arg1 u:1 (last use) $81
***** BB01
STMT00029 (IL ???... ???)
N006 ( 8, 8) [000120] -A------R--- * ASG int $182
N005 ( 1, 1) [000119] D------N---- +--* LCL_VAR int V14 tmp5 d:2 $182
N004 ( 8, 8) [000145] ------------ \--* MUL int $182
N001 ( 1, 1) [000115] ------------ +--* LCL_VAR int V13 tmp4 u:2 (last use) $181
N003 ( 3, 4) [000186] ------------ \--* CAST int <- ubyte <- int $180
N002 ( 2, 2) [000054] ------------ \--* LCL_VAR int V02 arg2 u:1 $c0
***** BB01
STMT00033 (IL ???... ???)
N006 ( 8, 8) [000131] -A------R--- * ASG int $183
N005 ( 1, 1) [000130] D------N---- +--* LCL_VAR int V15 tmp6 d:2 $183
N004 ( 8, 8) [000150] ------------ \--* MUL int $183
N001 ( 1, 1) [000121] ------------ +--* LCL_VAR int V00 arg0 u:1 (last use) $80
N003 ( 3, 4) [000187] ------------ \--* CAST int <- ubyte <- int $180
N002 ( 2, 2) [000122] ------------ \--* LCL_VAR int V02 arg2 u:1 (last use) $c0
***** BB01
STMT00014 (IL ???... ???)
N007 ( 28, 10) [000058] -A-X----R--- * ASG int $186
N006 ( 3, 2) [000057] D------N---- +--* LCL_VAR int V07 loc4 d:2 $185
N005 ( 24, 7) [000156] ---X-------- \--* DIV int $186
N001 ( 1, 1) [000132] ------------ +--* LCL_VAR int V15 tmp6 u:2 (last use) $183
N004 ( 3, 3) [000153] ------------ \--* RSH int $184
N002 ( 1, 1) [000127] ------------ +--* LCL_VAR int V14 tmp5 u:2 (last use) $182
N003 ( 1, 1) [000152] ------------ \--* CNS_INT int 2 $42
***** BB01
STMT00015 (IL ???...0x050)
N012 ( 22, 17) [000069] ------------ * RETURN int $15c
N011 ( 21, 16) [000068] ------------ \--* ADD int $18b
N009 ( 17, 13) [000066] ------------ +--* ADD int $18a
N007 ( 13, 10) [000064] ------------ | +--* ADD int $189
N005 ( 9, 7) [000062] ------------ | | +--* ADD int $188
N003 ( 5, 4) [000060] ------------ | | | +--* ADD int $187
N001 ( 1, 1) [000012] ------------ | | | | +--* LCL_VAR int V10 tmp1 u:2 (last use) $143
N002 ( 3, 2) [000059] ------------ | | | | \--* LCL_VAR int V03 loc0 u:2 (last use) $148
N004 ( 3, 2) [000061] ------------ | | | \--* LCL_VAR int V04 loc1 u:2 (last use) $14d
N006 ( 3, 2) [000063] ------------ | | \--* LCL_VAR int V05 loc2 u:2 (last use) $151
N008 ( 3, 2) [000065] ------------ | \--* LCL_VAR int V06 loc3 u:2 (last use) $156
N010 ( 3, 2) [000067] ------------ \--* LCL_VAR int V07 loc4 u:2 (last use) $185
-------------------------------------------------------------------------------------------------------------------
*************** In optOptimizeValnumCSEs()
CSE candidate #01, vn=$180 cseMask=0000000000000001 in BB01, [cost= 3, size= 4]:
N006 ( 3, 4) CSE #01 (use)[000162] ------------ * CAST int <- ubyte <- int $180
N005 ( 2, 2) [000007] ------------ \--* LCL_VAR int V02 arg2 u:1 $c0
Blocks that generate CSE def/uses
BB01 cseGen = 0000000000000001
After performing DataFlow for ValnumCSE's
BB01 cseIn = 0000000000000000 cseOut = 0000000000000001
Labeling the CSEs with Use/Def information
BB01 [000158] Def of CSE #01 [weight=1 ]
BB01 [000162] Use of CSE #01 [weight=1 ]
BB01 [000169] Use of CSE #01 [weight=1 ]
BB01 [000175] Use of CSE #01 [weight=1 ]
BB01 [000180] Use of CSE #01 [weight=1 ]
BB01 [000186] Use of CSE #01 [weight=1 ]
BB01 [000187] Use of CSE #01 [weight=1 ]
************ Trees at start of optValnumCSE_Heuristic()
------------ BB01 [000..051) (return), preds={} succs={}
***** BB01
STMT00002 (IL ???... ???)
N010 ( 19, 14) [000011] -ACXG---R--- * ASG int $143
N009 ( 1, 1) [000010] D------N---- +--* LCL_VAR int V10 tmp1 d:2 $143
N008 ( 19, 14) [000003] --CXG------- \--* CALL int Test2.DoTestImpl1 $143
N005 ( 3, 4) CSE #01 (def)[000158] ------------ arg2 in r8 +--* CAST int <- ubyte <- int $180
N004 ( 2, 2) [000002] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0
N006 ( 1, 1) [000000] ------------ arg0 in rcx +--* LCL_VAR int V00 arg0 u:1 $80
N007 ( 1, 1) [000001] ------------ arg1 in rdx \--* LCL_VAR int V01 arg1 u:1 $81
***** BB01
STMT00003 (IL ???... ???)
N012 ( 26, 28) [000015] -ACXG---R--- * ASG int $148
N011 ( 3, 2) [000014] D------N---- +--* LCL_VAR int V03 loc0 d:2 $148
N010 ( 22, 25) [000008] --CXG------- \--* CALL int Test2.DoTestImpl2 $148
N006 ( 3, 4) CSE #01 (use)[000162] ------------ arg3 in r9 +--* CAST int <- ubyte <- int $180
N005 ( 2, 2) [000007] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0
N007 ( 1, 1) [000005] ------------ arg1 in rdx +--* LCL_VAR int V00 arg0 u:1 $80
N008 ( 1, 1) [000006] ------------ arg2 in r8 +--* LCL_VAR int V01 arg1 u:1 $81
N009 ( 3, 10) [000009] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method $240
***** BB01
STMT00004 (IL ???...0x014)
N005 ( 9, 8) [000019] -A------R--- * ASG byte $VN.Void
N004 ( 7, 6) [000168] n------N---- +--* IND byte $40
N003 ( 3, 3) [000167] ------------ | \--* ADDR byref $2c0
N002 ( 3, 2) [000016] D------N---- | \--* LCL_VAR struct V08 loc5 d:2
N001 ( 1, 1) [000018] ------------ \--* CNS_INT int 0 $40
***** BB01
STMT00006 (IL ???... ???)
N012 ( 27, 23) [000029] -ACXG---R--- * ASG int $14d
N011 ( 3, 2) [000028] D------N---- +--* LCL_VAR int V04 loc1 d:2 $14d
N010 ( 23, 20) [000024] --CXG------- \--* CALL int Test2.DoTestImpl3 $14d
N006 ( 3, 4) CSE #01 (use)[000169] ------------ arg3 in r9 +--* CAST int <- ubyte <- int $180
N005 ( 2, 2) [000023] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0
N007 ( 4, 5) [000020] ------------ arg0 in rcx +--* LCL_FLD byte V08 loc5 u:2[+0] (last use) $301
N008 ( 1, 1) [000021] ------------ arg1 in rdx +--* LCL_VAR int V00 arg0 u:1 $80
N009 ( 1, 1) [000022] ------------ arg2 in r8 \--* LCL_VAR int V01 arg1 u:1 $81
***** BB01
STMT00007 (IL ???...0x031)
N005 ( 17, 16) [000033] -AC-----R--- * ASG ref $340
N004 ( 1, 1) [000032] D------N---- +--* LCL_VAR ref V11 tmp2 d:2 $340
N003 ( 17, 16) [000031] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $340
N002 ( 3, 10) [000030] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method $241
***** BB01
STMT00010 (IL ???... ???)
N013 ( 30, 29) [000044] -ACXG---R--- * ASG int $151
N012 ( 3, 2) [000043] D------N---- +--* LCL_VAR int V05 loc2 d:2 $151
N011 ( 26, 26) [000040] --CXG------- \--* CALL int Test2.DoTestImpl4 $151
N006 ( 3, 4) CSE #01 (use)[000175] ------------ arg4 out+20 +--* CAST int <- ubyte <- int $180
N005 ( 2, 2) [000039] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0
N007 ( 1, 1) [000036] ------------ arg1 in rdx +--* LCL_VAR ref V11 tmp2 u:2 (last use) $340
N008 ( 1, 1) [000037] ------------ arg2 in r8 +--* LCL_VAR int V00 arg0 u:1 $80
N009 ( 1, 1) [000038] ------------ arg3 in r9 +--* LCL_VAR int V01 arg1 u:1 $81
N010 ( 3, 10) [000041] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method $242
***** BB01
STMT00012 (IL ???... ???)
N010 ( 23, 17) [000051] -ACXG---R--- * ASG int $156
N009 ( 3, 2) [000050] D------N---- +--* LCL_VAR int V06 loc3 d:2 $156
N008 ( 19, 14) [000048] --CXG------- \--* CALL int Test2.DoTestImpl5 $156
N005 ( 3, 4) CSE #01 (use)[000180] ------------ arg2 in r8 +--* CAST int <- ubyte <- int $180
N004 ( 2, 2) [000047] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0
N006 ( 1, 1) [000045] ------------ arg0 in rcx +--* LCL_VAR int V00 arg0 u:1 $80
N007 ( 1, 1) [000046] ------------ arg1 in rdx \--* LCL_VAR int V01 arg1 u:1 $81
***** BB01
STMT00027 (IL ???... ???)
N005 ( 3, 3) [000114] -A------R--- * ASG int $181
N004 ( 1, 1) [000113] D------N---- +--* LCL_VAR int V13 tmp4 d:2 $181
N003 ( 3, 3) [000140] ------------ \--* ADD int $181
N001 ( 1, 1) [000052] ------------ +--* LCL_VAR int V00 arg0 u:1 $80
N002 ( 1, 1) [000053] ------------ \--* LCL_VAR int V01 arg1 u:1 (last use) $81
***** BB01
STMT00029 (IL ???... ???)
N006 ( 8, 8) [000120] -A------R--- * ASG int $182
N005 ( 1, 1) [000119] D------N---- +--* LCL_VAR int V14 tmp5 d:2 $182
N004 ( 8, 8) [000145] ------------ \--* MUL int $182
N001 ( 1, 1) [000115] ------------ +--* LCL_VAR int V13 tmp4 u:2 (last use) $181
N003 ( 3, 4) CSE #01 (use)[000186] ------------ \--* CAST int <- ubyte <- int $180
N002 ( 2, 2) [000054] ------------ \--* LCL_VAR int V02 arg2 u:1 $c0
***** BB01
STMT00033 (IL ???... ???)
N006 ( 8, 8) [000131] -A------R--- * ASG int $183
N005 ( 1, 1) [000130] D------N---- +--* LCL_VAR int V15 tmp6 d:2 $183
N004 ( 8, 8) [000150] ------------ \--* MUL int $183
N001 ( 1, 1) [000121] ------------ +--* LCL_VAR int V00 arg0 u:1 (last use) $80
N003 ( 3, 4) CSE #01 (use)[000187] ------------ \--* CAST int <- ubyte <- int $180
N002 ( 2, 2) [000122] ------------ \--* LCL_VAR int V02 arg2 u:1 (last use) $c0
***** BB01
STMT00014 (IL ???... ???)
N007 ( 28, 10) [000058] -A-X----R--- * ASG int $186
N006 ( 3, 2) [000057] D------N---- +--* LCL_VAR int V07 loc4 d:2 $185
N005 ( 24, 7) [000156] ---X-------- \--* DIV int $186
N001 ( 1, 1) [000132] ------------ +--* LCL_VAR int V15 tmp6 u:2 (last use) $183
N004 ( 3, 3) [000153] ------------ \--* RSH int $184
N002 ( 1, 1) [000127] ------------ +--* LCL_VAR int V14 tmp5 u:2 (last use) $182
N003 ( 1, 1) [000152] ------------ \--* CNS_INT int 2 $42
***** BB01
STMT00015 (IL ???...0x050)
N012 ( 22, 17) [000069] ------------ * RETURN int $15c
N011 ( 21, 16) [000068] ------------ \--* ADD int $18b
N009 ( 17, 13) [000066] ------------ +--* ADD int $18a
N007 ( 13, 10) [000064] ------------ | +--* ADD int $189
N005 ( 9, 7) [000062] ------------ | | +--* ADD int $188
N003 ( 5, 4) [000060] ------------ | | | +--* ADD int $187
N001 ( 1, 1) [000012] ------------ | | | | +--* LCL_VAR int V10 tmp1 u:2 (last use) $143
N002 ( 3, 2) [000059] ------------ | | | | \--* LCL_VAR int V03 loc0 u:2 (last use) $148
N004 ( 3, 2) [000061] ------------ | | | \--* LCL_VAR int V04 loc1 u:2 (last use) $14d
N006 ( 3, 2) [000063] ------------ | | \--* LCL_VAR int V05 loc2 u:2 (last use) $151
N008 ( 3, 2) [000065] ------------ | \--* LCL_VAR int V06 loc3 u:2 (last use) $156
N010 ( 3, 2) [000067] ------------ \--* LCL_VAR int V07 loc4 u:2 (last use) $185
-------------------------------------------------------------------------------------------------------------------
Aggressive CSE Promotion cutoff is 300
Moderate CSE Promotion cutoff is 150
Framesize estimate is 0x0010
We have a small frame
Sorted CSE candidates:
CSE #01, {$180, $4 } cseMask=0000000000000001,useCnt=6: [def=100, use=600] :: N005 ( 3, 4) CSE #01 (def)[000158] ------------ * CAST int <- ubyte <- int $180
Considering CSE #01 {$180, $4 } [def=100, use=600, cost= 3] CSE Expression:
N005 ( 3, 4) CSE #01 (def)[000158] ------------ * CAST int <- ubyte <- int $180
N004 ( 2, 2) [000002] ------------ \--* LCL_VAR int V02 arg2 u:1 $c0
Aggressive CSE Promotion (800 >= 300)
cseRefCnt=800, aggressiveRefCnt=300, moderateRefCnt=150
defCnt=100, useCnt=600, cost=3, size=4
def_cost=1, use_cost=1, extra_no_cost=36, extra_yes_cost=0
CSE cost savings check (1836 >= 700) passes
Promoting CSE:
lvaGrabTemp returning 19 (V19 rat0) (a long lifetime temp) called for ValNumCSE.
CSE #01 def at [000158] replaced in BB01 with def of V19
ReMorphing args for 3.CALL:
argSlots=3, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
ArgTable for 3.CALL after fgMorphArgs:
fgArgTabEntry[arg 2 191.COMMA ubyte, 1 reg: r8, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 0 0.LCL_VAR int, 1 reg: rcx, align=1, lateArgInx=1, processed]
fgArgTabEntry[arg 1 1.LCL_VAR int, 1 reg: rdx, align=1, lateArgInx=2, processed]
optValnumCSE morphed tree:
N014 ( 26, 19) [000011] -ACXG---R--- * ASG int $143
N013 ( 1, 1) [000010] D------N---- +--* LCL_VAR int V10 tmp1 d:2 $143
N012 ( 26, 19) [000003] -ACXG------- \--* CALL int Test2.DoTestImpl1 $143
N009 ( 10, 9) [000191] -A---------- arg2 in r8 +--* COMMA int $180
N007 ( 7, 7) [000189] -A------R--- | +--* ASG int $VN.Void
N006 ( 3, 2) [000188] D------N---- | | +--* LCL_VAR int V19 cse0 $180
N005 ( 3, 4) [000158] ------------ | | \--* CAST int <- ubyte <- int $180
N004 ( 2, 2) [000002] ------------ | | \--* LCL_VAR int V02 arg2 u:1 $c0
N008 ( 3, 2) [000190] ------------ | \--* LCL_VAR int V19 cse0 $180
N010 ( 1, 1) [000000] ------------ arg0 in rcx +--* LCL_VAR int V00 arg0 u:1 $80
N011 ( 1, 1) [000001] ------------ arg1 in rdx \--* LCL_VAR int V01 arg1 u:1 $81
Working on the replacement of the CSE #01 use at [000162] in BB01
ReMorphing args for 8.CALL:
argSlots=4, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
ArgTable for 8.CALL after fgMorphArgs:
fgArgTabEntry[arg 3 192.LCL_VAR ubyte, 1 reg: r9, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 1 5.LCL_VAR int, 1 reg: rdx, align=1, lateArgInx=1, processed]
fgArgTabEntry[arg 2 6.LCL_VAR int, 1 reg: r8, align=1, lateArgInx=2, processed]
fgArgTabEntry[arg 0 9.CNS_INT long, 1 reg: rcx, align=1, lateArgInx=3, processed]
optValnumCSE morphed tree:
N011 ( 26, 26) [000015] -ACXG---R--- * ASG int $148
N010 ( 3, 2) [000014] D------N---- +--* LCL_VAR int V03 loc0 d:2 $148
N009 ( 22, 23) [000008] --CXG------- \--* CALL int Test2.DoTestImpl2 $148
N005 ( 3, 2) [000192] ------------ arg3 in r9 +--* LCL_VAR int V19 cse0 $180
N006 ( 1, 1) [000005] ------------ arg1 in rdx +--* LCL_VAR int V00 arg0 u:1 $80
N007 ( 1, 1) [000006] ------------ arg2 in r8 +--* LCL_VAR int V01 arg1 u:1 $81
N008 ( 3, 10) [000009] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method $240
Working on the replacement of the CSE #01 use at [000169] in BB01
ReMorphing args for 24.CALL:
argSlots=4, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
ArgTable for 24.CALL after fgMorphArgs:
fgArgTabEntry[arg 3 193.LCL_VAR ubyte, 1 reg: r9, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 0 20.LCL_FLD byte, 1 reg: rcx, align=1, lateArgInx=1, processed, isStruct]
fgArgTabEntry[arg 1 21.LCL_VAR int, 1 reg: rdx, align=1, lateArgInx=2, processed]
fgArgTabEntry[arg 2 22.LCL_VAR int, 1 reg: r8, align=1, lateArgInx=3, processed]
optValnumCSE morphed tree:
N011 ( 27, 21) [000029] -ACXG---R--- * ASG int $14d
N010 ( 3, 2) [000028] D------N---- +--* LCL_VAR int V04 loc1 d:2 $14d
N009 ( 23, 18) [000024] --CXG------- \--* CALL int Test2.DoTestImpl3 $14d
N005 ( 3, 2) [000193] ------------ arg3 in r9 +--* LCL_VAR int V19 cse0 $180
N006 ( 4, 5) [000020] ------------ arg0 in rcx +--* LCL_FLD byte V08 loc5 u:2[+0] (last use) $301
N007 ( 1, 1) [000021] ------------ arg1 in rdx +--* LCL_VAR int V00 arg0 u:1 $80
N008 ( 1, 1) [000022] ------------ arg2 in r8 \--* LCL_VAR int V01 arg1 u:1 $81
Working on the replacement of the CSE #01 use at [000175] in BB01
ReMorphing args for 40.CALL:
argSlots=5, preallocatedArgCount=5, nextSlotNum=5, outgoingArgSpaceSize=40
ArgTable for 40.CALL after fgMorphArgs:
fgArgTabEntry[arg 4 194.LCL_VAR ubyte, numSlots=1, slotNum=4, align=1, processed]
fgArgTabEntry[arg 1 36.LCL_VAR ref, 1 reg: rdx, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 2 37.LCL_VAR int, 1 reg: r8, align=1, lateArgInx=1, processed]
fgArgTabEntry[arg 3 38.LCL_VAR int, 1 reg: r9, align=1, lateArgInx=2, processed]
fgArgTabEntry[arg 0 41.CNS_INT long, 1 reg: rcx, align=1, lateArgInx=3, processed]
optValnumCSE morphed tree:
N012 ( 30, 27) [000044] -ACXG---R--- * ASG int $151
N011 ( 3, 2) [000043] D------N---- +--* LCL_VAR int V05 loc2 d:2 $151
N010 ( 26, 24) [000040] --CXG------- \--* CALL int Test2.DoTestImpl4 $151
N005 ( 3, 2) [000194] ------------ arg4 out+20 +--* LCL_VAR int V19 cse0 $180
N006 ( 1, 1) [000036] ------------ arg1 in rdx +--* LCL_VAR ref V11 tmp2 u:2 (last use) $340
N007 ( 1, 1) [000037] ------------ arg2 in r8 +--* LCL_VAR int V00 arg0 u:1 $80
N008 ( 1, 1) [000038] ------------ arg3 in r9 +--* LCL_VAR int V01 arg1 u:1 $81
N009 ( 3, 10) [000041] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method $242
Working on the replacement of the CSE #01 use at [000180] in BB01
ReMorphing args for 48.CALL:
argSlots=3, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
ArgTable for 48.CALL after fgMorphArgs:
fgArgTabEntry[arg 2 195.LCL_VAR ubyte, 1 reg: r8, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 0 45.LCL_VAR int, 1 reg: rcx, align=1, lateArgInx=1, processed]
fgArgTabEntry[arg 1 46.LCL_VAR int, 1 reg: rdx, align=1, lateArgInx=2, processed]
optValnumCSE morphed tree:
N009 ( 23, 15) [000051] -ACXG---R--- * ASG int $156
N008 ( 3, 2) [000050] D------N---- +--* LCL_VAR int V06 loc3 d:2 $156
N007 ( 19, 12) [000048] --CXG------- \--* CALL int Test2.DoTestImpl5 $156
N004 ( 3, 2) [000195] ------------ arg2 in r8 +--* LCL_VAR int V19 cse0 $180
N005 ( 1, 1) [000045] ------------ arg0 in rcx +--* LCL_VAR int V00 arg0 u:1 $80
N006 ( 1, 1) [000046] ------------ arg1 in rdx \--* LCL_VAR int V01 arg1 u:1 $81
Working on the replacement of the CSE #01 use at [000186] in BB01
optValnumCSE morphed tree:
N005 ( 8, 6) [000120] -A------R--- * ASG int $182
N004 ( 1, 1) [000119] D------N---- +--* LCL_VAR int V14 tmp5 d:2 $182
N003 ( 8, 6) [000145] ------------ \--* MUL int $182
N001 ( 1, 1) [000115] ------------ +--* LCL_VAR int V13 tmp4 u:2 (last use) $181
N002 ( 3, 2) [000196] ------------ \--* LCL_VAR int V19 cse0 $180
Working on the replacement of the CSE #01 use at [000187] in BB01
optValnumCSE morphed tree:
N005 ( 8, 6) [000131] -A------R--- * ASG int $183
N004 ( 1, 1) [000130] D------N---- +--* LCL_VAR int V15 tmp6 d:2 $183
N003 ( 8, 6) [000150] ------------ \--* MUL int $183
N001 ( 1, 1) [000121] ------------ +--* LCL_VAR int V00 arg0 u:1 (last use) $80
N002 ( 3, 2) [000197] ------------ \--* LCL_VAR int V19 cse0 $180
*************** In optAssertionPropMain()
Blocks/Trees at start of phase
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (return) i label target gcsafe newobj
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..051) (return), preds={} succs={}
***** BB01
STMT00002 (IL ???... ???)
N014 ( 26, 19) [000011] -ACXG---R--- * ASG int $143
N013 ( 1, 1) [000010] D------N---- +--* LCL_VAR int V10 tmp1 d:2 $143
N012 ( 26, 19) [000003] -ACXG------- \--* CALL int Test2.DoTestImpl1 $143
N009 ( 10, 9) [000191] -A---------- arg2 in r8 +--* COMMA int $180
N007 ( 7, 7) [000189] -A------R--- | +--* ASG int $VN.Void
N006 ( 3, 2) [000188] D------N---- | | +--* LCL_VAR int V19 cse0 $180
N005 ( 3, 4) [000158] ------------ | | \--* CAST int <- ubyte <- int $180
N004 ( 2, 2) [000002] ------------ | | \--* LCL_VAR int V02 arg2 u:1 $c0
N008 ( 3, 2) [000190] ------------ | \--* LCL_VAR int V19 cse0 $180
N010 ( 1, 1) [000000] ------------ arg0 in rcx +--* LCL_VAR int V00 arg0 u:1 $80
N011 ( 1, 1) [000001] ------------ arg1 in rdx \--* LCL_VAR int V01 arg1 u:1 $81
***** BB01
STMT00003 (IL ???... ???)
N011 ( 26, 26) [000015] -ACXG---R--- * ASG int $148
N010 ( 3, 2) [000014] D------N---- +--* LCL_VAR int V03 loc0 d:2 $148
N009 ( 22, 23) [000008] --CXG------- \--* CALL int Test2.DoTestImpl2 $148
N005 ( 3, 2) [000192] ------------ arg3 in r9 +--* LCL_VAR int V19 cse0 $180
N006 ( 1, 1) [000005] ------------ arg1 in rdx +--* LCL_VAR int V00 arg0 u:1 $80
N007 ( 1, 1) [000006] ------------ arg2 in r8 +--* LCL_VAR int V01 arg1 u:1 $81
N008 ( 3, 10) [000009] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method $240
***** BB01
STMT00004 (IL ???...0x014)
N005 ( 9, 8) [000019] -A------R--- * ASG byte $VN.Void
N004 ( 7, 6) [000168] n------N---- +--* IND byte $40
N003 ( 3, 3) [000167] ------------ | \--* ADDR byref $2c0
N002 ( 3, 2) [000016] D------N---- | \--* LCL_VAR struct V08 loc5 d:2
N001 ( 1, 1) [000018] ------------ \--* CNS_INT int 0 $40
***** BB01
STMT00006 (IL ???... ???)
N011 ( 27, 21) [000029] -ACXG---R--- * ASG int $14d
N010 ( 3, 2) [000028] D------N---- +--* LCL_VAR int V04 loc1 d:2 $14d
N009 ( 23, 18) [000024] --CXG------- \--* CALL int Test2.DoTestImpl3 $14d
N005 ( 3, 2) [000193] ------------ arg3 in r9 +--* LCL_VAR int V19 cse0 $180
N006 ( 4, 5) [000020] ------------ arg0 in rcx +--* LCL_FLD byte V08 loc5 u:2[+0] (last use) $301
N007 ( 1, 1) [000021] ------------ arg1 in rdx +--* LCL_VAR int V00 arg0 u:1 $80
N008 ( 1, 1) [000022] ------------ arg2 in r8 \--* LCL_VAR int V01 arg1 u:1 $81
***** BB01
STMT00007 (IL ???...0x031)
N005 ( 17, 16) [000033] -AC-----R--- * ASG ref $340
N004 ( 1, 1) [000032] D------N---- +--* LCL_VAR ref V11 tmp2 d:2 $340
N003 ( 17, 16) [000031] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $340
N002 ( 3, 10) [000030] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method $241
***** BB01
STMT00010 (IL ???... ???)
N012 ( 30, 27) [000044] -ACXG---R--- * ASG int $151
N011 ( 3, 2) [000043] D------N---- +--* LCL_VAR int V05 loc2 d:2 $151
N010 ( 26, 24) [000040] --CXG------- \--* CALL int Test2.DoTestImpl4 $151
N005 ( 3, 2) [000194] ------------ arg4 out+20 +--* LCL_VAR int V19 cse0 $180
N006 ( 1, 1) [000036] ------------ arg1 in rdx +--* LCL_VAR ref V11 tmp2 u:2 (last use) $340
N007 ( 1, 1) [000037] ------------ arg2 in r8 +--* LCL_VAR int V00 arg0 u:1 $80
N008 ( 1, 1) [000038] ------------ arg3 in r9 +--* LCL_VAR int V01 arg1 u:1 $81
N009 ( 3, 10) [000041] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method $242
***** BB01
STMT00012 (IL ???... ???)
N009 ( 23, 15) [000051] -ACXG---R--- * ASG int $156
N008 ( 3, 2) [000050] D------N---- +--* LCL_VAR int V06 loc3 d:2 $156
N007 ( 19, 12) [000048] --CXG------- \--* CALL int Test2.DoTestImpl5 $156
N004 ( 3, 2) [000195] ------------ arg2 in r8 +--* LCL_VAR int V19 cse0 $180
N005 ( 1, 1) [000045] ------------ arg0 in rcx +--* LCL_VAR int V00 arg0 u:1 $80
N006 ( 1, 1) [000046] ------------ arg1 in rdx \--* LCL_VAR int V01 arg1 u:1 $81
***** BB01
STMT00027 (IL ???... ???)
N005 ( 3, 3) [000114] -A------R--- * ASG int $181
N004 ( 1, 1) [000113] D------N---- +--* LCL_VAR int V13 tmp4 d:2 $181
N003 ( 3, 3) [000140] ------------ \--* ADD int $181
N001 ( 1, 1) [000052] ------------ +--* LCL_VAR int V00 arg0 u:1 $80
N002 ( 1, 1) [000053] ------------ \--* LCL_VAR int V01 arg1 u:1 (last use) $81
***** BB01
STMT00029 (IL ???... ???)
N005 ( 8, 6) [000120] -A------R--- * ASG int $182
N004 ( 1, 1) [000119] D------N---- +--* LCL_VAR int V14 tmp5 d:2 $182
N003 ( 8, 6) [000145] ------------ \--* MUL int $182
N001 ( 1, 1) [000115] ------------ +--* LCL_VAR int V13 tmp4 u:2 (last use) $181
N002 ( 3, 2) [000196] ------------ \--* LCL_VAR int V19 cse0 $180
***** BB01
STMT00033 (IL ???... ???)
N005 ( 8, 6) [000131] -A------R--- * ASG int $183
N004 ( 1, 1) [000130] D------N---- +--* LCL_VAR int V15 tmp6 d:2 $183
N003 ( 8, 6) [000150] ------------ \--* MUL int $183
N001 ( 1, 1) [000121] ------------ +--* LCL_VAR int V00 arg0 u:1 (last use) $80
N002 ( 3, 2) [000197] ------------ \--* LCL_VAR int V19 cse0 $180
***** BB01
STMT00014 (IL ???... ???)
N007 ( 28, 10) [000058] -A-X----R--- * ASG int $186
N006 ( 3, 2) [000057] D------N---- +--* LCL_VAR int V07 loc4 d:2 $185
N005 ( 24, 7) [000156] ---X-------- \--* DIV int $186
N001 ( 1, 1) [000132] ------------ +--* LCL_VAR int V15 tmp6 u:2 (last use) $183
N004 ( 3, 3) [000153] ------------ \--* RSH int $184
N002 ( 1, 1) [000127] ------------ +--* LCL_VAR int V14 tmp5 u:2 (last use) $182
N003 ( 1, 1) [000152] ------------ \--* CNS_INT int 2 $42
***** BB01
STMT00015 (IL ???...0x050)
N012 ( 22, 17) [000069] ------------ * RETURN int $15c
N011 ( 21, 16) [000068] ------------ \--* ADD int $18b
N009 ( 17, 13) [000066] ------------ +--* ADD int $18a
N007 ( 13, 10) [000064] ------------ | +--* ADD int $189
N005 ( 9, 7) [000062] ------------ | | +--* ADD int $188
N003 ( 5, 4) [000060] ------------ | | | +--* ADD int $187
N001 ( 1, 1) [000012] ------------ | | | | +--* LCL_VAR int V10 tmp1 u:2 (last use) $143
N002 ( 3, 2) [000059] ------------ | | | | \--* LCL_VAR int V03 loc0 u:2 (last use) $148
N004 ( 3, 2) [000061] ------------ | | | \--* LCL_VAR int V04 loc1 u:2 (last use) $14d
N006 ( 3, 2) [000063] ------------ | | \--* LCL_VAR int V05 loc2 u:2 (last use) $151
N008 ( 3, 2) [000065] ------------ | \--* LCL_VAR int V06 loc3 u:2 (last use) $156
N010 ( 3, 2) [000067] ------------ \--* LCL_VAR int V07 loc4 u:2 (last use) $185
-------------------------------------------------------------------------------------------------------------------
GenTreeNode creates assertion:
N005 ( 3, 4) [000158] ------------ * CAST int <- ubyte <- int $180
In BB01 New Global Subrange Assertion: (192, 0) ($c0,$0) V02.01 in [0..255] index=#01, mask=0000000000000001
BB01 valueGen = 0000000000000000AssertionPropCallback::StartMerge: BB01 in -> 0000000000000000
AssertionPropCallback::EndMerge : BB01 in -> 0000000000000000
AssertionPropCallback::Changed : BB01 before out -> 0000000000000001; after out -> 0000000000000000;
jumpDest before out -> 0000000000000001; jumpDest after out -> 0000000000000000;
BB01 valueIn = 0000000000000000 valueOut = 0000000000000000
Propagating 0000000000000000 assertions for BB01, stmt STMT00002, tree [000160], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00002, tree [000161], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00002, tree [000159], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00002, tree [000002], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00002, tree [000158], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00002, tree [000188], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00002, tree [000189], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00002, tree [000190], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00002, tree [000191], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00002, tree [000000], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00002, tree [000001], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00002, tree [000003], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00002, tree [000010], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00002, tree [000011], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00003, tree [000166], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00003, tree [000164], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00003, tree [000165], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00003, tree [000163], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00003, tree [000192], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00003, tree [000005], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00003, tree [000006], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00003, tree [000009], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00003, tree [000008], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00003, tree [000014], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00003, tree [000015], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00004, tree [000018], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00004, tree [000016], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00004, tree [000167], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00004, tree [000168], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00004, tree [000019], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00006, tree [000171], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00006, tree [000172], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00006, tree [000173], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00006, tree [000170], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00006, tree [000193], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00006, tree [000020], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00006, tree [000021], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00006, tree [000022], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00006, tree [000024], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00006, tree [000028], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00006, tree [000029], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00007, tree [000174], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00007, tree [000030], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00007, tree [000031], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00007, tree [000032], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00007, tree [000033], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00010, tree [000179], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00010, tree [000176], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00010, tree [000177], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00010, tree [000178], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00010, tree [000194], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00010, tree [000036], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00010, tree [000037], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00010, tree [000038], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00010, tree [000041], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00010, tree [000040], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00010, tree [000043], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00010, tree [000044], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00012, tree [000182], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00012, tree [000183], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00012, tree [000181], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00012, tree [000195], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00012, tree [000045], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00012, tree [000046], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00012, tree [000048], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00012, tree [000050], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00012, tree [000051], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00027, tree [000052], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00027, tree [000053], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00027, tree [000140], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00027, tree [000113], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00027, tree [000114], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00029, tree [000115], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00029, tree [000196], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00029, tree [000145], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00029, tree [000119], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00029, tree [000120], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00033, tree [000121], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00033, tree [000197], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00033, tree [000150], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00033, tree [000130], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00033, tree [000131], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00014, tree [000132], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00014, tree [000127], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00014, tree [000152], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00014, tree [000153], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00014, tree [000156], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00014, tree [000057], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00014, tree [000058], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00015, tree [000012], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00015, tree [000059], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00015, tree [000060], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00015, tree [000061], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00015, tree [000062], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00015, tree [000063], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00015, tree [000064], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00015, tree [000065], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00015, tree [000066], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00015, tree [000067], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00015, tree [000068], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt STMT00015, tree [000069], tree -> 0
*************** In fgDebugCheckBBlist
*************** In OptimizeRangeChecks()
Blocks/trees before phase
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (return) i label target gcsafe newobj
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..051) (return), preds={} succs={}
***** BB01
STMT00002 (IL ???... ???)
N014 ( 26, 19) [000011] -ACXG---R--- * ASG int $143
N013 ( 1, 1) [000010] D------N---- +--* LCL_VAR int V10 tmp1 d:2 $143
N012 ( 26, 19) [000003] -ACXG------- \--* CALL int Test2.DoTestImpl1 $143
N009 ( 10, 9) [000191] -A---------- arg2 in r8 +--* COMMA int $180
N007 ( 7, 7) [000189] -A------R--- | +--* ASG int $VN.Void
N006 ( 3, 2) [000188] D------N---- | | +--* LCL_VAR int V19 cse0 $180
N005 ( 3, 4) [000158] ------------ | | \--* CAST int <- ubyte <- int $180
N004 ( 2, 2) [000002] ------------ | | \--* LCL_VAR int V02 arg2 u:1 $c0
N008 ( 3, 2) [000190] ------------ | \--* LCL_VAR int V19 cse0 $180
N010 ( 1, 1) [000000] ------------ arg0 in rcx +--* LCL_VAR int V00 arg0 u:1 $80
N011 ( 1, 1) [000001] ------------ arg1 in rdx \--* LCL_VAR int V01 arg1 u:1 $81
***** BB01
STMT00003 (IL ???... ???)
N011 ( 26, 26) [000015] -ACXG---R--- * ASG int $148
N010 ( 3, 2) [000014] D------N---- +--* LCL_VAR int V03 loc0 d:2 $148
N009 ( 22, 23) [000008] --CXG------- \--* CALL int Test2.DoTestImpl2 $148
N005 ( 3, 2) [000192] ------------ arg3 in r9 +--* LCL_VAR int V19 cse0 $180
N006 ( 1, 1) [000005] ------------ arg1 in rdx +--* LCL_VAR int V00 arg0 u:1 $80
N007 ( 1, 1) [000006] ------------ arg2 in r8 +--* LCL_VAR int V01 arg1 u:1 $81
N008 ( 3, 10) [000009] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method $240
***** BB01
STMT00004 (IL ???...0x014)
N005 ( 9, 8) [000019] -A------R--- * ASG byte $VN.Void
N004 ( 7, 6) [000168] n------N---- +--* IND byte $40
N003 ( 3, 3) [000167] ------------ | \--* ADDR byref $2c0
N002 ( 3, 2) [000016] D------N---- | \--* LCL_VAR struct V08 loc5 d:2
N001 ( 1, 1) [000018] ------------ \--* CNS_INT int 0 $40
***** BB01
STMT00006 (IL ???... ???)
N011 ( 27, 21) [000029] -ACXG---R--- * ASG int $14d
N010 ( 3, 2) [000028] D------N---- +--* LCL_VAR int V04 loc1 d:2 $14d
N009 ( 23, 18) [000024] --CXG------- \--* CALL int Test2.DoTestImpl3 $14d
N005 ( 3, 2) [000193] ------------ arg3 in r9 +--* LCL_VAR int V19 cse0 $180
N006 ( 4, 5) [000020] ------------ arg0 in rcx +--* LCL_FLD byte V08 loc5 u:2[+0] (last use) $301
N007 ( 1, 1) [000021] ------------ arg1 in rdx +--* LCL_VAR int V00 arg0 u:1 $80
N008 ( 1, 1) [000022] ------------ arg2 in r8 \--* LCL_VAR int V01 arg1 u:1 $81
***** BB01
STMT00007 (IL ???...0x031)
N005 ( 17, 16) [000033] -AC-----R--- * ASG ref $340
N004 ( 1, 1) [000032] D------N---- +--* LCL_VAR ref V11 tmp2 d:2 $340
N003 ( 17, 16) [000031] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $340
N002 ( 3, 10) [000030] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method $241
***** BB01
STMT00010 (IL ???... ???)
N012 ( 30, 27) [000044] -ACXG---R--- * ASG int $151
N011 ( 3, 2) [000043] D------N---- +--* LCL_VAR int V05 loc2 d:2 $151
N010 ( 26, 24) [000040] --CXG------- \--* CALL int Test2.DoTestImpl4 $151
N005 ( 3, 2) [000194] ------------ arg4 out+20 +--* LCL_VAR int V19 cse0 $180
N006 ( 1, 1) [000036] ------------ arg1 in rdx +--* LCL_VAR ref V11 tmp2 u:2 (last use) $340
N007 ( 1, 1) [000037] ------------ arg2 in r8 +--* LCL_VAR int V00 arg0 u:1 $80
N008 ( 1, 1) [000038] ------------ arg3 in r9 +--* LCL_VAR int V01 arg1 u:1 $81
N009 ( 3, 10) [000041] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method $242
***** BB01
STMT00012 (IL ???... ???)
N009 ( 23, 15) [000051] -ACXG---R--- * ASG int $156
N008 ( 3, 2) [000050] D------N---- +--* LCL_VAR int V06 loc3 d:2 $156
N007 ( 19, 12) [000048] --CXG------- \--* CALL int Test2.DoTestImpl5 $156
N004 ( 3, 2) [000195] ------------ arg2 in r8 +--* LCL_VAR int V19 cse0 $180
N005 ( 1, 1) [000045] ------------ arg0 in rcx +--* LCL_VAR int V00 arg0 u:1 $80
N006 ( 1, 1) [000046] ------------ arg1 in rdx \--* LCL_VAR int V01 arg1 u:1 $81
***** BB01
STMT00027 (IL ???... ???)
N005 ( 3, 3) [000114] -A------R--- * ASG int $181
N004 ( 1, 1) [000113] D------N---- +--* LCL_VAR int V13 tmp4 d:2 $181
N003 ( 3, 3) [000140] ------------ \--* ADD int $181
N001 ( 1, 1) [000052] ------------ +--* LCL_VAR int V00 arg0 u:1 $80
N002 ( 1, 1) [000053] ------------ \--* LCL_VAR int V01 arg1 u:1 (last use) $81
***** BB01
STMT00029 (IL ???... ???)
N005 ( 8, 6) [000120] -A------R--- * ASG int $182
N004 ( 1, 1) [000119] D------N---- +--* LCL_VAR int V14 tmp5 d:2 $182
N003 ( 8, 6) [000145] ------------ \--* MUL int $182
N001 ( 1, 1) [000115] ------------ +--* LCL_VAR int V13 tmp4 u:2 (last use) $181
N002 ( 3, 2) [000196] ------------ \--* LCL_VAR int V19 cse0 $180
***** BB01
STMT00033 (IL ???... ???)
N005 ( 8, 6) [000131] -A------R--- * ASG int $183
N004 ( 1, 1) [000130] D------N---- +--* LCL_VAR int V15 tmp6 d:2 $183
N003 ( 8, 6) [000150] ------------ \--* MUL int $183
N001 ( 1, 1) [000121] ------------ +--* LCL_VAR int V00 arg0 u:1 (last use) $80
N002 ( 3, 2) [000197] ------------ \--* LCL_VAR int V19 cse0 $180
***** BB01
STMT00014 (IL ???... ???)
N007 ( 28, 10) [000058] -A-X----R--- * ASG int $186
N006 ( 3, 2) [000057] D------N---- +--* LCL_VAR int V07 loc4 d:2 $185
N005 ( 24, 7) [000156] ---X-------- \--* DIV int $186
N001 ( 1, 1) [000132] ------------ +--* LCL_VAR int V15 tmp6 u:2 (last use) $183
N004 ( 3, 3) [000153] ------------ \--* RSH int $184
N002 ( 1, 1) [000127] ------------ +--* LCL_VAR int V14 tmp5 u:2 (last use) $182
N003 ( 1, 1) [000152] ------------ \--* CNS_INT int 2 $42
***** BB01
STMT00015 (IL ???...0x050)
N012 ( 22, 17) [000069] ------------ * RETURN int $15c
N011 ( 21, 16) [000068] ------------ \--* ADD int $18b
N009 ( 17, 13) [000066] ------------ +--* ADD int $18a
N007 ( 13, 10) [000064] ------------ | +--* ADD int $189
N005 ( 9, 7) [000062] ------------ | | +--* ADD int $188
N003 ( 5, 4) [000060] ------------ | | | +--* ADD int $187
N001 ( 1, 1) [000012] ------------ | | | | +--* LCL_VAR int V10 tmp1 u:2 (last use) $143
N002 ( 3, 2) [000059] ------------ | | | | \--* LCL_VAR int V03 loc0 u:2 (last use) $148
N004 ( 3, 2) [000061] ------------ | | | \--* LCL_VAR int V04 loc1 u:2 (last use) $14d
N006 ( 3, 2) [000063] ------------ | | \--* LCL_VAR int V05 loc2 u:2 (last use) $151
N008 ( 3, 2) [000065] ------------ | \--* LCL_VAR int V06 loc3 u:2 (last use) $156
N010 ( 3, 2) [000067] ------------ \--* LCL_VAR int V07 loc4 u:2 (last use) $185
-------------------------------------------------------------------------------------------------------------------
*************** 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 lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (return) i label target gcsafe newobj
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..051) (return), preds={} succs={}
***** BB01
STMT00002 (IL ???... ???)
N014 ( 26, 19) [000011] -ACXG---R--- * ASG int $143
N013 ( 1, 1) [000010] D------N---- +--* LCL_VAR int V10 tmp1 d:2 $143
N012 ( 26, 19) [000003] -ACXG------- \--* CALL int Test2.DoTestImpl1 $143
N009 ( 10, 9) [000191] -A---------- arg2 in r8 +--* COMMA int $180
N007 ( 7, 7) [000189] -A------R--- | +--* ASG int $VN.Void
N006 ( 3, 2) [000188] D------N---- | | +--* LCL_VAR int V19 cse0 $180
N005 ( 3, 4) [000158] ------------ | | \--* CAST int <- ubyte <- int $180
N004 ( 2, 2) [000002] ------------ | | \--* LCL_VAR int V02 arg2 u:1 $c0
N008 ( 3, 2) [000190] ------------ | \--* LCL_VAR int V19 cse0 $180
N010 ( 1, 1) [000000] ------------ arg0 in rcx +--* LCL_VAR int V00 arg0 u:1 $80
N011 ( 1, 1) [000001] ------------ arg1 in rdx \--* LCL_VAR int V01 arg1 u:1 $81
***** BB01
STMT00003 (IL ???... ???)
N011 ( 26, 26) [000015] -ACXG---R--- * ASG int $148
N010 ( 3, 2) [000014] D------N---- +--* LCL_VAR int V03 loc0 d:2 $148
N009 ( 22, 23) [000008] --CXG------- \--* CALL int Test2.DoTestImpl2 $148
N005 ( 3, 2) [000192] ------------ arg3 in r9 +--* LCL_VAR int V19 cse0 $180
N006 ( 1, 1) [000005] ------------ arg1 in rdx +--* LCL_VAR int V00 arg0 u:1 $80
N007 ( 1, 1) [000006] ------------ arg2 in r8 +--* LCL_VAR int V01 arg1 u:1 $81
N008 ( 3, 10) [000009] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method $240
***** BB01
STMT00004 (IL ???...0x014)
N005 ( 9, 8) [000019] -A------R--- * ASG byte $VN.Void
N004 ( 7, 6) [000168] n------N---- +--* IND byte $40
N003 ( 3, 3) [000167] ------------ | \--* ADDR byref $2c0
N002 ( 3, 2) [000016] D------N---- | \--* LCL_VAR struct V08 loc5 d:2
N001 ( 1, 1) [000018] ------------ \--* CNS_INT int 0 $40
***** BB01
STMT00006 (IL ???... ???)
N011 ( 27, 21) [000029] -ACXG---R--- * ASG int $14d
N010 ( 3, 2) [000028] D------N---- +--* LCL_VAR int V04 loc1 d:2 $14d
N009 ( 23, 18) [000024] --CXG------- \--* CALL int Test2.DoTestImpl3 $14d
N005 ( 3, 2) [000193] ------------ arg3 in r9 +--* LCL_VAR int V19 cse0 $180
N006 ( 4, 5) [000020] ------------ arg0 in rcx +--* LCL_FLD byte V08 loc5 u:2[+0] (last use) $301
N007 ( 1, 1) [000021] ------------ arg1 in rdx +--* LCL_VAR int V00 arg0 u:1 $80
N008 ( 1, 1) [000022] ------------ arg2 in r8 \--* LCL_VAR int V01 arg1 u:1 $81
***** BB01
STMT00007 (IL ???...0x031)
N005 ( 17, 16) [000033] -AC-----R--- * ASG ref $340
N004 ( 1, 1) [000032] D------N---- +--* LCL_VAR ref V11 tmp2 d:2 $340
N003 ( 17, 16) [000031] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $340
N002 ( 3, 10) [000030] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method $241
***** BB01
STMT00010 (IL ???... ???)
N012 ( 30, 27) [000044] -ACXG---R--- * ASG int $151
N011 ( 3, 2) [000043] D------N---- +--* LCL_VAR int V05 loc2 d:2 $151
N010 ( 26, 24) [000040] --CXG------- \--* CALL int Test2.DoTestImpl4 $151
N005 ( 3, 2) [000194] ------------ arg4 out+20 +--* LCL_VAR int V19 cse0 $180
N006 ( 1, 1) [000036] ------------ arg1 in rdx +--* LCL_VAR ref V11 tmp2 u:2 (last use) $340
N007 ( 1, 1) [000037] ------------ arg2 in r8 +--* LCL_VAR int V00 arg0 u:1 $80
N008 ( 1, 1) [000038] ------------ arg3 in r9 +--* LCL_VAR int V01 arg1 u:1 $81
N009 ( 3, 10) [000041] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e method $242
***** BB01
STMT00012 (IL ???... ???)
N009 ( 23, 15) [000051] -ACXG---R--- * ASG int $156
N008 ( 3, 2) [000050] D------N---- +--* LCL_VAR int V06 loc3 d:2 $156
N007 ( 19, 12) [000048] --CXG------- \--* CALL int Test2.DoTestImpl5 $156
N004 ( 3, 2) [000195] ------------ arg2 in r8 +--* LCL_VAR int V19 cse0 $180
N005 ( 1, 1) [000045] ------------ arg0 in rcx +--* LCL_VAR int V00 arg0 u:1 $80
N006 ( 1, 1) [000046] ------------ arg1 in rdx \--* LCL_VAR int V01 arg1 u:1 $81
***** BB01
STMT00027 (IL ???... ???)
N005 ( 3, 3) [000114] -A------R--- * ASG int $181
N004 ( 1, 1) [000113] D------N---- +--* LCL_VAR int V13 tmp4 d:2 $181
N003 ( 3, 3) [000140] ------------ \--* ADD int $181
N001 ( 1, 1) [000052] ------------ +--* LCL_VAR int V00 arg0 u:1 $80
N002 ( 1, 1) [000053] ------------ \--* LCL_VAR int V01 arg1 u:1 (last use) $81
***** BB01
STMT00029 (IL ???... ???)
N005 ( 8, 6) [000120] -A------R--- * ASG int $182
N004 ( 1, 1) [000119] D------N---- +--* LCL_VAR int V14 tmp5 d:2 $182
N003 ( 8, 6) [000145] ------------ \--* MUL int $182
N001 ( 1, 1) [000115] ------------ +--* LCL_VAR int V13 tmp4 u:2 (last use) $181
N002 ( 3, 2) [000196] ------------ \--* LCL_VAR int V19 cse0 $180
***** BB01
STMT00033 (IL ???... ???)
N005 ( 8, 6) [000131] -A------R--- * ASG int $183
N004 ( 1, 1) [000130] D------N---- +--* LCL_VAR int V15 tmp6 d:2 $183
N003 ( 8, 6) [000150] ------------ \--* MUL int $183
N001 ( 1, 1) [000121] ------------ +--* LCL_VAR int V00 arg0 u:1 (last use) $80
N002 ( 3, 2) [000197] ------------ \--* LCL_VAR int V19 cse0 $180
***** BB01
STMT00014 (IL ???... ???)
N007 ( 28, 10) [000058] -A-X----R--- * ASG int $186
N006 ( 3, 2) [000057] D------N---- +--* LCL_VAR int V07 loc4 d:2 $185
N005 ( 24, 7) [000156] ---X-------- \--* DIV int $186
N001 ( 1, 1) [000132] ------------ +--* LCL_VAR int V15 tmp6 u:2 (last use) $183
N004 ( 3, 3) [000153] ------------ \--* RSH int $184
N002 ( 1, 1) [000127] ------------ +--* LCL_VAR int V14 tmp5 u:2 (last use) $182
N003 ( 1, 1) [000152] ------------ \--* CNS_INT int 2 $42
***** BB01
STMT00015 (IL ???...0x050)
N012 ( 22, 17) [000069] ------------ * RETURN int $15c
N011 ( 21, 16) [000068] ------------ \--* ADD int $18b
N009 ( 17, 13) [000066] ------------ +--* ADD int $18a
N007 ( 13, 10) [000064] ------------ | +--* ADD int $189
N005 ( 9, 7) [000062] ------------ | | +--* ADD int $188
N003 ( 5, 4) [000060] ------------ | | | +--* ADD int $187
N001 ( 1, 1) [000012] ------------ | | | | +--* LCL_VAR int V10 tmp1 u:2 (last use) $143
N002 ( 3, 2) [000059] ------------ | | | | \--* LCL_VAR int V03 loc0 u:2 (last use) $148
N004 ( 3, 2) [000061] ------------ | | | \--* LCL_VAR int V04 loc1 u:2 (last use) $14d
N006 ( 3, 2) [000063] ------------ | | \--* LCL_VAR int V05 loc2 u:2 (last use) $151
N008 ( 3, 2) [000065] ------------ | \--* LCL_VAR int V06 loc3 u:2 (last use) $156
N010 ( 3, 2) [000067] ------------ \--* LCL_VAR int V07 loc4 u:2 (last use) $185
-------------------------------------------------------------------------------------------------------------------
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N007 ( 7, 7) [000189] DA---------- * STORE_LCL_VAR int V19 cse0
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N014 ( 26, 19) [000011] DACXG------- * STORE_LCL_VAR int V10 tmp1 d:2
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N011 ( 26, 26) [000015] DACXG------- * STORE_LCL_VAR int V03 loc0 d:2
Rewriting GT_ADDR(GT_LCL_VAR) to GT_LCL_VAR_ADDR:
N002 ( 3, 2) [000016] D------N---- t16 = LCL_VAR_ADDR byref V08 loc5 d:2
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N011 ( 27, 21) [000029] DACXG------- * STORE_LCL_VAR int V04 loc1 d:2
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N005 ( 17, 16) [000033] DAC--------- * STORE_LCL_VAR ref V11 tmp2 d:2
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N012 ( 30, 27) [000044] DACXG------- * STORE_LCL_VAR int V05 loc2 d:2
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N009 ( 23, 15) [000051] DACXG------- * STORE_LCL_VAR int V06 loc3 d:2
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N005 ( 3, 3) [000114] DA---------- * STORE_LCL_VAR int V13 tmp4 d:2
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N005 ( 8, 6) [000120] DA---------- * STORE_LCL_VAR int V14 tmp5 d:2
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N005 ( 8, 6) [000131] DA---------- * STORE_LCL_VAR int V15 tmp6 d:2
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N007 ( 28, 10) [000058] DA-X-------- * STORE_LCL_VAR int V07 loc4 d:2
*************** Exiting IR Rationalize
Trees after IR Rationalize
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (return) i label target gcsafe newobj LIR
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..051) (return), preds={} succs={}
N004 ( 2, 2) [000002] ------------ t2 = LCL_VAR int V02 arg2 u:1 $c0
/--* t2 int
N005 ( 3, 4) [000158] ------------ t158 = * CAST int <- ubyte <- int $180
/--* t158 int
N007 ( 7, 7) [000189] DA---------- * STORE_LCL_VAR int V19 cse0
N008 ( 3, 2) [000190] ------------ t190 = LCL_VAR int V19 cse0 $180
N010 ( 1, 1) [000000] ------------ t0 = LCL_VAR int V00 arg0 u:1 $80
N011 ( 1, 1) [000001] ------------ t1 = LCL_VAR int V01 arg1 u:1 $81
/--* t190 int arg2 in r8
+--* t0 int arg0 in rcx
+--* t1 int arg1 in rdx
N012 ( 26, 19) [000003] --CXG------- t3 = * CALL int Test2.DoTestImpl1 $143
/--* t3 int
N014 ( 26, 19) [000011] DA-XG------- * STORE_LCL_VAR int V10 tmp1 d:2
N005 ( 3, 2) [000192] ------------ t192 = LCL_VAR int V19 cse0 $180
N006 ( 1, 1) [000005] ------------ t5 = LCL_VAR int V00 arg0 u:1 $80
N007 ( 1, 1) [000006] ------------ t6 = LCL_VAR int V01 arg1 u:1 $81
N008 ( 3, 10) [000009] ------------ t9 = CNS_INT(h) long 0xd1ffab1e method $240
/--* t192 int arg3 in r9
+--* t5 int arg1 in rdx
+--* t6 int arg2 in r8
+--* t9 long arg0 in rcx
N009 ( 22, 23) [000008] --CXG------- t8 = * CALL int Test2.DoTestImpl2 $148
/--* t8 int
N011 ( 26, 26) [000015] DA-XG------- * STORE_LCL_VAR int V03 loc0 d:2
N001 ( 1, 1) [000018] ------------ t18 = CNS_INT int 0 $40
N002 ( 3, 2) [000016] D------N---- t16 = LCL_VAR_ADDR byref V08 loc5 d:2
/--* t16 byref
+--* t18 int
[000198] -A---------- * STOREIND byte
N005 ( 3, 2) [000193] ------------ t193 = LCL_VAR int V19 cse0 $180
N006 ( 4, 5) [000020] ------------ t20 = LCL_FLD byte V08 loc5 u:2[+0] (last use) $301
N007 ( 1, 1) [000021] ------------ t21 = LCL_VAR int V00 arg0 u:1 $80
N008 ( 1, 1) [000022] ------------ t22 = LCL_VAR int V01 arg1 u:1 $81
/--* t193 int arg3 in r9
+--* t20 byte arg0 in rcx
+--* t21 int arg1 in rdx
+--* t22 int arg2 in r8
N009 ( 23, 18) [000024] --CXG------- t24 = * CALL int Test2.DoTestImpl3 $14d
/--* t24 int
N011 ( 27, 21) [000029] DA-XG------- * STORE_LCL_VAR int V04 loc1 d:2
N002 ( 3, 10) [000030] ------------ t30 = CNS_INT(h) long 0xd1ffab1e method $241
/--* t30 long arg0 in rcx
N003 ( 17, 16) [000031] --C--------- t31 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $340
/--* t31 ref
N005 ( 17, 16) [000033] DA---------- * STORE_LCL_VAR ref V11 tmp2 d:2
N005 ( 3, 2) [000194] ------------ t194 = LCL_VAR int V19 cse0 $180
N006 ( 1, 1) [000036] ------------ t36 = LCL_VAR ref V11 tmp2 u:2 (last use) $340
N007 ( 1, 1) [000037] ------------ t37 = LCL_VAR int V00 arg0 u:1 $80
N008 ( 1, 1) [000038] ------------ t38 = LCL_VAR int V01 arg1 u:1 $81
N009 ( 3, 10) [000041] ------------ t41 = CNS_INT(h) long 0xd1ffab1e method $242
/--* t194 int arg4 out+20
+--* t36 ref arg1 in rdx
+--* t37 int arg2 in r8
+--* t38 int arg3 in r9
+--* t41 long arg0 in rcx
N010 ( 26, 24) [000040] --CXG------- t40 = * CALL int Test2.DoTestImpl4 $151
/--* t40 int
N012 ( 30, 27) [000044] DA-XG------- * STORE_LCL_VAR int V05 loc2 d:2
N004 ( 3, 2) [000195] ------------ t195 = LCL_VAR int V19 cse0 $180
N005 ( 1, 1) [000045] ------------ t45 = LCL_VAR int V00 arg0 u:1 $80
N006 ( 1, 1) [000046] ------------ t46 = LCL_VAR int V01 arg1 u:1 $81
/--* t195 int arg2 in r8
+--* t45 int arg0 in rcx
+--* t46 int arg1 in rdx
N007 ( 19, 12) [000048] --CXG------- t48 = * CALL int Test2.DoTestImpl5 $156
/--* t48 int
N009 ( 23, 15) [000051] DA-XG------- * STORE_LCL_VAR int V06 loc3 d:2
N001 ( 1, 1) [000052] ------------ t52 = LCL_VAR int V00 arg0 u:1 $80
N002 ( 1, 1) [000053] ------------ t53 = LCL_VAR int V01 arg1 u:1 (last use) $81
/--* t52 int
+--* t53 int
N003 ( 3, 3) [000140] ------------ t140 = * ADD int $181
/--* t140 int
N005 ( 3, 3) [000114] DA---------- * STORE_LCL_VAR int V13 tmp4 d:2
N001 ( 1, 1) [000115] ------------ t115 = LCL_VAR int V13 tmp4 u:2 (last use) $181
N002 ( 3, 2) [000196] ------------ t196 = LCL_VAR int V19 cse0 $180
/--* t115 int
+--* t196 int
N003 ( 8, 6) [000145] ------------ t145 = * MUL int $182
/--* t145 int
N005 ( 8, 6) [000120] DA---------- * STORE_LCL_VAR int V14 tmp5 d:2
N001 ( 1, 1) [000121] ------------ t121 = LCL_VAR int V00 arg0 u:1 (last use) $80
N002 ( 3, 2) [000197] ------------ t197 = LCL_VAR int V19 cse0 $180
/--* t121 int
+--* t197 int
N003 ( 8, 6) [000150] ------------ t150 = * MUL int $183
/--* t150 int
N005 ( 8, 6) [000131] DA---------- * STORE_LCL_VAR int V15 tmp6 d:2
N001 ( 1, 1) [000132] ------------ t132 = LCL_VAR int V15 tmp6 u:2 (last use) $183
N002 ( 1, 1) [000127] ------------ t127 = LCL_VAR int V14 tmp5 u:2 (last use) $182
N003 ( 1, 1) [000152] ------------ t152 = CNS_INT int 2 $42
/--* t127 int
+--* t152 int
N004 ( 3, 3) [000153] ------------ t153 = * RSH int $184
/--* t132 int
+--* t153 int
N005 ( 24, 7) [000156] ---X-------- t156 = * DIV int $186
/--* t156 int
N007 ( 28, 10) [000058] DA-X-------- * STORE_LCL_VAR int V07 loc4 d:2
N001 ( 1, 1) [000012] ------------ t12 = LCL_VAR int V10 tmp1 u:2 (last use) $143
N002 ( 3, 2) [000059] ------------ t59 = LCL_VAR int V03 loc0 u:2 (last use) $148
/--* t12 int
+--* t59 int
N003 ( 5, 4) [000060] ------------ t60 = * ADD int $187
N004 ( 3, 2) [000061] ------------ t61 = LCL_VAR int V04 loc1 u:2 (last use) $14d
/--* t60 int
+--* t61 int
N005 ( 9, 7) [000062] ------------ t62 = * ADD int $188
N006 ( 3, 2) [000063] ------------ t63 = LCL_VAR int V05 loc2 u:2 (last use) $151
/--* t62 int
+--* t63 int
N007 ( 13, 10) [000064] ------------ t64 = * ADD int $189
N008 ( 3, 2) [000065] ------------ t65 = LCL_VAR int V06 loc3 u:2 (last use) $156
/--* t64 int
+--* t65 int
N009 ( 17, 13) [000066] ------------ t66 = * ADD int $18a
N010 ( 3, 2) [000067] ------------ t67 = LCL_VAR int V07 loc4 u:2 (last use) $185
/--* t66 int
+--* t67 int
N011 ( 21, 16) [000068] ------------ t68 = * ADD int $18b
/--* t68 int
N012 ( 22, 17) [000069] ------------ * RETURN int $15c
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
Bumping outgoingArgSpaceSize to 32 for call [000003]
outgoingArgSpaceSize 32 sufficient for call [000008], which needs 32
outgoingArgSpaceSize 32 sufficient for call [000024], which needs 32
outgoingArgSpaceSize 32 sufficient for call [000031], which needs 32
Bumping outgoingArgSpaceSize to 40 for call [000040]
outgoingArgSpaceSize 40 sufficient for call [000048], which needs 32
*************** In fgDebugCheckBBlist
*************** In Lowering
Trees before Lowering
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (return) i label target gcsafe newobj LIR
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..051) (return), preds={} succs={}
N004 ( 2, 2) [000002] ------------ t2 = LCL_VAR int V02 arg2 u:1 $c0
/--* t2 int
N005 ( 3, 4) [000158] ------------ t158 = * CAST int <- ubyte <- int $180
/--* t158 int
N007 ( 7, 7) [000189] DA---------- * STORE_LCL_VAR int V19 cse0
N008 ( 3, 2) [000190] ------------ t190 = LCL_VAR int V19 cse0 $180
N010 ( 1, 1) [000000] ------------ t0 = LCL_VAR int V00 arg0 u:1 $80
N011 ( 1, 1) [000001] ------------ t1 = LCL_VAR int V01 arg1 u:1 $81
/--* t190 int arg2 in r8
+--* t0 int arg0 in rcx
+--* t1 int arg1 in rdx
N012 ( 26, 19) [000003] --CXG------- t3 = * CALL int Test2.DoTestImpl1 $143
/--* t3 int
N014 ( 26, 19) [000011] DA-XG------- * STORE_LCL_VAR int V10 tmp1 d:2
N005 ( 3, 2) [000192] ------------ t192 = LCL_VAR int V19 cse0 $180
N006 ( 1, 1) [000005] ------------ t5 = LCL_VAR int V00 arg0 u:1 $80
N007 ( 1, 1) [000006] ------------ t6 = LCL_VAR int V01 arg1 u:1 $81
N008 ( 3, 10) [000009] ------------ t9 = CNS_INT(h) long 0xd1ffab1e method $240
/--* t192 int arg3 in r9
+--* t5 int arg1 in rdx
+--* t6 int arg2 in r8
+--* t9 long arg0 in rcx
N009 ( 22, 23) [000008] --CXG------- t8 = * CALL int Test2.DoTestImpl2 $148
/--* t8 int
N011 ( 26, 26) [000015] DA-XG------- * STORE_LCL_VAR int V03 loc0 d:2
N001 ( 1, 1) [000018] ------------ t18 = CNS_INT int 0 $40
N002 ( 3, 2) [000016] D------N---- t16 = LCL_VAR_ADDR byref V08 loc5 d:2
/--* t16 byref
+--* t18 int
[000198] -A---------- * STOREIND byte
N005 ( 3, 2) [000193] ------------ t193 = LCL_VAR int V19 cse0 $180
N006 ( 4, 5) [000020] ------------ t20 = LCL_FLD byte V08 loc5 u:2[+0] (last use) $301
N007 ( 1, 1) [000021] ------------ t21 = LCL_VAR int V00 arg0 u:1 $80
N008 ( 1, 1) [000022] ------------ t22 = LCL_VAR int V01 arg1 u:1 $81
/--* t193 int arg3 in r9
+--* t20 byte arg0 in rcx
+--* t21 int arg1 in rdx
+--* t22 int arg2 in r8
N009 ( 23, 18) [000024] --CXG------- t24 = * CALL int Test2.DoTestImpl3 $14d
/--* t24 int
N011 ( 27, 21) [000029] DA-XG------- * STORE_LCL_VAR int V04 loc1 d:2
N002 ( 3, 10) [000030] ------------ t30 = CNS_INT(h) long 0xd1ffab1e method $241
/--* t30 long arg0 in rcx
N003 ( 17, 16) [000031] --C--------- t31 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $340
/--* t31 ref
N005 ( 17, 16) [000033] DA---------- * STORE_LCL_VAR ref V11 tmp2 d:2
N005 ( 3, 2) [000194] ------------ t194 = LCL_VAR int V19 cse0 $180
N006 ( 1, 1) [000036] ------------ t36 = LCL_VAR ref V11 tmp2 u:2 (last use) $340
N007 ( 1, 1) [000037] ------------ t37 = LCL_VAR int V00 arg0 u:1 $80
N008 ( 1, 1) [000038] ------------ t38 = LCL_VAR int V01 arg1 u:1 $81
N009 ( 3, 10) [000041] ------------ t41 = CNS_INT(h) long 0xd1ffab1e method $242
/--* t194 int arg4 out+20
+--* t36 ref arg1 in rdx
+--* t37 int arg2 in r8
+--* t38 int arg3 in r9
+--* t41 long arg0 in rcx
N010 ( 26, 24) [000040] --CXG------- t40 = * CALL int Test2.DoTestImpl4 $151
/--* t40 int
N012 ( 30, 27) [000044] DA-XG------- * STORE_LCL_VAR int V05 loc2 d:2
N004 ( 3, 2) [000195] ------------ t195 = LCL_VAR int V19 cse0 $180
N005 ( 1, 1) [000045] ------------ t45 = LCL_VAR int V00 arg0 u:1 $80
N006 ( 1, 1) [000046] ------------ t46 = LCL_VAR int V01 arg1 u:1 $81
/--* t195 int arg2 in r8
+--* t45 int arg0 in rcx
+--* t46 int arg1 in rdx
N007 ( 19, 12) [000048] --CXG------- t48 = * CALL int Test2.DoTestImpl5 $156
/--* t48 int
N009 ( 23, 15) [000051] DA-XG------- * STORE_LCL_VAR int V06 loc3 d:2
N001 ( 1, 1) [000052] ------------ t52 = LCL_VAR int V00 arg0 u:1 $80
N002 ( 1, 1) [000053] ------------ t53 = LCL_VAR int V01 arg1 u:1 (last use) $81
/--* t52 int
+--* t53 int
N003 ( 3, 3) [000140] ------------ t140 = * ADD int $181
/--* t140 int
N005 ( 3, 3) [000114] DA---------- * STORE_LCL_VAR int V13 tmp4 d:2
N001 ( 1, 1) [000115] ------------ t115 = LCL_VAR int V13 tmp4 u:2 (last use) $181
N002 ( 3, 2) [000196] ------------ t196 = LCL_VAR int V19 cse0 $180
/--* t115 int
+--* t196 int
N003 ( 8, 6) [000145] ------------ t145 = * MUL int $182
/--* t145 int
N005 ( 8, 6) [000120] DA---------- * STORE_LCL_VAR int V14 tmp5 d:2
N001 ( 1, 1) [000121] ------------ t121 = LCL_VAR int V00 arg0 u:1 (last use) $80
N002 ( 3, 2) [000197] ------------ t197 = LCL_VAR int V19 cse0 $180
/--* t121 int
+--* t197 int
N003 ( 8, 6) [000150] ------------ t150 = * MUL int $183
/--* t150 int
N005 ( 8, 6) [000131] DA---------- * STORE_LCL_VAR int V15 tmp6 d:2
N001 ( 1, 1) [000132] ------------ t132 = LCL_VAR int V15 tmp6 u:2 (last use) $183
N002 ( 1, 1) [000127] ------------ t127 = LCL_VAR int V14 tmp5 u:2 (last use) $182
N003 ( 1, 1) [000152] ------------ t152 = CNS_INT int 2 $42
/--* t127 int
+--* t152 int
N004 ( 3, 3) [000153] ------------ t153 = * RSH int $184
/--* t132 int
+--* t153 int
N005 ( 24, 7) [000156] ---X-------- t156 = * DIV int $186
/--* t156 int
N007 ( 28, 10) [000058] DA-X-------- * STORE_LCL_VAR int V07 loc4 d:2
N001 ( 1, 1) [000012] ------------ t12 = LCL_VAR int V10 tmp1 u:2 (last use) $143
N002 ( 3, 2) [000059] ------------ t59 = LCL_VAR int V03 loc0 u:2 (last use) $148
/--* t12 int
+--* t59 int
N003 ( 5, 4) [000060] ------------ t60 = * ADD int $187
N004 ( 3, 2) [000061] ------------ t61 = LCL_VAR int V04 loc1 u:2 (last use) $14d
/--* t60 int
+--* t61 int
N005 ( 9, 7) [000062] ------------ t62 = * ADD int $188
N006 ( 3, 2) [000063] ------------ t63 = LCL_VAR int V05 loc2 u:2 (last use) $151
/--* t62 int
+--* t63 int
N007 ( 13, 10) [000064] ------------ t64 = * ADD int $189
N008 ( 3, 2) [000065] ------------ t65 = LCL_VAR int V06 loc3 u:2 (last use) $156
/--* t64 int
+--* t65 int
N009 ( 17, 13) [000066] ------------ t66 = * ADD int $18a
N010 ( 3, 2) [000067] ------------ t67 = LCL_VAR int V07 loc4 u:2 (last use) $185
/--* t66 int
+--* t67 int
N011 ( 21, 16) [000068] ------------ t68 = * ADD int $18b
/--* t68 int
N012 ( 22, 17) [000069] ------------ * RETURN int $15c
-------------------------------------------------------------------------------------------------------------------
lowering call (before):
N008 ( 3, 2) [000190] ------------ t190 = LCL_VAR int V19 cse0 $180
N010 ( 1, 1) [000000] ------------ t0 = LCL_VAR int V00 arg0 u:1 $80
N011 ( 1, 1) [000001] ------------ t1 = LCL_VAR int V01 arg1 u:1 $81
/--* t190 int arg2 in r8
+--* t0 int arg0 in rcx
+--* t1 int arg1 in rdx
N012 ( 26, 19) [000003] --CXG------- t3 = * CALL int Test2.DoTestImpl1 $143
objp:
======
args:
======
lowering arg : N001 ( 0, 0) [000160] ----------L- * ARGPLACE int $80
lowering arg : N002 ( 0, 0) [000161] ----------L- * ARGPLACE int $81
lowering arg : N003 ( 0, 0) [000159] ----------L- * ARGPLACE int $180
late:
======
lowering arg : N008 ( 3, 2) [000190] ------------ * LCL_VAR int V19 cse0 $180
new node is : [000199] ------------ * PUTARG_REG int REG r8
lowering arg : N010 ( 1, 1) [000000] ------------ * LCL_VAR int V00 arg0 u:1 $80
new node is : [000200] ------------ * PUTARG_REG int REG rcx
lowering arg : N011 ( 1, 1) [000001] ------------ * LCL_VAR int V01 arg1 u:1 $81
new node is : [000201] ------------ * PUTARG_REG int REG rdx
lowering call (after):
N008 ( 3, 2) [000190] ------------ t190 = LCL_VAR int V19 cse0 $180
/--* t190 int
[000199] ------------ t199 = * PUTARG_REG int REG r8
N010 ( 1, 1) [000000] ------------ t0 = LCL_VAR int V00 arg0 u:1 $80
/--* t0 int
[000200] ------------ t200 = * PUTARG_REG int REG rcx
N011 ( 1, 1) [000001] ------------ t1 = LCL_VAR int V01 arg1 u:1 $81
/--* t1 int
[000201] ------------ t201 = * PUTARG_REG int REG rdx
/--* t199 int arg2 in r8
+--* t200 int arg0 in rcx
+--* t201 int arg1 in rdx
N012 ( 26, 19) [000003] --CXG------- t3 = * CALL int Test2.DoTestImpl1 $143
lowering call (before):
N005 ( 3, 2) [000192] ------------ t192 = LCL_VAR int V19 cse0 $180
N006 ( 1, 1) [000005] ------------ t5 = LCL_VAR int V00 arg0 u:1 $80
N007 ( 1, 1) [000006] ------------ t6 = LCL_VAR int V01 arg1 u:1 $81
N008 ( 3, 10) [000009] ------------ t9 = CNS_INT(h) long 0xd1ffab1e method $240
/--* t192 int arg3 in r9
+--* t5 int arg1 in rdx
+--* t6 int arg2 in r8
+--* t9 long arg0 in rcx
N009 ( 22, 23) [000008] --CXG------- t8 = * CALL int Test2.DoTestImpl2 $148
objp:
======
args:
======
lowering arg : N001 ( 0, 0) [000166] ----------L- * ARGPLACE long $240
lowering arg : N002 ( 0, 0) [000164] ----------L- * ARGPLACE int $80
lowering arg : N003 ( 0, 0) [000165] ----------L- * ARGPLACE int $81
lowering arg : N004 ( 0, 0) [000163] ----------L- * ARGPLACE int $180
late:
======
lowering arg : N005 ( 3, 2) [000192] ------------ * LCL_VAR int V19 cse0 $180
new node is : [000202] ------------ * PUTARG_REG int REG r9
lowering arg : N006 ( 1, 1) [000005] ------------ * LCL_VAR int V00 arg0 u:1 $80
new node is : [000203] ------------ * PUTARG_REG int REG rdx
lowering arg : N007 ( 1, 1) [000006] ------------ * LCL_VAR int V01 arg1 u:1 $81
new node is : [000204] ------------ * PUTARG_REG int REG r8
lowering arg : N008 ( 3, 10) [000009] ------------ * CNS_INT(h) long 0xd1ffab1e method $240
new node is : [000205] ------------ * PUTARG_REG long REG rcx
lowering call (after):
N005 ( 3, 2) [000192] ------------ t192 = LCL_VAR int V19 cse0 $180
/--* t192 int
[000202] ------------ t202 = * PUTARG_REG int REG r9
N006 ( 1, 1) [000005] ------------ t5 = LCL_VAR int V00 arg0 u:1 $80
/--* t5 int
[000203] ------------ t203 = * PUTARG_REG int REG rdx
N007 ( 1, 1) [000006] ------------ t6 = LCL_VAR int V01 arg1 u:1 $81
/--* t6 int
[000204] ------------ t204 = * PUTARG_REG int REG r8
N008 ( 3, 10) [000009] ------------ t9 = CNS_INT(h) long 0xd1ffab1e method $240
/--* t9 long
[000205] ------------ t205 = * PUTARG_REG long REG rcx
/--* t202 int arg3 in r9
+--* t203 int arg1 in rdx
+--* t204 int arg2 in r8
+--* t205 long arg0 in rcx
N009 ( 22, 23) [000008] --CXG------- t8 = * CALL int Test2.DoTestImpl2 $148
No addressing mode:
N002 ( 3, 2) [000016] D------N---- * LCL_VAR_ADDR byref V08 loc5 d:2
Lower of StoreInd didn't mark the node as self contained for reason: 4
N001 ( 1, 1) [000018] ------------ t18 = CNS_INT int 0 $40
N002 ( 3, 2) [000016] D------N---- t16 = LCL_VAR_ADDR byref V08 loc5 d:2
/--* t16 byref
+--* t18 int
[000198] -A---------- * STOREIND byte
lowering call (before):
N005 ( 3, 2) [000193] ------------ t193 = LCL_VAR int V19 cse0 $180
N006 ( 4, 5) [000020] ------------ t20 = LCL_FLD byte V08 loc5 u:2[+0] (last use) $301
N007 ( 1, 1) [000021] ------------ t21 = LCL_VAR int V00 arg0 u:1 $80
N008 ( 1, 1) [000022] ------------ t22 = LCL_VAR int V01 arg1 u:1 $81
/--* t193 int arg3 in r9
+--* t20 byte arg0 in rcx
+--* t21 int arg1 in rdx
+--* t22 int arg2 in r8
N009 ( 23, 18) [000024] --CXG------- t24 = * CALL int Test2.DoTestImpl3 $14d
objp:
======
args:
======
lowering arg : N001 ( 0, 0) [000171] ----------L- * ARGPLACE byte $301
lowering arg : N002 ( 0, 0) [000172] ----------L- * ARGPLACE int $80
lowering arg : N003 ( 0, 0) [000173] ----------L- * ARGPLACE int $81
lowering arg : N004 ( 0, 0) [000170] ----------L- * ARGPLACE int $180
late:
======
lowering arg : N005 ( 3, 2) [000193] ------------ * LCL_VAR int V19 cse0 $180
new node is : [000206] ------------ * PUTARG_REG int REG r9
lowering arg : N006 ( 4, 5) [000020] ------------ * LCL_FLD byte V08 loc5 u:2[+0] (last use) $301
new node is : [000207] ------------ * PUTARG_REG int REG rcx
lowering arg : N007 ( 1, 1) [000021] ------------ * LCL_VAR int V00 arg0 u:1 $80
new node is : [000208] ------------ * PUTARG_REG int REG rdx
lowering arg : N008 ( 1, 1) [000022] ------------ * LCL_VAR int V01 arg1 u:1 $81
new node is : [000209] ------------ * PUTARG_REG int REG r8
lowering call (after):
N005 ( 3, 2) [000193] ------------ t193 = LCL_VAR int V19 cse0 $180
/--* t193 int
[000206] ------------ t206 = * PUTARG_REG int REG r9
N006 ( 4, 5) [000020] ------------ t20 = LCL_FLD byte V08 loc5 u:2[+0] (last use) $301
/--* t20 byte
[000207] ------------ t207 = * PUTARG_REG int REG rcx
N007 ( 1, 1) [000021] ------------ t21 = LCL_VAR int V00 arg0 u:1 $80
/--* t21 int
[000208] ------------ t208 = * PUTARG_REG int REG rdx
N008 ( 1, 1) [000022] ------------ t22 = LCL_VAR int V01 arg1 u:1 $81
/--* t22 int
[000209] ------------ t209 = * PUTARG_REG int REG r8
/--* t206 int arg3 in r9
+--* t207 int arg0 in rcx
+--* t208 int arg1 in rdx
+--* t209 int arg2 in r8
N009 ( 23, 18) [000024] --CXG------- t24 = * CALL int Test2.DoTestImpl3 $14d
lowering call (before):
N002 ( 3, 10) [000030] ------------ t30 = CNS_INT(h) long 0xd1ffab1e method $241
/--* t30 long arg0 in rcx
N003 ( 17, 16) [000031] --C--------- t31 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $340
objp:
======
args:
======
lowering arg : N001 ( 0, 0) [000174] ----------L- * ARGPLACE long $241
late:
======
lowering arg : N002 ( 3, 10) [000030] ------------ * CNS_INT(h) long 0xd1ffab1e method $241
new node is : [000210] ------------ * PUTARG_REG long REG rcx
lowering call (after):
N002 ( 3, 10) [000030] ------------ t30 = CNS_INT(h) long 0xd1ffab1e method $241
/--* t30 long
[000210] ------------ t210 = * PUTARG_REG long REG rcx
/--* t210 long arg0 in rcx
N003 ( 17, 16) [000031] --C--------- t31 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $340
lowering call (before):
N005 ( 3, 2) [000194] ------------ t194 = LCL_VAR int V19 cse0 $180
N006 ( 1, 1) [000036] ------------ t36 = LCL_VAR ref V11 tmp2 u:2 (last use) $340
N007 ( 1, 1) [000037] ------------ t37 = LCL_VAR int V00 arg0 u:1 $80
N008 ( 1, 1) [000038] ------------ t38 = LCL_VAR int V01 arg1 u:1 $81
N009 ( 3, 10) [000041] ------------ t41 = CNS_INT(h) long 0xd1ffab1e method $242
/--* t194 int arg4 out+20
+--* t36 ref arg1 in rdx
+--* t37 int arg2 in r8
+--* t38 int arg3 in r9
+--* t41 long arg0 in rcx
N010 ( 26, 24) [000040] --CXG------- t40 = * CALL int Test2.DoTestImpl4 $151
objp:
======
args:
======
lowering arg : N001 ( 0, 0) [000179] ----------L- * ARGPLACE long $242
lowering arg : N002 ( 0, 0) [000176] ----------L- * ARGPLACE ref $340
lowering arg : N003 ( 0, 0) [000177] ----------L- * ARGPLACE int $80
lowering arg : N004 ( 0, 0) [000178] ----------L- * ARGPLACE int $81
lowering arg : N005 ( 3, 2) [000194] ------------ * LCL_VAR int V19 cse0 $180
new node is : [000211] ------------ * PUTARG_STK [+0x20] void
late:
======
lowering arg : N006 ( 1, 1) [000036] ------------ * LCL_VAR ref V11 tmp2 u:2 (last use) $340
new node is : [000212] ------------ * PUTARG_REG ref REG rdx
lowering arg : N007 ( 1, 1) [000037] ------------ * LCL_VAR int V00 arg0 u:1 $80
new node is : [000213] ------------ * PUTARG_REG int REG r8
lowering arg : N008 ( 1, 1) [000038] ------------ * LCL_VAR int V01 arg1 u:1 $81
new node is : [000214] ------------ * PUTARG_REG int REG r9
lowering arg : N009 ( 3, 10) [000041] ------------ * CNS_INT(h) long 0xd1ffab1e method $242
new node is : [000215] ------------ * PUTARG_REG long REG rcx
lowering call (after):
N005 ( 3, 2) [000194] ------------ t194 = LCL_VAR int V19 cse0 $180
/--* t194 int
[000211] ------------ * PUTARG_STK [+0x20] void
N006 ( 1, 1) [000036] ------------ t36 = LCL_VAR ref V11 tmp2 u:2 (last use) $340
/--* t36 ref
[000212] ------------ t212 = * PUTARG_REG ref REG rdx
N007 ( 1, 1) [000037] ------------ t37 = LCL_VAR int V00 arg0 u:1 $80
/--* t37 int
[000213] ------------ t213 = * PUTARG_REG int REG r8
N008 ( 1, 1) [000038] ------------ t38 = LCL_VAR int V01 arg1 u:1 $81
/--* t38 int
[000214] ------------ t214 = * PUTARG_REG int REG r9
N009 ( 3, 10) [000041] ------------ t41 = CNS_INT(h) long 0xd1ffab1e method $242
/--* t41 long
[000215] ------------ t215 = * PUTARG_REG long REG rcx
/--* t212 ref arg1 in rdx
+--* t213 int arg2 in r8
+--* t214 int arg3 in r9
+--* t215 long arg0 in rcx
N010 ( 26, 24) [000040] --CXG------- t40 = * CALL int Test2.DoTestImpl4 $151
lowering call (before):
N004 ( 3, 2) [000195] ------------ t195 = LCL_VAR int V19 cse0 $180
N005 ( 1, 1) [000045] ------------ t45 = LCL_VAR int V00 arg0 u:1 $80
N006 ( 1, 1) [000046] ------------ t46 = LCL_VAR int V01 arg1 u:1 $81
/--* t195 int arg2 in r8
+--* t45 int arg0 in rcx
+--* t46 int arg1 in rdx
N007 ( 19, 12) [000048] --CXG------- t48 = * CALL int Test2.DoTestImpl5 $156
objp:
======
args:
======
lowering arg : N001 ( 0, 0) [000182] ----------L- * ARGPLACE int $80
lowering arg : N002 ( 0, 0) [000183] ----------L- * ARGPLACE int $81
lowering arg : N003 ( 0, 0) [000181] ----------L- * ARGPLACE int $180
late:
======
lowering arg : N004 ( 3, 2) [000195] ------------ * LCL_VAR int V19 cse0 $180
new node is : [000216] ------------ * PUTARG_REG int REG r8
lowering arg : N005 ( 1, 1) [000045] ------------ * LCL_VAR int V00 arg0 u:1 $80
new node is : [000217] ------------ * PUTARG_REG int REG rcx
lowering arg : N006 ( 1, 1) [000046] ------------ * LCL_VAR int V01 arg1 u:1 $81
new node is : [000218] ------------ * PUTARG_REG int REG rdx
lowering call (after):
N004 ( 3, 2) [000195] ------------ t195 = LCL_VAR int V19 cse0 $180
/--* t195 int
[000216] ------------ t216 = * PUTARG_REG int REG r8
N005 ( 1, 1) [000045] ------------ t45 = LCL_VAR int V00 arg0 u:1 $80
/--* t45 int
[000217] ------------ t217 = * PUTARG_REG int REG rcx
N006 ( 1, 1) [000046] ------------ t46 = LCL_VAR int V01 arg1 u:1 $81
/--* t46 int
[000218] ------------ t218 = * PUTARG_REG int REG rdx
/--* t216 int arg2 in r8
+--* t217 int arg0 in rcx
+--* t218 int arg1 in rdx
N007 ( 19, 12) [000048] --CXG------- t48 = * CALL int Test2.DoTestImpl5 $156
lowering GT_RETURN
N012 ( 22, 17) [000069] ------------ * RETURN int $15c
============Lower has completed modifying nodes.
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (return) i label target gcsafe newobj LIR
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..051) (return), preds={} succs={}
N004 ( 2, 2) [000002] ------------ t2 = LCL_VAR int V02 arg2 u:1 $c0
/--* t2 int
N005 ( 3, 4) [000158] ------------ t158 = * CAST int <- ubyte <- int $180
/--* t158 int
N007 ( 7, 7) [000189] DA---------- * STORE_LCL_VAR int V19 cse0
N008 ( 3, 2) [000190] ------------ t190 = LCL_VAR int V19 cse0 $180
/--* t190 int
[000199] ------------ t199 = * PUTARG_REG int REG r8
N010 ( 1, 1) [000000] ------------ t0 = LCL_VAR int V00 arg0 u:1 $80
/--* t0 int
[000200] ------------ t200 = * PUTARG_REG int REG rcx
N011 ( 1, 1) [000001] ------------ t1 = LCL_VAR int V01 arg1 u:1 $81
/--* t1 int
[000201] ------------ t201 = * PUTARG_REG int REG rdx
/--* t199 int arg2 in r8
+--* t200 int arg0 in rcx
+--* t201 int arg1 in rdx
N012 ( 26, 19) [000003] --CXG------- t3 = * CALL int Test2.DoTestImpl1 $143
/--* t3 int
N014 ( 26, 19) [000011] DA-XG------- * STORE_LCL_VAR int V10 tmp1 d:2
N005 ( 3, 2) [000192] ------------ t192 = LCL_VAR int V19 cse0 $180
/--* t192 int
[000202] ------------ t202 = * PUTARG_REG int REG r9
N006 ( 1, 1) [000005] ------------ t5 = LCL_VAR int V00 arg0 u:1 $80
/--* t5 int
[000203] ------------ t203 = * PUTARG_REG int REG rdx
N007 ( 1, 1) [000006] ------------ t6 = LCL_VAR int V01 arg1 u:1 $81
/--* t6 int
[000204] ------------ t204 = * PUTARG_REG int REG r8
N008 ( 3, 10) [000009] ------------ t9 = CNS_INT(h) long 0xd1ffab1e method $240
/--* t9 long
[000205] ------------ t205 = * PUTARG_REG long REG rcx
/--* t202 int arg3 in r9
+--* t203 int arg1 in rdx
+--* t204 int arg2 in r8
+--* t205 long arg0 in rcx
N009 ( 22, 23) [000008] --CXG------- t8 = * CALL int Test2.DoTestImpl2 $148
/--* t8 int
N011 ( 26, 26) [000015] DA-XG------- * STORE_LCL_VAR int V03 loc0 d:2
N001 ( 1, 1) [000018] -c---------- t18 = CNS_INT int 0 $40
N002 ( 3, 2) [000016] Dc-----N---- t16 = LCL_VAR_ADDR byref V08 loc5 d:2
/--* t16 byref
+--* t18 int
[000198] -A---------- * STOREIND byte
N005 ( 3, 2) [000193] ------------ t193 = LCL_VAR int V19 cse0 $180
/--* t193 int
[000206] ------------ t206 = * PUTARG_REG int REG r9
N006 ( 4, 5) [000020] ------------ t20 = LCL_FLD byte V08 loc5 u:2[+0] (last use) $301
/--* t20 byte
[000207] ------------ t207 = * PUTARG_REG int REG rcx
N007 ( 1, 1) [000021] ------------ t21 = LCL_VAR int V00 arg0 u:1 $80
/--* t21 int
[000208] ------------ t208 = * PUTARG_REG int REG rdx
N008 ( 1, 1) [000022] ------------ t22 = LCL_VAR int V01 arg1 u:1 $81
/--* t22 int
[000209] ------------ t209 = * PUTARG_REG int REG r8
/--* t206 int arg3 in r9
+--* t207 int arg0 in rcx
+--* t208 int arg1 in rdx
+--* t209 int arg2 in r8
N009 ( 23, 18) [000024] --CXG------- t24 = * CALL int Test2.DoTestImpl3 $14d
/--* t24 int
N011 ( 27, 21) [000029] DA-XG------- * STORE_LCL_VAR int V04 loc1 d:2
N002 ( 3, 10) [000030] ------------ t30 = CNS_INT(h) long 0xd1ffab1e method $241
/--* t30 long
[000210] ------------ t210 = * PUTARG_REG long REG rcx
/--* t210 long arg0 in rcx
N003 ( 17, 16) [000031] --C--------- t31 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $340
/--* t31 ref
N005 ( 17, 16) [000033] DA---------- * STORE_LCL_VAR ref V11 tmp2 d:2
N005 ( 3, 2) [000194] ------------ t194 = LCL_VAR int V19 cse0 $180
/--* t194 int
[000211] ------------ * PUTARG_STK [+0x20] void
N006 ( 1, 1) [000036] ------------ t36 = LCL_VAR ref V11 tmp2 u:2 (last use) $340
/--* t36 ref
[000212] ------------ t212 = * PUTARG_REG ref REG rdx
N007 ( 1, 1) [000037] ------------ t37 = LCL_VAR int V00 arg0 u:1 $80
/--* t37 int
[000213] ------------ t213 = * PUTARG_REG int REG r8
N008 ( 1, 1) [000038] ------------ t38 = LCL_VAR int V01 arg1 u:1 $81
/--* t38 int
[000214] ------------ t214 = * PUTARG_REG int REG r9
N009 ( 3, 10) [000041] ------------ t41 = CNS_INT(h) long 0xd1ffab1e method $242
/--* t41 long
[000215] ------------ t215 = * PUTARG_REG long REG rcx
/--* t212 ref arg1 in rdx
+--* t213 int arg2 in r8
+--* t214 int arg3 in r9
+--* t215 long arg0 in rcx
N010 ( 26, 24) [000040] --CXG------- t40 = * CALL int Test2.DoTestImpl4 $151
/--* t40 int
N012 ( 30, 27) [000044] DA-XG------- * STORE_LCL_VAR int V05 loc2 d:2
N004 ( 3, 2) [000195] ------------ t195 = LCL_VAR int V19 cse0 $180
/--* t195 int
[000216] ------------ t216 = * PUTARG_REG int REG r8
N005 ( 1, 1) [000045] ------------ t45 = LCL_VAR int V00 arg0 u:1 $80
/--* t45 int
[000217] ------------ t217 = * PUTARG_REG int REG rcx
N006 ( 1, 1) [000046] ------------ t46 = LCL_VAR int V01 arg1 u:1 $81
/--* t46 int
[000218] ------------ t218 = * PUTARG_REG int REG rdx
/--* t216 int arg2 in r8
+--* t217 int arg0 in rcx
+--* t218 int arg1 in rdx
N007 ( 19, 12) [000048] --CXG------- t48 = * CALL int Test2.DoTestImpl5 $156
/--* t48 int
N009 ( 23, 15) [000051] DA-XG------- * STORE_LCL_VAR int V06 loc3 d:2
N001 ( 1, 1) [000052] ------------ t52 = LCL_VAR int V00 arg0 u:1 $80
N002 ( 1, 1) [000053] ------------ t53 = LCL_VAR int V01 arg1 u:1 (last use) $81
/--* t52 int
+--* t53 int
N003 ( 3, 3) [000140] ------------ t140 = * ADD int $181
/--* t140 int
N005 ( 3, 3) [000114] DA---------- * STORE_LCL_VAR int V13 tmp4 d:2
N001 ( 1, 1) [000115] ------------ t115 = LCL_VAR int V13 tmp4 u:2 (last use) $181
N002 ( 3, 2) [000196] ------------ t196 = LCL_VAR int V19 cse0 $180
/--* t115 int
+--* t196 int
N003 ( 8, 6) [000145] ------------ t145 = * MUL int $182
/--* t145 int
N005 ( 8, 6) [000120] DA---------- * STORE_LCL_VAR int V14 tmp5 d:2
N001 ( 1, 1) [000121] ------------ t121 = LCL_VAR int V00 arg0 u:1 (last use) $80
N002 ( 3, 2) [000197] ------------ t197 = LCL_VAR int V19 cse0 $180
/--* t121 int
+--* t197 int
N003 ( 8, 6) [000150] ------------ t150 = * MUL int $183
/--* t150 int
N005 ( 8, 6) [000131] DA---------- * STORE_LCL_VAR int V15 tmp6 d:2
N001 ( 1, 1) [000132] ------------ t132 = LCL_VAR int V15 tmp6 u:2 (last use) $183
N002 ( 1, 1) [000127] ------------ t127 = LCL_VAR int V14 tmp5 u:2 (last use) $182
N003 ( 1, 1) [000152] -c---------- t152 = CNS_INT int 2 $42
/--* t127 int
+--* t152 int
N004 ( 3, 3) [000153] ------------ t153 = * RSH int $184
/--* t132 int
+--* t153 int
N005 ( 24, 7) [000156] ---X-------- t156 = * DIV int $186
/--* t156 int
N007 ( 28, 10) [000058] DA-X-------- * STORE_LCL_VAR int V07 loc4 d:2
N001 ( 1, 1) [000012] ------------ t12 = LCL_VAR int V10 tmp1 u:2 (last use) $143
N002 ( 3, 2) [000059] ------------ t59 = LCL_VAR int V03 loc0 u:2 (last use) $148
/--* t12 int
+--* t59 int
N003 ( 5, 4) [000060] ------------ t60 = * ADD int $187
N004 ( 3, 2) [000061] ------------ t61 = LCL_VAR int V04 loc1 u:2 (last use) $14d
/--* t60 int
+--* t61 int
N005 ( 9, 7) [000062] ------------ t62 = * ADD int $188
N006 ( 3, 2) [000063] ------------ t63 = LCL_VAR int V05 loc2 u:2 (last use) $151
/--* t62 int
+--* t63 int
N007 ( 13, 10) [000064] ------------ t64 = * ADD int $189
N008 ( 3, 2) [000065] ------------ t65 = LCL_VAR int V06 loc3 u:2 (last use) $156
/--* t64 int
+--* t65 int
N009 ( 17, 13) [000066] ------------ t66 = * ADD int $18a
N010 ( 3, 2) [000067] ------------ t67 = LCL_VAR int V07 loc4 u:2 (last use) $185
/--* t66 int
+--* t67 int
N011 ( 21, 16) [000068] ------------ t68 = * ADD int $18b
/--* t68 int
N012 ( 22, 17) [000069] ------------ * RETURN int $15c
-------------------------------------------------------------------------------------------------------------------
*** lvaComputeRefCounts ***
*** lvaComputeRefCounts -- explicit counts ***
New refCnts for V02: refCnt = 1, refCntWtd = 1
New refCnts for V19: refCnt = 1, refCntWtd = 1
New refCnts for V19: refCnt = 2, refCntWtd = 2
New refCnts for V00: refCnt = 1, refCntWtd = 1
New refCnts for V01: refCnt = 1, refCntWtd = 1
New refCnts for V10: refCnt = 1, refCntWtd = 2
New refCnts for V19: refCnt = 3, refCntWtd = 3
New refCnts for V00: refCnt = 2, refCntWtd = 2
New refCnts for V01: refCnt = 2, refCntWtd = 2
New refCnts for V03: refCnt = 1, refCntWtd = 1
New refCnts for V08: refCnt = 1, refCntWtd = 1
New refCnts for V19: refCnt = 4, refCntWtd = 4
New refCnts for V08: refCnt = 2, refCntWtd = 2
New refCnts for V00: refCnt = 3, refCntWtd = 3
New refCnts for V01: refCnt = 3, refCntWtd = 3
New refCnts for V04: refCnt = 1, refCntWtd = 1
New refCnts for V11: refCnt = 1, refCntWtd = 2
New refCnts for V19: refCnt = 5, refCntWtd = 5
New refCnts for V11: refCnt = 2, refCntWtd = 4
New refCnts for V00: refCnt = 4, refCntWtd = 4
New refCnts for V01: refCnt = 4, refCntWtd = 4
New refCnts for V05: refCnt = 1, refCntWtd = 1
New refCnts for V19: refCnt = 6, refCntWtd = 6
New refCnts for V00: refCnt = 5, refCntWtd = 5
New refCnts for V01: refCnt = 5, refCntWtd = 5
New refCnts for V06: refCnt = 1, refCntWtd = 1
New refCnts for V00: refCnt = 6, refCntWtd = 6
New refCnts for V01: refCnt = 6, refCntWtd = 6
New refCnts for V13: refCnt = 1, refCntWtd = 2
New refCnts for V13: refCnt = 2, refCntWtd = 4
New refCnts for V19: refCnt = 7, refCntWtd = 7
New refCnts for V14: refCnt = 1, refCntWtd = 1
New refCnts for V00: refCnt = 7, refCntWtd = 7
New refCnts for V19: refCnt = 8, refCntWtd = 8
New refCnts for V15: refCnt = 1, refCntWtd = 2
New refCnts for V15: refCnt = 2, refCntWtd = 4
New refCnts for V14: refCnt = 2, refCntWtd = 2
New refCnts for V07: refCnt = 1, refCntWtd = 1
New refCnts for V10: refCnt = 2, refCntWtd = 4
New refCnts for V03: refCnt = 2, refCntWtd = 2
New refCnts for V04: refCnt = 2, refCntWtd = 2
New refCnts for V05: refCnt = 2, refCntWtd = 2
New refCnts for V06: refCnt = 2, refCntWtd = 2
New refCnts for V07: refCnt = 2, refCntWtd = 2
*** lvaComputeRefCounts -- implicit counts ***
New refCnts for V00: refCnt = 8, refCntWtd = 8
New refCnts for V00: refCnt = 9, refCntWtd = 9
New refCnts for V01: refCnt = 7, refCntWtd = 7
New refCnts for V01: refCnt = 8, refCntWtd = 8
New refCnts for V02: refCnt = 2, refCntWtd = 2
New refCnts for V02: refCnt = 3, refCntWtd = 3
*************** In fgLocalVarLiveness()
; Initial local variable assignments
;
; V00 arg0 int
; V01 arg1 int
; V02 arg2 ubyte
; V03 loc0 int
; V04 loc1 int
; V05 loc2 int
; V06 loc3 int
; V07 loc4 int
; V08 loc5 struct ( 8) do-not-enreg[SF] ld-addr-op
; V09 OutArgs lclBlk (40) "OutgoingArgSpace"
; V10 tmp1 int "impAppendStmt"
; V11 tmp2 ref class-hnd exact "NewObj constructor temp"
; V12 tmp3 struct ( 8) do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp"
; V13 tmp4 int "impAppendStmt"
; V14 tmp5 int "Inline stloc first use temp"
; V15 tmp6 int "impAppendStmt"
; V16 tmp7 int "Inlining Arg"
; V17 tmp8 int "Inlining Arg"
; V18 tmp9 int "Inlining Arg"
; V19 cse0 int "ValNumCSE"
In fgLocalVarLivenessInit
Local V08 should not be enregistered because: it is a struct
Local V12 should not be enregistered because: it is a struct
Tracked variable (15 out of 20) table:
V00 arg0 [ int]: refCnt = 9, refCntWtd = 9
V01 arg1 [ int]: refCnt = 8, refCntWtd = 8
V19 cse0 [ int]: refCnt = 8, refCntWtd = 8
V02 arg2 [ ubyte]: refCnt = 3, refCntWtd = 3
V11 tmp2 [ ref]: refCnt = 2, refCntWtd = 4
V10 tmp1 [ int]: refCnt = 2, refCntWtd = 4
V13 tmp4 [ int]: refCnt = 2, refCntWtd = 4
V15 tmp6 [ int]: refCnt = 2, refCntWtd = 4
V03 loc0 [ int]: refCnt = 2, refCntWtd = 2
V04 loc1 [ int]: refCnt = 2, refCntWtd = 2
V05 loc2 [ int]: refCnt = 2, refCntWtd = 2
V06 loc3 [ int]: refCnt = 2, refCntWtd = 2
V07 loc4 [ int]: refCnt = 2, refCntWtd = 2
V08 loc5 [struct]: refCnt = 2, refCntWtd = 2
V14 tmp5 [ int]: refCnt = 2, refCntWtd = 2
*************** In fgPerBlockLocalVarLiveness()
BB01 USE(3)={V00 V01 V02 } + ByrefExposed + GcHeap
DEF(12)={ V19 V11 V10 V13 V15 V03 V04 V05 V06 V07 V08 V14} + ByrefExposed* + GcHeap*
** Memory liveness computed, GcHeap states and ByrefExposed states match
*************** In fgInterBlockLocalVarLiveness()
BB liveness after fgLiveVarAnalysis():
BB01 IN (3)={V00 V01 V02} + ByrefExposed + GcHeap
OUT(0)={ }
*************** In fgUpdateFlowGraph()
Before updating the flow graph:
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (return) i label target gcsafe newobj LIR
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*** lvaComputeRefCounts ***
*** lvaComputeRefCounts -- explicit counts ***
New refCnts for V02: refCnt = 1, refCntWtd = 1
New refCnts for V19: refCnt = 1, refCntWtd = 1
New refCnts for V19: refCnt = 2, refCntWtd = 2
New refCnts for V00: refCnt = 1, refCntWtd = 1
New refCnts for V01: refCnt = 1, refCntWtd = 1
New refCnts for V10: refCnt = 1, refCntWtd = 2
New refCnts for V19: refCnt = 3, refCntWtd = 3
New refCnts for V00: refCnt = 2, refCntWtd = 2
New refCnts for V01: refCnt = 2, refCntWtd = 2
New refCnts for V03: refCnt = 1, refCntWtd = 1
New refCnts for V08: refCnt = 1, refCntWtd = 1
New refCnts for V19: refCnt = 4, refCntWtd = 4
New refCnts for V08: refCnt = 2, refCntWtd = 2
New refCnts for V00: refCnt = 3, refCntWtd = 3
New refCnts for V01: refCnt = 3, refCntWtd = 3
New refCnts for V04: refCnt = 1, refCntWtd = 1
New refCnts for V11: refCnt = 1, refCntWtd = 2
New refCnts for V19: refCnt = 5, refCntWtd = 5
New refCnts for V11: refCnt = 2, refCntWtd = 4
New refCnts for V00: refCnt = 4, refCntWtd = 4
New refCnts for V01: refCnt = 4, refCntWtd = 4
New refCnts for V05: refCnt = 1, refCntWtd = 1
New refCnts for V19: refCnt = 6, refCntWtd = 6
New refCnts for V00: refCnt = 5, refCntWtd = 5
New refCnts for V01: refCnt = 5, refCntWtd = 5
New refCnts for V06: refCnt = 1, refCntWtd = 1
New refCnts for V00: refCnt = 6, refCntWtd = 6
New refCnts for V01: refCnt = 6, refCntWtd = 6
New refCnts for V13: refCnt = 1, refCntWtd = 2
New refCnts for V13: refCnt = 2, refCntWtd = 4
New refCnts for V19: refCnt = 7, refCntWtd = 7
New refCnts for V14: refCnt = 1, refCntWtd = 1
New refCnts for V00: refCnt = 7, refCntWtd = 7
New refCnts for V19: refCnt = 8, refCntWtd = 8
New refCnts for V15: refCnt = 1, refCntWtd = 2
New refCnts for V15: refCnt = 2, refCntWtd = 4
New refCnts for V14: refCnt = 2, refCntWtd = 2
New refCnts for V07: refCnt = 1, refCntWtd = 1
New refCnts for V10: refCnt = 2, refCntWtd = 4
New refCnts for V03: refCnt = 2, refCntWtd = 2
New refCnts for V04: refCnt = 2, refCntWtd = 2
New refCnts for V05: refCnt = 2, refCntWtd = 2
New refCnts for V06: refCnt = 2, refCntWtd = 2
New refCnts for V07: refCnt = 2, refCntWtd = 2
*** lvaComputeRefCounts -- implicit counts ***
New refCnts for V00: refCnt = 8, refCntWtd = 8
New refCnts for V00: refCnt = 9, refCntWtd = 9
New refCnts for V01: refCnt = 7, refCntWtd = 7
New refCnts for V01: refCnt = 8, refCntWtd = 8
New refCnts for V02: refCnt = 2, refCntWtd = 2
New refCnts for V02: refCnt = 3, refCntWtd = 3
Liveness pass finished after lowering, IR:
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (return) i label target gcsafe newobj LIR
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..051) (return), preds={} succs={}
N004 ( 2, 2) [000002] ------------ t2 = LCL_VAR int V02 arg2 u:1 (last use) $c0
/--* t2 int
N005 ( 3, 4) [000158] ------------ t158 = * CAST int <- ubyte <- int $180
/--* t158 int
N007 ( 7, 7) [000189] DA---------- * STORE_LCL_VAR int V19 cse0
N008 ( 3, 2) [000190] ------------ t190 = LCL_VAR int V19 cse0 $180
/--* t190 int
[000199] ------------ t199 = * PUTARG_REG int REG r8
N010 ( 1, 1) [000000] ------------ t0 = LCL_VAR int V00 arg0 u:1 $80
/--* t0 int
[000200] ------------ t200 = * PUTARG_REG int REG rcx
N011 ( 1, 1) [000001] ------------ t1 = LCL_VAR int V01 arg1 u:1 $81
/--* t1 int
[000201] ------------ t201 = * PUTARG_REG int REG rdx
/--* t199 int arg2 in r8
+--* t200 int arg0 in rcx
+--* t201 int arg1 in rdx
N012 ( 26, 19) [000003] --CXG------- t3 = * CALL int Test2.DoTestImpl1 $143
/--* t3 int
N014 ( 26, 19) [000011] DA-XG------- * STORE_LCL_VAR int V10 tmp1 d:2
N005 ( 3, 2) [000192] ------------ t192 = LCL_VAR int V19 cse0 $180
/--* t192 int
[000202] ------------ t202 = * PUTARG_REG int REG r9
N006 ( 1, 1) [000005] ------------ t5 = LCL_VAR int V00 arg0 u:1 $80
/--* t5 int
[000203] ------------ t203 = * PUTARG_REG int REG rdx
N007 ( 1, 1) [000006] ------------ t6 = LCL_VAR int V01 arg1 u:1 $81
/--* t6 int
[000204] ------------ t204 = * PUTARG_REG int REG r8
N008 ( 3, 10) [000009] ------------ t9 = CNS_INT(h) long 0xd1ffab1e method $240
/--* t9 long
[000205] ------------ t205 = * PUTARG_REG long REG rcx
/--* t202 int arg3 in r9
+--* t203 int arg1 in rdx
+--* t204 int arg2 in r8
+--* t205 long arg0 in rcx
N009 ( 22, 23) [000008] --CXG------- t8 = * CALL int Test2.DoTestImpl2 $148
/--* t8 int
N011 ( 26, 26) [000015] DA-XG------- * STORE_LCL_VAR int V03 loc0 d:2
N001 ( 1, 1) [000018] -c---------- t18 = CNS_INT int 0 $40
N002 ( 3, 2) [000016] Dc-----N---- t16 = LCL_VAR_ADDR byref V08 loc5 d:2
/--* t16 byref
+--* t18 int
[000198] -A---------- * STOREIND byte
N005 ( 3, 2) [000193] ------------ t193 = LCL_VAR int V19 cse0 $180
/--* t193 int
[000206] ------------ t206 = * PUTARG_REG int REG r9
N006 ( 4, 5) [000020] ------------ t20 = LCL_FLD byte V08 loc5 u:2[+0] (last use) $301
/--* t20 byte
[000207] ------------ t207 = * PUTARG_REG int REG rcx
N007 ( 1, 1) [000021] ------------ t21 = LCL_VAR int V00 arg0 u:1 $80
/--* t21 int
[000208] ------------ t208 = * PUTARG_REG int REG rdx
N008 ( 1, 1) [000022] ------------ t22 = LCL_VAR int V01 arg1 u:1 $81
/--* t22 int
[000209] ------------ t209 = * PUTARG_REG int REG r8
/--* t206 int arg3 in r9
+--* t207 int arg0 in rcx
+--* t208 int arg1 in rdx
+--* t209 int arg2 in r8
N009 ( 23, 18) [000024] --CXG------- t24 = * CALL int Test2.DoTestImpl3 $14d
/--* t24 int
N011 ( 27, 21) [000029] DA-XG------- * STORE_LCL_VAR int V04 loc1 d:2
N002 ( 3, 10) [000030] ------------ t30 = CNS_INT(h) long 0xd1ffab1e method $241
/--* t30 long
[000210] ------------ t210 = * PUTARG_REG long REG rcx
/--* t210 long arg0 in rcx
N003 ( 17, 16) [000031] --C--------- t31 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $340
/--* t31 ref
N005 ( 17, 16) [000033] DA---------- * STORE_LCL_VAR ref V11 tmp2 d:2
N005 ( 3, 2) [000194] ------------ t194 = LCL_VAR int V19 cse0 $180
/--* t194 int
[000211] ------------ * PUTARG_STK [+0x20] void
N006 ( 1, 1) [000036] ------------ t36 = LCL_VAR ref V11 tmp2 u:2 (last use) $340
/--* t36 ref
[000212] ------------ t212 = * PUTARG_REG ref REG rdx
N007 ( 1, 1) [000037] ------------ t37 = LCL_VAR int V00 arg0 u:1 $80
/--* t37 int
[000213] ------------ t213 = * PUTARG_REG int REG r8
N008 ( 1, 1) [000038] ------------ t38 = LCL_VAR int V01 arg1 u:1 $81
/--* t38 int
[000214] ------------ t214 = * PUTARG_REG int REG r9
N009 ( 3, 10) [000041] ------------ t41 = CNS_INT(h) long 0xd1ffab1e method $242
/--* t41 long
[000215] ------------ t215 = * PUTARG_REG long REG rcx
/--* t212 ref arg1 in rdx
+--* t213 int arg2 in r8
+--* t214 int arg3 in r9
+--* t215 long arg0 in rcx
N010 ( 26, 24) [000040] --CXG------- t40 = * CALL int Test2.DoTestImpl4 $151
/--* t40 int
N012 ( 30, 27) [000044] DA-XG------- * STORE_LCL_VAR int V05 loc2 d:2
N004 ( 3, 2) [000195] ------------ t195 = LCL_VAR int V19 cse0 $180
/--* t195 int
[000216] ------------ t216 = * PUTARG_REG int REG r8
N005 ( 1, 1) [000045] ------------ t45 = LCL_VAR int V00 arg0 u:1 $80
/--* t45 int
[000217] ------------ t217 = * PUTARG_REG int REG rcx
N006 ( 1, 1) [000046] ------------ t46 = LCL_VAR int V01 arg1 u:1 $81
/--* t46 int
[000218] ------------ t218 = * PUTARG_REG int REG rdx
/--* t216 int arg2 in r8
+--* t217 int arg0 in rcx
+--* t218 int arg1 in rdx
N007 ( 19, 12) [000048] --CXG------- t48 = * CALL int Test2.DoTestImpl5 $156
/--* t48 int
N009 ( 23, 15) [000051] DA-XG------- * STORE_LCL_VAR int V06 loc3 d:2
N001 ( 1, 1) [000052] ------------ t52 = LCL_VAR int V00 arg0 u:1 $80
N002 ( 1, 1) [000053] ------------ t53 = LCL_VAR int V01 arg1 u:1 (last use) $81
/--* t52 int
+--* t53 int
N003 ( 3, 3) [000140] ------------ t140 = * ADD int $181
/--* t140 int
N005 ( 3, 3) [000114] DA---------- * STORE_LCL_VAR int V13 tmp4 d:2
N001 ( 1, 1) [000115] ------------ t115 = LCL_VAR int V13 tmp4 u:2 (last use) $181
N002 ( 3, 2) [000196] ------------ t196 = LCL_VAR int V19 cse0 $180
/--* t115 int
+--* t196 int
N003 ( 8, 6) [000145] ------------ t145 = * MUL int $182
/--* t145 int
N005 ( 8, 6) [000120] DA---------- * STORE_LCL_VAR int V14 tmp5 d:2
N001 ( 1, 1) [000121] ------------ t121 = LCL_VAR int V00 arg0 u:1 (last use) $80
N002 ( 3, 2) [000197] ------------ t197 = LCL_VAR int V19 cse0 (last use) $180
/--* t121 int
+--* t197 int
N003 ( 8, 6) [000150] ------------ t150 = * MUL int $183
/--* t150 int
N005 ( 8, 6) [000131] DA---------- * STORE_LCL_VAR int V15 tmp6 d:2
N001 ( 1, 1) [000132] ------------ t132 = LCL_VAR int V15 tmp6 u:2 (last use) $183
N002 ( 1, 1) [000127] ------------ t127 = LCL_VAR int V14 tmp5 u:2 (last use) $182
N003 ( 1, 1) [000152] -c---------- t152 = CNS_INT int 2 $42
/--* t127 int
+--* t152 int
N004 ( 3, 3) [000153] ------------ t153 = * RSH int $184
/--* t132 int
+--* t153 int
N005 ( 24, 7) [000156] ---X-------- t156 = * DIV int $186
/--* t156 int
N007 ( 28, 10) [000058] DA-X-------- * STORE_LCL_VAR int V07 loc4 d:2
N001 ( 1, 1) [000012] ------------ t12 = LCL_VAR int V10 tmp1 u:2 (last use) $143
N002 ( 3, 2) [000059] ------------ t59 = LCL_VAR int V03 loc0 u:2 (last use) $148
/--* t12 int
+--* t59 int
N003 ( 5, 4) [000060] ------------ t60 = * ADD int $187
N004 ( 3, 2) [000061] ------------ t61 = LCL_VAR int V04 loc1 u:2 (last use) $14d
/--* t60 int
+--* t61 int
N005 ( 9, 7) [000062] ------------ t62 = * ADD int $188
N006 ( 3, 2) [000063] ------------ t63 = LCL_VAR int V05 loc2 u:2 (last use) $151
/--* t62 int
+--* t63 int
N007 ( 13, 10) [000064] ------------ t64 = * ADD int $189
N008 ( 3, 2) [000065] ------------ t65 = LCL_VAR int V06 loc3 u:2 (last use) $156
/--* t64 int
+--* t65 int
N009 ( 17, 13) [000066] ------------ t66 = * ADD int $18a
N010 ( 3, 2) [000067] ------------ t67 = LCL_VAR int V07 loc4 u:2 (last use) $185
/--* t66 int
+--* t67 int
N011 ( 21, 16) [000068] ------------ t68 = * ADD int $18b
/--* t68 int
N012 ( 22, 17) [000069] ------------ * RETURN int $15c
-------------------------------------------------------------------------------------------------------------------
*************** Exiting Lowering
Trees after Lowering
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (return) i label target gcsafe newobj LIR
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..051) (return), preds={} succs={}
N004 ( 2, 2) [000002] ------------ t2 = LCL_VAR int V02 arg2 u:1 (last use) $c0
/--* t2 int
N005 ( 3, 4) [000158] ------------ t158 = * CAST int <- ubyte <- int $180
/--* t158 int
N007 ( 7, 7) [000189] DA---------- * STORE_LCL_VAR int V19 cse0
N008 ( 3, 2) [000190] ------------ t190 = LCL_VAR int V19 cse0 $180
/--* t190 int
[000199] ------------ t199 = * PUTARG_REG int REG r8
N010 ( 1, 1) [000000] ------------ t0 = LCL_VAR int V00 arg0 u:1 $80
/--* t0 int
[000200] ------------ t200 = * PUTARG_REG int REG rcx
N011 ( 1, 1) [000001] ------------ t1 = LCL_VAR int V01 arg1 u:1 $81
/--* t1 int
[000201] ------------ t201 = * PUTARG_REG int REG rdx
/--* t199 int arg2 in r8
+--* t200 int arg0 in rcx
+--* t201 int arg1 in rdx
N012 ( 26, 19) [000003] --CXG------- t3 = * CALL int Test2.DoTestImpl1 $143
/--* t3 int
N014 ( 26, 19) [000011] DA-XG------- * STORE_LCL_VAR int V10 tmp1 d:2
N005 ( 3, 2) [000192] ------------ t192 = LCL_VAR int V19 cse0 $180
/--* t192 int
[000202] ------------ t202 = * PUTARG_REG int REG r9
N006 ( 1, 1) [000005] ------------ t5 = LCL_VAR int V00 arg0 u:1 $80
/--* t5 int
[000203] ------------ t203 = * PUTARG_REG int REG rdx
N007 ( 1, 1) [000006] ------------ t6 = LCL_VAR int V01 arg1 u:1 $81
/--* t6 int
[000204] ------------ t204 = * PUTARG_REG int REG r8
N008 ( 3, 10) [000009] ------------ t9 = CNS_INT(h) long 0xd1ffab1e method $240
/--* t9 long
[000205] ------------ t205 = * PUTARG_REG long REG rcx
/--* t202 int arg3 in r9
+--* t203 int arg1 in rdx
+--* t204 int arg2 in r8
+--* t205 long arg0 in rcx
N009 ( 22, 23) [000008] --CXG------- t8 = * CALL int Test2.DoTestImpl2 $148
/--* t8 int
N011 ( 26, 26) [000015] DA-XG------- * STORE_LCL_VAR int V03 loc0 d:2
N001 ( 1, 1) [000018] -c---------- t18 = CNS_INT int 0 $40
N002 ( 3, 2) [000016] Dc-----N---- t16 = LCL_VAR_ADDR byref V08 loc5 d:2
/--* t16 byref
+--* t18 int
[000198] -A---------- * STOREIND byte
N005 ( 3, 2) [000193] ------------ t193 = LCL_VAR int V19 cse0 $180
/--* t193 int
[000206] ------------ t206 = * PUTARG_REG int REG r9
N006 ( 4, 5) [000020] ------------ t20 = LCL_FLD byte V08 loc5 u:2[+0] (last use) $301
/--* t20 byte
[000207] ------------ t207 = * PUTARG_REG int REG rcx
N007 ( 1, 1) [000021] ------------ t21 = LCL_VAR int V00 arg0 u:1 $80
/--* t21 int
[000208] ------------ t208 = * PUTARG_REG int REG rdx
N008 ( 1, 1) [000022] ------------ t22 = LCL_VAR int V01 arg1 u:1 $81
/--* t22 int
[000209] ------------ t209 = * PUTARG_REG int REG r8
/--* t206 int arg3 in r9
+--* t207 int arg0 in rcx
+--* t208 int arg1 in rdx
+--* t209 int arg2 in r8
N009 ( 23, 18) [000024] --CXG------- t24 = * CALL int Test2.DoTestImpl3 $14d
/--* t24 int
N011 ( 27, 21) [000029] DA-XG------- * STORE_LCL_VAR int V04 loc1 d:2
N002 ( 3, 10) [000030] ------------ t30 = CNS_INT(h) long 0xd1ffab1e method $241
/--* t30 long
[000210] ------------ t210 = * PUTARG_REG long REG rcx
/--* t210 long arg0 in rcx
N003 ( 17, 16) [000031] --C--------- t31 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $340
/--* t31 ref
N005 ( 17, 16) [000033] DA---------- * STORE_LCL_VAR ref V11 tmp2 d:2
N005 ( 3, 2) [000194] ------------ t194 = LCL_VAR int V19 cse0 $180
/--* t194 int
[000211] ------------ * PUTARG_STK [+0x20] void
N006 ( 1, 1) [000036] ------------ t36 = LCL_VAR ref V11 tmp2 u:2 (last use) $340
/--* t36 ref
[000212] ------------ t212 = * PUTARG_REG ref REG rdx
N007 ( 1, 1) [000037] ------------ t37 = LCL_VAR int V00 arg0 u:1 $80
/--* t37 int
[000213] ------------ t213 = * PUTARG_REG int REG r8
N008 ( 1, 1) [000038] ------------ t38 = LCL_VAR int V01 arg1 u:1 $81
/--* t38 int
[000214] ------------ t214 = * PUTARG_REG int REG r9
N009 ( 3, 10) [000041] ------------ t41 = CNS_INT(h) long 0xd1ffab1e method $242
/--* t41 long
[000215] ------------ t215 = * PUTARG_REG long REG rcx
/--* t212 ref arg1 in rdx
+--* t213 int arg2 in r8
+--* t214 int arg3 in r9
+--* t215 long arg0 in rcx
N010 ( 26, 24) [000040] --CXG------- t40 = * CALL int Test2.DoTestImpl4 $151
/--* t40 int
N012 ( 30, 27) [000044] DA-XG------- * STORE_LCL_VAR int V05 loc2 d:2
N004 ( 3, 2) [000195] ------------ t195 = LCL_VAR int V19 cse0 $180
/--* t195 int
[000216] ------------ t216 = * PUTARG_REG int REG r8
N005 ( 1, 1) [000045] ------------ t45 = LCL_VAR int V00 arg0 u:1 $80
/--* t45 int
[000217] ------------ t217 = * PUTARG_REG int REG rcx
N006 ( 1, 1) [000046] ------------ t46 = LCL_VAR int V01 arg1 u:1 $81
/--* t46 int
[000218] ------------ t218 = * PUTARG_REG int REG rdx
/--* t216 int arg2 in r8
+--* t217 int arg0 in rcx
+--* t218 int arg1 in rdx
N007 ( 19, 12) [000048] --CXG------- t48 = * CALL int Test2.DoTestImpl5 $156
/--* t48 int
N009 ( 23, 15) [000051] DA-XG------- * STORE_LCL_VAR int V06 loc3 d:2
N001 ( 1, 1) [000052] ------------ t52 = LCL_VAR int V00 arg0 u:1 $80
N002 ( 1, 1) [000053] ------------ t53 = LCL_VAR int V01 arg1 u:1 (last use) $81
/--* t52 int
+--* t53 int
N003 ( 3, 3) [000140] ------------ t140 = * ADD int $181
/--* t140 int
N005 ( 3, 3) [000114] DA---------- * STORE_LCL_VAR int V13 tmp4 d:2
N001 ( 1, 1) [000115] ------------ t115 = LCL_VAR int V13 tmp4 u:2 (last use) $181
N002 ( 3, 2) [000196] ------------ t196 = LCL_VAR int V19 cse0 $180
/--* t115 int
+--* t196 int
N003 ( 8, 6) [000145] ------------ t145 = * MUL int $182
/--* t145 int
N005 ( 8, 6) [000120] DA---------- * STORE_LCL_VAR int V14 tmp5 d:2
N001 ( 1, 1) [000121] ------------ t121 = LCL_VAR int V00 arg0 u:1 (last use) $80
N002 ( 3, 2) [000197] ------------ t197 = LCL_VAR int V19 cse0 (last use) $180
/--* t121 int
+--* t197 int
N003 ( 8, 6) [000150] ------------ t150 = * MUL int $183
/--* t150 int
N005 ( 8, 6) [000131] DA---------- * STORE_LCL_VAR int V15 tmp6 d:2
N001 ( 1, 1) [000132] ------------ t132 = LCL_VAR int V15 tmp6 u:2 (last use) $183
N002 ( 1, 1) [000127] ------------ t127 = LCL_VAR int V14 tmp5 u:2 (last use) $182
N003 ( 1, 1) [000152] -c---------- t152 = CNS_INT int 2 $42
/--* t127 int
+--* t152 int
N004 ( 3, 3) [000153] ------------ t153 = * RSH int $184
/--* t132 int
+--* t153 int
N005 ( 24, 7) [000156] ---X-------- t156 = * DIV int $186
/--* t156 int
N007 ( 28, 10) [000058] DA-X-------- * STORE_LCL_VAR int V07 loc4 d:2
N001 ( 1, 1) [000012] ------------ t12 = LCL_VAR int V10 tmp1 u:2 (last use) $143
N002 ( 3, 2) [000059] ------------ t59 = LCL_VAR int V03 loc0 u:2 (last use) $148
/--* t12 int
+--* t59 int
N003 ( 5, 4) [000060] ------------ t60 = * ADD int $187
N004 ( 3, 2) [000061] ------------ t61 = LCL_VAR int V04 loc1 u:2 (last use) $14d
/--* t60 int
+--* t61 int
N005 ( 9, 7) [000062] ------------ t62 = * ADD int $188
N006 ( 3, 2) [000063] ------------ t63 = LCL_VAR int V05 loc2 u:2 (last use) $151
/--* t62 int
+--* t63 int
N007 ( 13, 10) [000064] ------------ t64 = * ADD int $189
N008 ( 3, 2) [000065] ------------ t65 = LCL_VAR int V06 loc3 u:2 (last use) $156
/--* t64 int
+--* t65 int
N009 ( 17, 13) [000066] ------------ t66 = * ADD int $18a
N010 ( 3, 2) [000067] ------------ t67 = LCL_VAR int V07 loc4 u:2 (last use) $185
/--* t66 int
+--* t67 int
N011 ( 21, 16) [000068] ------------ t68 = * ADD int $18b
/--* t68 int
N012 ( 22, 17) [000069] ------------ * RETURN int $15c
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In StackLevelSetter
Trees before StackLevelSetter
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (return) i label target gcsafe newobj LIR
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..051) (return), preds={} succs={}
N004 ( 2, 2) [000002] ------------ t2 = LCL_VAR int V02 arg2 u:1 (last use) $c0
/--* t2 int
N005 ( 3, 4) [000158] ------------ t158 = * CAST int <- ubyte <- int $180
/--* t158 int
N007 ( 7, 7) [000189] DA---------- * STORE_LCL_VAR int V19 cse0
N008 ( 3, 2) [000190] ------------ t190 = LCL_VAR int V19 cse0 $180
/--* t190 int
[000199] ------------ t199 = * PUTARG_REG int REG r8
N010 ( 1, 1) [000000] ------------ t0 = LCL_VAR int V00 arg0 u:1 $80
/--* t0 int
[000200] ------------ t200 = * PUTARG_REG int REG rcx
N011 ( 1, 1) [000001] ------------ t1 = LCL_VAR int V01 arg1 u:1 $81
/--* t1 int
[000201] ------------ t201 = * PUTARG_REG int REG rdx
/--* t199 int arg2 in r8
+--* t200 int arg0 in rcx
+--* t201 int arg1 in rdx
N012 ( 26, 19) [000003] --CXG------- t3 = * CALL int Test2.DoTestImpl1 $143
/--* t3 int
N014 ( 26, 19) [000011] DA-XG------- * STORE_LCL_VAR int V10 tmp1 d:2
N005 ( 3, 2) [000192] ------------ t192 = LCL_VAR int V19 cse0 $180
/--* t192 int
[000202] ------------ t202 = * PUTARG_REG int REG r9
N006 ( 1, 1) [000005] ------------ t5 = LCL_VAR int V00 arg0 u:1 $80
/--* t5 int
[000203] ------------ t203 = * PUTARG_REG int REG rdx
N007 ( 1, 1) [000006] ------------ t6 = LCL_VAR int V01 arg1 u:1 $81
/--* t6 int
[000204] ------------ t204 = * PUTARG_REG int REG r8
N008 ( 3, 10) [000009] ------------ t9 = CNS_INT(h) long 0xd1ffab1e method $240
/--* t9 long
[000205] ------------ t205 = * PUTARG_REG long REG rcx
/--* t202 int arg3 in r9
+--* t203 int arg1 in rdx
+--* t204 int arg2 in r8
+--* t205 long arg0 in rcx
N009 ( 22, 23) [000008] --CXG------- t8 = * CALL int Test2.DoTestImpl2 $148
/--* t8 int
N011 ( 26, 26) [000015] DA-XG------- * STORE_LCL_VAR int V03 loc0 d:2
N001 ( 1, 1) [000018] -c---------- t18 = CNS_INT int 0 $40
N002 ( 3, 2) [000016] Dc-----N---- t16 = LCL_VAR_ADDR byref V08 loc5 d:2
/--* t16 byref
+--* t18 int
[000198] -A---------- * STOREIND byte
N005 ( 3, 2) [000193] ------------ t193 = LCL_VAR int V19 cse0 $180
/--* t193 int
[000206] ------------ t206 = * PUTARG_REG int REG r9
N006 ( 4, 5) [000020] ------------ t20 = LCL_FLD byte V08 loc5 u:2[+0] (last use) $301
/--* t20 byte
[000207] ------------ t207 = * PUTARG_REG int REG rcx
N007 ( 1, 1) [000021] ------------ t21 = LCL_VAR int V00 arg0 u:1 $80
/--* t21 int
[000208] ------------ t208 = * PUTARG_REG int REG rdx
N008 ( 1, 1) [000022] ------------ t22 = LCL_VAR int V01 arg1 u:1 $81
/--* t22 int
[000209] ------------ t209 = * PUTARG_REG int REG r8
/--* t206 int arg3 in r9
+--* t207 int arg0 in rcx
+--* t208 int arg1 in rdx
+--* t209 int arg2 in r8
N009 ( 23, 18) [000024] --CXG------- t24 = * CALL int Test2.DoTestImpl3 $14d
/--* t24 int
N011 ( 27, 21) [000029] DA-XG------- * STORE_LCL_VAR int V04 loc1 d:2
N002 ( 3, 10) [000030] ------------ t30 = CNS_INT(h) long 0xd1ffab1e method $241
/--* t30 long
[000210] ------------ t210 = * PUTARG_REG long REG rcx
/--* t210 long arg0 in rcx
N003 ( 17, 16) [000031] --C--------- t31 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $340
/--* t31 ref
N005 ( 17, 16) [000033] DA---------- * STORE_LCL_VAR ref V11 tmp2 d:2
N005 ( 3, 2) [000194] ------------ t194 = LCL_VAR int V19 cse0 $180
/--* t194 int
[000211] ------------ * PUTARG_STK [+0x20] void
N006 ( 1, 1) [000036] ------------ t36 = LCL_VAR ref V11 tmp2 u:2 (last use) $340
/--* t36 ref
[000212] ------------ t212 = * PUTARG_REG ref REG rdx
N007 ( 1, 1) [000037] ------------ t37 = LCL_VAR int V00 arg0 u:1 $80
/--* t37 int
[000213] ------------ t213 = * PUTARG_REG int REG r8
N008 ( 1, 1) [000038] ------------ t38 = LCL_VAR int V01 arg1 u:1 $81
/--* t38 int
[000214] ------------ t214 = * PUTARG_REG int REG r9
N009 ( 3, 10) [000041] ------------ t41 = CNS_INT(h) long 0xd1ffab1e method $242
/--* t41 long
[000215] ------------ t215 = * PUTARG_REG long REG rcx
/--* t212 ref arg1 in rdx
+--* t213 int arg2 in r8
+--* t214 int arg3 in r9
+--* t215 long arg0 in rcx
N010 ( 26, 24) [000040] --CXG------- t40 = * CALL int Test2.DoTestImpl4 $151
/--* t40 int
N012 ( 30, 27) [000044] DA-XG------- * STORE_LCL_VAR int V05 loc2 d:2
N004 ( 3, 2) [000195] ------------ t195 = LCL_VAR int V19 cse0 $180
/--* t195 int
[000216] ------------ t216 = * PUTARG_REG int REG r8
N005 ( 1, 1) [000045] ------------ t45 = LCL_VAR int V00 arg0 u:1 $80
/--* t45 int
[000217] ------------ t217 = * PUTARG_REG int REG rcx
N006 ( 1, 1) [000046] ------------ t46 = LCL_VAR int V01 arg1 u:1 $81
/--* t46 int
[000218] ------------ t218 = * PUTARG_REG int REG rdx
/--* t216 int arg2 in r8
+--* t217 int arg0 in rcx
+--* t218 int arg1 in rdx
N007 ( 19, 12) [000048] --CXG------- t48 = * CALL int Test2.DoTestImpl5 $156
/--* t48 int
N009 ( 23, 15) [000051] DA-XG------- * STORE_LCL_VAR int V06 loc3 d:2
N001 ( 1, 1) [000052] ------------ t52 = LCL_VAR int V00 arg0 u:1 $80
N002 ( 1, 1) [000053] ------------ t53 = LCL_VAR int V01 arg1 u:1 (last use) $81
/--* t52 int
+--* t53 int
N003 ( 3, 3) [000140] ------------ t140 = * ADD int $181
/--* t140 int
N005 ( 3, 3) [000114] DA---------- * STORE_LCL_VAR int V13 tmp4 d:2
N001 ( 1, 1) [000115] ------------ t115 = LCL_VAR int V13 tmp4 u:2 (last use) $181
N002 ( 3, 2) [000196] ------------ t196 = LCL_VAR int V19 cse0 $180
/--* t115 int
+--* t196 int
N003 ( 8, 6) [000145] ------------ t145 = * MUL int $182
/--* t145 int
N005 ( 8, 6) [000120] DA---------- * STORE_LCL_VAR int V14 tmp5 d:2
N001 ( 1, 1) [000121] ------------ t121 = LCL_VAR int V00 arg0 u:1 (last use) $80
N002 ( 3, 2) [000197] ------------ t197 = LCL_VAR int V19 cse0 (last use) $180
/--* t121 int
+--* t197 int
N003 ( 8, 6) [000150] ------------ t150 = * MUL int $183
/--* t150 int
N005 ( 8, 6) [000131] DA---------- * STORE_LCL_VAR int V15 tmp6 d:2
N001 ( 1, 1) [000132] ------------ t132 = LCL_VAR int V15 tmp6 u:2 (last use) $183
N002 ( 1, 1) [000127] ------------ t127 = LCL_VAR int V14 tmp5 u:2 (last use) $182
N003 ( 1, 1) [000152] -c---------- t152 = CNS_INT int 2 $42
/--* t127 int
+--* t152 int
N004 ( 3, 3) [000153] ------------ t153 = * RSH int $184
/--* t132 int
+--* t153 int
N005 ( 24, 7) [000156] ---X-------- t156 = * DIV int $186
/--* t156 int
N007 ( 28, 10) [000058] DA-X-------- * STORE_LCL_VAR int V07 loc4 d:2
N001 ( 1, 1) [000012] ------------ t12 = LCL_VAR int V10 tmp1 u:2 (last use) $143
N002 ( 3, 2) [000059] ------------ t59 = LCL_VAR int V03 loc0 u:2 (last use) $148
/--* t12 int
+--* t59 int
N003 ( 5, 4) [000060] ------------ t60 = * ADD int $187
N004 ( 3, 2) [000061] ------------ t61 = LCL_VAR int V04 loc1 u:2 (last use) $14d
/--* t60 int
+--* t61 int
N005 ( 9, 7) [000062] ------------ t62 = * ADD int $188
N006 ( 3, 2) [000063] ------------ t63 = LCL_VAR int V05 loc2 u:2 (last use) $151
/--* t62 int
+--* t63 int
N007 ( 13, 10) [000064] ------------ t64 = * ADD int $189
N008 ( 3, 2) [000065] ------------ t65 = LCL_VAR int V06 loc3 u:2 (last use) $156
/--* t64 int
+--* t65 int
N009 ( 17, 13) [000066] ------------ t66 = * ADD int $18a
N010 ( 3, 2) [000067] ------------ t67 = LCL_VAR int V07 loc4 u:2 (last use) $185
/--* t66 int
+--* t67 int
N011 ( 21, 16) [000068] ------------ t68 = * ADD int $18b
/--* t68 int
N012 ( 22, 17) [000069] ------------ * RETURN int $15c
-------------------------------------------------------------------------------------------------------------------
*************** Exiting StackLevelSetter
Trees after StackLevelSetter
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (return) i label target gcsafe newobj LIR
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..051) (return), preds={} succs={}
N004 ( 2, 2) [000002] ------------ t2 = LCL_VAR int V02 arg2 u:1 (last use) $c0
/--* t2 int
N005 ( 3, 4) [000158] ------------ t158 = * CAST int <- ubyte <- int $180
/--* t158 int
N007 ( 7, 7) [000189] DA---------- * STORE_LCL_VAR int V19 cse0
N008 ( 3, 2) [000190] ------------ t190 = LCL_VAR int V19 cse0 $180
/--* t190 int
[000199] ------------ t199 = * PUTARG_REG int REG r8
N010 ( 1, 1) [000000] ------------ t0 = LCL_VAR int V00 arg0 u:1 $80
/--* t0 int
[000200] ------------ t200 = * PUTARG_REG int REG rcx
N011 ( 1, 1) [000001] ------------ t1 = LCL_VAR int V01 arg1 u:1 $81
/--* t1 int
[000201] ------------ t201 = * PUTARG_REG int REG rdx
/--* t199 int arg2 in r8
+--* t200 int arg0 in rcx
+--* t201 int arg1 in rdx
N012 ( 26, 19) [000003] --CXG------- t3 = * CALL int Test2.DoTestImpl1 $143
/--* t3 int
N014 ( 26, 19) [000011] DA-XG------- * STORE_LCL_VAR int V10 tmp1 d:2
N005 ( 3, 2) [000192] ------------ t192 = LCL_VAR int V19 cse0 $180
/--* t192 int
[000202] ------------ t202 = * PUTARG_REG int REG r9
N006 ( 1, 1) [000005] ------------ t5 = LCL_VAR int V00 arg0 u:1 $80
/--* t5 int
[000203] ------------ t203 = * PUTARG_REG int REG rdx
N007 ( 1, 1) [000006] ------------ t6 = LCL_VAR int V01 arg1 u:1 $81
/--* t6 int
[000204] ------------ t204 = * PUTARG_REG int REG r8
N008 ( 3, 10) [000009] ------------ t9 = CNS_INT(h) long 0xd1ffab1e method $240
/--* t9 long
[000205] ------------ t205 = * PUTARG_REG long REG rcx
/--* t202 int arg3 in r9
+--* t203 int arg1 in rdx
+--* t204 int arg2 in r8
+--* t205 long arg0 in rcx
N009 ( 22, 23) [000008] --CXG------- t8 = * CALL int Test2.DoTestImpl2 $148
/--* t8 int
N011 ( 26, 26) [000015] DA-XG------- * STORE_LCL_VAR int V03 loc0 d:2
N001 ( 1, 1) [000018] -c---------- t18 = CNS_INT int 0 $40
N002 ( 3, 2) [000016] Dc-----N---- t16 = LCL_VAR_ADDR byref V08 loc5 d:2
/--* t16 byref
+--* t18 int
[000198] -A---------- * STOREIND byte
N005 ( 3, 2) [000193] ------------ t193 = LCL_VAR int V19 cse0 $180
/--* t193 int
[000206] ------------ t206 = * PUTARG_REG int REG r9
N006 ( 4, 5) [000020] ------------ t20 = LCL_FLD byte V08 loc5 u:2[+0] (last use) $301
/--* t20 byte
[000207] ------------ t207 = * PUTARG_REG int REG rcx
N007 ( 1, 1) [000021] ------------ t21 = LCL_VAR int V00 arg0 u:1 $80
/--* t21 int
[000208] ------------ t208 = * PUTARG_REG int REG rdx
N008 ( 1, 1) [000022] ------------ t22 = LCL_VAR int V01 arg1 u:1 $81
/--* t22 int
[000209] ------------ t209 = * PUTARG_REG int REG r8
/--* t206 int arg3 in r9
+--* t207 int arg0 in rcx
+--* t208 int arg1 in rdx
+--* t209 int arg2 in r8
N009 ( 23, 18) [000024] --CXG------- t24 = * CALL int Test2.DoTestImpl3 $14d
/--* t24 int
N011 ( 27, 21) [000029] DA-XG------- * STORE_LCL_VAR int V04 loc1 d:2
N002 ( 3, 10) [000030] ------------ t30 = CNS_INT(h) long 0xd1ffab1e method $241
/--* t30 long
[000210] ------------ t210 = * PUTARG_REG long REG rcx
/--* t210 long arg0 in rcx
N003 ( 17, 16) [000031] --C--------- t31 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $340
/--* t31 ref
N005 ( 17, 16) [000033] DA---------- * STORE_LCL_VAR ref V11 tmp2 d:2
N005 ( 3, 2) [000194] ------------ t194 = LCL_VAR int V19 cse0 $180
/--* t194 int
[000211] ------------ * PUTARG_STK [+0x20] void
N006 ( 1, 1) [000036] ------------ t36 = LCL_VAR ref V11 tmp2 u:2 (last use) $340
/--* t36 ref
[000212] ------------ t212 = * PUTARG_REG ref REG rdx
N007 ( 1, 1) [000037] ------------ t37 = LCL_VAR int V00 arg0 u:1 $80
/--* t37 int
[000213] ------------ t213 = * PUTARG_REG int REG r8
N008 ( 1, 1) [000038] ------------ t38 = LCL_VAR int V01 arg1 u:1 $81
/--* t38 int
[000214] ------------ t214 = * PUTARG_REG int REG r9
N009 ( 3, 10) [000041] ------------ t41 = CNS_INT(h) long 0xd1ffab1e method $242
/--* t41 long
[000215] ------------ t215 = * PUTARG_REG long REG rcx
/--* t212 ref arg1 in rdx
+--* t213 int arg2 in r8
+--* t214 int arg3 in r9
+--* t215 long arg0 in rcx
N010 ( 26, 24) [000040] --CXG------- t40 = * CALL int Test2.DoTestImpl4 $151
/--* t40 int
N012 ( 30, 27) [000044] DA-XG------- * STORE_LCL_VAR int V05 loc2 d:2
N004 ( 3, 2) [000195] ------------ t195 = LCL_VAR int V19 cse0 $180
/--* t195 int
[000216] ------------ t216 = * PUTARG_REG int REG r8
N005 ( 1, 1) [000045] ------------ t45 = LCL_VAR int V00 arg0 u:1 $80
/--* t45 int
[000217] ------------ t217 = * PUTARG_REG int REG rcx
N006 ( 1, 1) [000046] ------------ t46 = LCL_VAR int V01 arg1 u:1 $81
/--* t46 int
[000218] ------------ t218 = * PUTARG_REG int REG rdx
/--* t216 int arg2 in r8
+--* t217 int arg0 in rcx
+--* t218 int arg1 in rdx
N007 ( 19, 12) [000048] --CXG------- t48 = * CALL int Test2.DoTestImpl5 $156
/--* t48 int
N009 ( 23, 15) [000051] DA-XG------- * STORE_LCL_VAR int V06 loc3 d:2
N001 ( 1, 1) [000052] ------------ t52 = LCL_VAR int V00 arg0 u:1 $80
N002 ( 1, 1) [000053] ------------ t53 = LCL_VAR int V01 arg1 u:1 (last use) $81
/--* t52 int
+--* t53 int
N003 ( 3, 3) [000140] ------------ t140 = * ADD int $181
/--* t140 int
N005 ( 3, 3) [000114] DA---------- * STORE_LCL_VAR int V13 tmp4 d:2
N001 ( 1, 1) [000115] ------------ t115 = LCL_VAR int V13 tmp4 u:2 (last use) $181
N002 ( 3, 2) [000196] ------------ t196 = LCL_VAR int V19 cse0 $180
/--* t115 int
+--* t196 int
N003 ( 8, 6) [000145] ------------ t145 = * MUL int $182
/--* t145 int
N005 ( 8, 6) [000120] DA---------- * STORE_LCL_VAR int V14 tmp5 d:2
N001 ( 1, 1) [000121] ------------ t121 = LCL_VAR int V00 arg0 u:1 (last use) $80
N002 ( 3, 2) [000197] ------------ t197 = LCL_VAR int V19 cse0 (last use) $180
/--* t121 int
+--* t197 int
N003 ( 8, 6) [000150] ------------ t150 = * MUL int $183
/--* t150 int
N005 ( 8, 6) [000131] DA---------- * STORE_LCL_VAR int V15 tmp6 d:2
N001 ( 1, 1) [000132] ------------ t132 = LCL_VAR int V15 tmp6 u:2 (last use) $183
N002 ( 1, 1) [000127] ------------ t127 = LCL_VAR int V14 tmp5 u:2 (last use) $182
N003 ( 1, 1) [000152] -c---------- t152 = CNS_INT int 2 $42
/--* t127 int
+--* t152 int
N004 ( 3, 3) [000153] ------------ t153 = * RSH int $184
/--* t132 int
+--* t153 int
N005 ( 24, 7) [000156] ---X-------- t156 = * DIV int $186
/--* t156 int
N007 ( 28, 10) [000058] DA-X-------- * STORE_LCL_VAR int V07 loc4 d:2
N001 ( 1, 1) [000012] ------------ t12 = LCL_VAR int V10 tmp1 u:2 (last use) $143
N002 ( 3, 2) [000059] ------------ t59 = LCL_VAR int V03 loc0 u:2 (last use) $148
/--* t12 int
+--* t59 int
N003 ( 5, 4) [000060] ------------ t60 = * ADD int $187
N004 ( 3, 2) [000061] ------------ t61 = LCL_VAR int V04 loc1 u:2 (last use) $14d
/--* t60 int
+--* t61 int
N005 ( 9, 7) [000062] ------------ t62 = * ADD int $188
N006 ( 3, 2) [000063] ------------ t63 = LCL_VAR int V05 loc2 u:2 (last use) $151
/--* t62 int
+--* t63 int
N007 ( 13, 10) [000064] ------------ t64 = * ADD int $189
N008 ( 3, 2) [000065] ------------ t65 = LCL_VAR int V06 loc3 u:2 (last use) $156
/--* t64 int
+--* t65 int
N009 ( 17, 13) [000066] ------------ t66 = * ADD int $18a
N010 ( 3, 2) [000067] ------------ t67 = LCL_VAR int V07 loc4 u:2 (last use) $185
/--* t66 int
+--* t67 int
N011 ( 21, 16) [000068] ------------ t68 = * ADD int $18b
/--* t68 int
N012 ( 22, 17) [000069] ------------ * RETURN int $15c
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
Clearing modified regs.
buildIntervals ========
-----------------
LIVENESS:
-----------------
BB01 use def in out
{V00 V01 V02}
{V03 V04 V05 V06 V07 V08 V10 V11 V13 V14 V15 V19}
{V00 V01 V02}
{}
Interval 0: int RefPositions {} physReg:NA Preferences=[allInt]
Interval 1: int RefPositions {} physReg:NA Preferences=[allInt]
Interval 2: int RefPositions {} physReg:NA Preferences=[allInt]
Interval 3: int RefPositions {} physReg:NA Preferences=[allInt]
Interval 4: int RefPositions {} physReg:NA Preferences=[allInt]
Interval 5: int RefPositions {} physReg:NA Preferences=[allInt]
Interval 6: int RefPositions {} physReg:NA Preferences=[allInt]
Interval 7: int RefPositions {} physReg:NA Preferences=[allInt]
Local V08 should not be enregistered because: it is a struct
Interval 8: int RefPositions {} physReg:NA Preferences=[allInt]
Interval 9: ref RefPositions {} physReg:NA Preferences=[allInt]
Interval 10: int RefPositions {} physReg:NA Preferences=[allInt]
Interval 11: int RefPositions {} physReg:NA Preferences=[allInt]
Interval 12: int RefPositions {} physReg:NA Preferences=[allInt]
Interval 13: int 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..051) (return), preds={} succs={}
=====
N004. V02(t2*)
N005. t158 = CAST ; t2*
N007. V19(t189); t158
N008. V19(t190)
N000. t199 = PUTARG_REG; t190
N010. V00(t0)
N000. t200 = PUTARG_REG; t0
N011. V01(t1)
N000. t201 = PUTARG_REG; t1
N012. t3 = CALL ; t199,t200,t201
N014. V10(t11); t3
N005. V19(t192)
N000. t202 = PUTARG_REG; t192
N006. V00(t5)
N000. t203 = PUTARG_REG; t5
N007. V01(t6)
N000. t204 = PUTARG_REG; t6
N008. t9 = CNS_INT(h) 0xd1ffab1e method
N000. t205 = PUTARG_REG; t9
N009. t8 = CALL ; t202,t203,t204,t205
N011. V03(t15); t8
N001. CNS_INT 0
N002. LCL_VAR_ADDR V08 loc5 d:2
N000. STOREIND
N005. V19(t193)
N000. t206 = PUTARG_REG; t193
N006. t20* = V08 MEM
N000. t207 = PUTARG_REG; t20*
N007. V00(t21)
N000. t208 = PUTARG_REG; t21
N008. V01(t22)
N000. t209 = PUTARG_REG; t22
N009. t24 = CALL ; t206,t207,t208,t209
N011. V04(t29); t24
N002. t30 = CNS_INT(h) 0xd1ffab1e method
N000. t210 = PUTARG_REG; t30
N003. t31 = CALL help; t210
N005. V11(t33); t31
N005. V19(t194)
N000. PUTARG_STK [+0x20]; t194
N006. V11(t36*)
N000. t212 = PUTARG_REG; t36*
N007. V00(t37)
N000. t213 = PUTARG_REG; t37
N008. V01(t38)
N000. t214 = PUTARG_REG; t38
N009. t41 = CNS_INT(h) 0xd1ffab1e method
N000. t215 = PUTARG_REG; t41
N010. t40 = CALL ; t212,t213,t214,t215
N012. V05(t44); t40
N004. V19(t195)
N000. t216 = PUTARG_REG; t195
N005. V00(t45)
N000. t217 = PUTARG_REG; t45
N006. V01(t46)
N000. t218 = PUTARG_REG; t46
N007. t48 = CALL ; t216,t217,t218
N009. V06(t51); t48
N001. V00(t52)
N002. V01(t53*)
N003. t140 = ADD ; t52,t53*
N005. V13(t114); t140
N001. V13(t115*)
N002. V19(t196)
N003. t145 = MUL ; t115*,t196
N005. V14(t120); t145
N001. V00(t121*)
N002. V19(t197*)
N003. t150 = MUL ; t121*,t197*
N005. V15(t131); t150
N001. V15(t132*)
N002. V14(t127*)
N003. CNS_INT 2
N004. t153 = RSH ; t127*
N005. t156 = DIV ; t132*,t153
N007. V07(t58); t156
N001. V10(t12*)
N002. V03(t59*)
N003. t60 = ADD ; t12*,t59*
N004. V04(t61*)
N005. t62 = ADD ; t60,t61*
N006. V05(t63*)
N007. t64 = ADD ; t62,t63*
N008. V06(t65*)
N009. t66 = ADD ; t64,t65*
N010. V07(t67*)
N011. t68 = ADD ; t66,t67*
N012. RETURN ; t68
buildIntervals second part ========
Int arg V00 in reg rcx
<RefPosition #0 @0 RefTypeParamDef <Ivl:0 V00> BB00 regmask=[rcx] minReg=1 fixed>
Int arg V01 in reg rdx
<RefPosition #1 @0 RefTypeParamDef <Ivl:1 V01> BB00 regmask=[rdx] minReg=1 fixed>
Int arg V02 in reg r8
<RefPosition #2 @0 RefTypeParamDef <Ivl:2 V02> BB00 regmask=[r8] minReg=1 fixed>
NEW BLOCK BB01
<RefPosition #3 @1 RefTypeBB BB01 regmask=[] minReg=1>
DefList: { }
N003 ( 2, 2) [000002] ------------ * LCL_VAR int V02 arg2 u:1 NA (last use) REG NA $c0
DefList: { }
N005 ( 3, 4) [000158] ------------ * CAST int <- ubyte <- int REG NA $180
<RefPosition #4 @5 RefTypeUse <Ivl:2 V02> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
Interval 14: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #5 @6 RefTypeDef <Ivl:14> CAST BB01 regmask=[allInt] minReg=1>
DefList: { N005.t158. CAST }
N007 ( 7, 7) [000189] DA---------- * STORE_LCL_VAR int V19 cse0 NA REG NA
<RefPosition #6 @7 RefTypeUse <Ivl:14> BB01 regmask=[allInt] minReg=1 last>
Assigning related <V19/L13> to <I14>
<RefPosition #7 @8 RefTypeDef <Ivl:13 V19> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1 last>
DefList: { }
N009 ( 3, 2) [000190] ------------ * LCL_VAR int V19 cse0 NA REG NA $180
DefList: { }
N011 (???,???) [000199] ------------ * PUTARG_REG int REG r8
<RefPosition #8 @11 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #9 @11 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r8] minReg=1 last fixed>
Setting putarg_reg as a pass-through of a non-last use lclVar
Interval 15: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #10 @12 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #11 @12 RefTypeDef <Ivl:15> PUTARG_REG BB01 regmask=[r8] minReg=1 fixed>
Assigning related <V19/L13> to <I15>
DefList: { N011.t199. PUTARG_REG }
N013 ( 1, 1) [000000] ------------ * LCL_VAR int V00 arg0 u:1 NA REG NA $80
DefList: { N011.t199. PUTARG_REG }
N015 (???,???) [000200] ------------ * PUTARG_REG int REG rcx
<RefPosition #12 @15 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #13 @15 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rcx] minReg=1 last fixed>
Setting putarg_reg as a pass-through of a non-last use lclVar
Interval 16: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #14 @16 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #15 @16 RefTypeDef <Ivl:16> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed>
Assigning related <V00/L0> to <I16>
DefList: { N011.t199. PUTARG_REG; N015.t200. PUTARG_REG }
N017 ( 1, 1) [000001] ------------ * LCL_VAR int V01 arg1 u:1 NA REG NA $81
DefList: { N011.t199. PUTARG_REG; N015.t200. PUTARG_REG }
N019 (???,???) [000201] ------------ * PUTARG_REG int REG rdx
<RefPosition #16 @19 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #17 @19 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[rdx] minReg=1 last fixed>
Setting putarg_reg as a pass-through of a non-last use lclVar
Interval 17: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #18 @20 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #19 @20 RefTypeDef <Ivl:17> PUTARG_REG BB01 regmask=[rdx] minReg=1 fixed>
Assigning related <V01/L1> to <I17>
DefList: { N011.t199. PUTARG_REG; N015.t200. PUTARG_REG; N019.t201. PUTARG_REG }
N021 ( 26, 19) [000003] --CXG------- * CALL int Test2.DoTestImpl1 REG NA $143
<RefPosition #20 @21 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #21 @21 RefTypeUse <Ivl:15> BB01 regmask=[r8] minReg=1 last fixed>
<RefPosition #22 @21 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #23 @21 RefTypeUse <Ivl:16> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #24 @21 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #25 @21 RefTypeUse <Ivl:17> BB01 regmask=[rdx] minReg=1 last fixed>
<RefPosition #26 @22 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #27 @22 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #28 @22 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #29 @22 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #30 @22 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #31 @22 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1>
<RefPosition #32 @22 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1>
Interval 18: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #33 @22 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #34 @22 RefTypeDef <Ivl:18> CALL BB01 regmask=[rax] minReg=1 fixed>
DefList: { N021.t3. CALL }
N023 ( 26, 19) [000011] DA-XG------- * STORE_LCL_VAR int V10 tmp1 d:2 NA REG NA
<RefPosition #35 @23 RefTypeUse <Ivl:18> BB01 regmask=[allInt] minReg=1 last>
Assigning related <V10/L8> to <I18>
<RefPosition #36 @24 RefTypeDef <Ivl:8 V10> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1 last>
DefList: { }
N025 ( 3, 2) [000192] ------------ * LCL_VAR int V19 cse0 NA REG NA $180
DefList: { }
N027 (???,???) [000202] ------------ * PUTARG_REG int REG r9
<RefPosition #37 @27 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #38 @27 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r9] minReg=1 last fixed>
Setting putarg_reg as a pass-through of a non-last use lclVar
Interval 19: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #39 @28 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #40 @28 RefTypeDef <Ivl:19> PUTARG_REG BB01 regmask=[r9] minReg=1 fixed>
Assigning related <V19/L13> to <I19>
DefList: { N027.t202. PUTARG_REG }
N029 ( 1, 1) [000005] ------------ * LCL_VAR int V00 arg0 u:1 NA REG NA $80
DefList: { N027.t202. PUTARG_REG }
N031 (???,???) [000203] ------------ * PUTARG_REG int REG rdx
<RefPosition #41 @31 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #42 @31 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rdx] minReg=1 last fixed>
Setting putarg_reg as a pass-through of a non-last use lclVar
Interval 20: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #43 @32 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #44 @32 RefTypeDef <Ivl:20> PUTARG_REG BB01 regmask=[rdx] minReg=1 fixed>
Assigning related <V00/L0> to <I20>
DefList: { N027.t202. PUTARG_REG; N031.t203. PUTARG_REG }
N033 ( 1, 1) [000006] ------------ * LCL_VAR int V01 arg1 u:1 NA REG NA $81
DefList: { N027.t202. PUTARG_REG; N031.t203. PUTARG_REG }
N035 (???,???) [000204] ------------ * PUTARG_REG int REG r8
<RefPosition #45 @35 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #46 @35 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[r8] minReg=1 last fixed>
Setting putarg_reg as a pass-through of a non-last use lclVar
Interval 21: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #47 @36 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #48 @36 RefTypeDef <Ivl:21> PUTARG_REG BB01 regmask=[r8] minReg=1 fixed>
Assigning related <V01/L1> to <I21>
DefList: { N027.t202. PUTARG_REG; N031.t203. PUTARG_REG; N035.t204. PUTARG_REG }
N037 ( 3, 10) [000009] ------------ * CNS_INT(h) long 0xd1ffab1e method REG NA $240
Interval 22: long RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #49 @38 RefTypeDef <Ivl:22> CNS_INT BB01 regmask=[allInt] minReg=1>
DefList: { N027.t202. PUTARG_REG; N031.t203. PUTARG_REG; N035.t204. PUTARG_REG; N037.t9. CNS_INT }
N039 (???,???) [000205] ------------ * PUTARG_REG long REG rcx
<RefPosition #50 @39 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #51 @39 RefTypeUse <Ivl:22> BB01 regmask=[rcx] minReg=1 last fixed>
Interval 23: long RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #52 @40 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #53 @40 RefTypeDef <Ivl:23> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed>
DefList: { N027.t202. PUTARG_REG; N031.t203. PUTARG_REG; N035.t204. PUTARG_REG; N039.t205. PUTARG_REG }
N041 ( 22, 23) [000008] --CXG------- * CALL int Test2.DoTestImpl2 REG NA $148
<RefPosition #54 @41 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #55 @41 RefTypeUse <Ivl:19> BB01 regmask=[r9] minReg=1 last fixed>
<RefPosition #56 @41 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #57 @41 RefTypeUse <Ivl:20> BB01 regmask=[rdx] minReg=1 last fixed>
<RefPosition #58 @41 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #59 @41 RefTypeUse <Ivl:21> BB01 regmask=[r8] minReg=1 last fixed>
<RefPosition #60 @41 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #61 @41 RefTypeUse <Ivl:23> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #62 @42 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #63 @42 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #64 @42 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #65 @42 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #66 @42 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #67 @42 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1>
<RefPosition #68 @42 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1>
Interval 24: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #69 @42 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #70 @42 RefTypeDef <Ivl:24> CALL BB01 regmask=[rax] minReg=1 fixed>
DefList: { N041.t8. CALL }
N043 ( 26, 26) [000015] DA-XG------- * STORE_LCL_VAR int V03 loc0 d:2 NA REG NA
<RefPosition #71 @43 RefTypeUse <Ivl:24> BB01 regmask=[allInt] minReg=1 last>
Assigning related <V03/L3> to <I24>
<RefPosition #72 @44 RefTypeDef <Ivl:3 V03> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1 last>
DefList: { }
N045 ( 1, 1) [000018] -c---------- * CNS_INT int 0 REG NA $40
Contained
DefList: { }
N047 ( 3, 2) [000016] Dc-----N---- * LCL_VAR_ADDR byref V08 loc5 d:2 NA REG NA
Contained
DefList: { }
N049 (???,???) [000198] -A---------- * STOREIND byte REG NA
DefList: { }
N051 ( 3, 2) [000193] ------------ * LCL_VAR int V19 cse0 NA REG NA $180
DefList: { }
N053 (???,???) [000206] ------------ * PUTARG_REG int REG r9
<RefPosition #73 @53 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #74 @53 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r9] minReg=1 last fixed>
Setting putarg_reg as a pass-through of a non-last use lclVar
Interval 25: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #75 @54 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #76 @54 RefTypeDef <Ivl:25> PUTARG_REG BB01 regmask=[r9] minReg=1 fixed>
Assigning related <V19/L13> to <I25>
DefList: { N053.t206. PUTARG_REG }
N055 ( 4, 5) [000020] ------------ * LCL_FLD byte V08 loc5 u:2[+0] NA (last use) REG NA $301
Interval 26: byte RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #77 @56 RefTypeDef <Ivl:26> LCL_FLD BB01 regmask=[allInt] minReg=1>
DefList: { N053.t206. PUTARG_REG; N055.t20. LCL_FLD }
N057 (???,???) [000207] ------------ * PUTARG_REG int REG rcx
<RefPosition #78 @57 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #79 @57 RefTypeUse <Ivl:26> BB01 regmask=[rcx] minReg=1 last fixed>
Interval 27: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #80 @58 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #81 @58 RefTypeDef <Ivl:27> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed>
DefList: { N053.t206. PUTARG_REG; N057.t207. PUTARG_REG }
N059 ( 1, 1) [000021] ------------ * LCL_VAR int V00 arg0 u:1 NA REG NA $80
DefList: { N053.t206. PUTARG_REG; N057.t207. PUTARG_REG }
N061 (???,???) [000208] ------------ * PUTARG_REG int REG rdx
<RefPosition #82 @61 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #83 @61 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rdx] minReg=1 last fixed>
Setting putarg_reg as a pass-through of a non-last use lclVar
Interval 28: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #84 @62 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #85 @62 RefTypeDef <Ivl:28> PUTARG_REG BB01 regmask=[rdx] minReg=1 fixed>
Assigning related <V00/L0> to <I28>
DefList: { N053.t206. PUTARG_REG; N057.t207. PUTARG_REG; N061.t208. PUTARG_REG }
N063 ( 1, 1) [000022] ------------ * LCL_VAR int V01 arg1 u:1 NA REG NA $81
DefList: { N053.t206. PUTARG_REG; N057.t207. PUTARG_REG; N061.t208. PUTARG_REG }
N065 (???,???) [000209] ------------ * PUTARG_REG int REG r8
<RefPosition #86 @65 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #87 @65 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[r8] minReg=1 last fixed>
Setting putarg_reg as a pass-through of a non-last use lclVar
Interval 29: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #88 @66 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #89 @66 RefTypeDef <Ivl:29> PUTARG_REG BB01 regmask=[r8] minReg=1 fixed>
Assigning related <V01/L1> to <I29>
DefList: { N053.t206. PUTARG_REG; N057.t207. PUTARG_REG; N061.t208. PUTARG_REG; N065.t209. PUTARG_REG }
N067 ( 23, 18) [000024] --CXG------- * CALL int Test2.DoTestImpl3 REG NA $14d
<RefPosition #90 @67 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #91 @67 RefTypeUse <Ivl:25> BB01 regmask=[r9] minReg=1 last fixed>
<RefPosition #92 @67 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #93 @67 RefTypeUse <Ivl:27> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #94 @67 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #95 @67 RefTypeUse <Ivl:28> BB01 regmask=[rdx] minReg=1 last fixed>
<RefPosition #96 @67 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #97 @67 RefTypeUse <Ivl:29> BB01 regmask=[r8] minReg=1 last fixed>
<RefPosition #98 @68 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #99 @68 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #100 @68 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #101 @68 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #102 @68 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #103 @68 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1>
<RefPosition #104 @68 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1>
Interval 30: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #105 @68 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #106 @68 RefTypeDef <Ivl:30> CALL BB01 regmask=[rax] minReg=1 fixed>
DefList: { N067.t24. CALL }
N069 ( 27, 21) [000029] DA-XG------- * STORE_LCL_VAR int V04 loc1 d:2 NA REG NA
<RefPosition #107 @69 RefTypeUse <Ivl:30> BB01 regmask=[allInt] minReg=1 last>
Assigning related <V04/L4> to <I30>
<RefPosition #108 @70 RefTypeDef <Ivl:4 V04> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1 last>
DefList: { }
N071 ( 3, 10) [000030] ------------ * CNS_INT(h) long 0xd1ffab1e method REG NA $241
Interval 31: long RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #109 @72 RefTypeDef <Ivl:31> CNS_INT BB01 regmask=[allInt] minReg=1>
DefList: { N071.t30. CNS_INT }
N073 (???,???) [000210] ------------ * PUTARG_REG long REG rcx
<RefPosition #110 @73 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #111 @73 RefTypeUse <Ivl:31> BB01 regmask=[rcx] minReg=1 last fixed>
Interval 32: long RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #112 @74 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #113 @74 RefTypeDef <Ivl:32> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed>
DefList: { N073.t210. PUTARG_REG }
N075 ( 17, 16) [000031] --C--------- * CALL help ref HELPER.CORINFO_HELP_NEWSFAST REG NA $340
<RefPosition #114 @75 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #115 @75 RefTypeUse <Ivl:32> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #116 @76 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #117 @76 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #118 @76 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #119 @76 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #120 @76 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #121 @76 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1>
<RefPosition #122 @76 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1>
Interval 33: ref RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #123 @76 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #124 @76 RefTypeDef <Ivl:33> CALL BB01 regmask=[rax] minReg=1 fixed>
DefList: { N075.t31. CALL }
N077 ( 17, 16) [000033] DA---------- * STORE_LCL_VAR ref V11 tmp2 d:2 NA REG NA
<RefPosition #125 @77 RefTypeUse <Ivl:33> BB01 regmask=[allInt] minReg=1 last>
Assigning related <V11/L9> to <I33>
<RefPosition #126 @78 RefTypeDef <Ivl:9 V11> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1 last>
DefList: { }
N079 ( 3, 2) [000194] ------------ * LCL_VAR int V19 cse0 NA REG NA $180
DefList: { }
N081 (???,???) [000211] ------------ * PUTARG_STK [+0x20] void REG NA
<RefPosition #127 @81 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
DefList: { }
N083 ( 1, 1) [000036] ------------ * LCL_VAR ref V11 tmp2 u:2 NA (last use) REG NA $340
DefList: { }
N085 (???,???) [000212] ------------ * PUTARG_REG ref REG rdx
<RefPosition #128 @85 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #129 @85 RefTypeUse <Ivl:9 V11> LCL_VAR BB01 regmask=[rdx] minReg=1 last fixed>
Interval 34: ref RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #130 @86 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #131 @86 RefTypeDef <Ivl:34> PUTARG_REG BB01 regmask=[rdx] minReg=1 fixed>
DefList: { N085.t212. PUTARG_REG }
N087 ( 1, 1) [000037] ------------ * LCL_VAR int V00 arg0 u:1 NA REG NA $80
DefList: { N085.t212. PUTARG_REG }
N089 (???,???) [000213] ------------ * PUTARG_REG int REG r8
<RefPosition #132 @89 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #133 @89 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[r8] minReg=1 last fixed>
Setting putarg_reg as a pass-through of a non-last use lclVar
Interval 35: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #134 @90 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #135 @90 RefTypeDef <Ivl:35> PUTARG_REG BB01 regmask=[r8] minReg=1 fixed>
Assigning related <V00/L0> to <I35>
DefList: { N085.t212. PUTARG_REG; N089.t213. PUTARG_REG }
N091 ( 1, 1) [000038] ------------ * LCL_VAR int V01 arg1 u:1 NA REG NA $81
DefList: { N085.t212. PUTARG_REG; N089.t213. PUTARG_REG }
N093 (???,???) [000214] ------------ * PUTARG_REG int REG r9
<RefPosition #136 @93 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #137 @93 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[r9] minReg=1 last fixed>
Setting putarg_reg as a pass-through of a non-last use lclVar
Interval 36: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #138 @94 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #139 @94 RefTypeDef <Ivl:36> PUTARG_REG BB01 regmask=[r9] minReg=1 fixed>
Assigning related <V01/L1> to <I36>
DefList: { N085.t212. PUTARG_REG; N089.t213. PUTARG_REG; N093.t214. PUTARG_REG }
N095 ( 3, 10) [000041] ------------ * CNS_INT(h) long 0xd1ffab1e method REG NA $242
Interval 37: long RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #140 @96 RefTypeDef <Ivl:37> CNS_INT BB01 regmask=[allInt] minReg=1>
DefList: { N085.t212. PUTARG_REG; N089.t213. PUTARG_REG; N093.t214. PUTARG_REG; N095.t41. CNS_INT }
N097 (???,???) [000215] ------------ * PUTARG_REG long REG rcx
<RefPosition #141 @97 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #142 @97 RefTypeUse <Ivl:37> BB01 regmask=[rcx] minReg=1 last fixed>
Interval 38: long RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #143 @98 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #144 @98 RefTypeDef <Ivl:38> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed>
DefList: { N085.t212. PUTARG_REG; N089.t213. PUTARG_REG; N093.t214. PUTARG_REG; N097.t215. PUTARG_REG }
N099 ( 26, 24) [000040] --CXG------- * CALL int Test2.DoTestImpl4 REG NA $151
<RefPosition #145 @99 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #146 @99 RefTypeUse <Ivl:34> BB01 regmask=[rdx] minReg=1 last fixed>
<RefPosition #147 @99 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #148 @99 RefTypeUse <Ivl:35> BB01 regmask=[r8] minReg=1 last fixed>
<RefPosition #149 @99 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #150 @99 RefTypeUse <Ivl:36> BB01 regmask=[r9] minReg=1 last fixed>
<RefPosition #151 @99 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #152 @99 RefTypeUse <Ivl:38> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #153 @100 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #154 @100 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #155 @100 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #156 @100 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #157 @100 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #158 @100 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1>
<RefPosition #159 @100 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1>
Interval 39: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #160 @100 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #161 @100 RefTypeDef <Ivl:39> CALL BB01 regmask=[rax] minReg=1 fixed>
DefList: { N099.t40. CALL }
N101 ( 30, 27) [000044] DA-XG------- * STORE_LCL_VAR int V05 loc2 d:2 NA REG NA
<RefPosition #162 @101 RefTypeUse <Ivl:39> BB01 regmask=[allInt] minReg=1 last>
Assigning related <V05/L5> to <I39>
<RefPosition #163 @102 RefTypeDef <Ivl:5 V05> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1 last>
DefList: { }
N103 ( 3, 2) [000195] ------------ * LCL_VAR int V19 cse0 NA REG NA $180
DefList: { }
N105 (???,???) [000216] ------------ * PUTARG_REG int REG r8
<RefPosition #164 @105 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #165 @105 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r8] minReg=1 last fixed>
Setting putarg_reg as a pass-through of a non-last use lclVar
Interval 40: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #166 @106 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #167 @106 RefTypeDef <Ivl:40> PUTARG_REG BB01 regmask=[r8] minReg=1 fixed>
Assigning related <V19/L13> to <I40>
DefList: { N105.t216. PUTARG_REG }
N107 ( 1, 1) [000045] ------------ * LCL_VAR int V00 arg0 u:1 NA REG NA $80
DefList: { N105.t216. PUTARG_REG }
N109 (???,???) [000217] ------------ * PUTARG_REG int REG rcx
<RefPosition #168 @109 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #169 @109 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rcx] minReg=1 last fixed>
Setting putarg_reg as a pass-through of a non-last use lclVar
Interval 41: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #170 @110 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #171 @110 RefTypeDef <Ivl:41> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed>
Assigning related <V00/L0> to <I41>
DefList: { N105.t216. PUTARG_REG; N109.t217. PUTARG_REG }
N111 ( 1, 1) [000046] ------------ * LCL_VAR int V01 arg1 u:1 NA REG NA $81
DefList: { N105.t216. PUTARG_REG; N109.t217. PUTARG_REG }
N113 (???,???) [000218] ------------ * PUTARG_REG int REG rdx
<RefPosition #172 @113 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #173 @113 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[rdx] minReg=1 last fixed>
Setting putarg_reg as a pass-through of a non-last use lclVar
Interval 42: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #174 @114 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #175 @114 RefTypeDef <Ivl:42> PUTARG_REG BB01 regmask=[rdx] minReg=1 fixed>
Assigning related <V01/L1> to <I42>
DefList: { N105.t216. PUTARG_REG; N109.t217. PUTARG_REG; N113.t218. PUTARG_REG }
N115 ( 19, 12) [000048] --CXG------- * CALL int Test2.DoTestImpl5 REG NA $156
<RefPosition #176 @115 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #177 @115 RefTypeUse <Ivl:40> BB01 regmask=[r8] minReg=1 last fixed>
<RefPosition #178 @115 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #179 @115 RefTypeUse <Ivl:41> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #180 @115 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #181 @115 RefTypeUse <Ivl:42> BB01 regmask=[rdx] minReg=1 last fixed>
<RefPosition #182 @116 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #183 @116 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #184 @116 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #185 @116 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #186 @116 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #187 @116 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1>
<RefPosition #188 @116 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1>
Interval 43: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #189 @116 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #190 @116 RefTypeDef <Ivl:43> CALL BB01 regmask=[rax] minReg=1 fixed>
DefList: { N115.t48. CALL }
N117 ( 23, 15) [000051] DA-XG------- * STORE_LCL_VAR int V06 loc3 d:2 NA REG NA
<RefPosition #191 @117 RefTypeUse <Ivl:43> BB01 regmask=[allInt] minReg=1 last>
Assigning related <V06/L6> to <I43>
<RefPosition #192 @118 RefTypeDef <Ivl:6 V06> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1 last>
DefList: { }
N119 ( 1, 1) [000052] ------------ * LCL_VAR int V00 arg0 u:1 NA REG NA $80
DefList: { }
N121 ( 1, 1) [000053] ------------ * LCL_VAR int V01 arg1 u:1 NA (last use) REG NA $81
DefList: { }
N123 ( 3, 3) [000140] ------------ * ADD int REG NA $181
<RefPosition #193 @123 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
<RefPosition #194 @123 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
Interval 44: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #195 @124 RefTypeDef <Ivl:44> ADD BB01 regmask=[allInt] minReg=1>
Assigning related <I44> to <V01/L1>
DefList: { N123.t140. ADD }
N125 ( 3, 3) [000114] DA---------- * STORE_LCL_VAR int V13 tmp4 d:2 NA REG NA
<RefPosition #196 @125 RefTypeUse <Ivl:44> BB01 regmask=[allInt] minReg=1 last>
Assigning related <V13/L10> to <I44>
<RefPosition #197 @126 RefTypeDef <Ivl:10 V13> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1 last>
DefList: { }
N127 ( 1, 1) [000115] ------------ * LCL_VAR int V13 tmp4 u:2 NA (last use) REG NA $181
DefList: { }
N129 ( 3, 2) [000196] ------------ * LCL_VAR int V19 cse0 NA REG NA $180
DefList: { }
N131 ( 8, 6) [000145] ------------ * MUL int REG NA $182
<RefPosition #198 @131 RefTypeUse <Ivl:10 V13> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
<RefPosition #199 @131 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
Interval 45: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #200 @132 RefTypeDef <Ivl:45> MUL BB01 regmask=[allInt] minReg=1>
Assigning related <I45> to <V13/L10>
DefList: { N131.t145. MUL }
N133 ( 8, 6) [000120] DA---------- * STORE_LCL_VAR int V14 tmp5 d:2 NA REG NA
<RefPosition #201 @133 RefTypeUse <Ivl:45> BB01 regmask=[allInt] minReg=1 last>
Assigning related <V14/L11> to <I45>
<RefPosition #202 @134 RefTypeDef <Ivl:11 V14> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1 last>
DefList: { }
N135 ( 1, 1) [000121] ------------ * LCL_VAR int V00 arg0 u:1 NA (last use) REG NA $80
DefList: { }
N137 ( 3, 2) [000197] ------------ * LCL_VAR int V19 cse0 NA (last use) REG NA $180
DefList: { }
N139 ( 8, 6) [000150] ------------ * MUL int REG NA $183
<RefPosition #203 @139 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
<RefPosition #204 @139 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
Interval 46: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #205 @140 RefTypeDef <Ivl:46> MUL BB01 regmask=[allInt] minReg=1>
Assigning related <I46> to <V00/L0>
Assigning related <I46> to <V19/L13>
DefList: { N139.t150. MUL }
N141 ( 8, 6) [000131] DA---------- * STORE_LCL_VAR int V15 tmp6 d:2 NA REG NA
<RefPosition #206 @141 RefTypeUse <Ivl:46> BB01 regmask=[allInt] minReg=1 last>
Assigning related <V15/L12> to <I46>
<RefPosition #207 @142 RefTypeDef <Ivl:12 V15> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1 last>
DefList: { }
N143 ( 1, 1) [000132] ------------ * LCL_VAR int V15 tmp6 u:2 NA (last use) REG NA $183
DefList: { }
N145 ( 1, 1) [000127] ------------ * LCL_VAR int V14 tmp5 u:2 NA (last use) REG NA $182
DefList: { }
N147 ( 1, 1) [000152] -c---------- * CNS_INT int 2 REG NA $42
Contained
DefList: { }
N149 ( 3, 3) [000153] ------------ * RSH int REG NA $184
<RefPosition #208 @149 RefTypeUse <Ivl:11 V14> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
Interval 47: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #209 @150 RefTypeDef <Ivl:47> RSH BB01 regmask=[allInt] minReg=1>
Assigning related <I47> to <V14/L11>
DefList: { N149.t153. RSH }
N151 ( 24, 7) [000156] ---X-------- * DIV int REG NA $186
<RefPosition #210 @151 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #211 @151 RefTypeUse <Ivl:12 V15> LCL_VAR BB01 regmask=[rax] minReg=1 last fixed>
<RefPosition #212 @151 RefTypeUse <Ivl:47> BB01 regmask=[rcx rbx rbp rsi rdi r8-r15] minReg=1 last>
<RefPosition #213 @152 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #214 @152 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1>
Interval 48: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #215 @152 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #216 @152 RefTypeDef <Ivl:48> DIV BB01 regmask=[rax] minReg=1 fixed>
Assigning related <I48> to <V15/L12>
DefList: { N151.t156. DIV }
N153 ( 28, 10) [000058] DA-X-------- * STORE_LCL_VAR int V07 loc4 d:2 NA REG NA
<RefPosition #217 @153 RefTypeUse <Ivl:48> BB01 regmask=[allInt] minReg=1 last>
Assigning related <V07/L7> to <I48>
<RefPosition #218 @154 RefTypeDef <Ivl:7 V07> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1 last>
DefList: { }
N155 ( 1, 1) [000012] ------------ * LCL_VAR int V10 tmp1 u:2 NA (last use) REG NA $143
DefList: { }
N157 ( 3, 2) [000059] ------------ * LCL_VAR int V03 loc0 u:2 NA (last use) REG NA $148
DefList: { }
N159 ( 5, 4) [000060] ------------ * ADD int REG NA $187
<RefPosition #219 @159 RefTypeUse <Ivl:8 V10> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
<RefPosition #220 @159 RefTypeUse <Ivl:3 V03> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
Interval 49: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #221 @160 RefTypeDef <Ivl:49> ADD BB01 regmask=[allInt] minReg=1>
Assigning related <I49> to <V10/L8>
Assigning related <I49> to <V03/L3>
DefList: { N159.t60. ADD }
N161 ( 3, 2) [000061] ------------ * LCL_VAR int V04 loc1 u:2 NA (last use) REG NA $14d
DefList: { N159.t60. ADD }
N163 ( 9, 7) [000062] ------------ * ADD int REG NA $188
<RefPosition #222 @163 RefTypeUse <Ivl:49> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #223 @163 RefTypeUse <Ivl:4 V04> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
Interval 50: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #224 @164 RefTypeDef <Ivl:50> ADD BB01 regmask=[allInt] minReg=1>
Assigning related <I50> to <I49>
Assigning related <I50> to <V04/L4>
DefList: { N163.t62. ADD }
N165 ( 3, 2) [000063] ------------ * LCL_VAR int V05 loc2 u:2 NA (last use) REG NA $151
DefList: { N163.t62. ADD }
N167 ( 13, 10) [000064] ------------ * ADD int REG NA $189
<RefPosition #225 @167 RefTypeUse <Ivl:50> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #226 @167 RefTypeUse <Ivl:5 V05> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
Interval 51: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #227 @168 RefTypeDef <Ivl:51> ADD BB01 regmask=[allInt] minReg=1>
Assigning related <I51> to <I50>
Assigning related <I51> to <V05/L5>
DefList: { N167.t64. ADD }
N169 ( 3, 2) [000065] ------------ * LCL_VAR int V06 loc3 u:2 NA (last use) REG NA $156
DefList: { N167.t64. ADD }
N171 ( 17, 13) [000066] ------------ * ADD int REG NA $18a
<RefPosition #228 @171 RefTypeUse <Ivl:51> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #229 @171 RefTypeUse <Ivl:6 V06> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
Interval 52: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #230 @172 RefTypeDef <Ivl:52> ADD BB01 regmask=[allInt] minReg=1>
Assigning related <I52> to <I51>
Assigning related <I52> to <V06/L6>
DefList: { N171.t66. ADD }
N173 ( 3, 2) [000067] ------------ * LCL_VAR int V07 loc4 u:2 NA (last use) REG NA $185
DefList: { N171.t66. ADD }
N175 ( 21, 16) [000068] ------------ * ADD int REG NA $18b
<RefPosition #231 @175 RefTypeUse <Ivl:52> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #232 @175 RefTypeUse <Ivl:7 V07> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
Interval 53: int RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #233 @176 RefTypeDef <Ivl:53> ADD BB01 regmask=[allInt] minReg=1>
Assigning related <I53> to <I52>
Assigning related <I53> to <V07/L7>
DefList: { N175.t68. ADD }
N177 ( 22, 17) [000069] ------------ * RETURN int REG NA $15c
<RefPosition #234 @177 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #235 @177 RefTypeUse <Ivl:53> BB01 regmask=[rax] minReg=1 last fixed>
CHECKING LAST USES for BB01, liveout={}
==============================
use: {V00 V01 V02}
def: {V03 V04 V05 V06 V07 V08 V10 V11 V13 V14 V15 V19}
Linear scan intervals BEFORE VALIDATING INTERVALS:
Interval 0: (V00) int RefPositions {#0@0 #13@15 #42@31 #83@61 #133@89 #169@109 #193@123 #203@139} physReg:rcx Preferences=[rbx rbp rsi rdi r12-r15] RelatedInterval <I46>
Interval 1: (V01) int RefPositions {#1@0 #17@19 #46@35 #87@65 #137@93 #173@113 #194@123} physReg:rdx Preferences=[rbx rbp rsi rdi r12-r15] RelatedInterval <I44>
Interval 2: (V02) int RefPositions {#2@0 #4@5} physReg:r8 Preferences=[r8]
Interval 3: (V03) int RefPositions {#72@44 #220@159} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15] RelatedInterval <I49>
Interval 4: (V04) int RefPositions {#108@70 #223@163} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15] RelatedInterval <I50>
Interval 5: (V05) int RefPositions {#163@102 #226@167} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15] RelatedInterval <I51>
Interval 6: (V06) int RefPositions {#192@118 #229@171} physReg:NA Preferences=[rcx rbx rbp rsi rdi r8-r15] RelatedInterval <I52>
Interval 7: (V07) int RefPositions {#218@154 #232@175} physReg:NA Preferences=[allInt] RelatedInterval <I53>
Interval 8: (V10) int RefPositions {#36@24 #219@159} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15] RelatedInterval <I49>
Interval 9: (V11) ref RefPositions {#126@78 #129@85} physReg:NA Preferences=[rdx]
Interval 10: (V13) int RefPositions {#197@126 #198@131} physReg:NA Preferences=[allInt] RelatedInterval <I45>
Interval 11: (V14) int RefPositions {#202@134 #208@149} physReg:NA Preferences=[allInt] RelatedInterval <I47>
Interval 12: (V15) int RefPositions {#207@142 #211@151} physReg:NA Preferences=[rax] RelatedInterval <I48>
Interval 13: (V19) int RefPositions {#7@8 #9@11 #38@27 #74@53 #127@81 #165@105 #199@131 #204@139} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15] RelatedInterval <I46>
Interval 14: int RefPositions {#5@6 #6@7} physReg:NA Preferences=[allInt] RelatedInterval <V19/L13>
Interval 15: int (specialPutArg) RefPositions {#11@12 #21@21} physReg:NA Preferences=[r8] RelatedInterval <V19/L13>
Interval 16: int (specialPutArg) RefPositions {#15@16 #23@21} physReg:NA Preferences=[rcx] RelatedInterval <V00/L0>
Interval 17: int (specialPutArg) RefPositions {#19@20 #25@21} physReg:NA Preferences=[rdx] RelatedInterval <V01/L1>
Interval 18: int RefPositions {#34@22 #35@23} physReg:NA Preferences=[rax] RelatedInterval <V10/L8>
Interval 19: int (specialPutArg) RefPositions {#40@28 #55@41} physReg:NA Preferences=[r9] RelatedInterval <V19/L13>
Interval 20: int (specialPutArg) RefPositions {#44@32 #57@41} physReg:NA Preferences=[rdx] RelatedInterval <V00/L0>
Interval 21: int (specialPutArg) RefPositions {#48@36 #59@41} physReg:NA Preferences=[r8] RelatedInterval <V01/L1>
Interval 22: long (constant) RefPositions {#49@38 #51@39} physReg:NA Preferences=[rcx]
Interval 23: long RefPositions {#53@40 #61@41} physReg:NA Preferences=[rcx]
Interval 24: int RefPositions {#70@42 #71@43} physReg:NA Preferences=[rax] RelatedInterval <V03/L3>
Interval 25: int (specialPutArg) RefPositions {#76@54 #91@67} physReg:NA Preferences=[r9] RelatedInterval <V19/L13>
Interval 26: byte RefPositions {#77@56 #79@57} physReg:NA Preferences=[rcx]
Interval 27: int RefPositions {#81@58 #93@67} physReg:NA Preferences=[rcx]
Interval 28: int (specialPutArg) RefPositions {#85@62 #95@67} physReg:NA Preferences=[rdx] RelatedInterval <V00/L0>
Interval 29: int (specialPutArg) RefPositions {#89@66 #97@67} physReg:NA Preferences=[r8] RelatedInterval <V01/L1>
Interval 30: int RefPositions {#106@68 #107@69} physReg:NA Preferences=[rax] RelatedInterval <V04/L4>
Interval 31: long (constant) RefPositions {#109@72 #111@73} physReg:NA Preferences=[rcx]
Interval 32: long RefPositions {#113@74 #115@75} physReg:NA Preferences=[rcx]
Interval 33: ref RefPositions {#124@76 #125@77} physReg:NA Preferences=[rax] RelatedInterval <V11/L9>
Interval 34: ref RefPositions {#131@86 #146@99} physReg:NA Preferences=[rdx]
Interval 35: int (specialPutArg) RefPositions {#135@90 #148@99} physReg:NA Preferences=[r8] RelatedInterval <V00/L0>
Interval 36: int (specialPutArg) RefPositions {#139@94 #150@99} physReg:NA Preferences=[r9] RelatedInterval <V01/L1>
Interval 37: long (constant) RefPositions {#140@96 #142@97} physReg:NA Preferences=[rcx]
Interval 38: long RefPositions {#144@98 #152@99} physReg:NA Preferences=[rcx]
Interval 39: int RefPositions {#161@100 #162@101} physReg:NA Preferences=[rax] RelatedInterval <V05/L5>
Interval 40: int (specialPutArg) RefPositions {#167@106 #177@115} physReg:NA Preferences=[r8] RelatedInterval <V19/L13>
Interval 41: int (specialPutArg) RefPositions {#171@110 #179@115} physReg:NA Preferences=[rcx] RelatedInterval <V00/L0>
Interval 42: int (specialPutArg) RefPositions {#175@114 #181@115} physReg:NA Preferences=[rdx] RelatedInterval <V01/L1>
Interval 43: int RefPositions {#190@116 #191@117} physReg:NA Preferences=[rax] RelatedInterval <V06/L6>
Interval 44: int RefPositions {#195@124 #196@125} physReg:NA Preferences=[allInt] RelatedInterval <V13/L10>
Interval 45: int RefPositions {#200@132 #201@133} physReg:NA Preferences=[allInt] RelatedInterval <V14/L11>
Interval 46: int RefPositions {#205@140 #206@141} physReg:NA Preferences=[allInt] RelatedInterval <V15/L12>
Interval 47: int RefPositions {#209@150 #212@151} physReg:NA Preferences=[rcx rbx rbp rsi rdi r8-r15]
Interval 48: int (interfering uses) RefPositions {#216@152 #217@153} physReg:NA Preferences=[rax] RelatedInterval <V07/L7>
Interval 49: int RefPositions {#221@160 #222@163} physReg:NA Preferences=[allInt] RelatedInterval <I50>
Interval 50: int RefPositions {#224@164 #225@167} physReg:NA Preferences=[allInt] RelatedInterval <I51>
Interval 51: int RefPositions {#227@168 #228@171} physReg:NA Preferences=[allInt] RelatedInterval <I52>
Interval 52: int RefPositions {#230@172 #231@175} physReg:NA Preferences=[allInt] RelatedInterval <I53>
Interval 53: int RefPositions {#233@176 #235@177} physReg:NA Preferences=[rax]
------------
REFPOSITIONS BEFORE VALIDATING INTERVALS:
------------
<RefPosition #0 @0 RefTypeParamDef <Ivl:0 V00> BB00 regmask=[rcx] minReg=1 fixed regOptional>
<RefPosition #1 @0 RefTypeParamDef <Ivl:1 V01> BB00 regmask=[rdx] minReg=1 fixed regOptional>
<RefPosition #2 @0 RefTypeParamDef <Ivl:2 V02> BB00 regmask=[r8] minReg=1 fixed regOptional>
<RefPosition #3 @1 RefTypeBB BB01 regmask=[] minReg=1>
<RefPosition #4 @5 RefTypeUse <Ivl:2 V02> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
<RefPosition #5 @6 RefTypeDef <Ivl:14> CAST BB01 regmask=[allInt] minReg=1>
<RefPosition #6 @7 RefTypeUse <Ivl:14> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #7 @8 RefTypeDef <Ivl:13 V19> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #8 @11 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #9 @11 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #10 @12 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #11 @12 RefTypeDef <Ivl:15> PUTARG_REG BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #12 @15 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #13 @15 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #14 @16 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #15 @16 RefTypeDef <Ivl:16> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #16 @19 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #17 @19 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #18 @20 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #19 @20 RefTypeDef <Ivl:17> PUTARG_REG BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #20 @21 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #21 @21 RefTypeUse <Ivl:15> BB01 regmask=[r8] minReg=1 last fixed>
<RefPosition #22 @21 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #23 @21 RefTypeUse <Ivl:16> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #24 @21 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #25 @21 RefTypeUse <Ivl:17> BB01 regmask=[rdx] minReg=1 last fixed>
<RefPosition #26 @22 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last>
<RefPosition #27 @22 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last>
<RefPosition #28 @22 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last>
<RefPosition #29 @22 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last>
<RefPosition #30 @22 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last>
<RefPosition #31 @22 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last>
<RefPosition #32 @22 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last>
<RefPosition #33 @22 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #34 @22 RefTypeDef <Ivl:18> CALL BB01 regmask=[rax] minReg=1 fixed>
<RefPosition #35 @23 RefTypeUse <Ivl:18> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #36 @24 RefTypeDef <Ivl:8 V10> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #37 @27 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #38 @27 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r9] minReg=1 fixed>
<RefPosition #39 @28 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #40 @28 RefTypeDef <Ivl:19> PUTARG_REG BB01 regmask=[r9] minReg=1 fixed>
<RefPosition #41 @31 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #42 @31 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #43 @32 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #44 @32 RefTypeDef <Ivl:20> PUTARG_REG BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #45 @35 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #46 @35 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #47 @36 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #48 @36 RefTypeDef <Ivl:21> PUTARG_REG BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #49 @38 RefTypeDef <Ivl:22> CNS_INT BB01 regmask=[rcx] minReg=1>
<RefPosition #50 @39 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #51 @39 RefTypeUse <Ivl:22> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #52 @40 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #53 @40 RefTypeDef <Ivl:23> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #54 @41 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #55 @41 RefTypeUse <Ivl:19> BB01 regmask=[r9] minReg=1 last fixed>
<RefPosition #56 @41 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #57 @41 RefTypeUse <Ivl:20> BB01 regmask=[rdx] minReg=1 last fixed>
<RefPosition #58 @41 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #59 @41 RefTypeUse <Ivl:21> BB01 regmask=[r8] minReg=1 last fixed>
<RefPosition #60 @41 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #61 @41 RefTypeUse <Ivl:23> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #62 @42 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last>
<RefPosition #63 @42 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last>
<RefPosition #64 @42 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last>
<RefPosition #65 @42 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last>
<RefPosition #66 @42 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last>
<RefPosition #67 @42 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last>
<RefPosition #68 @42 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last>
<RefPosition #69 @42 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #70 @42 RefTypeDef <Ivl:24> CALL BB01 regmask=[rax] minReg=1 fixed>
<RefPosition #71 @43 RefTypeUse <Ivl:24> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #72 @44 RefTypeDef <Ivl:3 V03> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #73 @53 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #74 @53 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r9] minReg=1 fixed>
<RefPosition #75 @54 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #76 @54 RefTypeDef <Ivl:25> PUTARG_REG BB01 regmask=[r9] minReg=1 fixed>
<RefPosition #77 @56 RefTypeDef <Ivl:26> LCL_FLD BB01 regmask=[rcx] minReg=1>
<RefPosition #78 @57 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #79 @57 RefTypeUse <Ivl:26> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #80 @58 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #81 @58 RefTypeDef <Ivl:27> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #82 @61 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #83 @61 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #84 @62 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #85 @62 RefTypeDef <Ivl:28> PUTARG_REG BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #86 @65 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #87 @65 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #88 @66 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #89 @66 RefTypeDef <Ivl:29> PUTARG_REG BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #90 @67 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #91 @67 RefTypeUse <Ivl:25> BB01 regmask=[r9] minReg=1 last fixed>
<RefPosition #92 @67 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #93 @67 RefTypeUse <Ivl:27> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #94 @67 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #95 @67 RefTypeUse <Ivl:28> BB01 regmask=[rdx] minReg=1 last fixed>
<RefPosition #96 @67 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #97 @67 RefTypeUse <Ivl:29> BB01 regmask=[r8] minReg=1 last fixed>
<RefPosition #98 @68 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last>
<RefPosition #99 @68 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last>
<RefPosition #100 @68 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last>
<RefPosition #101 @68 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last>
<RefPosition #102 @68 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last>
<RefPosition #103 @68 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last>
<RefPosition #104 @68 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last>
<RefPosition #105 @68 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #106 @68 RefTypeDef <Ivl:30> CALL BB01 regmask=[rax] minReg=1 fixed>
<RefPosition #107 @69 RefTypeUse <Ivl:30> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #108 @70 RefTypeDef <Ivl:4 V04> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #109 @72 RefTypeDef <Ivl:31> CNS_INT BB01 regmask=[rcx] minReg=1>
<RefPosition #110 @73 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #111 @73 RefTypeUse <Ivl:31> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #112 @74 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #113 @74 RefTypeDef <Ivl:32> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #114 @75 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #115 @75 RefTypeUse <Ivl:32> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #116 @76 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last>
<RefPosition #117 @76 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last>
<RefPosition #118 @76 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last>
<RefPosition #119 @76 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last>
<RefPosition #120 @76 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last>
<RefPosition #121 @76 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last>
<RefPosition #122 @76 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last>
<RefPosition #123 @76 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #124 @76 RefTypeDef <Ivl:33> CALL BB01 regmask=[rax] minReg=1 fixed>
<RefPosition #125 @77 RefTypeUse <Ivl:33> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #126 @78 RefTypeDef <Ivl:9 V11> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #127 @81 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #128 @85 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #129 @85 RefTypeUse <Ivl:9 V11> LCL_VAR BB01 regmask=[rdx] minReg=1 last fixed>
<RefPosition #130 @86 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #131 @86 RefTypeDef <Ivl:34> PUTARG_REG BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #132 @89 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #133 @89 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #134 @90 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #135 @90 RefTypeDef <Ivl:35> PUTARG_REG BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #136 @93 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #137 @93 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[r9] minReg=1 fixed>
<RefPosition #138 @94 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #139 @94 RefTypeDef <Ivl:36> PUTARG_REG BB01 regmask=[r9] minReg=1 fixed>
<RefPosition #140 @96 RefTypeDef <Ivl:37> CNS_INT BB01 regmask=[rcx] minReg=1>
<RefPosition #141 @97 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #142 @97 RefTypeUse <Ivl:37> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #143 @98 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #144 @98 RefTypeDef <Ivl:38> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #145 @99 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #146 @99 RefTypeUse <Ivl:34> BB01 regmask=[rdx] minReg=1 last fixed>
<RefPosition #147 @99 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #148 @99 RefTypeUse <Ivl:35> BB01 regmask=[r8] minReg=1 last fixed>
<RefPosition #149 @99 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #150 @99 RefTypeUse <Ivl:36> BB01 regmask=[r9] minReg=1 last fixed>
<RefPosition #151 @99 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #152 @99 RefTypeUse <Ivl:38> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #153 @100 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last>
<RefPosition #154 @100 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last>
<RefPosition #155 @100 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last>
<RefPosition #156 @100 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last>
<RefPosition #157 @100 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last>
<RefPosition #158 @100 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last>
<RefPosition #159 @100 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last>
<RefPosition #160 @100 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #161 @100 RefTypeDef <Ivl:39> CALL BB01 regmask=[rax] minReg=1 fixed>
<RefPosition #162 @101 RefTypeUse <Ivl:39> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #163 @102 RefTypeDef <Ivl:5 V05> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #164 @105 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #165 @105 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #166 @106 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #167 @106 RefTypeDef <Ivl:40> PUTARG_REG BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #168 @109 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #169 @109 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #170 @110 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #171 @110 RefTypeDef <Ivl:41> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #172 @113 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #173 @113 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #174 @114 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #175 @114 RefTypeDef <Ivl:42> PUTARG_REG BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #176 @115 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #177 @115 RefTypeUse <Ivl:40> BB01 regmask=[r8] minReg=1 last fixed>
<RefPosition #178 @115 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #179 @115 RefTypeUse <Ivl:41> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #180 @115 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #181 @115 RefTypeUse <Ivl:42> BB01 regmask=[rdx] minReg=1 last fixed>
<RefPosition #182 @116 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last>
<RefPosition #183 @116 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last>
<RefPosition #184 @116 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last>
<RefPosition #185 @116 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last>
<RefPosition #186 @116 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last>
<RefPosition #187 @116 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last>
<RefPosition #188 @116 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last>
<RefPosition #189 @116 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #190 @116 RefTypeDef <Ivl:43> CALL BB01 regmask=[rax] minReg=1 fixed>
<RefPosition #191 @117 RefTypeUse <Ivl:43> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #192 @118 RefTypeDef <Ivl:6 V06> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #193 @123 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #194 @123 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
<RefPosition #195 @124 RefTypeDef <Ivl:44> ADD BB01 regmask=[allInt] minReg=1>
<RefPosition #196 @125 RefTypeUse <Ivl:44> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #197 @126 RefTypeDef <Ivl:10 V13> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #198 @131 RefTypeUse <Ivl:10 V13> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
<RefPosition #199 @131 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #200 @132 RefTypeDef <Ivl:45> MUL BB01 regmask=[allInt] minReg=1>
<RefPosition #201 @133 RefTypeUse <Ivl:45> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #202 @134 RefTypeDef <Ivl:11 V14> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #203 @139 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
<RefPosition #204 @139 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
<RefPosition #205 @140 RefTypeDef <Ivl:46> MUL BB01 regmask=[allInt] minReg=1>
<RefPosition #206 @141 RefTypeUse <Ivl:46> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #207 @142 RefTypeDef <Ivl:12 V15> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #208 @149 RefTypeUse <Ivl:11 V14> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
<RefPosition #209 @150 RefTypeDef <Ivl:47> RSH BB01 regmask=[rcx rbx rbp rsi rdi r8-r15] minReg=1>
<RefPosition #210 @151 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #211 @151 RefTypeUse <Ivl:12 V15> LCL_VAR BB01 regmask=[rax] minReg=1 last fixed>
<RefPosition #212 @151 RefTypeUse <Ivl:47> BB01 regmask=[rcx rbx rbp rsi rdi r8-r15] minReg=1 last delay regOptional>
<RefPosition #213 @152 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last>
<RefPosition #214 @152 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last>
<RefPosition #215 @152 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #216 @152 RefTypeDef <Ivl:48> DIV BB01 regmask=[rax] minReg=1 fixed>
<RefPosition #217 @153 RefTypeUse <Ivl:48> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #218 @154 RefTypeDef <Ivl:7 V07> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #219 @159 RefTypeUse <Ivl:8 V10> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
<RefPosition #220 @159 RefTypeUse <Ivl:3 V03> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
<RefPosition #221 @160 RefTypeDef <Ivl:49> ADD BB01 regmask=[allInt] minReg=1>
<RefPosition #222 @163 RefTypeUse <Ivl:49> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #223 @163 RefTypeUse <Ivl:4 V04> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
<RefPosition #224 @164 RefTypeDef <Ivl:50> ADD BB01 regmask=[allInt] minReg=1>
<RefPosition #225 @167 RefTypeUse <Ivl:50> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #226 @167 RefTypeUse <Ivl:5 V05> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
<RefPosition #227 @168 RefTypeDef <Ivl:51> ADD BB01 regmask=[allInt] minReg=1>
<RefPosition #228 @171 RefTypeUse <Ivl:51> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #229 @171 RefTypeUse <Ivl:6 V06> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
<RefPosition #230 @172 RefTypeDef <Ivl:52> ADD BB01 regmask=[allInt] minReg=1>
<RefPosition #231 @175 RefTypeUse <Ivl:52> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #232 @175 RefTypeUse <Ivl:7 V07> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
<RefPosition #233 @176 RefTypeDef <Ivl:53> ADD BB01 regmask=[rax] minReg=1>
<RefPosition #234 @177 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #235 @177 RefTypeUse <Ivl:53> BB01 regmask=[rax] minReg=1 last fixed>
-----------------
<RefPosition #0 @0 RefTypeParamDef <Ivl:0 V00> BB00 regmask=[rcx] minReg=1 fixed regOptional>
<RefPosition #13 @15 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #42 @31 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #83 @61 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #133 @89 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #169 @109 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #193 @123 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #203 @139 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
-----------------
<RefPosition #1 @0 RefTypeParamDef <Ivl:1 V01> BB00 regmask=[rdx] minReg=1 fixed regOptional>
<RefPosition #17 @19 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #46 @35 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #87 @65 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #137 @93 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[r9] minReg=1 fixed>
<RefPosition #173 @113 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #194 @123 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
-----------------
<RefPosition #7 @8 RefTypeDef <Ivl:13 V19> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #9 @11 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #38 @27 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r9] minReg=1 fixed>
<RefPosition #74 @53 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r9] minReg=1 fixed>
<RefPosition #127 @81 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #165 @105 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #199 @131 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #204 @139 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
-----------------
<RefPosition #2 @0 RefTypeParamDef <Ivl:2 V02> BB00 regmask=[r8] minReg=1 fixed regOptional>
<RefPosition #4 @5 RefTypeUse <Ivl:2 V02> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
-----------------
<RefPosition #126 @78 RefTypeDef <Ivl:9 V11> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #129 @85 RefTypeUse <Ivl:9 V11> LCL_VAR BB01 regmask=[rdx] minReg=1 last fixed>
-----------------
<RefPosition #36 @24 RefTypeDef <Ivl:8 V10> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #219 @159 RefTypeUse <Ivl:8 V10> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
-----------------
<RefPosition #197 @126 RefTypeDef <Ivl:10 V13> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #198 @131 RefTypeUse <Ivl:10 V13> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
-----------------
<RefPosition #207 @142 RefTypeDef <Ivl:12 V15> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #211 @151 RefTypeUse <Ivl:12 V15> LCL_VAR BB01 regmask=[rax] minReg=1 last fixed>
-----------------
<RefPosition #72 @44 RefTypeDef <Ivl:3 V03> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #220 @159 RefTypeUse <Ivl:3 V03> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
-----------------
<RefPosition #108 @70 RefTypeDef <Ivl:4 V04> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #223 @163 RefTypeUse <Ivl:4 V04> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
-----------------
<RefPosition #163 @102 RefTypeDef <Ivl:5 V05> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #226 @167 RefTypeUse <Ivl:5 V05> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
-----------------
<RefPosition #192 @118 RefTypeDef <Ivl:6 V06> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #229 @171 RefTypeUse <Ivl:6 V06> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
-----------------
<RefPosition #218 @154 RefTypeDef <Ivl:7 V07> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #232 @175 RefTypeUse <Ivl:7 V07> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
-----------------
<RefPosition #202 @134 RefTypeDef <Ivl:11 V14> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #208 @149 RefTypeUse <Ivl:11 V14> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
TUPLE STYLE DUMP WITH REF POSITIONS
Incoming Parameters: V00 V01 V02
BB01 [000..051) (return), preds={} succs={}
=====
N003. V02(L2)
N005. CAST
Use:<V02/L2>(#4) *
Def:<I14>(#5) Pref:<V19/L13>
N007. V19(L13)
Use:<I14>(#6) *
Def:<V19/L13>(#7) Pref:<I46>
N009. V19(L13)
N011. PUTARG_REG
Use:<V19/L13>(#9) Fixed:r8(#8)
Def:<I15>(#11) r8 Pref:<V19/L13>
N013. V00(L0)
N015. PUTARG_REG
Use:<V00/L0>(#13) Fixed:rcx(#12)
Def:<I16>(#15) rcx Pref:<V00/L0>
N017. V01(L1)
N019. PUTARG_REG
Use:<V01/L1>(#17) Fixed:rdx(#16)
Def:<I17>(#19) rdx Pref:<V01/L1>
N021. CALL
Use:<I15>(#21) Fixed:r8(#20) *
Use:<I16>(#23) Fixed:rcx(#22) *
Use:<I17>(#25) Fixed:rdx(#24) *
Kill: rax rcx rdx r8 r9 r10 r11
Def:<I18>(#34) rax Pref:<V10/L8>
N023. V10(L8)
Use:<I18>(#35) *
Def:<V10/L8>(#36) Pref:<I49>
N025. V19(L13)
N027. PUTARG_REG
Use:<V19/L13>(#38) Fixed:r9(#37)
Def:<I19>(#40) r9 Pref:<V19/L13>
N029. V00(L0)
N031. PUTARG_REG
Use:<V00/L0>(#42) Fixed:rdx(#41)
Def:<I20>(#44) rdx Pref:<V00/L0>
N033. V01(L1)
N035. PUTARG_REG
Use:<V01/L1>(#46) Fixed:r8(#45)
Def:<I21>(#48) r8 Pref:<V01/L1>
N037. CNS_INT(h) 0xd1ffab1e method
Def:<I22>(#49)
N039. PUTARG_REG
Use:<I22>(#51) Fixed:rcx(#50) *
Def:<I23>(#53) rcx
N041. CALL
Use:<I19>(#55) Fixed:r9(#54) *
Use:<I20>(#57) Fixed:rdx(#56) *
Use:<I21>(#59) Fixed:r8(#58) *
Use:<I23>(#61) Fixed:rcx(#60) *
Kill: rax rcx rdx r8 r9 r10 r11
Def:<I24>(#70) rax Pref:<V03/L3>
N043. V03(L3)
Use:<I24>(#71) *
Def:<V03/L3>(#72) Pref:<I49>
N045. CNS_INT 0
N047. LCL_VAR_ADDR V08 loc5 d:2 NA
N049. STOREIND
N051. V19(L13)
N053. PUTARG_REG
Use:<V19/L13>(#74) Fixed:r9(#73)
Def:<I25>(#76) r9 Pref:<V19/L13>
N055. V08 MEM
Def:<I26>(#77)
N057. PUTARG_REG
Use:<I26>(#79) Fixed:rcx(#78) *
Def:<I27>(#81) rcx
N059. V00(L0)
N061. PUTARG_REG
Use:<V00/L0>(#83) Fixed:rdx(#82)
Def:<I28>(#85) rdx Pref:<V00/L0>
N063. V01(L1)
N065. PUTARG_REG
Use:<V01/L1>(#87) Fixed:r8(#86)
Def:<I29>(#89) r8 Pref:<V01/L1>
N067. CALL
Use:<I25>(#91) Fixed:r9(#90) *
Use:<I27>(#93) Fixed:rcx(#92) *
Use:<I28>(#95) Fixed:rdx(#94) *
Use:<I29>(#97) Fixed:r8(#96) *
Kill: rax rcx rdx r8 r9 r10 r11
Def:<I30>(#106) rax Pref:<V04/L4>
N069. V04(L4)
Use:<I30>(#107) *
Def:<V04/L4>(#108) Pref:<I50>
N071. CNS_INT(h) 0xd1ffab1e method
Def:<I31>(#109)
N073. PUTARG_REG
Use:<I31>(#111) Fixed:rcx(#110) *
Def:<I32>(#113) rcx
N075. CALL help
Use:<I32>(#115) Fixed:rcx(#114) *
Kill: rax rcx rdx r8 r9 r10 r11
Def:<I33>(#124) rax Pref:<V11/L9>
N077. V11(L9)
Use:<I33>(#125) *
Def:<V11/L9>(#126)
N079. V19(L13)
N081. PUTARG_STK [+0x20]
Use:<V19/L13>(#127)
N083. V11(L9)
N085. PUTARG_REG
Use:<V11/L9>(#129) Fixed:rdx(#128) *
Def:<I34>(#131) rdx
N087. V00(L0)
N089. PUTARG_REG
Use:<V00/L0>(#133) Fixed:r8(#132)
Def:<I35>(#135) r8 Pref:<V00/L0>
N091. V01(L1)
N093. PUTARG_REG
Use:<V01/L1>(#137) Fixed:r9(#136)
Def:<I36>(#139) r9 Pref:<V01/L1>
N095. CNS_INT(h) 0xd1ffab1e method
Def:<I37>(#140)
N097. PUTARG_REG
Use:<I37>(#142) Fixed:rcx(#141) *
Def:<I38>(#144) rcx
N099. CALL
Use:<I34>(#146) Fixed:rdx(#145) *
Use:<I35>(#148) Fixed:r8(#147) *
Use:<I36>(#150) Fixed:r9(#149) *
Use:<I38>(#152) Fixed:rcx(#151) *
Kill: rax rcx rdx r8 r9 r10 r11
Def:<I39>(#161) rax Pref:<V05/L5>
N101. V05(L5)
Use:<I39>(#162) *
Def:<V05/L5>(#163) Pref:<I51>
N103. V19(L13)
N105. PUTARG_REG
Use:<V19/L13>(#165) Fixed:r8(#164)
Def:<I40>(#167) r8 Pref:<V19/L13>
N107. V00(L0)
N109. PUTARG_REG
Use:<V00/L0>(#169) Fixed:rcx(#168)
Def:<I41>(#171) rcx Pref:<V00/L0>
N111. V01(L1)
N113. PUTARG_REG
Use:<V01/L1>(#173) Fixed:rdx(#172)
Def:<I42>(#175) rdx Pref:<V01/L1>
N115. CALL
Use:<I40>(#177) Fixed:r8(#176) *
Use:<I41>(#179) Fixed:rcx(#178) *
Use:<I42>(#181) Fixed:rdx(#180) *
Kill: rax rcx rdx r8 r9 r10 r11
Def:<I43>(#190) rax Pref:<V06/L6>
N117. V06(L6)
Use:<I43>(#191) *
Def:<V06/L6>(#192) Pref:<I52>
N119. V00(L0)
N121. V01(L1)
N123. ADD
Use:<V00/L0>(#193)
Use:<V01/L1>(#194) *
Def:<I44>(#195) Pref:<V13/L10>
N125. V13(L10)
Use:<I44>(#196) *
Def:<V13/L10>(#197) Pref:<I45>
N127. V13(L10)
N129. V19(L13)
N131. MUL
Use:<V13/L10>(#198) *
Use:<V19/L13>(#199)
Def:<I45>(#200) Pref:<V14/L11>
N133. V14(L11)
Use:<I45>(#201) *
Def:<V14/L11>(#202) Pref:<I47>
N135. V00(L0)
N137. V19(L13)
N139. MUL
Use:<V00/L0>(#203) *
Use:<V19/L13>(#204) *
Def:<I46>(#205) Pref:<V15/L12>
N141. V15(L12)
Use:<I46>(#206) *
Def:<V15/L12>(#207) Pref:<I48>
N143. V15(L12)
N145. V14(L11)
N147. CNS_INT 2
N149. RSH
Use:<V14/L11>(#208) *
Def:<I47>(#209)
N151. DIV
Use:<V15/L12>(#211) Fixed:rax(#210) *
Use:<I47>(#212) *
Kill: rax rdx
Def:<I48>(#216) rax Pref:<V07/L7>
N153. V07(L7)
Use:<I48>(#217) *
Def:<V07/L7>(#218) Pref:<I53>
N155. V10(L8)
N157. V03(L3)
N159. ADD
Use:<V10/L8>(#219) *
Use:<V03/L3>(#220) *
Def:<I49>(#221) Pref:<I50>
N161. V04(L4)
N163. ADD
Use:<I49>(#222) *
Use:<V04/L4>(#223) *
Def:<I50>(#224) Pref:<I51>
N165. V05(L5)
N167. ADD
Use:<I50>(#225) *
Use:<V05/L5>(#226) *
Def:<I51>(#227) Pref:<I52>
N169. V06(L6)
N171. ADD
Use:<I51>(#228) *
Use:<V06/L6>(#229) *
Def:<I52>(#230) Pref:<I53>
N173. V07(L7)
N175. ADD
Use:<I52>(#231) *
Use:<V07/L7>(#232) *
Def:<I53>(#233)
N177. RETURN
Use:<I53>(#235) Fixed:rax(#234) *
Linear scan intervals after buildIntervals:
Interval 0: (V00) int RefPositions {#0@0 #13@15 #42@31 #83@61 #133@89 #169@109 #193@123 #203@139} physReg:rcx Preferences=[rbx rbp rsi rdi r12-r15] RelatedInterval <I46>
Interval 1: (V01) int RefPositions {#1@0 #17@19 #46@35 #87@65 #137@93 #173@113 #194@123} physReg:rdx Preferences=[rbx rbp rsi rdi r12-r15] RelatedInterval <I44>
Interval 2: (V02) int RefPositions {#2@0 #4@5} physReg:r8 Preferences=[r8]
Interval 3: (V03) int RefPositions {#72@44 #220@159} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15] RelatedInterval <I49>
Interval 4: (V04) int RefPositions {#108@70 #223@163} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15] RelatedInterval <I50>
Interval 5: (V05) int RefPositions {#163@102 #226@167} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15] RelatedInterval <I51>
Interval 6: (V06) int RefPositions {#192@118 #229@171} physReg:NA Preferences=[rcx rbx rbp rsi rdi r8-r15] RelatedInterval <I52>
Interval 7: (V07) int RefPositions {#218@154 #232@175} physReg:NA Preferences=[allInt] RelatedInterval <I53>
Interval 8: (V10) int RefPositions {#36@24 #219@159} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15] RelatedInterval <I49>
Interval 9: (V11) ref RefPositions {#126@78 #129@85} physReg:NA Preferences=[rdx]
Interval 10: (V13) int RefPositions {#197@126 #198@131} physReg:NA Preferences=[allInt] RelatedInterval <I45>
Interval 11: (V14) int RefPositions {#202@134 #208@149} physReg:NA Preferences=[allInt] RelatedInterval <I47>
Interval 12: (V15) int RefPositions {#207@142 #211@151} physReg:NA Preferences=[rax] RelatedInterval <I48>
Interval 13: (V19) int RefPositions {#7@8 #9@11 #38@27 #74@53 #127@81 #165@105 #199@131 #204@139} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15] RelatedInterval <I46>
Interval 14: int RefPositions {#5@6 #6@7} physReg:NA Preferences=[allInt] RelatedInterval <V19/L13>
Interval 15: int (specialPutArg) RefPositions {#11@12 #21@21} physReg:NA Preferences=[r8] RelatedInterval <V19/L13>
Interval 16: int (specialPutArg) RefPositions {#15@16 #23@21} physReg:NA Preferences=[rcx] RelatedInterval <V00/L0>
Interval 17: int (specialPutArg) RefPositions {#19@20 #25@21} physReg:NA Preferences=[rdx] RelatedInterval <V01/L1>
Interval 18: int RefPositions {#34@22 #35@23} physReg:NA Preferences=[rax] RelatedInterval <V10/L8>
Interval 19: int (specialPutArg) RefPositions {#40@28 #55@41} physReg:NA Preferences=[r9] RelatedInterval <V19/L13>
Interval 20: int (specialPutArg) RefPositions {#44@32 #57@41} physReg:NA Preferences=[rdx] RelatedInterval <V00/L0>
Interval 21: int (specialPutArg) RefPositions {#48@36 #59@41} physReg:NA Preferences=[r8] RelatedInterval <V01/L1>
Interval 22: long (constant) RefPositions {#49@38 #51@39} physReg:NA Preferences=[rcx]
Interval 23: long RefPositions {#53@40 #61@41} physReg:NA Preferences=[rcx]
Interval 24: int RefPositions {#70@42 #71@43} physReg:NA Preferences=[rax] RelatedInterval <V03/L3>
Interval 25: int (specialPutArg) RefPositions {#76@54 #91@67} physReg:NA Preferences=[r9] RelatedInterval <V19/L13>
Interval 26: byte RefPositions {#77@56 #79@57} physReg:NA Preferences=[rcx]
Interval 27: int RefPositions {#81@58 #93@67} physReg:NA Preferences=[rcx]
Interval 28: int (specialPutArg) RefPositions {#85@62 #95@67} physReg:NA Preferences=[rdx] RelatedInterval <V00/L0>
Interval 29: int (specialPutArg) RefPositions {#89@66 #97@67} physReg:NA Preferences=[r8] RelatedInterval <V01/L1>
Interval 30: int RefPositions {#106@68 #107@69} physReg:NA Preferences=[rax] RelatedInterval <V04/L4>
Interval 31: long (constant) RefPositions {#109@72 #111@73} physReg:NA Preferences=[rcx]
Interval 32: long RefPositions {#113@74 #115@75} physReg:NA Preferences=[rcx]
Interval 33: ref RefPositions {#124@76 #125@77} physReg:NA Preferences=[rax] RelatedInterval <V11/L9>
Interval 34: ref RefPositions {#131@86 #146@99} physReg:NA Preferences=[rdx]
Interval 35: int (specialPutArg) RefPositions {#135@90 #148@99} physReg:NA Preferences=[r8] RelatedInterval <V00/L0>
Interval 36: int (specialPutArg) RefPositions {#139@94 #150@99} physReg:NA Preferences=[r9] RelatedInterval <V01/L1>
Interval 37: long (constant) RefPositions {#140@96 #142@97} physReg:NA Preferences=[rcx]
Interval 38: long RefPositions {#144@98 #152@99} physReg:NA Preferences=[rcx]
Interval 39: int RefPositions {#161@100 #162@101} physReg:NA Preferences=[rax] RelatedInterval <V05/L5>
Interval 40: int (specialPutArg) RefPositions {#167@106 #177@115} physReg:NA Preferences=[r8] RelatedInterval <V19/L13>
Interval 41: int (specialPutArg) RefPositions {#171@110 #179@115} physReg:NA Preferences=[rcx] RelatedInterval <V00/L0>
Interval 42: int (specialPutArg) RefPositions {#175@114 #181@115} physReg:NA Preferences=[rdx] RelatedInterval <V01/L1>
Interval 43: int RefPositions {#190@116 #191@117} physReg:NA Preferences=[rax] RelatedInterval <V06/L6>
Interval 44: int RefPositions {#195@124 #196@125} physReg:NA Preferences=[allInt] RelatedInterval <V13/L10>
Interval 45: int RefPositions {#200@132 #201@133} physReg:NA Preferences=[allInt] RelatedInterval <V14/L11>
Interval 46: int RefPositions {#205@140 #206@141} physReg:NA Preferences=[allInt] RelatedInterval <V15/L12>
Interval 47: int RefPositions {#209@150 #212@151} physReg:NA Preferences=[rcx rbx rbp rsi rdi r8-r15]
Interval 48: int (interfering uses) RefPositions {#216@152 #217@153} physReg:NA Preferences=[rax] RelatedInterval <V07/L7>
Interval 49: int RefPositions {#221@160 #222@163} physReg:NA Preferences=[allInt] RelatedInterval <I50>
Interval 50: int RefPositions {#224@164 #225@167} physReg:NA Preferences=[allInt] RelatedInterval <I51>
Interval 51: int RefPositions {#227@168 #228@171} physReg:NA Preferences=[allInt] RelatedInterval <I52>
Interval 52: int RefPositions {#230@172 #231@175} physReg:NA Preferences=[allInt] RelatedInterval <I53>
Interval 53: int RefPositions {#233@176 #235@177} physReg:NA Preferences=[rax]
*************** In LinearScan::allocateRegisters()
Linear scan intervals before allocateRegisters:
Interval 0: (V00) int RefPositions {#0@0 #13@15 #42@31 #83@61 #133@89 #169@109 #193@123 #203@139} physReg:rcx Preferences=[rbx rbp rsi rdi r12-r15] RelatedInterval <I46>
Interval 1: (V01) int RefPositions {#1@0 #17@19 #46@35 #87@65 #137@93 #173@113 #194@123} physReg:rdx Preferences=[rbx rbp rsi rdi r12-r15] RelatedInterval <I44>
Interval 2: (V02) int RefPositions {#2@0 #4@5} physReg:r8 Preferences=[r8]
Interval 3: (V03) int RefPositions {#72@44 #220@159} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15] RelatedInterval <I49>
Interval 4: (V04) int RefPositions {#108@70 #223@163} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15] RelatedInterval <I50>
Interval 5: (V05) int RefPositions {#163@102 #226@167} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15] RelatedInterval <I51>
Interval 6: (V06) int RefPositions {#192@118 #229@171} physReg:NA Preferences=[rcx rbx rbp rsi rdi r8-r15] RelatedInterval <I52>
Interval 7: (V07) int RefPositions {#218@154 #232@175} physReg:NA Preferences=[allInt] RelatedInterval <I53>
Interval 8: (V10) int RefPositions {#36@24 #219@159} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15] RelatedInterval <I49>
Interval 9: (V11) ref RefPositions {#126@78 #129@85} physReg:NA Preferences=[rdx]
Interval 10: (V13) int RefPositions {#197@126 #198@131} physReg:NA Preferences=[allInt] RelatedInterval <I45>
Interval 11: (V14) int RefPositions {#202@134 #208@149} physReg:NA Preferences=[allInt] RelatedInterval <I47>
Interval 12: (V15) int RefPositions {#207@142 #211@151} physReg:NA Preferences=[rax] RelatedInterval <I48>
Interval 13: (V19) int RefPositions {#7@8 #9@11 #38@27 #74@53 #127@81 #165@105 #199@131 #204@139} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15] RelatedInterval <I46>
Interval 14: int RefPositions {#5@6 #6@7} physReg:NA Preferences=[allInt] RelatedInterval <V19/L13>
Interval 15: int (specialPutArg) RefPositions {#11@12 #21@21} physReg:NA Preferences=[r8] RelatedInterval <V19/L13>
Interval 16: int (specialPutArg) RefPositions {#15@16 #23@21} physReg:NA Preferences=[rcx] RelatedInterval <V00/L0>
Interval 17: int (specialPutArg) RefPositions {#19@20 #25@21} physReg:NA Preferences=[rdx] RelatedInterval <V01/L1>
Interval 18: int RefPositions {#34@22 #35@23} physReg:NA Preferences=[rax] RelatedInterval <V10/L8>
Interval 19: int (specialPutArg) RefPositions {#40@28 #55@41} physReg:NA Preferences=[r9] RelatedInterval <V19/L13>
Interval 20: int (specialPutArg) RefPositions {#44@32 #57@41} physReg:NA Preferences=[rdx] RelatedInterval <V00/L0>
Interval 21: int (specialPutArg) RefPositions {#48@36 #59@41} physReg:NA Preferences=[r8] RelatedInterval <V01/L1>
Interval 22: long (constant) RefPositions {#49@38 #51@39} physReg:NA Preferences=[rcx]
Interval 23: long RefPositions {#53@40 #61@41} physReg:NA Preferences=[rcx]
Interval 24: int RefPositions {#70@42 #71@43} physReg:NA Preferences=[rax] RelatedInterval <V03/L3>
Interval 25: int (specialPutArg) RefPositions {#76@54 #91@67} physReg:NA Preferences=[r9] RelatedInterval <V19/L13>
Interval 26: byte RefPositions {#77@56 #79@57} physReg:NA Preferences=[rcx]
Interval 27: int RefPositions {#81@58 #93@67} physReg:NA Preferences=[rcx]
Interval 28: int (specialPutArg) RefPositions {#85@62 #95@67} physReg:NA Preferences=[rdx] RelatedInterval <V00/L0>
Interval 29: int (specialPutArg) RefPositions {#89@66 #97@67} physReg:NA Preferences=[r8] RelatedInterval <V01/L1>
Interval 30: int RefPositions {#106@68 #107@69} physReg:NA Preferences=[rax] RelatedInterval <V04/L4>
Interval 31: long (constant) RefPositions {#109@72 #111@73} physReg:NA Preferences=[rcx]
Interval 32: long RefPositions {#113@74 #115@75} physReg:NA Preferences=[rcx]
Interval 33: ref RefPositions {#124@76 #125@77} physReg:NA Preferences=[rax] RelatedInterval <V11/L9>
Interval 34: ref RefPositions {#131@86 #146@99} physReg:NA Preferences=[rdx]
Interval 35: int (specialPutArg) RefPositions {#135@90 #148@99} physReg:NA Preferences=[r8] RelatedInterval <V00/L0>
Interval 36: int (specialPutArg) RefPositions {#139@94 #150@99} physReg:NA Preferences=[r9] RelatedInterval <V01/L1>
Interval 37: long (constant) RefPositions {#140@96 #142@97} physReg:NA Preferences=[rcx]
Interval 38: long RefPositions {#144@98 #152@99} physReg:NA Preferences=[rcx]
Interval 39: int RefPositions {#161@100 #162@101} physReg:NA Preferences=[rax] RelatedInterval <V05/L5>
Interval 40: int (specialPutArg) RefPositions {#167@106 #177@115} physReg:NA Preferences=[r8] RelatedInterval <V19/L13>
Interval 41: int (specialPutArg) RefPositions {#171@110 #179@115} physReg:NA Preferences=[rcx] RelatedInterval <V00/L0>
Interval 42: int (specialPutArg) RefPositions {#175@114 #181@115} physReg:NA Preferences=[rdx] RelatedInterval <V01/L1>
Interval 43: int RefPositions {#190@116 #191@117} physReg:NA Preferences=[rax] RelatedInterval <V06/L6>
Interval 44: int RefPositions {#195@124 #196@125} physReg:NA Preferences=[allInt] RelatedInterval <V13/L10>
Interval 45: int RefPositions {#200@132 #201@133} physReg:NA Preferences=[allInt] RelatedInterval <V14/L11>
Interval 46: int RefPositions {#205@140 #206@141} physReg:NA Preferences=[allInt] RelatedInterval <V15/L12>
Interval 47: int RefPositions {#209@150 #212@151} physReg:NA Preferences=[rcx rbx rbp rsi rdi r8-r15]
Interval 48: int (interfering uses) RefPositions {#216@152 #217@153} physReg:NA Preferences=[rax] RelatedInterval <V07/L7>
Interval 49: int RefPositions {#221@160 #222@163} physReg:NA Preferences=[allInt] RelatedInterval <I50>
Interval 50: int RefPositions {#224@164 #225@167} physReg:NA Preferences=[allInt] RelatedInterval <I51>
Interval 51: int RefPositions {#227@168 #228@171} physReg:NA Preferences=[allInt] RelatedInterval <I52>
Interval 52: int RefPositions {#230@172 #231@175} physReg:NA Preferences=[allInt] RelatedInterval <I53>
Interval 53: int RefPositions {#233@176 #235@177} physReg:NA Preferences=[rax]
------------
REFPOSITIONS BEFORE ALLOCATION:
------------
<RefPosition #0 @0 RefTypeParamDef <Ivl:0 V00> BB00 regmask=[rcx] minReg=1 fixed regOptional>
<RefPosition #1 @0 RefTypeParamDef <Ivl:1 V01> BB00 regmask=[rdx] minReg=1 fixed regOptional>
<RefPosition #2 @0 RefTypeParamDef <Ivl:2 V02> BB00 regmask=[r8] minReg=1 fixed regOptional>
<RefPosition #3 @1 RefTypeBB BB01 regmask=[] minReg=1>
<RefPosition #4 @5 RefTypeUse <Ivl:2 V02> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
<RefPosition #5 @6 RefTypeDef <Ivl:14> CAST BB01 regmask=[allInt] minReg=1>
<RefPosition #6 @7 RefTypeUse <Ivl:14> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #7 @8 RefTypeDef <Ivl:13 V19> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #8 @11 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #9 @11 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #10 @12 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #11 @12 RefTypeDef <Ivl:15> PUTARG_REG BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #12 @15 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #13 @15 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #14 @16 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #15 @16 RefTypeDef <Ivl:16> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #16 @19 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #17 @19 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #18 @20 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #19 @20 RefTypeDef <Ivl:17> PUTARG_REG BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #20 @21 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #21 @21 RefTypeUse <Ivl:15> BB01 regmask=[r8] minReg=1 last fixed>
<RefPosition #22 @21 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #23 @21 RefTypeUse <Ivl:16> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #24 @21 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #25 @21 RefTypeUse <Ivl:17> BB01 regmask=[rdx] minReg=1 last fixed>
<RefPosition #26 @22 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last>
<RefPosition #27 @22 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last>
<RefPosition #28 @22 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last>
<RefPosition #29 @22 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last>
<RefPosition #30 @22 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last>
<RefPosition #31 @22 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last>
<RefPosition #32 @22 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last>
<RefPosition #33 @22 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #34 @22 RefTypeDef <Ivl:18> CALL BB01 regmask=[rax] minReg=1 fixed>
<RefPosition #35 @23 RefTypeUse <Ivl:18> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #36 @24 RefTypeDef <Ivl:8 V10> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #37 @27 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #38 @27 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r9] minReg=1 fixed>
<RefPosition #39 @28 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #40 @28 RefTypeDef <Ivl:19> PUTARG_REG BB01 regmask=[r9] minReg=1 fixed>
<RefPosition #41 @31 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #42 @31 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #43 @32 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #44 @32 RefTypeDef <Ivl:20> PUTARG_REG BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #45 @35 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #46 @35 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #47 @36 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #48 @36 RefTypeDef <Ivl:21> PUTARG_REG BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #49 @38 RefTypeDef <Ivl:22> CNS_INT BB01 regmask=[rcx] minReg=1>
<RefPosition #50 @39 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #51 @39 RefTypeUse <Ivl:22> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #52 @40 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #53 @40 RefTypeDef <Ivl:23> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #54 @41 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #55 @41 RefTypeUse <Ivl:19> BB01 regmask=[r9] minReg=1 last fixed>
<RefPosition #56 @41 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #57 @41 RefTypeUse <Ivl:20> BB01 regmask=[rdx] minReg=1 last fixed>
<RefPosition #58 @41 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #59 @41 RefTypeUse <Ivl:21> BB01 regmask=[r8] minReg=1 last fixed>
<RefPosition #60 @41 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #61 @41 RefTypeUse <Ivl:23> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #62 @42 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last>
<RefPosition #63 @42 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last>
<RefPosition #64 @42 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last>
<RefPosition #65 @42 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last>
<RefPosition #66 @42 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last>
<RefPosition #67 @42 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last>
<RefPosition #68 @42 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last>
<RefPosition #69 @42 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #70 @42 RefTypeDef <Ivl:24> CALL BB01 regmask=[rax] minReg=1 fixed>
<RefPosition #71 @43 RefTypeUse <Ivl:24> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #72 @44 RefTypeDef <Ivl:3 V03> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #73 @53 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #74 @53 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r9] minReg=1 fixed>
<RefPosition #75 @54 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #76 @54 RefTypeDef <Ivl:25> PUTARG_REG BB01 regmask=[r9] minReg=1 fixed>
<RefPosition #77 @56 RefTypeDef <Ivl:26> LCL_FLD BB01 regmask=[rcx] minReg=1>
<RefPosition #78 @57 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #79 @57 RefTypeUse <Ivl:26> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #80 @58 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #81 @58 RefTypeDef <Ivl:27> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #82 @61 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #83 @61 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #84 @62 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #85 @62 RefTypeDef <Ivl:28> PUTARG_REG BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #86 @65 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #87 @65 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #88 @66 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #89 @66 RefTypeDef <Ivl:29> PUTARG_REG BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #90 @67 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #91 @67 RefTypeUse <Ivl:25> BB01 regmask=[r9] minReg=1 last fixed>
<RefPosition #92 @67 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #93 @67 RefTypeUse <Ivl:27> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #94 @67 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #95 @67 RefTypeUse <Ivl:28> BB01 regmask=[rdx] minReg=1 last fixed>
<RefPosition #96 @67 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #97 @67 RefTypeUse <Ivl:29> BB01 regmask=[r8] minReg=1 last fixed>
<RefPosition #98 @68 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last>
<RefPosition #99 @68 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last>
<RefPosition #100 @68 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last>
<RefPosition #101 @68 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last>
<RefPosition #102 @68 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last>
<RefPosition #103 @68 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last>
<RefPosition #104 @68 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last>
<RefPosition #105 @68 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #106 @68 RefTypeDef <Ivl:30> CALL BB01 regmask=[rax] minReg=1 fixed>
<RefPosition #107 @69 RefTypeUse <Ivl:30> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #108 @70 RefTypeDef <Ivl:4 V04> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #109 @72 RefTypeDef <Ivl:31> CNS_INT BB01 regmask=[rcx] minReg=1>
<RefPosition #110 @73 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #111 @73 RefTypeUse <Ivl:31> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #112 @74 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #113 @74 RefTypeDef <Ivl:32> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #114 @75 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #115 @75 RefTypeUse <Ivl:32> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #116 @76 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last>
<RefPosition #117 @76 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last>
<RefPosition #118 @76 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last>
<RefPosition #119 @76 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last>
<RefPosition #120 @76 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last>
<RefPosition #121 @76 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last>
<RefPosition #122 @76 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last>
<RefPosition #123 @76 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #124 @76 RefTypeDef <Ivl:33> CALL BB01 regmask=[rax] minReg=1 fixed>
<RefPosition #125 @77 RefTypeUse <Ivl:33> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #126 @78 RefTypeDef <Ivl:9 V11> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #127 @81 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #128 @85 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #129 @85 RefTypeUse <Ivl:9 V11> LCL_VAR BB01 regmask=[rdx] minReg=1 last fixed>
<RefPosition #130 @86 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #131 @86 RefTypeDef <Ivl:34> PUTARG_REG BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #132 @89 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #133 @89 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #134 @90 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #135 @90 RefTypeDef <Ivl:35> PUTARG_REG BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #136 @93 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #137 @93 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[r9] minReg=1 fixed>
<RefPosition #138 @94 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #139 @94 RefTypeDef <Ivl:36> PUTARG_REG BB01 regmask=[r9] minReg=1 fixed>
<RefPosition #140 @96 RefTypeDef <Ivl:37> CNS_INT BB01 regmask=[rcx] minReg=1>
<RefPosition #141 @97 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #142 @97 RefTypeUse <Ivl:37> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #143 @98 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #144 @98 RefTypeDef <Ivl:38> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #145 @99 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #146 @99 RefTypeUse <Ivl:34> BB01 regmask=[rdx] minReg=1 last fixed>
<RefPosition #147 @99 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #148 @99 RefTypeUse <Ivl:35> BB01 regmask=[r8] minReg=1 last fixed>
<RefPosition #149 @99 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #150 @99 RefTypeUse <Ivl:36> BB01 regmask=[r9] minReg=1 last fixed>
<RefPosition #151 @99 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #152 @99 RefTypeUse <Ivl:38> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #153 @100 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last>
<RefPosition #154 @100 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last>
<RefPosition #155 @100 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last>
<RefPosition #156 @100 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last>
<RefPosition #157 @100 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last>
<RefPosition #158 @100 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last>
<RefPosition #159 @100 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last>
<RefPosition #160 @100 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #161 @100 RefTypeDef <Ivl:39> CALL BB01 regmask=[rax] minReg=1 fixed>
<RefPosition #162 @101 RefTypeUse <Ivl:39> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #163 @102 RefTypeDef <Ivl:5 V05> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #164 @105 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #165 @105 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #166 @106 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #167 @106 RefTypeDef <Ivl:40> PUTARG_REG BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #168 @109 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #169 @109 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #170 @110 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #171 @110 RefTypeDef <Ivl:41> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #172 @113 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #173 @113 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #174 @114 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #175 @114 RefTypeDef <Ivl:42> PUTARG_REG BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #176 @115 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #177 @115 RefTypeUse <Ivl:40> BB01 regmask=[r8] minReg=1 last fixed>
<RefPosition #178 @115 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #179 @115 RefTypeUse <Ivl:41> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #180 @115 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #181 @115 RefTypeUse <Ivl:42> BB01 regmask=[rdx] minReg=1 last fixed>
<RefPosition #182 @116 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last>
<RefPosition #183 @116 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last>
<RefPosition #184 @116 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last>
<RefPosition #185 @116 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last>
<RefPosition #186 @116 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last>
<RefPosition #187 @116 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last>
<RefPosition #188 @116 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last>
<RefPosition #189 @116 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #190 @116 RefTypeDef <Ivl:43> CALL BB01 regmask=[rax] minReg=1 fixed>
<RefPosition #191 @117 RefTypeUse <Ivl:43> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #192 @118 RefTypeDef <Ivl:6 V06> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #193 @123 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #194 @123 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
<RefPosition #195 @124 RefTypeDef <Ivl:44> ADD BB01 regmask=[allInt] minReg=1>
<RefPosition #196 @125 RefTypeUse <Ivl:44> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #197 @126 RefTypeDef <Ivl:10 V13> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #198 @131 RefTypeUse <Ivl:10 V13> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
<RefPosition #199 @131 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #200 @132 RefTypeDef <Ivl:45> MUL BB01 regmask=[allInt] minReg=1>
<RefPosition #201 @133 RefTypeUse <Ivl:45> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #202 @134 RefTypeDef <Ivl:11 V14> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #203 @139 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
<RefPosition #204 @139 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
<RefPosition #205 @140 RefTypeDef <Ivl:46> MUL BB01 regmask=[allInt] minReg=1>
<RefPosition #206 @141 RefTypeUse <Ivl:46> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #207 @142 RefTypeDef <Ivl:12 V15> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #208 @149 RefTypeUse <Ivl:11 V14> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
<RefPosition #209 @150 RefTypeDef <Ivl:47> RSH BB01 regmask=[rcx rbx rbp rsi rdi r8-r15] minReg=1>
<RefPosition #210 @151 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #211 @151 RefTypeUse <Ivl:12 V15> LCL_VAR BB01 regmask=[rax] minReg=1 last fixed>
<RefPosition #212 @151 RefTypeUse <Ivl:47> BB01 regmask=[rcx rbx rbp rsi rdi r8-r15] minReg=1 last delay regOptional>
<RefPosition #213 @152 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last>
<RefPosition #214 @152 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last>
<RefPosition #215 @152 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #216 @152 RefTypeDef <Ivl:48> DIV BB01 regmask=[rax] minReg=1 fixed>
<RefPosition #217 @153 RefTypeUse <Ivl:48> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #218 @154 RefTypeDef <Ivl:7 V07> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #219 @159 RefTypeUse <Ivl:8 V10> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
<RefPosition #220 @159 RefTypeUse <Ivl:3 V03> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
<RefPosition #221 @160 RefTypeDef <Ivl:49> ADD BB01 regmask=[allInt] minReg=1>
<RefPosition #222 @163 RefTypeUse <Ivl:49> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #223 @163 RefTypeUse <Ivl:4 V04> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
<RefPosition #224 @164 RefTypeDef <Ivl:50> ADD BB01 regmask=[allInt] minReg=1>
<RefPosition #225 @167 RefTypeUse <Ivl:50> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #226 @167 RefTypeUse <Ivl:5 V05> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
<RefPosition #227 @168 RefTypeDef <Ivl:51> ADD BB01 regmask=[allInt] minReg=1>
<RefPosition #228 @171 RefTypeUse <Ivl:51> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #229 @171 RefTypeUse <Ivl:6 V06> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
<RefPosition #230 @172 RefTypeDef <Ivl:52> ADD BB01 regmask=[allInt] minReg=1>
<RefPosition #231 @175 RefTypeUse <Ivl:52> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #232 @175 RefTypeUse <Ivl:7 V07> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
<RefPosition #233 @176 RefTypeDef <Ivl:53> ADD BB01 regmask=[rax] minReg=1>
<RefPosition #234 @177 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #235 @177 RefTypeUse <Ivl:53> BB01 regmask=[rax] minReg=1 last fixed>
VAR REFPOSITIONS BEFORE ALLOCATION
--- V00 (Interval 0)
<RefPosition #0 @0 RefTypeParamDef <Ivl:0 V00> BB00 regmask=[rcx] minReg=1 fixed regOptional>
<RefPosition #13 @15 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #42 @31 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #83 @61 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #133 @89 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #169 @109 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #193 @123 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #203 @139 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
--- V01 (Interval 1)
<RefPosition #1 @0 RefTypeParamDef <Ivl:1 V01> BB00 regmask=[rdx] minReg=1 fixed regOptional>
<RefPosition #17 @19 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #46 @35 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #87 @65 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #137 @93 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[r9] minReg=1 fixed>
<RefPosition #173 @113 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #194 @123 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
--- V02 (Interval 2)
<RefPosition #2 @0 RefTypeParamDef <Ivl:2 V02> BB00 regmask=[r8] minReg=1 fixed regOptional>
<RefPosition #4 @5 RefTypeUse <Ivl:2 V02> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
--- V03 (Interval 3)
<RefPosition #72 @44 RefTypeDef <Ivl:3 V03> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #220 @159 RefTypeUse <Ivl:3 V03> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
--- V04 (Interval 4)
<RefPosition #108 @70 RefTypeDef <Ivl:4 V04> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #223 @163 RefTypeUse <Ivl:4 V04> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
--- V05 (Interval 5)
<RefPosition #163 @102 RefTypeDef <Ivl:5 V05> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #226 @167 RefTypeUse <Ivl:5 V05> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
--- V06 (Interval 6)
<RefPosition #192 @118 RefTypeDef <Ivl:6 V06> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #229 @171 RefTypeUse <Ivl:6 V06> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
--- V07 (Interval 7)
<RefPosition #218 @154 RefTypeDef <Ivl:7 V07> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #232 @175 RefTypeUse <Ivl:7 V07> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
--- V08
--- V09
--- V10 (Interval 8)
<RefPosition #36 @24 RefTypeDef <Ivl:8 V10> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #219 @159 RefTypeUse <Ivl:8 V10> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
--- V11 (Interval 9)
<RefPosition #126 @78 RefTypeDef <Ivl:9 V11> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #129 @85 RefTypeUse <Ivl:9 V11> LCL_VAR BB01 regmask=[rdx] minReg=1 last fixed>
--- V12
--- V13 (Interval 10)
<RefPosition #197 @126 RefTypeDef <Ivl:10 V13> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #198 @131 RefTypeUse <Ivl:10 V13> LCL_VAR BB01 regmask=[allInt] minReg=1 last regOptional>
--- V14 (Interval 11)
<RefPosition #202 @134 RefTypeDef <Ivl:11 V14> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #208 @149 RefTypeUse <Ivl:11 V14> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
--- V15 (Interval 12)
<RefPosition #207 @142 RefTypeDef <Ivl:12 V15> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #211 @151 RefTypeUse <Ivl:12 V15> LCL_VAR BB01 regmask=[rax] minReg=1 last fixed>
--- V16
--- V17
--- V18
--- V19 (Interval 13)
<RefPosition #7 @8 RefTypeDef <Ivl:13 V19> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #9 @11 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #38 @27 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r9] minReg=1 fixed>
<RefPosition #74 @53 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r9] minReg=1 fixed>
<RefPosition #127 @81 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #165 @105 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #199 @131 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #204 @139 RefTypeUse <Ivl:13 V19> 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, a 'p' if it is a large vector that has been partially spilled, 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.
--------------------------------+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rbx |rbp |rsi |rdi |
--------------------------------+----+----+----+----+----+----+
| |V0 a| | | | |
0.#0 V0 Parm Alloc rsi | | | | |V0 a| |
0.#1 V1 Parm Alloc rdi | | | | |V0 a|V1 a|
--------------------------------+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rbx |rbp |rsi |rdi |r8 |
--------------------------------+----+----+----+----+----+----+----+
0.#2 V2 Parm Keep r8 | | | | |V0 a|V1 a|V2 a|
1.#3 BB1 PredBB0 | | | | |V0 a|V1 a|V2 a|
5.#4 V2 Use * Keep r8 | | | | |V0 a|V1 a|V2 a|
6.#5 I14 Def Alloc rbx | | |I14a| |V0 a|V1 a| |
7.#6 I14 Use * Keep rbx | | |I14a| |V0 a|V1 a| |
8.#7 V19 Def Alloc rbx | | |V19a| |V0 a|V1 a| |
11.#8 r8 Fixd Keep r8 | | |V19a| |V0 a|V1 a| |
11.#9 V19 Use Copy r8 | | |V19a| |V0 a|V1 a|V19a|
12.#10 r8 Fixd Keep r8 | | |V19a| |V0 a|V1 a|V19a|
12.#11 I15 Def Alloc r8 | | |V19a| |V0 a|V1 a|I15a|
15.#12 rcx Fixd Keep rcx | | |V19a| |V0 a|V1 a|I15a|
15.#13 V0 Use Copy rcx | |V0 a|V19a| |V0 a|V1 a|I15a|
16.#14 rcx Fixd Keep rcx | |V0 a|V19a| |V0 a|V1 a|I15a|
16.#15 I16 Def Alloc rcx | |I16a|V19a| |V0 a|V1 a|I15a|
19.#16 rdx Fixd Keep rdx | |I16a|V19a| |V0 a|V1 a|I15a|
--------------------------------+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |
--------------------------------+----+----+----+----+----+----+----+----+
19.#17 V1 Use Copy rdx | |I16a|V1 a|V19a| |V0 a|V1 a|I15a|
20.#18 rdx Fixd Keep rdx | |I16a|V1 a|V19a| |V0 a|V1 a|I15a|
20.#19 I17 Def Alloc rdx | |I16a|I17a|V19a| |V0 a|V1 a|I15a|
21.#20 r8 Fixd Keep r8 | |I16a|I17a|V19a| |V0 a|V1 a|I15a|
21.#21 I15 Use * Keep r8 | |I16a|I17a|V19a| |V0 a|V1 a|I15a|
21.#22 rcx Fixd Keep rcx | |I16a|I17a|V19a| |V0 a|V1 a|I15a|
21.#23 I16 Use * Keep rcx | |I16a|I17a|V19a| |V0 a|V1 a|I15a|
21.#24 rdx Fixd Keep rdx | |I16a|I17a|V19a| |V0 a|V1 a|I15a|
21.#25 I17 Use * Keep rdx | |I16a|I17a|V19a| |V0 a|V1 a|I15a|
22.#26 rax Kill Keep rax | | | |V19a| |V0 a|V1 a| |
22.#27 rcx Kill Keep rcx | | | |V19a| |V0 a|V1 a| |
22.#28 rdx Kill Keep rdx | | | |V19a| |V0 a|V1 a| |
22.#29 r8 Kill Keep r8 | | | |V19a| |V0 a|V1 a| |
22.#30 r9 Kill Keep r9 | | | |V19a| |V0 a|V1 a| |
22.#31 r10 Kill Keep r10 | | | |V19a| |V0 a|V1 a| |
22.#32 r11 Kill Keep r11 | | | |V19a| |V0 a|V1 a| |
22.#33 rax Fixd Keep rax | | | |V19a| |V0 a|V1 a| |
22.#34 I18 Def Alloc rax |I18a| | |V19a| |V0 a|V1 a| |
23.#35 I18 Use * Keep rax |I18a| | |V19a| |V0 a|V1 a| |
24.#36 V10 Def Alloc rbp | | | |V19a|V10a|V0 a|V1 a| |
27.#37 r9 Fixd Keep r9 | | | |V19a|V10a|V0 a|V1 a| |
--------------------------------+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |
--------------------------------+----+----+----+----+----+----+----+----+----+
27.#38 V19 Use Copy r9 | | | |V19a|V10a|V0 a|V1 a| |V19a|
28.#39 r9 Fixd Keep r9 | | | |V19a|V10a|V0 a|V1 a| |V19a|
28.#40 I19 Def Alloc r9 | | | |V19a|V10a|V0 a|V1 a| |I19a|
31.#41 rdx Fixd Keep rdx | | | |V19a|V10a|V0 a|V1 a| |I19a|
31.#42 V0 Use Copy rdx | | |V0 a|V19a|V10a|V0 a|V1 a| |I19a|
32.#43 rdx Fixd Keep rdx | | |V0 a|V19a|V10a|V0 a|V1 a| |I19a|
32.#44 I20 Def Alloc rdx | | |I20a|V19a|V10a|V0 a|V1 a| |I19a|
35.#45 r8 Fixd Keep r8 | | |I20a|V19a|V10a|V0 a|V1 a| |I19a|
35.#46 V1 Use Copy r8 | | |I20a|V19a|V10a|V0 a|V1 a|V1 a|I19a|
36.#47 r8 Fixd Keep r8 | | |I20a|V19a|V10a|V0 a|V1 a|V1 a|I19a|
36.#48 I21 Def Alloc r8 | | |I20a|V19a|V10a|V0 a|V1 a|I21a|I19a|
38.#49 C22 Def Alloc rcx | |C22a|I20a|V19a|V10a|V0 a|V1 a|I21a|I19a|
39.#50 rcx Fixd Keep rcx | |C22a|I20a|V19a|V10a|V0 a|V1 a|I21a|I19a|
39.#51 C22 Use * Keep rcx | |C22a|I20a|V19a|V10a|V0 a|V1 a|I21a|I19a|
40.#52 rcx Fixd Keep rcx | | |I20a|V19a|V10a|V0 a|V1 a|I21a|I19a|
40.#53 I23 Def Alloc rcx | |I23a|I20a|V19a|V10a|V0 a|V1 a|I21a|I19a|
41.#54 r9 Fixd Keep r9 | |I23a|I20a|V19a|V10a|V0 a|V1 a|I21a|I19a|
41.#55 I19 Use * Keep r9 | |I23a|I20a|V19a|V10a|V0 a|V1 a|I21a|I19a|
41.#56 rdx Fixd Keep rdx | |I23a|I20a|V19a|V10a|V0 a|V1 a|I21a|I19a|
41.#57 I20 Use * Keep rdx | |I23a|I20a|V19a|V10a|V0 a|V1 a|I21a|I19a|
41.#58 r8 Fixd Keep r8 | |I23a|I20a|V19a|V10a|V0 a|V1 a|I21a|I19a|
41.#59 I21 Use * Keep r8 | |I23a|I20a|V19a|V10a|V0 a|V1 a|I21a|I19a|
41.#60 rcx Fixd Keep rcx | |I23a|I20a|V19a|V10a|V0 a|V1 a|I21a|I19a|
41.#61 I23 Use * Keep rcx | |I23a|I20a|V19a|V10a|V0 a|V1 a|I21a|I19a|
42.#62 rax Kill Keep rax | | | |V19a|V10a|V0 a|V1 a| | |
42.#63 rcx Kill Keep rcx | | | |V19a|V10a|V0 a|V1 a| | |
42.#64 rdx Kill Keep rdx | | | |V19a|V10a|V0 a|V1 a| | |
42.#65 r8 Kill Keep r8 | | | |V19a|V10a|V0 a|V1 a| | |
42.#66 r9 Kill Keep r9 | | | |V19a|V10a|V0 a|V1 a| | |
42.#67 r10 Kill Keep r10 | | | |V19a|V10a|V0 a|V1 a| | |
42.#68 r11 Kill Keep r11 | | | |V19a|V10a|V0 a|V1 a| | |
42.#69 rax Fixd Keep rax | | | |V19a|V10a|V0 a|V1 a| | |
42.#70 I24 Def Alloc rax |I24a| | |V19a|V10a|V0 a|V1 a| | |
43.#71 I24 Use * Keep rax |I24a| | |V19a|V10a|V0 a|V1 a| | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r14 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+
44.#72 V3 Def Alloc r14 | | | |V19a|V10a|V0 a|V1 a| | |V3 a|
53.#73 r9 Fixd Keep r9 | | | |V19a|V10a|V0 a|V1 a| | |V3 a|
53.#74 V19 Use Copy r9 | | | |V19a|V10a|V0 a|V1 a| |V19a|V3 a|
54.#75 r9 Fixd Keep r9 | | | |V19a|V10a|V0 a|V1 a| |V19a|V3 a|
54.#76 I25 Def Alloc r9 | | | |V19a|V10a|V0 a|V1 a| |I25a|V3 a|
56.#77 I26 Def Alloc rcx | |I26a| |V19a|V10a|V0 a|V1 a| |I25a|V3 a|
57.#78 rcx Fixd Keep rcx | |I26a| |V19a|V10a|V0 a|V1 a| |I25a|V3 a|
57.#79 I26 Use * Keep rcx | |I26a| |V19a|V10a|V0 a|V1 a| |I25a|V3 a|
58.#80 rcx Fixd Keep rcx | | | |V19a|V10a|V0 a|V1 a| |I25a|V3 a|
58.#81 I27 Def Alloc rcx | |I27a| |V19a|V10a|V0 a|V1 a| |I25a|V3 a|
61.#82 rdx Fixd Keep rdx | |I27a| |V19a|V10a|V0 a|V1 a| |I25a|V3 a|
61.#83 V0 Use Copy rdx | |I27a|V0 a|V19a|V10a|V0 a|V1 a| |I25a|V3 a|
62.#84 rdx Fixd Keep rdx | |I27a|V0 a|V19a|V10a|V0 a|V1 a| |I25a|V3 a|
62.#85 I28 Def Alloc rdx | |I27a|I28a|V19a|V10a|V0 a|V1 a| |I25a|V3 a|
65.#86 r8 Fixd Keep r8 | |I27a|I28a|V19a|V10a|V0 a|V1 a| |I25a|V3 a|
65.#87 V1 Use Copy r8 | |I27a|I28a|V19a|V10a|V0 a|V1 a|V1 a|I25a|V3 a|
66.#88 r8 Fixd Keep r8 | |I27a|I28a|V19a|V10a|V0 a|V1 a|V1 a|I25a|V3 a|
66.#89 I29 Def Alloc r8 | |I27a|I28a|V19a|V10a|V0 a|V1 a|I29a|I25a|V3 a|
67.#90 r9 Fixd Keep r9 | |I27a|I28a|V19a|V10a|V0 a|V1 a|I29a|I25a|V3 a|
67.#91 I25 Use * Keep r9 | |I27a|I28a|V19a|V10a|V0 a|V1 a|I29a|I25a|V3 a|
67.#92 rcx Fixd Keep rcx | |I27a|I28a|V19a|V10a|V0 a|V1 a|I29a|I25a|V3 a|
67.#93 I27 Use * Keep rcx | |I27a|I28a|V19a|V10a|V0 a|V1 a|I29a|I25a|V3 a|
67.#94 rdx Fixd Keep rdx | |I27a|I28a|V19a|V10a|V0 a|V1 a|I29a|I25a|V3 a|
67.#95 I28 Use * Keep rdx | |I27a|I28a|V19a|V10a|V0 a|V1 a|I29a|I25a|V3 a|
67.#96 r8 Fixd Keep r8 | |I27a|I28a|V19a|V10a|V0 a|V1 a|I29a|I25a|V3 a|
67.#97 I29 Use * Keep r8 | |I27a|I28a|V19a|V10a|V0 a|V1 a|I29a|I25a|V3 a|
68.#98 rax Kill Keep rax | | | |V19a|V10a|V0 a|V1 a| | |V3 a|
68.#99 rcx Kill Keep rcx | | | |V19a|V10a|V0 a|V1 a| | |V3 a|
68.#100 rdx Kill Keep rdx | | | |V19a|V10a|V0 a|V1 a| | |V3 a|
68.#101 r8 Kill Keep r8 | | | |V19a|V10a|V0 a|V1 a| | |V3 a|
68.#102 r9 Kill Keep r9 | | | |V19a|V10a|V0 a|V1 a| | |V3 a|
68.#103 r10 Kill Keep r10 | | | |V19a|V10a|V0 a|V1 a| | |V3 a|
68.#104 r11 Kill Keep r11 | | | |V19a|V10a|V0 a|V1 a| | |V3 a|
68.#105 rax Fixd Keep rax | | | |V19a|V10a|V0 a|V1 a| | |V3 a|
68.#106 I30 Def Alloc rax |I30a| | |V19a|V10a|V0 a|V1 a| | |V3 a|
69.#107 I30 Use * Keep rax |I30a| | |V19a|V10a|V0 a|V1 a| | |V3 a|
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r14 |r15 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+
70.#108 V4 Def Alloc r15 | | | |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
72.#109 C31 Def Alloc rcx | |C31a| |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
73.#110 rcx Fixd Keep rcx | |C31a| |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
73.#111 C31 Use * Keep rcx | |C31a| |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
74.#112 rcx Fixd Keep rcx | | | |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
74.#113 I32 Def Alloc rcx | |I32a| |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
75.#114 rcx Fixd Keep rcx | |I32a| |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
75.#115 I32 Use * Keep rcx | |I32a| |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
76.#116 rax Kill Keep rax | | | |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
76.#117 rcx Kill Keep rcx | | | |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
76.#118 rdx Kill Keep rdx | | | |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
76.#119 r8 Kill Keep r8 | | | |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
76.#120 r9 Kill Keep r9 | | | |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
76.#121 r10 Kill Keep r10 | | | |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
76.#122 r11 Kill Keep r11 | | | |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
76.#123 rax Fixd Keep rax | | | |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
76.#124 I33 Def Alloc rax |I33a| | |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
77.#125 I33 Use * Keep rax |I33a| | |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
78.#126 V11 Def Alloc rdx | | |V11a|V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
81.#127 V19 Use Keep rbx | | |V11a|V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
85.#128 rdx Fixd Keep rdx | | |V11a|V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
85.#129 V11 Use * Keep rdx | | |V11a|V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
86.#130 rdx Fixd Keep rdx | | | |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
86.#131 I34 Def Alloc rdx | | |I34a|V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
89.#132 r8 Fixd Keep r8 | | |I34a|V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
89.#133 V0 Use Copy r8 | | |I34a|V19a|V10a|V0 a|V1 a|V0 a| |V3 a|V4 a|
90.#134 r8 Fixd Keep r8 | | |I34a|V19a|V10a|V0 a|V1 a|V0 a| |V3 a|V4 a|
90.#135 I35 Def Alloc r8 | | |I34a|V19a|V10a|V0 a|V1 a|I35a| |V3 a|V4 a|
93.#136 r9 Fixd Keep r9 | | |I34a|V19a|V10a|V0 a|V1 a|I35a| |V3 a|V4 a|
93.#137 V1 Use Copy r9 | | |I34a|V19a|V10a|V0 a|V1 a|I35a|V1 a|V3 a|V4 a|
94.#138 r9 Fixd Keep r9 | | |I34a|V19a|V10a|V0 a|V1 a|I35a|V1 a|V3 a|V4 a|
94.#139 I36 Def Alloc r9 | | |I34a|V19a|V10a|V0 a|V1 a|I35a|I36a|V3 a|V4 a|
96.#140 C37 Def Alloc rcx | |C37a|I34a|V19a|V10a|V0 a|V1 a|I35a|I36a|V3 a|V4 a|
97.#141 rcx Fixd Keep rcx | |C37a|I34a|V19a|V10a|V0 a|V1 a|I35a|I36a|V3 a|V4 a|
97.#142 C37 Use * Keep rcx | |C37a|I34a|V19a|V10a|V0 a|V1 a|I35a|I36a|V3 a|V4 a|
98.#143 rcx Fixd Keep rcx | | |I34a|V19a|V10a|V0 a|V1 a|I35a|I36a|V3 a|V4 a|
98.#144 I38 Def Alloc rcx | |I38a|I34a|V19a|V10a|V0 a|V1 a|I35a|I36a|V3 a|V4 a|
99.#145 rdx Fixd Keep rdx | |I38a|I34a|V19a|V10a|V0 a|V1 a|I35a|I36a|V3 a|V4 a|
99.#146 I34 Use * Keep rdx | |I38a|I34a|V19a|V10a|V0 a|V1 a|I35a|I36a|V3 a|V4 a|
99.#147 r8 Fixd Keep r8 | |I38a|I34a|V19a|V10a|V0 a|V1 a|I35a|I36a|V3 a|V4 a|
99.#148 I35 Use * Keep r8 | |I38a|I34a|V19a|V10a|V0 a|V1 a|I35a|I36a|V3 a|V4 a|
99.#149 r9 Fixd Keep r9 | |I38a|I34a|V19a|V10a|V0 a|V1 a|I35a|I36a|V3 a|V4 a|
99.#150 I36 Use * Keep r9 | |I38a|I34a|V19a|V10a|V0 a|V1 a|I35a|I36a|V3 a|V4 a|
99.#151 rcx Fixd Keep rcx | |I38a|I34a|V19a|V10a|V0 a|V1 a|I35a|I36a|V3 a|V4 a|
99.#152 I38 Use * Keep rcx | |I38a|I34a|V19a|V10a|V0 a|V1 a|I35a|I36a|V3 a|V4 a|
100.#153 rax Kill Keep rax | | | |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
100.#154 rcx Kill Keep rcx | | | |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
100.#155 rdx Kill Keep rdx | | | |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
100.#156 r8 Kill Keep r8 | | | |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
100.#157 r9 Kill Keep r9 | | | |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
100.#158 r10 Kill Keep r10 | | | |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
100.#159 r11 Kill Keep r11 | | | |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
100.#160 rax Fixd Keep rax | | | |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r14 |r15 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+
100.#161 I39 Def Alloc rax |I39a| | |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
101.#162 I39 Use * Keep rax |I39a| | |V19a|V10a|V0 a|V1 a| | |V3 a|V4 a|
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r14 |r15 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
102.#163 V5 Def Alloc r12 | | | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
105.#164 r8 Fixd Keep r8 | | | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
105.#165 V19 Use Copy r8 | | | |V19a|V10a|V0 a|V1 a|V19a| |V5 a|V3 a|V4 a|
106.#166 r8 Fixd Keep r8 | | | |V19a|V10a|V0 a|V1 a|V19a| |V5 a|V3 a|V4 a|
106.#167 I40 Def Alloc r8 | | | |V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
109.#168 rcx Fixd Keep rcx | | | |V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
109.#169 V0 Use Copy rcx | |V0 a| |V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
110.#170 rcx Fixd Keep rcx | |V0 a| |V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
110.#171 I41 Def Alloc rcx | |I41a| |V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
113.#172 rdx Fixd Keep rdx | |I41a| |V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
113.#173 V1 Use Copy rdx | |I41a|V1 a|V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
114.#174 rdx Fixd Keep rdx | |I41a|V1 a|V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
114.#175 I42 Def Alloc rdx | |I41a|I42a|V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
115.#176 r8 Fixd Keep r8 | |I41a|I42a|V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
115.#177 I40 Use * Keep r8 | |I41a|I42a|V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
115.#178 rcx Fixd Keep rcx | |I41a|I42a|V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
115.#179 I41 Use * Keep rcx | |I41a|I42a|V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
115.#180 rdx Fixd Keep rdx | |I41a|I42a|V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
115.#181 I42 Use * Keep rdx | |I41a|I42a|V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
116.#182 rax Kill Keep rax | | | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
116.#183 rcx Kill Keep rcx | | | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
116.#184 rdx Kill Keep rdx | | | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
116.#185 r8 Kill Keep r8 | | | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
116.#186 r9 Kill Keep r9 | | | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
116.#187 r10 Kill Keep r10 | | | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
116.#188 r11 Kill Keep r11 | | | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
116.#189 rax Fixd Keep rax | | | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
116.#190 I43 Def Alloc rax |I43a| | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
117.#191 I43 Use * Keep rax |I43a| | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
118.#192 V6 Def Alloc rcx | |V6 a| |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
123.#193 V0 Use Keep rsi | |V6 a| |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
123.#194 V1 Use * Keep rdi | |V6 a| |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
124.#195 I44 Def Alloc rdi | |V6 a| |V19a|V10a|V0 a|I44a| | |V5 a|V3 a|V4 a|
125.#196 I44 Use * Keep rdi | |V6 a| |V19a|V10a|V0 a|I44a| | |V5 a|V3 a|V4 a|
126.#197 V13 Def Alloc rdi | |V6 a| |V19a|V10a|V0 a|V13a| | |V5 a|V3 a|V4 a|
131.#198 V13 Use * Keep rdi | |V6 a| |V19a|V10a|V0 a|V13a| | |V5 a|V3 a|V4 a|
131.#199 V19 Use Keep rbx | |V6 a| |V19a|V10a|V0 a|V13a| | |V5 a|V3 a|V4 a|
132.#200 I45 Def Alloc rdi | |V6 a| |V19a|V10a|V0 a|I45a| | |V5 a|V3 a|V4 a|
133.#201 I45 Use * Keep rdi | |V6 a| |V19a|V10a|V0 a|I45a| | |V5 a|V3 a|V4 a|
134.#202 V14 Def Alloc rdi | |V6 a| |V19a|V10a|V0 a|V14a| | |V5 a|V3 a|V4 a|
139.#203 V0 Use * Keep rsi | |V6 a| |V19a|V10a|V0 a|V14a| | |V5 a|V3 a|V4 a|
139.#204 V19 Use * Keep rbx | |V6 a| |V19a|V10a|V0 a|V14a| | |V5 a|V3 a|V4 a|
140.#205 I46 Def Alloc rax |I46a|V6 a| | |V10a| |V14a| | |V5 a|V3 a|V4 a|
141.#206 I46 Use * Keep rax |I46a|V6 a| | |V10a| |V14a| | |V5 a|V3 a|V4 a|
142.#207 V15 Def Alloc rax |V15a|V6 a| | |V10a| |V14a| | |V5 a|V3 a|V4 a|
149.#208 V14 Use * Keep rdi |V15a|V6 a| | |V10a| |V14a| | |V5 a|V3 a|V4 a|
150.#209 I47 Def Alloc rdi |V15a|V6 a| | |V10a| |I47a| | |V5 a|V3 a|V4 a|
151.#210 rax Fixd Keep rax |V15a|V6 a| | |V10a| |I47a| | |V5 a|V3 a|V4 a|
151.#211 V15 Use * Keep rax |V15a|V6 a| | |V10a| |I47a| | |V5 a|V3 a|V4 a|
151.#212 I47 Use *D Keep rdi |V15a|V6 a| | |V10a| |I47a| | |V5 a|V3 a|V4 a|
152.#213 rax Kill Keep rax | |V6 a| | |V10a| |I47a| | |V5 a|V3 a|V4 a|
152.#214 rdx Kill Keep rdx | |V6 a| | |V10a| |I47a| | |V5 a|V3 a|V4 a|
152.#215 rax Fixd Keep rax | |V6 a| | |V10a| |I47a| | |V5 a|V3 a|V4 a|
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r14 |r15 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
152.#216 I48 Def Alloc rax |I48a|V6 a| | |V10a| |I47a| | |V5 a|V3 a|V4 a|
153.#217 I48 Use * Keep rax |I48a|V6 a| | |V10a| | | | |V5 a|V3 a|V4 a|
154.#218 V7 Def Alloc rax |V7 a|V6 a| | |V10a| | | | |V5 a|V3 a|V4 a|
159.#219 V10 Use * Keep rbp |V7 a|V6 a| | |V10a| | | | |V5 a|V3 a|V4 a|
159.#220 V3 Use * Keep r14 |V7 a|V6 a| | |V10a| | | | |V5 a|V3 a|V4 a|
160.#221 I49 Def Alloc rbp |V7 a|V6 a| | |I49a| | | | |V5 a| |V4 a|
163.#222 I49 Use * Keep rbp |V7 a|V6 a| | |I49a| | | | |V5 a| |V4 a|
163.#223 V4 Use * Keep r15 |V7 a|V6 a| | |I49a| | | | |V5 a| |V4 a|
164.#224 I50 Def Alloc rbp |V7 a|V6 a| | |I50a| | | | |V5 a| | |
167.#225 I50 Use * Keep rbp |V7 a|V6 a| | |I50a| | | | |V5 a| | |
167.#226 V5 Use * Keep r12 |V7 a|V6 a| | |I50a| | | | |V5 a| | |
168.#227 I51 Def Alloc rbp |V7 a|V6 a| | |I51a| | | | | | | |
171.#228 I51 Use * Keep rbp |V7 a|V6 a| | |I51a| | | | | | | |
171.#229 V6 Use * Keep rcx |V7 a|V6 a| | |I51a| | | | | | | |
172.#230 I52 Def Alloc rcx |V7 a|I52a| | | | | | | | | | |
175.#231 I52 Use * Keep rcx |V7 a|I52a| | | | | | | | | | |
175.#232 V7 Use * Keep rax |V7 a|I52a| | | | | | | | | | |
176.#233 I53 Def Alloc rax |I53a| | | | | | | | | | | |
177.#234 rax Fixd Keep rax |I53a| | | | | | | | | | | |
177.#235 I53 Use * Keep rax | | | | | | | | | | | | |
------------
REFPOSITIONS AFTER ALLOCATION:
------------
<RefPosition #0 @0 RefTypeParamDef <Ivl:0 V00> BB00 regmask=[rsi] minReg=1 fixed regOptional>
<RefPosition #1 @0 RefTypeParamDef <Ivl:1 V01> BB00 regmask=[rdi] minReg=1 fixed regOptional>
<RefPosition #2 @0 RefTypeParamDef <Ivl:2 V02> BB00 regmask=[r8] minReg=1 fixed regOptional>
<RefPosition #3 @1 RefTypeBB BB01 regmask=[] minReg=1>
<RefPosition #4 @5 RefTypeUse <Ivl:2 V02> LCL_VAR BB01 regmask=[r8] minReg=1 last>
<RefPosition #5 @6 RefTypeDef <Ivl:14> CAST BB01 regmask=[rbx] minReg=1>
<RefPosition #6 @7 RefTypeUse <Ivl:14> BB01 regmask=[rbx] minReg=1 last>
<RefPosition #7 @8 RefTypeDef <Ivl:13 V19> STORE_LCL_VAR BB01 regmask=[rbx] minReg=1>
<RefPosition #8 @11 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #9 @11 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r8] minReg=1 copy fixed>
<RefPosition #10 @12 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #11 @12 RefTypeDef <Ivl:15> PUTARG_REG BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #12 @15 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #13 @15 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rcx] minReg=1 copy fixed>
<RefPosition #14 @16 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #15 @16 RefTypeDef <Ivl:16> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #16 @19 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #17 @19 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[rdx] minReg=1 copy fixed>
<RefPosition #18 @20 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #19 @20 RefTypeDef <Ivl:17> PUTARG_REG BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #20 @21 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #21 @21 RefTypeUse <Ivl:15> BB01 regmask=[r8] minReg=1 last fixed>
<RefPosition #22 @21 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #23 @21 RefTypeUse <Ivl:16> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #24 @21 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #25 @21 RefTypeUse <Ivl:17> BB01 regmask=[rdx] minReg=1 last fixed>
<RefPosition #26 @22 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last>
<RefPosition #27 @22 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last>
<RefPosition #28 @22 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last>
<RefPosition #29 @22 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last>
<RefPosition #30 @22 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last>
<RefPosition #31 @22 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last>
<RefPosition #32 @22 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last>
<RefPosition #33 @22 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #34 @22 RefTypeDef <Ivl:18> CALL BB01 regmask=[rax] minReg=1 fixed>
<RefPosition #35 @23 RefTypeUse <Ivl:18> BB01 regmask=[rax] minReg=1 last>
<RefPosition #36 @24 RefTypeDef <Ivl:8 V10> STORE_LCL_VAR BB01 regmask=[rbp] minReg=1>
<RefPosition #37 @27 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #38 @27 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r9] minReg=1 copy fixed>
<RefPosition #39 @28 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #40 @28 RefTypeDef <Ivl:19> PUTARG_REG BB01 regmask=[r9] minReg=1 fixed>
<RefPosition #41 @31 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #42 @31 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rdx] minReg=1 copy fixed>
<RefPosition #43 @32 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #44 @32 RefTypeDef <Ivl:20> PUTARG_REG BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #45 @35 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #46 @35 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[r8] minReg=1 copy fixed>
<RefPosition #47 @36 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #48 @36 RefTypeDef <Ivl:21> PUTARG_REG BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #49 @38 RefTypeDef <Ivl:22> CNS_INT BB01 regmask=[rcx] minReg=1>
<RefPosition #50 @39 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #51 @39 RefTypeUse <Ivl:22> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #52 @40 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #53 @40 RefTypeDef <Ivl:23> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #54 @41 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #55 @41 RefTypeUse <Ivl:19> BB01 regmask=[r9] minReg=1 last fixed>
<RefPosition #56 @41 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #57 @41 RefTypeUse <Ivl:20> BB01 regmask=[rdx] minReg=1 last fixed>
<RefPosition #58 @41 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #59 @41 RefTypeUse <Ivl:21> BB01 regmask=[r8] minReg=1 last fixed>
<RefPosition #60 @41 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #61 @41 RefTypeUse <Ivl:23> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #62 @42 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last>
<RefPosition #63 @42 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last>
<RefPosition #64 @42 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last>
<RefPosition #65 @42 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last>
<RefPosition #66 @42 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last>
<RefPosition #67 @42 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last>
<RefPosition #68 @42 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last>
<RefPosition #69 @42 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #70 @42 RefTypeDef <Ivl:24> CALL BB01 regmask=[rax] minReg=1 fixed>
<RefPosition #71 @43 RefTypeUse <Ivl:24> BB01 regmask=[rax] minReg=1 last>
<RefPosition #72 @44 RefTypeDef <Ivl:3 V03> STORE_LCL_VAR BB01 regmask=[r14] minReg=1>
<RefPosition #73 @53 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #74 @53 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r9] minReg=1 copy fixed>
<RefPosition #75 @54 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #76 @54 RefTypeDef <Ivl:25> PUTARG_REG BB01 regmask=[r9] minReg=1 fixed>
<RefPosition #77 @56 RefTypeDef <Ivl:26> LCL_FLD BB01 regmask=[rcx] minReg=1>
<RefPosition #78 @57 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #79 @57 RefTypeUse <Ivl:26> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #80 @58 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #81 @58 RefTypeDef <Ivl:27> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #82 @61 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #83 @61 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rdx] minReg=1 copy fixed>
<RefPosition #84 @62 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #85 @62 RefTypeDef <Ivl:28> PUTARG_REG BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #86 @65 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #87 @65 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[r8] minReg=1 copy fixed>
<RefPosition #88 @66 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #89 @66 RefTypeDef <Ivl:29> PUTARG_REG BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #90 @67 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #91 @67 RefTypeUse <Ivl:25> BB01 regmask=[r9] minReg=1 last fixed>
<RefPosition #92 @67 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #93 @67 RefTypeUse <Ivl:27> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #94 @67 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #95 @67 RefTypeUse <Ivl:28> BB01 regmask=[rdx] minReg=1 last fixed>
<RefPosition #96 @67 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #97 @67 RefTypeUse <Ivl:29> BB01 regmask=[r8] minReg=1 last fixed>
<RefPosition #98 @68 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last>
<RefPosition #99 @68 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last>
<RefPosition #100 @68 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last>
<RefPosition #101 @68 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last>
<RefPosition #102 @68 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last>
<RefPosition #103 @68 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last>
<RefPosition #104 @68 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last>
<RefPosition #105 @68 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #106 @68 RefTypeDef <Ivl:30> CALL BB01 regmask=[rax] minReg=1 fixed>
<RefPosition #107 @69 RefTypeUse <Ivl:30> BB01 regmask=[rax] minReg=1 last>
<RefPosition #108 @70 RefTypeDef <Ivl:4 V04> STORE_LCL_VAR BB01 regmask=[r15] minReg=1>
<RefPosition #109 @72 RefTypeDef <Ivl:31> CNS_INT BB01 regmask=[rcx] minReg=1>
<RefPosition #110 @73 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #111 @73 RefTypeUse <Ivl:31> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #112 @74 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #113 @74 RefTypeDef <Ivl:32> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #114 @75 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #115 @75 RefTypeUse <Ivl:32> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #116 @76 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last>
<RefPosition #117 @76 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last>
<RefPosition #118 @76 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last>
<RefPosition #119 @76 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last>
<RefPosition #120 @76 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last>
<RefPosition #121 @76 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last>
<RefPosition #122 @76 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last>
<RefPosition #123 @76 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #124 @76 RefTypeDef <Ivl:33> CALL BB01 regmask=[rax] minReg=1 fixed>
<RefPosition #125 @77 RefTypeUse <Ivl:33> BB01 regmask=[rax] minReg=1 last>
<RefPosition #126 @78 RefTypeDef <Ivl:9 V11> STORE_LCL_VAR BB01 regmask=[rdx] minReg=1>
<RefPosition #127 @81 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[rbx] minReg=1>
<RefPosition #128 @85 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #129 @85 RefTypeUse <Ivl:9 V11> LCL_VAR BB01 regmask=[rdx] minReg=1 last fixed>
<RefPosition #130 @86 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #131 @86 RefTypeDef <Ivl:34> PUTARG_REG BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #132 @89 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #133 @89 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[r8] minReg=1 copy fixed>
<RefPosition #134 @90 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #135 @90 RefTypeDef <Ivl:35> PUTARG_REG BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #136 @93 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #137 @93 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[r9] minReg=1 copy fixed>
<RefPosition #138 @94 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #139 @94 RefTypeDef <Ivl:36> PUTARG_REG BB01 regmask=[r9] minReg=1 fixed>
<RefPosition #140 @96 RefTypeDef <Ivl:37> CNS_INT BB01 regmask=[rcx] minReg=1>
<RefPosition #141 @97 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #142 @97 RefTypeUse <Ivl:37> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #143 @98 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #144 @98 RefTypeDef <Ivl:38> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #145 @99 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #146 @99 RefTypeUse <Ivl:34> BB01 regmask=[rdx] minReg=1 last fixed>
<RefPosition #147 @99 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #148 @99 RefTypeUse <Ivl:35> BB01 regmask=[r8] minReg=1 last fixed>
<RefPosition #149 @99 RefTypeFixedReg <Reg:r9 > BB01 regmask=[r9] minReg=1>
<RefPosition #150 @99 RefTypeUse <Ivl:36> BB01 regmask=[r9] minReg=1 last fixed>
<RefPosition #151 @99 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #152 @99 RefTypeUse <Ivl:38> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #153 @100 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last>
<RefPosition #154 @100 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last>
<RefPosition #155 @100 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last>
<RefPosition #156 @100 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last>
<RefPosition #157 @100 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last>
<RefPosition #158 @100 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last>
<RefPosition #159 @100 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last>
<RefPosition #160 @100 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #161 @100 RefTypeDef <Ivl:39> CALL BB01 regmask=[rax] minReg=1 fixed>
<RefPosition #162 @101 RefTypeUse <Ivl:39> BB01 regmask=[rax] minReg=1 last>
<RefPosition #163 @102 RefTypeDef <Ivl:5 V05> STORE_LCL_VAR BB01 regmask=[r12] minReg=1>
<RefPosition #164 @105 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #165 @105 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r8] minReg=1 copy fixed>
<RefPosition #166 @106 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #167 @106 RefTypeDef <Ivl:40> PUTARG_REG BB01 regmask=[r8] minReg=1 fixed>
<RefPosition #168 @109 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #169 @109 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rcx] minReg=1 copy fixed>
<RefPosition #170 @110 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #171 @110 RefTypeDef <Ivl:41> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed>
<RefPosition #172 @113 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #173 @113 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[rdx] minReg=1 copy fixed>
<RefPosition #174 @114 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #175 @114 RefTypeDef <Ivl:42> PUTARG_REG BB01 regmask=[rdx] minReg=1 fixed>
<RefPosition #176 @115 RefTypeFixedReg <Reg:r8 > BB01 regmask=[r8] minReg=1>
<RefPosition #177 @115 RefTypeUse <Ivl:40> BB01 regmask=[r8] minReg=1 last fixed>
<RefPosition #178 @115 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1>
<RefPosition #179 @115 RefTypeUse <Ivl:41> BB01 regmask=[rcx] minReg=1 last fixed>
<RefPosition #180 @115 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1>
<RefPosition #181 @115 RefTypeUse <Ivl:42> BB01 regmask=[rdx] minReg=1 last fixed>
<RefPosition #182 @116 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last>
<RefPosition #183 @116 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last>
<RefPosition #184 @116 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last>
<RefPosition #185 @116 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last>
<RefPosition #186 @116 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last>
<RefPosition #187 @116 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last>
<RefPosition #188 @116 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last>
<RefPosition #189 @116 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #190 @116 RefTypeDef <Ivl:43> CALL BB01 regmask=[rax] minReg=1 fixed>
<RefPosition #191 @117 RefTypeUse <Ivl:43> BB01 regmask=[rax] minReg=1 last>
<RefPosition #192 @118 RefTypeDef <Ivl:6 V06> STORE_LCL_VAR BB01 regmask=[rcx] minReg=1>
<RefPosition #193 @123 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rsi] minReg=1>
<RefPosition #194 @123 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[rdi] minReg=1 last regOptional>
<RefPosition #195 @124 RefTypeDef <Ivl:44> ADD BB01 regmask=[rdi] minReg=1>
<RefPosition #196 @125 RefTypeUse <Ivl:44> BB01 regmask=[rdi] minReg=1 last>
<RefPosition #197 @126 RefTypeDef <Ivl:10 V13> STORE_LCL_VAR BB01 regmask=[rdi] minReg=1>
<RefPosition #198 @131 RefTypeUse <Ivl:10 V13> LCL_VAR BB01 regmask=[rdi] minReg=1 last regOptional>
<RefPosition #199 @131 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[rbx] minReg=1>
<RefPosition #200 @132 RefTypeDef <Ivl:45> MUL BB01 regmask=[rdi] minReg=1>
<RefPosition #201 @133 RefTypeUse <Ivl:45> BB01 regmask=[rdi] minReg=1 last>
<RefPosition #202 @134 RefTypeDef <Ivl:11 V14> STORE_LCL_VAR BB01 regmask=[rdi] minReg=1>
<RefPosition #203 @139 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rsi] minReg=1 last regOptional>
<RefPosition #204 @139 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[rbx] minReg=1 last>
<RefPosition #205 @140 RefTypeDef <Ivl:46> MUL BB01 regmask=[rax] minReg=1>
<RefPosition #206 @141 RefTypeUse <Ivl:46> BB01 regmask=[rax] minReg=1 last>
<RefPosition #207 @142 RefTypeDef <Ivl:12 V15> STORE_LCL_VAR BB01 regmask=[rax] minReg=1>
<RefPosition #208 @149 RefTypeUse <Ivl:11 V14> LCL_VAR BB01 regmask=[rdi] minReg=1 last>
<RefPosition #209 @150 RefTypeDef <Ivl:47> RSH BB01 regmask=[rdi] minReg=1>
<RefPosition #210 @151 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #211 @151 RefTypeUse <Ivl:12 V15> LCL_VAR BB01 regmask=[rax] minReg=1 last fixed>
<RefPosition #212 @151 RefTypeUse <Ivl:47> BB01 regmask=[rdi] minReg=1 last delay regOptional>
<RefPosition #213 @152 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last>
<RefPosition #214 @152 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last>
<RefPosition #215 @152 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #216 @152 RefTypeDef <Ivl:48> DIV BB01 regmask=[rax] minReg=1 fixed>
<RefPosition #217 @153 RefTypeUse <Ivl:48> BB01 regmask=[rax] minReg=1 last>
<RefPosition #218 @154 RefTypeDef <Ivl:7 V07> STORE_LCL_VAR BB01 regmask=[rax] minReg=1>
<RefPosition #219 @159 RefTypeUse <Ivl:8 V10> LCL_VAR BB01 regmask=[rbp] minReg=1 last>
<RefPosition #220 @159 RefTypeUse <Ivl:3 V03> LCL_VAR BB01 regmask=[r14] minReg=1 last regOptional>
<RefPosition #221 @160 RefTypeDef <Ivl:49> ADD BB01 regmask=[rbp] minReg=1>
<RefPosition #222 @163 RefTypeUse <Ivl:49> BB01 regmask=[rbp] minReg=1 last>
<RefPosition #223 @163 RefTypeUse <Ivl:4 V04> LCL_VAR BB01 regmask=[r15] minReg=1 last regOptional>
<RefPosition #224 @164 RefTypeDef <Ivl:50> ADD BB01 regmask=[rbp] minReg=1>
<RefPosition #225 @167 RefTypeUse <Ivl:50> BB01 regmask=[rbp] minReg=1 last>
<RefPosition #226 @167 RefTypeUse <Ivl:5 V05> LCL_VAR BB01 regmask=[r12] minReg=1 last regOptional>
<RefPosition #227 @168 RefTypeDef <Ivl:51> ADD BB01 regmask=[rbp] minReg=1>
<RefPosition #228 @171 RefTypeUse <Ivl:51> BB01 regmask=[rbp] minReg=1 last>
<RefPosition #229 @171 RefTypeUse <Ivl:6 V06> LCL_VAR BB01 regmask=[rcx] minReg=1 last regOptional>
<RefPosition #230 @172 RefTypeDef <Ivl:52> ADD BB01 regmask=[rcx] minReg=1>
<RefPosition #231 @175 RefTypeUse <Ivl:52> BB01 regmask=[rcx] minReg=1 last>
<RefPosition #232 @175 RefTypeUse <Ivl:7 V07> LCL_VAR BB01 regmask=[rax] minReg=1 last regOptional>
<RefPosition #233 @176 RefTypeDef <Ivl:53> ADD BB01 regmask=[rax] minReg=1>
<RefPosition #234 @177 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1>
<RefPosition #235 @177 RefTypeUse <Ivl:53> BB01 regmask=[rax] minReg=1 last fixed>
VAR REFPOSITIONS AFTER ALLOCATION
--- V00 (Interval 0)
<RefPosition #0 @0 RefTypeParamDef <Ivl:0 V00> BB00 regmask=[rsi] minReg=1 fixed regOptional>
<RefPosition #13 @15 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rcx] minReg=1 copy fixed>
<RefPosition #42 @31 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rdx] minReg=1 copy fixed>
<RefPosition #83 @61 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rdx] minReg=1 copy fixed>
<RefPosition #133 @89 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[r8] minReg=1 copy fixed>
<RefPosition #169 @109 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rcx] minReg=1 copy fixed>
<RefPosition #193 @123 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rsi] minReg=1>
<RefPosition #203 @139 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rsi] minReg=1 last regOptional>
--- V01 (Interval 1)
<RefPosition #1 @0 RefTypeParamDef <Ivl:1 V01> BB00 regmask=[rdi] minReg=1 fixed regOptional>
<RefPosition #17 @19 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[rdx] minReg=1 copy fixed>
<RefPosition #46 @35 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[r8] minReg=1 copy fixed>
<RefPosition #87 @65 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[r8] minReg=1 copy fixed>
<RefPosition #137 @93 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[r9] minReg=1 copy fixed>
<RefPosition #173 @113 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[rdx] minReg=1 copy fixed>
<RefPosition #194 @123 RefTypeUse <Ivl:1 V01> LCL_VAR BB01 regmask=[rdi] minReg=1 last regOptional>
--- V02 (Interval 2)
<RefPosition #2 @0 RefTypeParamDef <Ivl:2 V02> BB00 regmask=[r8] minReg=1 fixed regOptional>
<RefPosition #4 @5 RefTypeUse <Ivl:2 V02> LCL_VAR BB01 regmask=[r8] minReg=1 last>
--- V03 (Interval 3)
<RefPosition #72 @44 RefTypeDef <Ivl:3 V03> STORE_LCL_VAR BB01 regmask=[r14] minReg=1>
<RefPosition #220 @159 RefTypeUse <Ivl:3 V03> LCL_VAR BB01 regmask=[r14] minReg=1 last regOptional>
--- V04 (Interval 4)
<RefPosition #108 @70 RefTypeDef <Ivl:4 V04> STORE_LCL_VAR BB01 regmask=[r15] minReg=1>
<RefPosition #223 @163 RefTypeUse <Ivl:4 V04> LCL_VAR BB01 regmask=[r15] minReg=1 last regOptional>
--- V05 (Interval 5)
<RefPosition #163 @102 RefTypeDef <Ivl:5 V05> STORE_LCL_VAR BB01 regmask=[r12] minReg=1>
<RefPosition #226 @167 RefTypeUse <Ivl:5 V05> LCL_VAR BB01 regmask=[r12] minReg=1 last regOptional>
--- V06 (Interval 6)
<RefPosition #192 @118 RefTypeDef <Ivl:6 V06> STORE_LCL_VAR BB01 regmask=[rcx] minReg=1>
<RefPosition #229 @171 RefTypeUse <Ivl:6 V06> LCL_VAR BB01 regmask=[rcx] minReg=1 last regOptional>
--- V07 (Interval 7)
<RefPosition #218 @154 RefTypeDef <Ivl:7 V07> STORE_LCL_VAR BB01 regmask=[rax] minReg=1>
<RefPosition #232 @175 RefTypeUse <Ivl:7 V07> LCL_VAR BB01 regmask=[rax] minReg=1 last regOptional>
--- V08
--- V09
--- V10 (Interval 8)
<RefPosition #36 @24 RefTypeDef <Ivl:8 V10> STORE_LCL_VAR BB01 regmask=[rbp] minReg=1>
<RefPosition #219 @159 RefTypeUse <Ivl:8 V10> LCL_VAR BB01 regmask=[rbp] minReg=1 last>
--- V11 (Interval 9)
<RefPosition #126 @78 RefTypeDef <Ivl:9 V11> STORE_LCL_VAR BB01 regmask=[rdx] minReg=1>
<RefPosition #129 @85 RefTypeUse <Ivl:9 V11> LCL_VAR BB01 regmask=[rdx] minReg=1 last fixed>
--- V12
--- V13 (Interval 10)
<RefPosition #197 @126 RefTypeDef <Ivl:10 V13> STORE_LCL_VAR BB01 regmask=[rdi] minReg=1>
<RefPosition #198 @131 RefTypeUse <Ivl:10 V13> LCL_VAR BB01 regmask=[rdi] minReg=1 last regOptional>
--- V14 (Interval 11)
<RefPosition #202 @134 RefTypeDef <Ivl:11 V14> STORE_LCL_VAR BB01 regmask=[rdi] minReg=1>
<RefPosition #208 @149 RefTypeUse <Ivl:11 V14> LCL_VAR BB01 regmask=[rdi] minReg=1 last>
--- V15 (Interval 12)
<RefPosition #207 @142 RefTypeDef <Ivl:12 V15> STORE_LCL_VAR BB01 regmask=[rax] minReg=1>
<RefPosition #211 @151 RefTypeUse <Ivl:12 V15> LCL_VAR BB01 regmask=[rax] minReg=1 last fixed>
--- V16
--- V17
--- V18
--- V19 (Interval 13)
<RefPosition #7 @8 RefTypeDef <Ivl:13 V19> STORE_LCL_VAR BB01 regmask=[rbx] minReg=1>
<RefPosition #9 @11 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r8] minReg=1 copy fixed>
<RefPosition #38 @27 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r9] minReg=1 copy fixed>
<RefPosition #74 @53 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r9] minReg=1 copy fixed>
<RefPosition #127 @81 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[rbx] minReg=1>
<RefPosition #165 @105 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[r8] minReg=1 copy fixed>
<RefPosition #199 @131 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[rbx] minReg=1>
<RefPosition #204 @139 RefTypeUse <Ivl:13 V19> LCL_VAR BB01 regmask=[rbx] minReg=1 last>
Active intervals at end of allocation:
-----------------------
RESOLVING BB BOUNDARIES
-----------------------
Resolution Candidates: {V00 V01 V02}
Has NoCritical Edges
Prior to Resolution
BB01 use def in out
{V00 V01 V02}
{V03 V04 V05 V06 V07 V08 V10 V11 V13 V14 V15 V19}
{V00 V01 V02}
{}
Var=Reg beg of BB01: V00=rsi V01=rdi V02=r8
Var=Reg end of BB01: none
RESOLVING EDGES
Set V00 argument initial register to rsi
Set V01 argument initial register to rdi
Set V02 argument initial register to r8
Trees after linear scan register allocator (LSRA)
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (return) i label target gcsafe newobj LIR
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..051) (return), preds={} succs={}
N003 ( 2, 2) [000002] ------------ t2 = LCL_VAR int V02 arg2 u:1 r8 (last use) REG r8 $c0
/--* t2 int
N005 ( 3, 4) [000158] ------------ t158 = * CAST int <- ubyte <- int REG rbx $180
/--* t158 int
N007 ( 7, 7) [000189] DA---------- * STORE_LCL_VAR int V19 cse0 rbx REG rbx
N009 ( 3, 2) [000190] ------------ t190 = LCL_VAR int V19 cse0 rbx REG rbx $180
/--* t190 int
N011 (???,???) [000199] ------------ t199 = * PUTARG_REG int REG r8
N013 ( 1, 1) [000000] ------------ t0 = LCL_VAR int V00 arg0 u:1 rsi REG rsi $80
/--* t0 int
N015 (???,???) [000200] ------------ t200 = * PUTARG_REG int REG rcx
N017 ( 1, 1) [000001] ------------ t1 = LCL_VAR int V01 arg1 u:1 rdi REG rdi $81
/--* t1 int
N019 (???,???) [000201] ------------ t201 = * PUTARG_REG int REG rdx
/--* t199 int arg2 in r8
+--* t200 int arg0 in rcx
+--* t201 int arg1 in rdx
N021 ( 26, 19) [000003] --CXG------- t3 = * CALL int Test2.DoTestImpl1 REG rax $143
/--* t3 int
N023 ( 26, 19) [000011] DA-XG------- * STORE_LCL_VAR int V10 tmp1 d:2 rbp REG rbp
N025 ( 3, 2) [000192] ------------ t192 = LCL_VAR int V19 cse0 rbx REG rbx $180
/--* t192 int
N027 (???,???) [000202] ------------ t202 = * PUTARG_REG int REG r9
N029 ( 1, 1) [000005] ------------ t5 = LCL_VAR int V00 arg0 u:1 rsi REG rsi $80
/--* t5 int
N031 (???,???) [000203] ------------ t203 = * PUTARG_REG int REG rdx
N033 ( 1, 1) [000006] ------------ t6 = LCL_VAR int V01 arg1 u:1 rdi REG rdi $81
/--* t6 int
N035 (???,???) [000204] ------------ t204 = * PUTARG_REG int REG r8
N037 ( 3, 10) [000009] ------------ t9 = CNS_INT(h) long 0xd1ffab1e method REG rcx $240
/--* t9 long
N039 (???,???) [000205] ------------ t205 = * PUTARG_REG long REG rcx
/--* t202 int arg3 in r9
+--* t203 int arg1 in rdx
+--* t204 int arg2 in r8
+--* t205 long arg0 in rcx
N041 ( 22, 23) [000008] --CXG------- t8 = * CALL int Test2.DoTestImpl2 REG rax $148
/--* t8 int
N043 ( 26, 26) [000015] DA-XG------- * STORE_LCL_VAR int V03 loc0 d:2 r14 REG r14
N045 ( 1, 1) [000018] -c---------- t18 = CNS_INT int 0 REG NA $40
N047 ( 3, 2) [000016] Dc-----N---- t16 = LCL_VAR_ADDR byref V08 loc5 d:2 NA REG NA
/--* t16 byref
+--* t18 int
N049 (???,???) [000198] -A---------- * STOREIND byte REG NA
N051 ( 3, 2) [000193] ------------ t193 = LCL_VAR int V19 cse0 rbx REG rbx $180
/--* t193 int
N053 (???,???) [000206] ------------ t206 = * PUTARG_REG int REG r9
N055 ( 4, 5) [000020] ------------ t20 = LCL_FLD byte V08 loc5 u:2[+0] rcx (last use) REG rcx $301
/--* t20 byte
N057 (???,???) [000207] ------------ t207 = * PUTARG_REG int REG rcx
N059 ( 1, 1) [000021] ------------ t21 = LCL_VAR int V00 arg0 u:1 rsi REG rsi $80
/--* t21 int
N061 (???,???) [000208] ------------ t208 = * PUTARG_REG int REG rdx
N063 ( 1, 1) [000022] ------------ t22 = LCL_VAR int V01 arg1 u:1 rdi REG rdi $81
/--* t22 int
N065 (???,???) [000209] ------------ t209 = * PUTARG_REG int REG r8
/--* t206 int arg3 in r9
+--* t207 int arg0 in rcx
+--* t208 int arg1 in rdx
+--* t209 int arg2 in r8
N067 ( 23, 18) [000024] --CXG------- t24 = * CALL int Test2.DoTestImpl3 REG rax $14d
/--* t24 int
N069 ( 27, 21) [000029] DA-XG------- * STORE_LCL_VAR int V04 loc1 d:2 r15 REG r15
N071 ( 3, 10) [000030] ------------ t30 = CNS_INT(h) long 0xd1ffab1e method REG rcx $241
/--* t30 long
N073 (???,???) [000210] ------------ t210 = * PUTARG_REG long REG rcx
/--* t210 long arg0 in rcx
N075 ( 17, 16) [000031] --C--------- t31 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST REG rax $340
/--* t31 ref
N077 ( 17, 16) [000033] DA---------- * STORE_LCL_VAR ref V11 tmp2 d:2 rdx REG rdx
N079 ( 3, 2) [000194] ------------ t194 = LCL_VAR int V19 cse0 rbx REG rbx $180
/--* t194 int
N081 (???,???) [000211] ------------ * PUTARG_STK [+0x20] void REG NA
N083 ( 1, 1) [000036] ------------ t36 = LCL_VAR ref V11 tmp2 u:2 rdx (last use) REG rdx $340
/--* t36 ref
N085 (???,???) [000212] ------------ t212 = * PUTARG_REG ref REG rdx
N087 ( 1, 1) [000037] ------------ t37 = LCL_VAR int V00 arg0 u:1 rsi REG rsi $80
/--* t37 int
N089 (???,???) [000213] ------------ t213 = * PUTARG_REG int REG r8
N091 ( 1, 1) [000038] ------------ t38 = LCL_VAR int V01 arg1 u:1 rdi REG rdi $81
/--* t38 int
N093 (???,???) [000214] ------------ t214 = * PUTARG_REG int REG r9
N095 ( 3, 10) [000041] ------------ t41 = CNS_INT(h) long 0xd1ffab1e method REG rcx $242
/--* t41 long
N097 (???,???) [000215] ------------ t215 = * PUTARG_REG long REG rcx
/--* t212 ref arg1 in rdx
+--* t213 int arg2 in r8
+--* t214 int arg3 in r9
+--* t215 long arg0 in rcx
N099 ( 26, 24) [000040] --CXG------- t40 = * CALL int Test2.DoTestImpl4 REG rax $151
/--* t40 int
N101 ( 30, 27) [000044] DA-XG------- * STORE_LCL_VAR int V05 loc2 d:2 r12 REG r12
N103 ( 3, 2) [000195] ------------ t195 = LCL_VAR int V19 cse0 rbx REG rbx $180
/--* t195 int
N105 (???,???) [000216] ------------ t216 = * PUTARG_REG int REG r8
N107 ( 1, 1) [000045] ------------ t45 = LCL_VAR int V00 arg0 u:1 rsi REG rsi $80
/--* t45 int
N109 (???,???) [000217] ------------ t217 = * PUTARG_REG int REG rcx
N111 ( 1, 1) [000046] ------------ t46 = LCL_VAR int V01 arg1 u:1 rdi REG rdi $81
/--* t46 int
N113 (???,???) [000218] ------------ t218 = * PUTARG_REG int REG rdx
/--* t216 int arg2 in r8
+--* t217 int arg0 in rcx
+--* t218 int arg1 in rdx
N115 ( 19, 12) [000048] --CXG------- t48 = * CALL int Test2.DoTestImpl5 REG rax $156
/--* t48 int
N117 ( 23, 15) [000051] DA-XG------- * STORE_LCL_VAR int V06 loc3 d:2 rcx REG rcx
N119 ( 1, 1) [000052] ------------ t52 = LCL_VAR int V00 arg0 u:1 rsi REG rsi $80
N121 ( 1, 1) [000053] ------------ t53 = LCL_VAR int V01 arg1 u:1 rdi (last use) REG rdi $81
/--* t52 int
+--* t53 int
N123 ( 3, 3) [000140] ------------ t140 = * ADD int REG rdi $181
/--* t140 int
N125 ( 3, 3) [000114] DA---------- * STORE_LCL_VAR int V13 tmp4 d:2 rdi REG rdi
N127 ( 1, 1) [000115] ------------ t115 = LCL_VAR int V13 tmp4 u:2 rdi (last use) REG rdi $181
N129 ( 3, 2) [000196] ------------ t196 = LCL_VAR int V19 cse0 rbx REG rbx $180
/--* t115 int
+--* t196 int
N131 ( 8, 6) [000145] ------------ t145 = * MUL int REG rdi $182
/--* t145 int
N133 ( 8, 6) [000120] DA---------- * STORE_LCL_VAR int V14 tmp5 d:2 rdi REG rdi
N135 ( 1, 1) [000121] ------------ t121 = LCL_VAR int V00 arg0 u:1 rsi (last use) REG rsi $80
N137 ( 3, 2) [000197] ------------ t197 = LCL_VAR int V19 cse0 rbx (last use) REG rbx $180
/--* t121 int
+--* t197 int
N139 ( 8, 6) [000150] ------------ t150 = * MUL int REG rax $183
/--* t150 int
N141 ( 8, 6) [000131] DA---------- * STORE_LCL_VAR int V15 tmp6 d:2 rax REG rax
N143 ( 1, 1) [000132] ------------ t132 = LCL_VAR int V15 tmp6 u:2 rax (last use) REG rax $183
N145 ( 1, 1) [000127] ------------ t127 = LCL_VAR int V14 tmp5 u:2 rdi (last use) REG rdi $182
N147 ( 1, 1) [000152] -c---------- t152 = CNS_INT int 2 REG NA $42
/--* t127 int
+--* t152 int
N149 ( 3, 3) [000153] ------------ t153 = * RSH int REG rdi $184
/--* t132 int
+--* t153 int
N151 ( 24, 7) [000156] ---X-------- t156 = * DIV int REG rax $186
/--* t156 int
N153 ( 28, 10) [000058] DA-X-------- * STORE_LCL_VAR int V07 loc4 d:2 rax REG rax
N155 ( 1, 1) [000012] ------------ t12 = LCL_VAR int V10 tmp1 u:2 rbp (last use) REG rbp $143
N157 ( 3, 2) [000059] ------------ t59 = LCL_VAR int V03 loc0 u:2 r14 (last use) REG r14 $148
/--* t12 int
+--* t59 int
N159 ( 5, 4) [000060] ------------ t60 = * ADD int REG rbp $187
N161 ( 3, 2) [000061] ------------ t61 = LCL_VAR int V04 loc1 u:2 r15 (last use) REG r15 $14d
/--* t60 int
+--* t61 int
N163 ( 9, 7) [000062] ------------ t62 = * ADD int REG rbp $188
N165 ( 3, 2) [000063] ------------ t63 = LCL_VAR int V05 loc2 u:2 r12 (last use) REG r12 $151
/--* t62 int
+--* t63 int
N167 ( 13, 10) [000064] ------------ t64 = * ADD int REG rbp $189
N169 ( 3, 2) [000065] ------------ t65 = LCL_VAR int V06 loc3 u:2 rcx (last use) REG rcx $156
/--* t64 int
+--* t65 int
N171 ( 17, 13) [000066] ------------ t66 = * ADD int REG rcx $18a
N173 ( 3, 2) [000067] ------------ t67 = LCL_VAR int V07 loc4 u:2 rax (last use) REG rax $185
/--* t66 int
+--* t67 int
N175 ( 21, 16) [000068] ------------ t68 = * ADD int REG rax $18b
/--* t68 int
N177 ( 22, 17) [000069] ------------ * RETURN int REG NA $15c
-------------------------------------------------------------------------------------------------------------------
Final allocation
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r14 |r15 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
0.#0 V0 Parm Alloc rsi | | | | | |V0 a| | | | | | |
0.#1 V1 Parm Alloc rdi | | | | | |V0 a|V1 a| | | | | |
0.#2 V2 Parm Alloc r8 | | | | | |V0 a|V1 a|V2 a| | | | |
1.#3 BB1 PredBB0 | | | | | |V0 a|V1 a|V2 a| | | | |
5.#4 V2 Use * Keep r8 | | | | | |V0 a|V1 a|V2 i| | | | |
6.#5 I14 Def Alloc rbx | | | |I14a| |V0 a|V1 a| | | | | |
7.#6 I14 Use * Keep rbx | | | |I14i| |V0 a|V1 a| | | | | |
8.#7 V19 Def Alloc rbx | | | |V19a| |V0 a|V1 a| | | | | |
11.#8 r8 Fixd Keep r8 | | | |V19a| |V0 a|V1 a| | | | | |
11.#9 V19 Use Copy r8 | | | |V19a| |V0 a|V1 a|V19a| | | | |
12.#10 r8 Fixd Keep r8 | | | |V19a| |V0 a|V1 a| | | | | |
12.#11 I15 Def Alloc r8 | | | |V19a| |V0 a|V1 a|I15a| | | | |
15.#12 rcx Fixd Keep rcx | | | |V19a| |V0 a|V1 a|I15a| | | | |
15.#13 V0 Use Copy rcx | |V0 a| |V19a| |V0 a|V1 a|I15a| | | | |
16.#14 rcx Fixd Keep rcx | | | |V19a| |V0 a|V1 a|I15a| | | | |
16.#15 I16 Def Alloc rcx | |I16a| |V19a| |V0 a|V1 a|I15a| | | | |
19.#16 rdx Fixd Keep rdx | |I16a| |V19a| |V0 a|V1 a|I15a| | | | |
19.#17 V1 Use Copy rdx | |I16a|V1 a|V19a| |V0 a|V1 a|I15a| | | | |
20.#18 rdx Fixd Keep rdx | |I16a| |V19a| |V0 a|V1 a|I15a| | | | |
20.#19 I17 Def Alloc rdx | |I16a|I17a|V19a| |V0 a|V1 a|I15a| | | | |
21.#20 r8 Fixd Keep r8 | |I16a|I17a|V19a| |V0 a|V1 a|I15a| | | | |
21.#21 I15 Use * Keep r8 | |I16a|I17a|V19a| |V0 a|V1 a|I15i| | | | |
21.#22 rcx Fixd Keep rcx | |I16a|I17a|V19a| |V0 a|V1 a| | | | | |
21.#23 I16 Use * Keep rcx | |I16i|I17a|V19a| |V0 a|V1 a| | | | | |
21.#24 rdx Fixd Keep rdx | | |I17a|V19a| |V0 a|V1 a| | | | | |
21.#25 I17 Use * Keep rdx | | |I17i|V19a| |V0 a|V1 a| | | | | |
22.#26 rax Kill Keep rax | | | |V19a| |V0 a|V1 a| | | | | |
22.#27 rcx Kill Keep rcx | | | |V19a| |V0 a|V1 a| | | | | |
22.#28 rdx Kill Keep rdx | | | |V19a| |V0 a|V1 a| | | | | |
22.#29 r8 Kill Keep r8 | | | |V19a| |V0 a|V1 a| | | | | |
22.#30 r9 Kill Keep r9 | | | |V19a| |V0 a|V1 a| | | | | |
22.#31 r10 Kill Keep r10 | | | |V19a| |V0 a|V1 a| | | | | |
22.#32 r11 Kill Keep r11 | | | |V19a| |V0 a|V1 a| | | | | |
22.#33 rax Fixd Keep rax | | | |V19a| |V0 a|V1 a| | | | | |
22.#34 I18 Def Alloc rax |I18a| | |V19a| |V0 a|V1 a| | | | | |
23.#35 I18 Use * Keep rax |I18i| | |V19a| |V0 a|V1 a| | | | | |
24.#36 V10 Def Alloc rbp | | | |V19a|V10a|V0 a|V1 a| | | | | |
27.#37 r9 Fixd Keep r9 | | | |V19a|V10a|V0 a|V1 a| | | | | |
27.#38 V19 Use Copy r9 | | | |V19a|V10a|V0 a|V1 a| |V19a| | | |
28.#39 r9 Fixd Keep r9 | | | |V19a|V10a|V0 a|V1 a| | | | | |
28.#40 I19 Def Alloc r9 | | | |V19a|V10a|V0 a|V1 a| |I19a| | | |
31.#41 rdx Fixd Keep rdx | | | |V19a|V10a|V0 a|V1 a| |I19a| | | |
31.#42 V0 Use Copy rdx | | |V0 a|V19a|V10a|V0 a|V1 a| |I19a| | | |
32.#43 rdx Fixd Keep rdx | | | |V19a|V10a|V0 a|V1 a| |I19a| | | |
32.#44 I20 Def Alloc rdx | | |I20a|V19a|V10a|V0 a|V1 a| |I19a| | | |
35.#45 r8 Fixd Keep r8 | | |I20a|V19a|V10a|V0 a|V1 a| |I19a| | | |
35.#46 V1 Use Copy r8 | | |I20a|V19a|V10a|V0 a|V1 a|V1 a|I19a| | | |
36.#47 r8 Fixd Keep r8 | | |I20a|V19a|V10a|V0 a|V1 a| |I19a| | | |
36.#48 I21 Def Alloc r8 | | |I20a|V19a|V10a|V0 a|V1 a|I21a|I19a| | | |
38.#49 C22 Def Alloc rcx | |C22a|I20a|V19a|V10a|V0 a|V1 a|I21a|I19a| | | |
39.#50 rcx Fixd Keep rcx | |C22a|I20a|V19a|V10a|V0 a|V1 a|I21a|I19a| | | |
39.#51 C22 Use * Keep rcx | |C22i|I20a|V19a|V10a|V0 a|V1 a|I21a|I19a| | | |
40.#52 rcx Fixd Keep rcx | | |I20a|V19a|V10a|V0 a|V1 a|I21a|I19a| | | |
40.#53 I23 Def Alloc rcx | |I23a|I20a|V19a|V10a|V0 a|V1 a|I21a|I19a| | | |
41.#54 r9 Fixd Keep r9 | |I23a|I20a|V19a|V10a|V0 a|V1 a|I21a|I19a| | | |
41.#55 I19 Use * Keep r9 | |I23a|I20a|V19a|V10a|V0 a|V1 a|I21a|I19i| | | |
41.#56 rdx Fixd Keep rdx | |I23a|I20a|V19a|V10a|V0 a|V1 a|I21a| | | | |
41.#57 I20 Use * Keep rdx | |I23a|I20i|V19a|V10a|V0 a|V1 a|I21a| | | | |
41.#58 r8 Fixd Keep r8 | |I23a| |V19a|V10a|V0 a|V1 a|I21a| | | | |
41.#59 I21 Use * Keep r8 | |I23a| |V19a|V10a|V0 a|V1 a|I21i| | | | |
41.#60 rcx Fixd Keep rcx | |I23a| |V19a|V10a|V0 a|V1 a| | | | | |
41.#61 I23 Use * Keep rcx | |I23i| |V19a|V10a|V0 a|V1 a| | | | | |
42.#62 rax Kill Keep rax | | | |V19a|V10a|V0 a|V1 a| | | | | |
42.#63 rcx Kill Keep rcx | | | |V19a|V10a|V0 a|V1 a| | | | | |
42.#64 rdx Kill Keep rdx | | | |V19a|V10a|V0 a|V1 a| | | | | |
42.#65 r8 Kill Keep r8 | | | |V19a|V10a|V0 a|V1 a| | | | | |
42.#66 r9 Kill Keep r9 | | | |V19a|V10a|V0 a|V1 a| | | | | |
42.#67 r10 Kill Keep r10 | | | |V19a|V10a|V0 a|V1 a| | | | | |
42.#68 r11 Kill Keep r11 | | | |V19a|V10a|V0 a|V1 a| | | | | |
42.#69 rax Fixd Keep rax | | | |V19a|V10a|V0 a|V1 a| | | | | |
42.#70 I24 Def Alloc rax |I24a| | |V19a|V10a|V0 a|V1 a| | | | | |
43.#71 I24 Use * Keep rax |I24i| | |V19a|V10a|V0 a|V1 a| | | | | |
44.#72 V3 Def Alloc r14 | | | |V19a|V10a|V0 a|V1 a| | | |V3 a| |
53.#73 r9 Fixd Keep r9 | | | |V19a|V10a|V0 a|V1 a| | | |V3 a| |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r14 |r15 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
53.#74 V19 Use Copy r9 | | | |V19a|V10a|V0 a|V1 a| |V19a| |V3 a| |
54.#75 r9 Fixd Keep r9 | | | |V19a|V10a|V0 a|V1 a| | | |V3 a| |
54.#76 I25 Def Alloc r9 | | | |V19a|V10a|V0 a|V1 a| |I25a| |V3 a| |
56.#77 I26 Def Alloc rcx | |I26a| |V19a|V10a|V0 a|V1 a| |I25a| |V3 a| |
57.#78 rcx Fixd Keep rcx | |I26a| |V19a|V10a|V0 a|V1 a| |I25a| |V3 a| |
57.#79 I26 Use * Keep rcx | |I26i| |V19a|V10a|V0 a|V1 a| |I25a| |V3 a| |
58.#80 rcx Fixd Keep rcx | | | |V19a|V10a|V0 a|V1 a| |I25a| |V3 a| |
58.#81 I27 Def Alloc rcx | |I27a| |V19a|V10a|V0 a|V1 a| |I25a| |V3 a| |
61.#82 rdx Fixd Keep rdx | |I27a| |V19a|V10a|V0 a|V1 a| |I25a| |V3 a| |
61.#83 V0 Use Copy rdx | |I27a|V0 a|V19a|V10a|V0 a|V1 a| |I25a| |V3 a| |
62.#84 rdx Fixd Keep rdx | |I27a| |V19a|V10a|V0 a|V1 a| |I25a| |V3 a| |
62.#85 I28 Def Alloc rdx | |I27a|I28a|V19a|V10a|V0 a|V1 a| |I25a| |V3 a| |
65.#86 r8 Fixd Keep r8 | |I27a|I28a|V19a|V10a|V0 a|V1 a| |I25a| |V3 a| |
65.#87 V1 Use Copy r8 | |I27a|I28a|V19a|V10a|V0 a|V1 a|V1 a|I25a| |V3 a| |
66.#88 r8 Fixd Keep r8 | |I27a|I28a|V19a|V10a|V0 a|V1 a| |I25a| |V3 a| |
66.#89 I29 Def Alloc r8 | |I27a|I28a|V19a|V10a|V0 a|V1 a|I29a|I25a| |V3 a| |
67.#90 r9 Fixd Keep r9 | |I27a|I28a|V19a|V10a|V0 a|V1 a|I29a|I25a| |V3 a| |
67.#91 I25 Use * Keep r9 | |I27a|I28a|V19a|V10a|V0 a|V1 a|I29a|I25i| |V3 a| |
67.#92 rcx Fixd Keep rcx | |I27a|I28a|V19a|V10a|V0 a|V1 a|I29a| | |V3 a| |
67.#93 I27 Use * Keep rcx | |I27i|I28a|V19a|V10a|V0 a|V1 a|I29a| | |V3 a| |
67.#94 rdx Fixd Keep rdx | | |I28a|V19a|V10a|V0 a|V1 a|I29a| | |V3 a| |
67.#95 I28 Use * Keep rdx | | |I28i|V19a|V10a|V0 a|V1 a|I29a| | |V3 a| |
67.#96 r8 Fixd Keep r8 | | | |V19a|V10a|V0 a|V1 a|I29a| | |V3 a| |
67.#97 I29 Use * Keep r8 | | | |V19a|V10a|V0 a|V1 a|I29i| | |V3 a| |
68.#98 rax Kill Keep rax | | | |V19a|V10a|V0 a|V1 a| | | |V3 a| |
68.#99 rcx Kill Keep rcx | | | |V19a|V10a|V0 a|V1 a| | | |V3 a| |
68.#100 rdx Kill Keep rdx | | | |V19a|V10a|V0 a|V1 a| | | |V3 a| |
68.#101 r8 Kill Keep r8 | | | |V19a|V10a|V0 a|V1 a| | | |V3 a| |
68.#102 r9 Kill Keep r9 | | | |V19a|V10a|V0 a|V1 a| | | |V3 a| |
68.#103 r10 Kill Keep r10 | | | |V19a|V10a|V0 a|V1 a| | | |V3 a| |
68.#104 r11 Kill Keep r11 | | | |V19a|V10a|V0 a|V1 a| | | |V3 a| |
68.#105 rax Fixd Keep rax | | | |V19a|V10a|V0 a|V1 a| | | |V3 a| |
68.#106 I30 Def Alloc rax |I30a| | |V19a|V10a|V0 a|V1 a| | | |V3 a| |
69.#107 I30 Use * Keep rax |I30i| | |V19a|V10a|V0 a|V1 a| | | |V3 a| |
70.#108 V4 Def Alloc r15 | | | |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
72.#109 C31 Def Alloc rcx | |C31a| |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
73.#110 rcx Fixd Keep rcx | |C31a| |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
73.#111 C31 Use * Keep rcx | |C31i| |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
74.#112 rcx Fixd Keep rcx | | | |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
74.#113 I32 Def Alloc rcx | |I32a| |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
75.#114 rcx Fixd Keep rcx | |I32a| |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
75.#115 I32 Use * Keep rcx | |I32i| |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
76.#116 rax Kill Keep rax | | | |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
76.#117 rcx Kill Keep rcx | | | |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
76.#118 rdx Kill Keep rdx | | | |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
76.#119 r8 Kill Keep r8 | | | |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
76.#120 r9 Kill Keep r9 | | | |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
76.#121 r10 Kill Keep r10 | | | |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
76.#122 r11 Kill Keep r11 | | | |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
76.#123 rax Fixd Keep rax | | | |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
76.#124 I33 Def Alloc rax |I33a| | |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
77.#125 I33 Use * Keep rax |I33i| | |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
78.#126 V11 Def Alloc rdx | | |V11a|V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
81.#127 V19 Use Keep rbx | | |V11a|V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
85.#128 rdx Fixd Keep rdx | | |V11a|V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
85.#129 V11 Use * Keep rdx | | |V11i|V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
86.#130 rdx Fixd Keep rdx | | | |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
86.#131 I34 Def Alloc rdx | | |I34a|V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
89.#132 r8 Fixd Keep r8 | | |I34a|V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r14 |r15 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
89.#133 V0 Use Copy r8 | | |I34a|V19a|V10a|V0 a|V1 a|V0 a| | |V3 a|V4 a|
90.#134 r8 Fixd Keep r8 | | |I34a|V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
90.#135 I35 Def Alloc r8 | | |I34a|V19a|V10a|V0 a|V1 a|I35a| | |V3 a|V4 a|
93.#136 r9 Fixd Keep r9 | | |I34a|V19a|V10a|V0 a|V1 a|I35a| | |V3 a|V4 a|
93.#137 V1 Use Copy r9 | | |I34a|V19a|V10a|V0 a|V1 a|I35a|V1 a| |V3 a|V4 a|
94.#138 r9 Fixd Keep r9 | | |I34a|V19a|V10a|V0 a|V1 a|I35a| | |V3 a|V4 a|
94.#139 I36 Def Alloc r9 | | |I34a|V19a|V10a|V0 a|V1 a|I35a|I36a| |V3 a|V4 a|
96.#140 C37 Def Alloc rcx | |C37a|I34a|V19a|V10a|V0 a|V1 a|I35a|I36a| |V3 a|V4 a|
97.#141 rcx Fixd Keep rcx | |C37a|I34a|V19a|V10a|V0 a|V1 a|I35a|I36a| |V3 a|V4 a|
97.#142 C37 Use * Keep rcx | |C37i|I34a|V19a|V10a|V0 a|V1 a|I35a|I36a| |V3 a|V4 a|
98.#143 rcx Fixd Keep rcx | | |I34a|V19a|V10a|V0 a|V1 a|I35a|I36a| |V3 a|V4 a|
98.#144 I38 Def Alloc rcx | |I38a|I34a|V19a|V10a|V0 a|V1 a|I35a|I36a| |V3 a|V4 a|
99.#145 rdx Fixd Keep rdx | |I38a|I34a|V19a|V10a|V0 a|V1 a|I35a|I36a| |V3 a|V4 a|
99.#146 I34 Use * Keep rdx | |I38a|I34i|V19a|V10a|V0 a|V1 a|I35a|I36a| |V3 a|V4 a|
99.#147 r8 Fixd Keep r8 | |I38a| |V19a|V10a|V0 a|V1 a|I35a|I36a| |V3 a|V4 a|
99.#148 I35 Use * Keep r8 | |I38a| |V19a|V10a|V0 a|V1 a|I35i|I36a| |V3 a|V4 a|
99.#149 r9 Fixd Keep r9 | |I38a| |V19a|V10a|V0 a|V1 a| |I36a| |V3 a|V4 a|
99.#150 I36 Use * Keep r9 | |I38a| |V19a|V10a|V0 a|V1 a| |I36i| |V3 a|V4 a|
99.#151 rcx Fixd Keep rcx | |I38a| |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
99.#152 I38 Use * Keep rcx | |I38i| |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
100.#153 rax Kill Keep rax | | | |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
100.#154 rcx Kill Keep rcx | | | |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
100.#155 rdx Kill Keep rdx | | | |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
100.#156 r8 Kill Keep r8 | | | |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
100.#157 r9 Kill Keep r9 | | | |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
100.#158 r10 Kill Keep r10 | | | |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
100.#159 r11 Kill Keep r11 | | | |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
100.#160 rax Fixd Keep rax | | | |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
100.#161 I39 Def Alloc rax |I39a| | |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
101.#162 I39 Use * Keep rax |I39i| | |V19a|V10a|V0 a|V1 a| | | |V3 a|V4 a|
102.#163 V5 Def Alloc r12 | | | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
105.#164 r8 Fixd Keep r8 | | | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
105.#165 V19 Use Copy r8 | | | |V19a|V10a|V0 a|V1 a|V19a| |V5 a|V3 a|V4 a|
106.#166 r8 Fixd Keep r8 | | | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
106.#167 I40 Def Alloc r8 | | | |V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
109.#168 rcx Fixd Keep rcx | | | |V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
109.#169 V0 Use Copy rcx | |V0 a| |V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
110.#170 rcx Fixd Keep rcx | | | |V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
110.#171 I41 Def Alloc rcx | |I41a| |V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
113.#172 rdx Fixd Keep rdx | |I41a| |V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
113.#173 V1 Use Copy rdx | |I41a|V1 a|V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
114.#174 rdx Fixd Keep rdx | |I41a| |V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
114.#175 I42 Def Alloc rdx | |I41a|I42a|V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
115.#176 r8 Fixd Keep r8 | |I41a|I42a|V19a|V10a|V0 a|V1 a|I40a| |V5 a|V3 a|V4 a|
115.#177 I40 Use * Keep r8 | |I41a|I42a|V19a|V10a|V0 a|V1 a|I40i| |V5 a|V3 a|V4 a|
115.#178 rcx Fixd Keep rcx | |I41a|I42a|V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
115.#179 I41 Use * Keep rcx | |I41i|I42a|V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
115.#180 rdx Fixd Keep rdx | | |I42a|V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
115.#181 I42 Use * Keep rdx | | |I42i|V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
116.#182 rax Kill Keep rax | | | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
116.#183 rcx Kill Keep rcx | | | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
116.#184 rdx Kill Keep rdx | | | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
116.#185 r8 Kill Keep r8 | | | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
116.#186 r9 Kill Keep r9 | | | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
116.#187 r10 Kill Keep r10 | | | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
116.#188 r11 Kill Keep r11 | | | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
116.#189 rax Fixd Keep rax | | | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
116.#190 I43 Def Alloc rax |I43a| | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
117.#191 I43 Use * Keep rax |I43i| | |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
118.#192 V6 Def Alloc rcx | |V6 a| |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
123.#193 V0 Use Keep rsi | |V6 a| |V19a|V10a|V0 a|V1 a| | |V5 a|V3 a|V4 a|
123.#194 V1 Use * Keep rdi | |V6 a| |V19a|V10a|V0 a|V1 i| | |V5 a|V3 a|V4 a|
124.#195 I44 Def Alloc rdi | |V6 a| |V19a|V10a|V0 a|I44a| | |V5 a|V3 a|V4 a|
125.#196 I44 Use * Keep rdi | |V6 a| |V19a|V10a|V0 a|I44i| | |V5 a|V3 a|V4 a|
126.#197 V13 Def Alloc rdi | |V6 a| |V19a|V10a|V0 a|V13a| | |V5 a|V3 a|V4 a|
131.#198 V13 Use * Keep rdi | |V6 a| |V19a|V10a|V0 a|V13i| | |V5 a|V3 a|V4 a|
131.#199 V19 Use Keep rbx | |V6 a| |V19a|V10a|V0 a| | | |V5 a|V3 a|V4 a|
132.#200 I45 Def Alloc rdi | |V6 a| |V19a|V10a|V0 a|I45a| | |V5 a|V3 a|V4 a|
133.#201 I45 Use * Keep rdi | |V6 a| |V19a|V10a|V0 a|I45i| | |V5 a|V3 a|V4 a|
134.#202 V14 Def Alloc rdi | |V6 a| |V19a|V10a|V0 a|V14a| | |V5 a|V3 a|V4 a|
139.#203 V0 Use * Keep rsi | |V6 a| |V19a|V10a|V0 i|V14a| | |V5 a|V3 a|V4 a|
139.#204 V19 Use * Keep rbx | |V6 a| |V19i|V10a| |V14a| | |V5 a|V3 a|V4 a|
140.#205 I46 Def Alloc rax |I46a|V6 a| | |V10a| |V14a| | |V5 a|V3 a|V4 a|
141.#206 I46 Use * Keep rax |I46i|V6 a| | |V10a| |V14a| | |V5 a|V3 a|V4 a|
142.#207 V15 Def Alloc rax |V15a|V6 a| | |V10a| |V14a| | |V5 a|V3 a|V4 a|
149.#208 V14 Use * Keep rdi |V15a|V6 a| | |V10a| |V14i| | |V5 a|V3 a|V4 a|
150.#209 I47 Def Alloc rdi |V15a|V6 a| | |V10a| |I47a| | |V5 a|V3 a|V4 a|
151.#210 rax Fixd Keep rax |V15a|V6 a| | |V10a| |I47a| | |V5 a|V3 a|V4 a|
151.#211 V15 Use * Keep rax |V15i|V6 a| | |V10a| |I47a| | |V5 a|V3 a|V4 a|
151.#212 I47 Use *D Keep rdi | |V6 a| | |V10a| |I47i| | |V5 a|V3 a|V4 a|
152.#213 rax Kill Keep rax | |V6 a| | |V10a| | | | |V5 a|V3 a|V4 a|
152.#214 rdx Kill Keep rdx | |V6 a| | |V10a| | | | |V5 a|V3 a|V4 a|
152.#215 rax Fixd Keep rax | |V6 a| | |V10a| | | | |V5 a|V3 a|V4 a|
152.#216 I48 Def Alloc rax |I48a|V6 a| | |V10a| | | | |V5 a|V3 a|V4 a|
153.#217 I48 Use * Keep rax |I48i|V6 a| | |V10a| | | | |V5 a|V3 a|V4 a|
154.#218 V7 Def Alloc rax |V7 a|V6 a| | |V10a| | | | |V5 a|V3 a|V4 a|
159.#219 V10 Use * Keep rbp |V7 a|V6 a| | |V10i| | | | |V5 a|V3 a|V4 a|
159.#220 V3 Use * Keep r14 |V7 a|V6 a| | | | | | | |V5 a|V3 i|V4 a|
160.#221 I49 Def Alloc rbp |V7 a|V6 a| | |I49a| | | | |V5 a| |V4 a|
163.#222 I49 Use * Keep rbp |V7 a|V6 a| | |I49i| | | | |V5 a| |V4 a|
163.#223 V4 Use * Keep r15 |V7 a|V6 a| | | | | | | |V5 a| |V4 i|
164.#224 I50 Def Alloc rbp |V7 a|V6 a| | |I50a| | | | |V5 a| | |
167.#225 I50 Use * Keep rbp |V7 a|V6 a| | |I50i| | | | |V5 a| | |
167.#226 V5 Use * Keep r12 |V7 a|V6 a| | | | | | | |V5 i| | |
168.#227 I51 Def Alloc rbp |V7 a|V6 a| | |I51a| | | | | | | |
171.#228 I51 Use * Keep rbp |V7 a|V6 a| | |I51i| | | | | | | |
171.#229 V6 Use * Keep rcx |V7 a|V6 i| | | | | | | | | | |
172.#230 I52 Def Alloc rcx |V7 a|I52a| | | | | | | | | | |
175.#231 I52 Use * Keep rcx |V7 a|I52i| | | | | | | | | | |
175.#232 V7 Use * Keep rax |V7 i| | | | | | | | | | | |
176.#233 I53 Def Alloc rax |I53a| | | | | | | | | | | |
177.#234 rax Fixd Keep rax |I53a| | | | | | | | | | | |
177.#235 I53 Use * Keep rax |I53i| | | | | | | | | | | |
Recording the maximum number of concurrent spills:
----------
LSRA Stats
----------
Total Tracked Vars: 15
Total Reg Cand Vars: 14
Total number of Intervals: 53
Total number of RefPositions: 235
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: V00(rcx=>rsi) V01(rdx=>rdi) V02(r8)
BB01 [000..051) (return), preds={} succs={}
=====
N003. V02(r8*)
N005. rbx = CAST ; r8*
* N007. V19(rbx); rbx
N009. V19(rbx)
N011. r8 = PUTARG_REG; rbx
N013. V00(rsi)
N015. rcx = PUTARG_REG; rsi
N017. V01(rdi)
N019. rdx = PUTARG_REG; rdi
N021. rax = CALL ; r8,rcx,rdx
* N023. V10(rbp); rax
N025. V19(rbx)
N027. r9 = PUTARG_REG; rbx
N029. V00(rsi)
N031. rdx = PUTARG_REG; rsi
N033. V01(rdi)
N035. r8 = PUTARG_REG; rdi
N037. rcx = CNS_INT(h) 0xd1ffab1e method
N039. rcx = PUTARG_REG; rcx
N041. rax = CALL ; r9,rdx,r8,rcx
* N043. V03(r14); rax
N045. CNS_INT 0
N047. LCL_VAR_ADDR V08 loc5 d:2 NA
N049. STOREIND
N051. V19(rbx)
N053. r9 = PUTARG_REG; rbx
N055. rcx* = V08 MEM
N057. rcx = PUTARG_REG; rcx*
N059. V00(rsi)
N061. rdx = PUTARG_REG; rsi
N063. V01(rdi)
N065. r8 = PUTARG_REG; rdi
N067. rax = CALL ; r9,rcx,rdx,r8
* N069. V04(r15); rax
N071. rcx = CNS_INT(h) 0xd1ffab1e method
N073. rcx = PUTARG_REG; rcx
N075. rax = CALL help; rcx
* N077. V11(rdx); rax
N079. V19(rbx)
N081. PUTARG_STK [+0x20]; rbx
N083. V11(rdx*)
N085. rdx = PUTARG_REG; rdx*
N087. V00(rsi)
N089. r8 = PUTARG_REG; rsi
N091. V01(rdi)
N093. r9 = PUTARG_REG; rdi
N095. rcx = CNS_INT(h) 0xd1ffab1e method
N097. rcx = PUTARG_REG; rcx
N099. rax = CALL ; rdx,r8,r9,rcx
* N101. V05(r12); rax
N103. V19(rbx)
N105. r8 = PUTARG_REG; rbx
N107. V00(rsi)
N109. rcx = PUTARG_REG; rsi
N111. V01(rdi)
N113. rdx = PUTARG_REG; rdi
N115. rax = CALL ; r8,rcx,rdx
* N117. V06(rcx); rax
N119. V00(rsi)
N121. V01(rdi*)
N123. rdi = ADD ; rsi,rdi*
* N125. V13(rdi); rdi
N127. V13(rdi*)
N129. V19(rbx)
N131. rdi = MUL ; rdi*,rbx
* N133. V14(rdi); rdi
N135. V00(rsi*)
N137. V19(rbx*)
N139. rax = MUL ; rsi*,rbx*
* N141. V15(rax); rax
N143. V15(rax*)
N145. V14(rdi*)
N147. CNS_INT 2
N149. rdi = RSH ; rdi*
N151. rax = DIV ; rax*,rdi
* N153. V07(rax); rax
N155. V10(rbp*)
N157. V03(r14*)
N159. rbp = ADD ; rbp*,r14*
N161. V04(r15*)
N163. rbp = ADD ; rbp,r15*
N165. V05(r12*)
N167. rbp = ADD ; rbp,r12*
N169. V06(rcx*)
N171. rcx = ADD ; rbp,rcx*
N173. V07(rax*)
N175. rax = ADD ; rcx,rax*
N177. RETURN ; rax
Var=Reg end of BB01: none
*************** In genGenerateCode()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..051) (return) i label target gcsafe newobj LIR
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
Finalizing stack frame
Recording Var Locations at start of BB01
V00(rsi) V01(rdi) V02(r8)
Modified regs: [rax rcx rdx rbx rbp rsi rdi r8-r12 r14-r15]
Callee-saved registers pushed: 7 [rbx rbp rsi rdi r12 r14-r15]
*************** In lvaAssignFrameOffsets(FINAL_FRAME_LAYOUT)
Assign V08 loc5, size=8, stkOffs=-0x48
Assign V09 OutArgs, size=40, stkOffs=-0x70
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 9, 9 ) int -> rsi
; V01 arg1 [V01,T01] ( 8, 8 ) int -> rdi
; V02 arg2 [V02,T03] ( 3, 3 ) ubyte -> r8
; V03 loc0 [V03,T08] ( 2, 2 ) int -> r14
; V04 loc1 [V04,T09] ( 2, 2 ) int -> r15
; V05 loc2 [V05,T10] ( 2, 2 ) int -> r12
; V06 loc3 [V06,T11] ( 2, 2 ) int -> rcx
; V07 loc4 [V07,T12] ( 2, 2 ) int -> rax
; V08 loc5 [V08,T13] ( 2, 2 ) struct ( 8) [rsp+0x28] do-not-enreg[SF] must-init ld-addr-op
; V09 OutArgs [V09 ] ( 1, 1 ) lclBlk (40) [rsp+0x00] "OutgoingArgSpace"
; V10 tmp1 [V10,T05] ( 2, 4 ) int -> rbp "impAppendStmt"
; V11 tmp2 [V11,T04] ( 2, 4 ) ref -> rdx class-hnd exact "NewObj constructor temp"
;* V12 tmp3 [V12 ] ( 0, 0 ) struct ( 8) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp"
; V13 tmp4 [V13,T06] ( 2, 4 ) int -> rdi "impAppendStmt"
; V14 tmp5 [V14,T14] ( 2, 2 ) int -> rdi "Inline stloc first use temp"
; V15 tmp6 [V15,T07] ( 2, 4 ) int -> rax "impAppendStmt"
;* V16 tmp7 [V16 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V17 tmp8 [V17 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V18 tmp9 [V18 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V19 cse0 [V19,T02] ( 8, 8 ) int -> rbx "ValNumCSE"
;
; Lcl frame size = 48
Setting stack level from -572662307 to 0
=============== Generating BB01 [000..051) (return), preds={} succs={} flags=0x00000000.408b0020: i label target gcsafe newobj LIR
BB01 IN (3)={V00 V01 V02} + ByrefExposed + GcHeap
OUT(0)={ }
Recording Var Locations at start of BB01
V00(rsi) V01(rdi) V02(r8)
Change life 0000000000000000 {} -> 000000000000000B {V00 V01 V02}
V00 in reg rsi is becoming live [------]
Live regs: 00000000 {} => 00000040 {rsi}
V01 in reg rdi is becoming live [------]
Live regs: 00000040 {rsi} => 000000C0 {rsi rdi}
V02 in reg r8 is becoming live [------]
Live regs: 000000C0 {rsi rdi} => 000001C0 {rsi rdi r8}
Live regs: (unchanged) 000001C0 {rsi rdi r8}
GC regs: (unchanged) 00000000 {}
Byref regs: (unchanged) 00000000 {}
L_M55298_BB01:
Label: IG02, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
Scope info: begin block BB01, IL range [000..051)
Scope info: open scopes =
0 (V00 arg0) [000..051)
1 (V01 arg1) [000..051)
2 (V02 arg2) [000..051)
Generating: N003 ( 2, 2) [000002] ------------ t2 = LCL_VAR int V02 arg2 u:1 r8 (last use) REG r8 $c0
/--* t2 int
Generating: N005 ( 3, 4) [000158] ------------ t158 = * CAST int <- ubyte <- int REG rbx $180
V02 in reg r8 is becoming dead [000002]
Live regs: 000001C0 {rsi rdi r8} => 000000C0 {rsi rdi}
Live vars: {V00 V01 V02} => {V00 V01}
IN0001: movzx rbx, r8b
/--* t158 int
Generating: N007 ( 7, 7) [000189] DA---------- * STORE_LCL_VAR int V19 cse0 rbx REG rbx
V19 in reg rbx is becoming live [000189]
Live regs: 000000C0 {rsi rdi} => 000000C8 {rbx rsi rdi}
Live vars: {V00 V01} => {V00 V01 V19}
Generating: N009 ( 3, 2) [000190] ------------ t190 = LCL_VAR int V19 cse0 rbx REG rbx $180
/--* t190 int
Generating: N011 (???,???) [000199] ------------ t199 = * PUTARG_REG int REG r8
IN0002: mov r8d, ebx
Generating: N013 ( 1, 1) [000000] ------------ t0 = LCL_VAR int V00 arg0 u:1 rsi REG rsi $80
/--* t0 int
Generating: N015 (???,???) [000200] ------------ t200 = * PUTARG_REG int REG rcx
IN0003: mov ecx, esi
Generating: N017 ( 1, 1) [000001] ------------ t1 = LCL_VAR int V01 arg1 u:1 rdi REG rdi $81
/--* t1 int
Generating: N019 (???,???) [000201] ------------ t201 = * PUTARG_REG int REG rdx
IN0004: mov edx, edi
/--* t199 int arg2 in r8
+--* t200 int arg0 in rcx
+--* t201 int arg1 in rdx
Generating: N021 ( 26, 19) [000003] --CXG------- t3 = * CALL int Test2.DoTestImpl1 REG rax $143
Call: GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
IN0005: call Test2:DoTestImpl1(int,int,ubyte):int
/--* t3 int
Generating: N023 ( 26, 19) [000011] DA-XG------- * STORE_LCL_VAR int V10 tmp1 d:2 rbp REG rbp
IN0006: mov ebp, eax
V10 in reg rbp is becoming live [000011]
Live regs: 000000C8 {rbx rsi rdi} => 000000E8 {rbx rbp rsi rdi}
Live vars: {V00 V01 V19} => {V00 V01 V10 V19}
Generating: N025 ( 3, 2) [000192] ------------ t192 = LCL_VAR int V19 cse0 rbx REG rbx $180
/--* t192 int
Generating: N027 (???,???) [000202] ------------ t202 = * PUTARG_REG int REG r9
IN0007: mov r9d, ebx
Generating: N029 ( 1, 1) [000005] ------------ t5 = LCL_VAR int V00 arg0 u:1 rsi REG rsi $80
/--* t5 int
Generating: N031 (???,???) [000203] ------------ t203 = * PUTARG_REG int REG rdx
IN0008: mov edx, esi
Generating: N033 ( 1, 1) [000006] ------------ t6 = LCL_VAR int V01 arg1 u:1 rdi REG rdi $81
/--* t6 int
Generating: N035 (???,???) [000204] ------------ t204 = * PUTARG_REG int REG r8
IN0009: mov r8d, edi
Generating: N037 ( 3, 10) [000009] ------------ t9 = CNS_INT(h) long 0xd1ffab1e method REG rcx $240
IN000a: mov rcx, 0xD1FFAB1E
/--* t9 long
Generating: N039 (???,???) [000205] ------------ t205 = * PUTARG_REG long REG rcx
/--* t202 int arg3 in r9
+--* t203 int arg1 in rdx
+--* t204 int arg2 in r8
+--* t205 long arg0 in rcx
Generating: N041 ( 22, 23) [000008] --CXG------- t8 = * CALL int Test2.DoTestImpl2 REG rax $148
Call: GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
IN000b: call Test2:DoTestImpl2(int,int,ubyte):int
/--* t8 int
Generating: N043 ( 26, 26) [000015] DA-XG------- * STORE_LCL_VAR int V03 loc0 d:2 r14 REG r14
IN000c: mov r14d, eax
V03 in reg r14 is becoming live [000015]
Live regs: 000000E8 {rbx rbp rsi rdi} => 000040E8 {rbx rbp rsi rdi r14}
Live vars: {V00 V01 V10 V19} => {V00 V01 V03 V10 V19}
Generating: N045 ( 1, 1) [000018] -c---------- t18 = CNS_INT int 0 REG NA $40
Generating: N047 ( 3, 2) [000016] Dc-----N---- t16 = LCL_VAR_ADDR byref V08 loc5 d:2 NA REG NA
/--* t16 byref
+--* t18 int
Generating: N049 (???,???) [000198] -A---------- * STOREIND byte REG NA
IN000d: mov byte ptr [V08 rsp+28H], 0
Generating: N051 ( 3, 2) [000193] ------------ t193 = LCL_VAR int V19 cse0 rbx REG rbx $180
/--* t193 int
Generating: N053 (???,???) [000206] ------------ t206 = * PUTARG_REG int REG r9
IN000e: mov r9d, ebx
Generating: N055 ( 4, 5) [000020] ------------ t20 = LCL_FLD byte V08 loc5 u:2[+0] rcx (last use) REG rcx $301
IN000f: movsx rcx, byte ptr [V08 rsp+28H]
/--* t20 byte
Generating: N057 (???,???) [000207] ------------ t207 = * PUTARG_REG int REG rcx
Generating: N059 ( 1, 1) [000021] ------------ t21 = LCL_VAR int V00 arg0 u:1 rsi REG rsi $80
/--* t21 int
Generating: N061 (???,???) [000208] ------------ t208 = * PUTARG_REG int REG rdx
IN0010: mov edx, esi
Generating: N063 ( 1, 1) [000022] ------------ t22 = LCL_VAR int V01 arg1 u:1 rdi REG rdi $81
/--* t22 int
Generating: N065 (???,???) [000209] ------------ t209 = * PUTARG_REG int REG r8
IN0011: mov r8d, edi
/--* t206 int arg3 in r9
+--* t207 int arg0 in rcx
+--* t208 int arg1 in rdx
+--* t209 int arg2 in r8
Generating: N067 ( 23, 18) [000024] --CXG------- t24 = * CALL int Test2.DoTestImpl3 REG rax $14d
Call: GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
IN0012: call Test2:DoTestImpl3(struct,int,int,ubyte):int
/--* t24 int
Generating: N069 ( 27, 21) [000029] DA-XG------- * STORE_LCL_VAR int V04 loc1 d:2 r15 REG r15
IN0013: mov r15d, eax
V04 in reg r15 is becoming live [000029]
Live regs: 000040E8 {rbx rbp rsi rdi r14} => 0000C0E8 {rbx rbp rsi rdi r14 r15}
Live vars: {V00 V01 V03 V10 V19} => {V00 V01 V03 V04 V10 V19}
Generating: N071 ( 3, 10) [000030] ------------ t30 = CNS_INT(h) long 0xd1ffab1e method REG rcx $241
IN0014: mov rcx, 0xD1FFAB1E
/--* t30 long
Generating: N073 (???,???) [000210] ------------ t210 = * PUTARG_REG long REG rcx
/--* t210 long arg0 in rcx
Generating: N075 ( 17, 16) [000031] --C--------- t31 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST REG rax $340
Call: GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
IN0015: call CORINFO_HELP_NEWSFAST
GC regs: 00000000 {} => 00000001 {rax}
/--* t31 ref
Generating: N077 ( 17, 16) [000033] DA---------- * STORE_LCL_VAR ref V11 tmp2 d:2 rdx REG rdx
GC regs: 00000001 {rax} => 00000000 {}
IN0016: mov rdx, rax
V11 in reg rdx is becoming live [000033]
Live regs: 0000C0E8 {rbx rbp rsi rdi r14 r15} => 0000C0EC {rdx rbx rbp rsi rdi r14 r15}
Live vars: {V00 V01 V03 V04 V10 V19} => {V00 V01 V03 V04 V10 V11 V19}
GC regs: 00000000 {} => 00000004 {rdx}
Generating: N079 ( 3, 2) [000194] ------------ t194 = LCL_VAR int V19 cse0 rbx REG rbx $180
/--* t194 int
Generating: N081 (???,???) [000211] ------------ * PUTARG_STK [+0x20] void REG NA
IN0017: mov dword ptr [V09+0x20 rsp+20H], ebx
Generating: N083 ( 1, 1) [000036] ------------ t36 = LCL_VAR ref V11 tmp2 u:2 rdx (last use) REG rdx $340
/--* t36 ref
Generating: N085 (???,???) [000212] ------------ t212 = * PUTARG_REG ref REG rdx
V11 in reg rdx is becoming dead [000036]
Live regs: 0000C0EC {rdx rbx rbp rsi rdi r14 r15} => 0000C0E8 {rbx rbp rsi rdi r14 r15}
Live vars: {V00 V01 V03 V04 V10 V11 V19} => {V00 V01 V03 V04 V10 V19}
GC regs: 00000004 {rdx} => 00000000 {}
GC regs: 00000000 {} => 00000004 {rdx}
Generating: N087 ( 1, 1) [000037] ------------ t37 = LCL_VAR int V00 arg0 u:1 rsi REG rsi $80
/--* t37 int
Generating: N089 (???,???) [000213] ------------ t213 = * PUTARG_REG int REG r8
IN0018: mov r8d, esi
Generating: N091 ( 1, 1) [000038] ------------ t38 = LCL_VAR int V01 arg1 u:1 rdi REG rdi $81
/--* t38 int
Generating: N093 (???,???) [000214] ------------ t214 = * PUTARG_REG int REG r9
IN0019: mov r9d, edi
Generating: N095 ( 3, 10) [000041] ------------ t41 = CNS_INT(h) long 0xd1ffab1e method REG rcx $242
IN001a: mov rcx, 0xD1FFAB1E
/--* t41 long
Generating: N097 (???,???) [000215] ------------ t215 = * PUTARG_REG long REG rcx
/--* t212 ref arg1 in rdx
+--* t213 int arg2 in r8
+--* t214 int arg3 in r9
+--* t215 long arg0 in rcx
Generating: N099 ( 26, 24) [000040] --CXG------- t40 = * CALL int Test2.DoTestImpl4 REG rax $151
GC regs: 00000004 {rdx} => 00000000 {}
Call: GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
IN001b: call Test2:DoTestImpl4(ref,int,int,ubyte):int
/--* t40 int
Generating: N101 ( 30, 27) [000044] DA-XG------- * STORE_LCL_VAR int V05 loc2 d:2 r12 REG r12
IN001c: mov r12d, eax
V05 in reg r12 is becoming live [000044]
Live regs: 0000C0E8 {rbx rbp rsi rdi r14 r15} => 0000D0E8 {rbx rbp rsi rdi r12 r14 r15}
Live vars: {V00 V01 V03 V04 V10 V19} => {V00 V01 V03 V04 V05 V10 V19}
Generating: N103 ( 3, 2) [000195] ------------ t195 = LCL_VAR int V19 cse0 rbx REG rbx $180
/--* t195 int
Generating: N105 (???,???) [000216] ------------ t216 = * PUTARG_REG int REG r8
IN001d: mov r8d, ebx
Generating: N107 ( 1, 1) [000045] ------------ t45 = LCL_VAR int V00 arg0 u:1 rsi REG rsi $80
/--* t45 int
Generating: N109 (???,???) [000217] ------------ t217 = * PUTARG_REG int REG rcx
IN001e: mov ecx, esi
Generating: N111 ( 1, 1) [000046] ------------ t46 = LCL_VAR int V01 arg1 u:1 rdi REG rdi $81
/--* t46 int
Generating: N113 (???,???) [000218] ------------ t218 = * PUTARG_REG int REG rdx
IN001f: mov edx, edi
/--* t216 int arg2 in r8
+--* t217 int arg0 in rcx
+--* t218 int arg1 in rdx
Generating: N115 ( 19, 12) [000048] --CXG------- t48 = * CALL int Test2.DoTestImpl5 REG rax $156
Call: GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
IN0020: call Test2:DoTestImpl5(int,int,ubyte):int
/--* t48 int
Generating: N117 ( 23, 15) [000051] DA-XG------- * STORE_LCL_VAR int V06 loc3 d:2 rcx REG rcx
IN0021: mov ecx, eax
V06 in reg rcx is becoming live [000051]
Live regs: 0000D0E8 {rbx rbp rsi rdi r12 r14 r15} => 0000D0EA {rcx rbx rbp rsi rdi r12 r14 r15}
Live vars: {V00 V01 V03 V04 V05 V10 V19} => {V00 V01 V03 V04 V05 V06 V10 V19}
Generating: N119 ( 1, 1) [000052] ------------ t52 = LCL_VAR int V00 arg0 u:1 rsi REG rsi $80
Generating: N121 ( 1, 1) [000053] ------------ t53 = LCL_VAR int V01 arg1 u:1 rdi (last use) REG rdi $81
/--* t52 int
+--* t53 int
Generating: N123 ( 3, 3) [000140] ------------ t140 = * ADD int REG rdi $181
V01 in reg rdi is becoming dead [000053]
Live regs: 0000D0EA {rcx rbx rbp rsi rdi r12 r14 r15} => 0000D06A {rcx rbx rbp rsi r12 r14 r15}
Live vars: {V00 V01 V03 V04 V05 V06 V10 V19} => {V00 V03 V04 V05 V06 V10 V19}
IN0022: add edi, esi
/--* t140 int
Generating: N125 ( 3, 3) [000114] DA---------- * STORE_LCL_VAR int V13 tmp4 d:2 rdi REG rdi
V13 in reg rdi is becoming live [000114]
Live regs: 0000D06A {rcx rbx rbp rsi r12 r14 r15} => 0000D0EA {rcx rbx rbp rsi rdi r12 r14 r15}
Live vars: {V00 V03 V04 V05 V06 V10 V19} => {V00 V03 V04 V05 V06 V10 V13 V19}
Generating: N127 ( 1, 1) [000115] ------------ t115 = LCL_VAR int V13 tmp4 u:2 rdi (last use) REG rdi $181
Generating: N129 ( 3, 2) [000196] ------------ t196 = LCL_VAR int V19 cse0 rbx REG rbx $180
/--* t115 int
+--* t196 int
Generating: N131 ( 8, 6) [000145] ------------ t145 = * MUL int REG rdi $182
V13 in reg rdi is becoming dead [000115]
Live regs: 0000D0EA {rcx rbx rbp rsi rdi r12 r14 r15} => 0000D06A {rcx rbx rbp rsi r12 r14 r15}
Live vars: {V00 V03 V04 V05 V06 V10 V13 V19} => {V00 V03 V04 V05 V06 V10 V19}
IN0023: imul edi, ebx
/--* t145 int
Generating: N133 ( 8, 6) [000120] DA---------- * STORE_LCL_VAR int V14 tmp5 d:2 rdi REG rdi
V14 in reg rdi is becoming live [000120]
Live regs: 0000D06A {rcx rbx rbp rsi r12 r14 r15} => 0000D0EA {rcx rbx rbp rsi rdi r12 r14 r15}
Live vars: {V00 V03 V04 V05 V06 V10 V19} => {V00 V03 V04 V05 V06 V10 V14 V19}
Generating: N135 ( 1, 1) [000121] ------------ t121 = LCL_VAR int V00 arg0 u:1 rsi (last use) REG rsi $80
Generating: N137 ( 3, 2) [000197] ------------ t197 = LCL_VAR int V19 cse0 rbx (last use) REG rbx $180
/--* t121 int
+--* t197 int
Generating: N139 ( 8, 6) [000150] ------------ t150 = * MUL int REG rax $183
V00 in reg rsi is becoming dead [000121]
Live regs: 0000D0EA {rcx rbx rbp rsi rdi r12 r14 r15} => 0000D0AA {rcx rbx rbp rdi r12 r14 r15}
Live vars: {V00 V03 V04 V05 V06 V10 V14 V19} => {V03 V04 V05 V06 V10 V14 V19}
V19 in reg rbx is becoming dead [000197]
Live regs: 0000D0AA {rcx rbx rbp rdi r12 r14 r15} => 0000D0A2 {rcx rbp rdi r12 r14 r15}
Live vars: {V03 V04 V05 V06 V10 V14 V19} => {V03 V04 V05 V06 V10 V14}
IN0024: mov eax, esi
IN0025: imul eax, ebx
/--* t150 int
Generating: N141 ( 8, 6) [000131] DA---------- * STORE_LCL_VAR int V15 tmp6 d:2 rax REG rax
V15 in reg rax is becoming live [000131]
Live regs: 0000D0A2 {rcx rbp rdi r12 r14 r15} => 0000D0A3 {rax rcx rbp rdi r12 r14 r15}
Live vars: {V03 V04 V05 V06 V10 V14} => {V03 V04 V05 V06 V10 V14 V15}
Generating: N143 ( 1, 1) [000132] ------------ t132 = LCL_VAR int V15 tmp6 u:2 rax (last use) REG rax $183
Generating: N145 ( 1, 1) [000127] ------------ t127 = LCL_VAR int V14 tmp5 u:2 rdi (last use) REG rdi $182
Generating: N147 ( 1, 1) [000152] -c---------- t152 = CNS_INT int 2 REG NA $42
/--* t127 int
+--* t152 int
Generating: N149 ( 3, 3) [000153] ------------ t153 = * RSH int REG rdi $184
V14 in reg rdi is becoming dead [000127]
Live regs: 0000D0A3 {rax rcx rbp rdi r12 r14 r15} => 0000D023 {rax rcx rbp r12 r14 r15}
Live vars: {V03 V04 V05 V06 V10 V14 V15} => {V03 V04 V05 V06 V10 V15}
IN0026: sar edi, 2
/--* t132 int
+--* t153 int
Generating: N151 ( 24, 7) [000156] ---X-------- t156 = * DIV int REG rax $186
V15 in reg rax is becoming dead [000132]
Live regs: 0000D023 {rax rcx rbp r12 r14 r15} => 0000D022 {rcx rbp r12 r14 r15}
Live vars: {V03 V04 V05 V06 V10 V15} => {V03 V04 V05 V06 V10}
IN0027: cdq
IN0028: idiv edx:eax, edi
/--* t156 int
Generating: N153 ( 28, 10) [000058] DA-X-------- * STORE_LCL_VAR int V07 loc4 d:2 rax REG rax
V07 in reg rax is becoming live [000058]
Live regs: 0000D022 {rcx rbp r12 r14 r15} => 0000D023 {rax rcx rbp r12 r14 r15}
Live vars: {V03 V04 V05 V06 V10} => {V03 V04 V05 V06 V07 V10}
Generating: N155 ( 1, 1) [000012] ------------ t12 = LCL_VAR int V10 tmp1 u:2 rbp (last use) REG rbp $143
Generating: N157 ( 3, 2) [000059] ------------ t59 = LCL_VAR int V03 loc0 u:2 r14 (last use) REG r14 $148
/--* t12 int
+--* t59 int
Generating: N159 ( 5, 4) [000060] ------------ t60 = * ADD int REG rbp $187
V10 in reg rbp is becoming dead [000012]
Live regs: 0000D023 {rax rcx rbp r12 r14 r15} => 0000D003 {rax rcx r12 r14 r15}
Live vars: {V03 V04 V05 V06 V07 V10} => {V03 V04 V05 V06 V07}
V03 in reg r14 is becoming dead [000059]
Live regs: 0000D003 {rax rcx r12 r14 r15} => 00009003 {rax rcx r12 r15}
Live vars: {V03 V04 V05 V06 V07} => {V04 V05 V06 V07}
IN0029: add ebp, r14d
Generating: N161 ( 3, 2) [000061] ------------ t61 = LCL_VAR int V04 loc1 u:2 r15 (last use) REG r15 $14d
/--* t60 int
+--* t61 int
Generating: N163 ( 9, 7) [000062] ------------ t62 = * ADD int REG rbp $188
V04 in reg r15 is becoming dead [000061]
Live regs: 00009003 {rax rcx r12 r15} => 00001003 {rax rcx r12}
Live vars: {V04 V05 V06 V07} => {V05 V06 V07}
IN002a: add ebp, r15d
Generating: N165 ( 3, 2) [000063] ------------ t63 = LCL_VAR int V05 loc2 u:2 r12 (last use) REG r12 $151
/--* t62 int
+--* t63 int
Generating: N167 ( 13, 10) [000064] ------------ t64 = * ADD int REG rbp $189
V05 in reg r12 is becoming dead [000063]
Live regs: 00001003 {rax rcx r12} => 00000003 {rax rcx}
Live vars: {V05 V06 V07} => {V06 V07}
IN002b: add ebp, r12d
Generating: N169 ( 3, 2) [000065] ------------ t65 = LCL_VAR int V06 loc3 u:2 rcx (last use) REG rcx $156
/--* t64 int
+--* t65 int
Generating: N171 ( 17, 13) [000066] ------------ t66 = * ADD int REG rcx $18a
V06 in reg rcx is becoming dead [000065]
Live regs: 00000003 {rax rcx} => 00000001 {rax}
Live vars: {V06 V07} => {V07}
IN002c: add ecx, ebp
Generating: N173 ( 3, 2) [000067] ------------ t67 = LCL_VAR int V07 loc4 u:2 rax (last use) REG rax $185
/--* t66 int
+--* t67 int
Generating: N175 ( 21, 16) [000068] ------------ t68 = * ADD int REG rax $18b
V07 in reg rax is becoming dead [000067]
Live regs: 00000001 {rax} => 00000000 {}
Live vars: {V07} => {}
IN002d: add eax, ecx
/--* t68 int
Generating: N177 ( 22, 17) [000069] ------------ * RETURN int REG NA $15c
Scope info: end block BB01, IL range [000..051)
Scope info: ending scope, LVnum=0 [000..051)
Scope info: ending scope, LVnum=1 [000..051)
Scope info: ending scope, LVnum=2 [000..051)
Scope info: ending scope, LVnum=3 [000..051)
Scope info: ending scope, LVnum=4 [000..051)
Scope info: ending scope, LVnum=5 [000..051)
Scope info: ending scope, LVnum=6 [000..051)
Scope info: ending scope, LVnum=7 [000..051)
Scope info: ending scope, LVnum=8 [000..051)
Scope info: open scopes =
<none>
Added IP mapping: EPILOG STACK_EMPTY (G_M55298_IG02,ins#45,ofs#160) label
Reserving epilog IG for block BB01
G_M55298_IG02: ; offs=000000H, funclet=00, bbWeight=1
*************** After placeholder IG creation
G_M55298_IG01: ; func=00, offs=000000H, size=0000H, bbWeight=1 , gcrefRegs=00000000 {} <-- Prolog IG
G_M55298_IG02: ; offs=000000H, size=00A0H, bbWeight=1 , gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M55298_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 = 227, compSizeEstimate = 174 Test2:DoTest(int,int,ubyte):int
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 9, 9 ) int -> rsi
; V01 arg1 [V01,T01] ( 8, 8 ) int -> rdi
; V02 arg2 [V02,T03] ( 3, 3 ) ubyte -> r8
; V03 loc0 [V03,T08] ( 2, 2 ) int -> r14
; V04 loc1 [V04,T09] ( 2, 2 ) int -> r15
; V05 loc2 [V05,T10] ( 2, 2 ) int -> r12
; V06 loc3 [V06,T11] ( 2, 2 ) int -> rcx
; V07 loc4 [V07,T12] ( 2, 2 ) int -> rax
; V08 loc5 [V08,T13] ( 2, 2 ) struct ( 8) [rsp+0x28] do-not-enreg[SF] must-init ld-addr-op
; V09 OutArgs [V09 ] ( 1, 1 ) lclBlk (40) [rsp+0x00] "OutgoingArgSpace"
; V10 tmp1 [V10,T05] ( 2, 4 ) int -> rbp "impAppendStmt"
; V11 tmp2 [V11,T04] ( 2, 4 ) ref -> rdx class-hnd exact "NewObj constructor temp"
;* V12 tmp3 [V12 ] ( 0, 0 ) struct ( 8) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp"
; V13 tmp4 [V13,T06] ( 2, 4 ) int -> rdi "impAppendStmt"
; V14 tmp5 [V14,T14] ( 2, 2 ) int -> rdi "Inline stloc first use temp"
; V15 tmp6 [V15,T07] ( 2, 4 ) int -> rax "impAppendStmt"
;* V16 tmp7 [V16 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V17 tmp8 [V17 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V18 tmp9 [V18 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V19 cse0 [V19,T02] ( 8, 8 ) int -> rbx "ValNumCSE"
;
; Lcl frame size = 48
*************** Before prolog / epilog generation
G_M55298_IG01: ; func=00, offs=000000H, size=0000H, bbWeight=1 , gcrefRegs=00000000 {} <-- Prolog IG
G_M55298_IG02: ; offs=000000H, size=00A0H, bbWeight=1 , gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M55298_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
V00(rsi) V01(rdi) V02(r8)
*************** In genFnProlog()
Added IP mapping to front: PROLOG STACK_EMPTY (G_M55298_IG01,ins#0,ofs#0) label
__prolog:
Found 2 lvMustInit int-sized stack slots, frame offsets -40 through -48
IN002e: push r15
IN002f: push r14
IN0030: push r12
IN0031: push rdi
IN0032: push rsi
IN0033: push rbp
IN0034: push rbx
IN0035: sub rsp, 48
IN0036: xor rax, rax
IN0037: mov qword ptr [V08 rsp+28H], rax
*************** In genFnPrologCalleeRegArgs() for int regs
IN0038: mov esi, ecx
IN0039: mov edi, edx
*************** In genEnregisterIncomingStackArgs()
G_M55298_IG01: ; offs=000000H, funclet=00, bbWeight=1
*************** In genFnEpilog()
__epilog:
gcVarPtrSetCur=0000000000000000 {}, gcRegGCrefSetCur=00000000 {}, gcRegByrefSetCur=00000000 {}
IN003a: add rsp, 48
IN003b: pop rbx
IN003c: pop rbp
IN003d: pop rsi
IN003e: pop rdi
IN003f: pop r12
IN0040: pop r14
IN0041: pop r15
IN0042: ret
G_M55298_IG03: ; offs=0000A0H, funclet=00, bbWeight=1
0 prologs, 1 epilogs, 0 funclet prologs, 0 funclet epilogs
*************** After prolog / epilog generation
G_M55298_IG01: ; func=00, offs=000000H, size=0019H, bbWeight=1 , gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
G_M55298_IG02: ; offs=000019H, size=00A0H, bbWeight=1 , gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M55298_IG03: ; offs=0000B9H, size=000FH, bbWeight=1 , epilog, nogc, emitadd
*************** In emitJumpDistBind()
Hot code size = 0xC8 bytes
Cold code size = 0x0 bytes
reserveUnwindInfo(isFunclet=FALSE, isColdCode=FALSE, unwindSize=0x14)
*************** In emitEndCodeGen()
Converting emitMaxStackDepth from bytes (0) to elements (0)
***************************************************************************
Instructions as they come out of the scheduler
G_M55298_IG01: ; func=00, offs=000000H, size=0019H, bbWeight=1 , gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
IN002e: 000000 push r15
IN002f: 000002 push r14
IN0030: 000004 push r12
IN0031: 000006 push rdi
IN0032: 000007 push rsi
IN0033: 000008 push rbp
IN0034: 000009 push rbx
IN0035: 00000A sub rsp, 48
IN0036: 00000E xor rax, rax
IN0037: 000010 mov qword ptr [rsp+28H], rax
IN0038: 000015 mov esi, ecx
IN0039: 000017 mov edi, edx
G_M55298_IG02: ; func=00, offs=000019H, size=00A0H, bbWeight=1 , gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
IN0001: 000019 movzx rbx, r8b
IN0002: 00001D mov r8d, ebx
IN0003: 000020 mov ecx, esi
IN0004: 000022 mov edx, edi
[D1FFAB1E] ptr arg pop 0
IN0005: 000024 call Test2:DoTestImpl1(int,int,ubyte):int
IN0006: 000029 mov ebp, eax
IN0007: 00002B mov r9d, ebx
IN0008: 00002E mov edx, esi
IN0009: 000030 mov r8d, edi
IN000a: 000033 mov rcx, 0xD1FFAB1E
[D1FFAB1E] ptr arg pop 0
IN000b: 00003D call Test2:DoTestImpl2(int,int,ubyte):int
IN000c: 000042 mov r14d, eax
IN000d: 000045 mov byte ptr [rsp+28H], 0
IN000e: 00004A mov r9d, ebx
IN000f: 00004D movsx rcx, byte ptr [rsp+28H]
IN0010: 000053 mov edx, esi
IN0011: 000055 mov r8d, edi
[D1FFAB1E] ptr arg pop 0
IN0012: 000058 call Test2:DoTestImpl3(struct,int,int,ubyte):int
IN0013: 00005D mov r15d, eax
IN0014: 000060 mov rcx, 0xD1FFAB1E
New gcrReg live regs=00000001 {rax}
gcrReg +[rax]
[D1FFAB1E] ptr arg pop 0
IN0015: 00006A call CORINFO_HELP_NEWSFAST
gcrReg +[rdx]
IN0016: 00006F mov rdx, rax
IN0017: 000072 mov dword ptr [rsp+20H], ebx
IN0018: 000076 mov r8d, esi
IN0019: 000079 mov r9d, edi
IN001a: 00007C mov rcx, 0xD1FFAB1E
New gcrReg live regs=00000000 {}
gcrReg -[rax]
gcrReg -[rdx]
[D1FFAB1E] ptr arg pop 0
IN001b: 000086 call Test2:DoTestImpl4(ref,int,int,ubyte):int
IN001c: 00008B mov r12d, eax
IN001d: 00008E mov r8d, ebx
IN001e: 000091 mov ecx, esi
IN001f: 000093 mov edx, edi
[D1FFAB1E] ptr arg pop 0
IN0020: 000095 call Test2:DoTestImpl5(int,int,ubyte):int
IN0021: 00009A mov ecx, eax
IN0022: 00009C add edi, esi
IN0023: 00009E imul edi, ebx
IN0024: 0000A1 mov eax, esi
IN0025: 0000A3 imul eax, ebx
IN0026: 0000A6 sar edi, 2
IN0027: 0000A9 cdq
IN0028: 0000AA idiv edx:eax, edi
IN0029: 0000AC add ebp, r14d
IN002a: 0000AF add ebp, r15d
IN002b: 0000B2 add ebp, r12d
IN002c: 0000B5 add ecx, ebp
IN002d: 0000B7 add eax, ecx
G_M55298_IG03: ; func=00, offs=0000B9H, size=000FH, bbWeight=1 , epilog, nogc, emitadd
IN003a: 0000B9 add rsp, 48
IN003b: 0000BD pop rbx
IN003c: 0000BE pop rbp
IN003d: 0000BF pop rsi
IN003e: 0000C0 pop rdi
IN003f: 0000C1 pop r12
IN0040: 0000C3 pop r14
IN0041: 0000C5 pop r15
IN0042: 0000C7 ret
Allocated method code size = 200 , actual size = 200
; Total bytes of code 200, prolog size 21, perf score 83.50, (MethodHash=8bafdb7c) for method Test2:DoTest(int,int,ubyte):int
; ============================================================
*************** After end code gen, before unwindEmit()
G_M55298_IG01: ; func=00, offs=000000H, size=0019H, bbWeight=1 , gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
IN002e: 000000 push r15
IN002f: 000002 push r14
IN0030: 000004 push r12
IN0031: 000006 push rdi
IN0032: 000007 push rsi
IN0033: 000008 push rbp
IN0034: 000009 push rbx
IN0035: 00000A sub rsp, 48
IN0036: 00000E xor rax, rax
IN0037: 000010 mov qword ptr [V08 rsp+28H], rax
IN0038: 000015 mov esi, ecx
IN0039: 000017 mov edi, edx
G_M55298_IG02: ; offs=000019H, size=00A0H, bbWeight=1 , gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
IN0001: 000019 movzx rbx, r8b
IN0002: 00001D mov r8d, ebx
IN0003: 000020 mov ecx, esi
IN0004: 000022 mov edx, edi
IN0005: 000024 call Test2:DoTestImpl1(int,int,ubyte):int
IN0006: 000029 mov ebp, eax
IN0007: 00002B mov r9d, ebx
IN0008: 00002E mov edx, esi
IN0009: 000030 mov r8d, edi
IN000a: 000033 mov rcx, 0xD1FFAB1E
IN000b: 00003D call Test2:DoTestImpl2(int,int,ubyte):int
IN000c: 000042 mov r14d, eax
IN000d: 000045 mov byte ptr [V08 rsp+28H], 0
IN000e: 00004A mov r9d, ebx
IN000f: 00004D movsx rcx, byte ptr [V08 rsp+28H]
IN0010: 000053 mov edx, esi
IN0011: 000055 mov r8d, edi
IN0012: 000058 call Test2:DoTestImpl3(struct,int,int,ubyte):int
IN0013: 00005D mov r15d, eax
IN0014: 000060 mov rcx, 0xD1FFAB1E
IN0015: 00006A call CORINFO_HELP_NEWSFAST
IN0016: 00006F mov rdx, rax
IN0017: 000072 mov dword ptr [V09+0x20 rsp+20H], ebx
IN0018: 000076 mov r8d, esi
IN0019: 000079 mov r9d, edi
IN001a: 00007C mov rcx, 0xD1FFAB1E
IN001b: 000086 call Test2:DoTestImpl4(ref,int,int,ubyte):int
IN001c: 00008B mov r12d, eax
IN001d: 00008E mov r8d, ebx
IN001e: 000091 mov ecx, esi
IN001f: 000093 mov edx, edi
IN0020: 000095 call Test2:DoTestImpl5(int,int,ubyte):int
IN0021: 00009A mov ecx, eax
IN0022: 00009C add edi, esi
IN0023: 00009E imul edi, ebx
IN0024: 0000A1 mov eax, esi
IN0025: 0000A3 imul eax, ebx
IN0026: 0000A6 sar edi, 2
IN0027: 0000A9 cdq
IN0028: 0000AA idiv edx:eax, edi
IN0029: 0000AC add ebp, r14d
IN002a: 0000AF add ebp, r15d
IN002b: 0000B2 add ebp, r12d
IN002c: 0000B5 add ecx, ebp
IN002d: 0000B7 add eax, ecx
G_M55298_IG03: ; offs=0000B9H, size=000FH, bbWeight=1 , epilog, nogc, emitadd
IN003a: 0000B9 add rsp, 48
IN003b: 0000BD pop rbx
IN003c: 0000BE pop rbp
IN003d: 0000BF pop rsi
IN003e: 0000C0 pop rdi
IN003f: 0000C1 pop r12
IN0040: 0000C3 pop r14
IN0041: 0000C5 pop r15
IN0042: 0000C7 ret
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
SizeOfProlog : 0x0E
CountOfUnwindCodes: 8
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
CodeOffset: 0x0E UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r12 (12)
CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
allocUnwindInfo(pHotCode=0x00000000D1FFAB1E, pColdCode=0x0000000000000000, startOffset=0x0, endOffset=0xc8, unwindSize=0x14, pUnwindBlock=0x00000000D1FFAB1E, funKind=0 (main function))
*************** In genIPmappingGen()
IP mapping count : 2
IL offs PROLOG : 0x00000000 ( STACK_EMPTY )
IL offs EPILOG : 0x000000B9 ( STACK_EMPTY )
*************** In genSetScopeInfo()
VarLocInfo count is 5
*************** Variable debug info
5 live ranges
0( UNKNOWN) : From 00000000h to 00000019h, in rcx
1( UNKNOWN) : From 00000000h to 00000019h, in rdx
2( UNKNOWN) : From 00000000h to 00000019h, in r8
1( UNKNOWN) : From 00000019h to 0000009Ch, in rdi
0( UNKNOWN) : From 00000019h to 000000A1h, in rsi
*************** In gcInfoBlockHdrSave()
Set code length to 200.
Set ReturnKind to Scalar.
Set Outgoing stack arg area size to 40.
Defining 6 call sites:
Offset 0x24, size 5.
Offset 0x3d, size 5.
Offset 0x58, size 5.
Offset 0x6a, size 5.
Offset 0x86, size 5.
Offset 0x95, size 5.
Method code size: 200
Allocations for Test2:DoTest(int,int,ubyte):int (MethodHash=8bafdb7c)
count: 2100, size: 167134, max = 3360
allocateMemory: 196608, nraUsed: 172912
Alloc'd bytes by kind:
kind | size | pct
---------------------+------------+--------
AssertionProp | 6460 | 3.87%
ASTNode | 31624 | 18.92%
InstDesc | 6048 | 3.62%
ImpStack | 384 | 0.23%
BasicBlock | 6040 | 3.61%
fgArgInfo | 1120 | 0.67%
fgArgInfoPtrArr | 256 | 0.15%
FlowList | 0 | 0.00%
TreeStatementList | 224 | 0.13%
SiScope | 528 | 0.32%
DominatorMemory | 48 | 0.03%
LSRA | 3224 | 1.93%
LSRA_Interval | 4752 | 2.84%
LSRA_RefPosition | 15104 | 9.04%
Reachability | 16 | 0.01%
SSA | 1488 | 0.89%
ValueNumber | 10346 | 6.19%
LvaTable | 5676 | 3.40%
UnwindInfo | 0 | 0.00%
hashBv | 128 | 0.08%
bitset | 408 | 0.24%
FixedBitVect | 164 | 0.10%
Generic | 4162 | 2.49%
LocalAddressVisitor | 0 | 0.00%
FieldSeqStore | 0 | 0.00%
ZeroOffsetFieldMap | 640 | 0.38%
ArrayInfoMap | 40 | 0.02%
MemoryPhiArg | 0 | 0.00%
CSE | 2096 | 1.25%
GC | 1598 | 0.96%
CorSig | 1872 | 1.12%
Inlining | 12160 | 7.28%
ArrayStack | 0 | 0.00%
DebugInfo | 512 | 0.31%
DebugOnly | 45543 | 27.25%
Codegen | 1128 | 0.67%
LoopOpt | 0 | 0.00%
LoopHoist | 0 | 0.00%
Unknown | 1289 | 0.77%
RangeCheck | 0 | 0.00%
CopyProp | 1984 | 1.19%
SideEffects | 0 | 0.00%
ObjectAllocator | 0 | 0.00%
VariableLiveRanges | 0 | 0.00%
ClassLayout | 72 | 0.04%
****** DONE compiling Test2:DoTest(int,int,ubyte):int
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment