Skip to content

Instantly share code, notes, and snippets.

@hypeartist
Created September 23, 2019 11:40
Show Gist options
  • Save hypeartist/8a99980458e44f959ef36e55da4fc1c4 to your computer and use it in GitHub Desktop.
Save hypeartist/8a99980458e44f959ef36e55da4fc1c4 to your computer and use it in GitHub Desktop.
JitDump
This file has been truncated, but you can view the full file.
****** START compiling Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte) (MethodHash=f166d70a)
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 12 00 ldloca.s 0x0
IL_0002 fe 15 07 00 00 1b initobj 0x1B000007
IL_0008 06 ldloc.0
IL_0009 8c 07 00 00 1b box 0x1B000007
IL_000e 02 ldarg.0
IL_000f 03 ldarg.1
IL_0010 04 ldarg.2
IL_0011 05 ldarg.3
IL_0012 0e 04 ldarg.s 0x4
IL_0014 0e 05 ldarg.s 0x5
IL_0016 28 13 00 00 2b call 0x2B000013
IL_001b 73 18 00 00 0a newobj 0xA000018
IL_0020 02 ldarg.0
IL_0021 03 ldarg.1
IL_0022 04 ldarg.2
IL_0023 05 ldarg.3
IL_0024 0e 04 ldarg.s 0x4
IL_0026 0e 05 ldarg.s 0x5
IL_0028 28 14 00 00 2b call 0x2B000014
IL_002d 73 19 00 00 0a newobj 0xA000019
IL_0032 02 ldarg.0
IL_0033 03 ldarg.1
IL_0034 04 ldarg.2
IL_0035 05 ldarg.3
IL_0036 0e 04 ldarg.s 0x4
IL_0038 0e 05 ldarg.s 0x5
IL_003a 28 13 00 00 2b call 0x2B000013
IL_003f 2a ret
Arg #0 passed in register(s) rcx
Arg #1 passed in register(s) rdx
Arg #2 passed in register(s) r8
Arg #3 passed in register(s) r9
lvaGrabTemp returning 7 (V07 tmp0) (a long lifetime temp) called for OutgoingArgSpace.
; Initial local variable assignments
;
; V00 arg0 struct ( 8)
; V01 arg1 ubyte
; V02 arg2 ubyte
; V03 arg3 ubyte
; V04 arg4 ubyte
; V05 arg5 ubyte
; V06 loc0 struct ( 8)
; V07 OutArgs lclBlk (na) "OutgoingArgSpace"
*************** In compInitDebuggingInfo() for Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)
getVars() returned cVars = 0, extendOthers = true
info.compVarScopesCount = 7
VarNum LVNum Name Beg End
0: 00h 00h V00 arg0 000h 040h
1: 01h 01h V01 arg1 000h 040h
2: 02h 02h V02 arg2 000h 040h
3: 03h 03h V03 arg3 000h 040h
4: 04h 04h V04 arg4 000h 040h
5: 05h 05h V05 arg5 000h 040h
6: 06h 06h V06 loc0 000h 040h
info.compStmtOffsetsCount = 0
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE )
*************** In fgFindBasicBlocks() for Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)
Jump targets:
none
New Basic Block BB01 [0000] created.
BB01 [000..040)
IL Code Size,Instr 64, 28, Basic Block count 1, Local Variable Num,Ref count 8, 20 for method Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)
OPTIONS: opts.MinOpts() == false
Basic block list for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..040) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)
impImportBlockPending for BB01
Importing BB01 (PC=000) of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
[ 0] 0 (0x000) ldloca.s 0
[ 1] 2 (0x002) initobj 1B000007
[000003] IA---------- * ASG struct (init)
[000000] D------N---- +--* LCL_VAR struct V06 loc0
[000002] ------------ \--* CNS_INT int 0
[ 0] 8 (0x008) ldloc.0
[ 1] 9 (0x009) box 1B000007
Compiler::impImportAndPushBox -- handling BOX(value class) via inline allocate/copy sequence
lvaGrabTemp returning 8 (V08 tmp1) called for Single-def Box Helper.
Marking V08 as a single def local
lvaSetClass: setting class for V08 to (00000000D1FFAB1E) BlenderStruct`2 [exact]
[000008] -A---------- * ASG ref
[000007] D------N---- +--* LCL_VAR ref V08 tmp1
[000006] ------------ \--* ALLOCOBJ ref
[000005] ------------ \--* CNS_INT(h) long 0xd1ffab1e class
[000013] -A---------- * ASG struct (copy)
[000012] ------------ +--* BLK(1) struct
[000011] ------------ | \--* ADD byref
[000009] ------------ | +--* LCL_VAR ref V08 tmp1
[000010] ------------ | \--* CNS_INT long 8
[000004] ------------ \--* LCL_VAR struct V06 loc0
[ 1] 14 (0x00e) ldarg.0
[ 2] 15 (0x00f) ldarg.1
[ 3] 16 (0x010) ldarg.2
[ 4] 17 (0x011) ldarg.3
[ 5] 18 (0x012) ldarg.s 4
[ 6] 20 (0x014) ldarg.s 5
[ 7] 22 (0x016) call 2B000013
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
Calling impNormStructVal on:
[000016] ------------ * LCL_VAR struct V00 arg0
resulting tree:
[000024] n----------- * OBJ(8) struct
[000023] ------------ \--* ADDR byref
[000016] ------------ \--* LCL_VAR struct V00 arg0
[000022] I-C-G------- * CALL void Test1.TestMethod2Impl (exactContextHnd=0x00000000D1FFAB1E)
[000015] ------------ arg0 +--* BOX ref
[000014] ------------ | \--* LCL_VAR ref V08 tmp1
[000024] n----------- arg1 +--* OBJ(8) struct
[000023] ------------ | \--* ADDR byref
[000016] ------------ | \--* LCL_VAR struct V00 arg0
[000017] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000018] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000019] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000020] ------------ arg5 +--* LCL_VAR ubyte V04 arg4
[000021] ------------ arg6 \--* LCL_VAR ubyte V05 arg5
[ 0] 27 (0x01b) newobj
lvaGrabTemp returning 9 (V09 tmp2) called for NewObj constructor temp.
[000028] -A---------- * ASG ref
[000027] D------N---- +--* LCL_VAR ref V09 tmp2
[000026] ------------ \--* ALLOCOBJ ref
[000025] ------------ \--* CNS_INT(h) long 0xd1ffab1e token
Marked V09 as a single def local
lvaSetClass: setting class for V09 to (00000000D1FFAB1E) BlenderClassFromBase`2 [exact]
0A000018
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
[000030] I-C-G------- * CALL void BlenderClassFromBase`2..ctor (exactContextHnd=0x00000000D1FFAB1E)
[000029] ------------ this in rcx \--* LCL_VAR ref V09 tmp2
[ 1] 32 (0x020) ldarg.0
[ 2] 33 (0x021) ldarg.1
[ 3] 34 (0x022) ldarg.2
[ 4] 35 (0x023) ldarg.3
[ 5] 36 (0x024) ldarg.s 4
[ 6] 38 (0x026) ldarg.s 5
[ 7] 40 (0x028) call 2B000014
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
Calling impNormStructVal on:
[000032] ------------ * LCL_VAR struct V00 arg0
resulting tree:
[000040] n----------- * OBJ(8) struct
[000039] ------------ \--* ADDR byref
[000032] ------------ \--* LCL_VAR struct V00 arg0
[000038] I-C-G------- * CALL void Test1.TestMethod1Impl (exactContextHnd=0x00000000D1FFAB1E)
[000031] ------------ arg0 +--* LCL_VAR ref V09 tmp2
[000040] n----------- arg1 +--* OBJ(8) struct
[000039] ------------ | \--* ADDR byref
[000032] ------------ | \--* LCL_VAR struct V00 arg0
[000033] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000034] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000035] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000036] ------------ arg5 +--* LCL_VAR ubyte V04 arg4
[000037] ------------ arg6 \--* LCL_VAR ubyte V05 arg5
[ 0] 45 (0x02d) newobj
lvaGrabTemp returning 10 (V10 tmp3) called for NewObj constructor temp.
[000044] -A---------- * ASG ref
[000043] D------N---- +--* LCL_VAR ref V10 tmp3
[000042] ------------ \--* ALLOCOBJ ref
[000041] ------------ \--* CNS_INT(h) long 0xd1ffab1e token
Marked V10 as a single def local
lvaSetClass: setting class for V10 to (00000000D1FFAB1E) BlenderClassFromInterface`2 [exact]
0A000019
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
[000046] I-C-G------- * CALL void BlenderClassFromInterface`2..ctor (exactContextHnd=0x00000000D1FFAB1E)
[000045] ------------ this in rcx \--* LCL_VAR ref V10 tmp3
[ 1] 50 (0x032) ldarg.0
[ 2] 51 (0x033) ldarg.1
[ 3] 52 (0x034) ldarg.2
[ 4] 53 (0x035) ldarg.3
[ 5] 54 (0x036) ldarg.s 4
[ 6] 56 (0x038) ldarg.s 5
[ 7] 58 (0x03a) call 2B000013 (Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT)
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
Calling impNormStructVal on:
[000048] ------------ * LCL_VAR struct V00 arg0
resulting tree:
[000056] n----------- * OBJ(8) struct
[000055] ------------ \--* ADDR byref
[000048] ------------ \--* LCL_VAR struct V00 arg0
GTF_CALL_M_IMPLICIT_TAILCALL bit set for call [000054]
[000054] I-C-G------- * CALL void Test1.TestMethod2Impl (exactContextHnd=0x00000000D1FFAB1E)
[000047] ------------ arg0 +--* LCL_VAR ref V10 tmp3
[000056] n----------- arg1 +--* OBJ(8) struct
[000055] ------------ | \--* ADDR byref
[000048] ------------ | \--* LCL_VAR struct V00 arg0
[000049] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000050] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000051] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000052] ------------ arg5 +--* LCL_VAR ubyte V04 arg4
[000053] ------------ arg6 \--* LCL_VAR ubyte V05 arg5
[ 0] 63 (0x03f) ret
[000057] ------------ * RETURN void
*************** 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 [000022] in BB01:
[000022] I-C-G------- * CALL void Test1.TestMethod2Impl (exactContextHnd=0x00000000D1FFAB1E)
[000015] ------------ arg0 +--* BOX ref
[000014] ------------ | \--* LCL_VAR ref V08 tmp1
[000024] n----------- arg1 +--* OBJ(8) struct
[000023] ------------ | \--* ADDR byref
[000016] ------------ | \--* LCL_VAR struct V00 arg0
[000017] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000018] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000019] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000020] ------------ arg5 +--* LCL_VAR ubyte V04 arg4
[000021] ------------ arg6 \--* LCL_VAR ubyte V05 arg5
Argument #0:
[000015] ------------ * BOX ref
[000014] ------------ \--* LCL_VAR ref V08 tmp1
Argument #1:
[000024] n----------- * OBJ(8) struct
[000023] ------------ \--* ADDR byref
[000016] ------------ \--* LCL_VAR struct V00 arg0
Argument #2: is a local var
[000017] ------------ * LCL_VAR ubyte V01 arg1
Argument #3: is a local var
[000018] ------------ * LCL_VAR ubyte V02 arg2
Argument #4: is a local var
[000019] ------------ * LCL_VAR ubyte V03 arg3
Argument #5: is a local var
[000020] ------------ * LCL_VAR ubyte V04 arg4
Argument #6: is a local var
[000021] ------------ * LCL_VAR ubyte V05 arg5
INLINER: inlineInfo.tokenLookupContextHandle for Test1:TestMethod2Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte) set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method Test1:TestMethod2Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte) :
IL to import:
IL_0000 02 ldarg.0
IL_0001 03 ldarg.1
IL_0002 04 ldarg.2
IL_0003 05 ldarg.3
IL_0004 0e 04 ldarg.s 0x4
IL_0006 0e 05 ldarg.s 0x5
IL_0008 6f 1b 00 00 0a callvirt 0xA00001B
IL_000d 2a ret
INLINER impTokenLookupContextHandle for Test1:TestMethod2Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte) is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for Test1:TestMethod2Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte)
Jump targets:
none
New Basic Block BB02 [0001] created.
BB02 [000..00E)
Basic block list for 'Test1:TestMethod2Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB02 [0001] 1 1 [000..00E) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Test1:TestMethod2Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte)
impImportBlockPending for BB02
Importing BB02 (PC=000) of 'Test1:TestMethod2Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
[ 0] 0 (0x000) ldarg.0
lvaGrabTemp returning 11 (V11 tmp4) called for Inlining Arg.
Marked V11 as a single def temp
lvaSetClass: setting class for V11 to (00000000D1FFAB1E) BlenderStruct`2 [exact]
[ 1] 1 (0x001) ldarg.1
lvaGrabTemp returning 12 (V12 tmp5) called for Inlining Arg.
[ 2] 2 (0x002) ldarg.2
[ 3] 3 (0x003) ldarg.3
[ 4] 4 (0x004) ldarg.s 4
[ 5] 6 (0x006) ldarg.s 5
[ 6] 8 (0x008) callvirt 0A00001B
In Compiler::impImportCall: opcode is callvirt, kind=2, callRetType is void, structSize is 0
Calling impNormStructVal on:
[000059] ------------ * LCL_VAR struct V12 tmp5
resulting tree:
[000062] n----------- * OBJ(8) struct
[000061] ------------ \--* ADDR byref
[000059] ------------ \--* LCL_VAR struct V12 tmp5
impDevirtualizeCall: Trying to devirtualize interface call:
class for 'this' is BlenderStruct`2 [exact] (attrib 20810010)
base method is IBlender`1::Blend
--- base class is interface
devirt to BlenderStruct`2::Blend -- exact
[000060] --C-G------- * CALLV stub void IBlender`1.Blend
[000058] ------------ this in rcx +--* LCL_VAR ref V11 tmp4
[000062] n----------- arg1 +--* OBJ(8) struct
[000061] ------------ | \--* ADDR byref
[000059] ------------ | \--* LCL_VAR struct V12 tmp5
[000017] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000018] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000019] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000020] ------------ arg5 \--* LCL_VAR ubyte V04 arg4
exact; can devirtualize
... after devirt...
[000060] --C-G------- * CALL nullcheck void BlenderStruct`2.Blend
[000058] ------------ this in rcx +--* LCL_VAR ref V11 tmp4
[000062] n----------- arg1 +--* OBJ(8) struct
[000061] ------------ | \--* ADDR byref
[000059] ------------ | \--* LCL_VAR struct V12 tmp5
[000017] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000018] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000019] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000020] ------------ arg5 \--* LCL_VAR ubyte V04 arg4
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'cannot get method info' for 'Test1:TestMethod2Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'BlenderStruct`2:Blend(struct,ubyte,ubyte,ubyte,ubyte):this'
INLINER: Marking BlenderStruct`2:Blend(struct,ubyte,ubyte,ubyte,ubyte):this as NOINLINE because of cannot get method info
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'cannot get method info'
[000060] --C-G------- * CALL nullcheck void BlenderStruct`2.Blend
[000058] ------------ this in rcx +--* LCL_VAR ref V11 tmp4
[000062] n----------- arg1 +--* OBJ(8) struct
[000061] ------------ | \--* ADDR byref
[000059] ------------ | \--* LCL_VAR struct V12 tmp5
[000017] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000018] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000019] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000020] ------------ arg5 \--* LCL_VAR ubyte V04 arg4
[ 0] 13 (0x00d) ret
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000022] -----------
Arguments setup:
[000065] -A---------- * ASG struct (copy)
[000063] D----------- +--* LCL_VAR struct V12 tmp5
[000024] n----------- \--* OBJ(8) struct
[000023] ------------ \--* ADDR byref
[000016] ------------ \--* LCL_VAR struct V00 arg0
Inlinee method body:
[000060] --C-G------- * CALL nullcheck void BlenderStruct`2.Blend
[000015] ------------ this in rcx +--* BOX ref
[000014] ------------ | \--* LCL_VAR ref V08 tmp1
[000062] n----------- arg1 +--* OBJ(8) struct
[000061] ------------ | \--* ADDR byref
[000059] ------------ | \--* LCL_VAR struct V12 tmp5
[000017] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000018] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000019] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000020] ------------ arg5 \--* LCL_VAR ubyte V04 arg4
fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined Test1:TestMethod2Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte) (14 IL bytes) (depth 1) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'Test1:TestMethod2Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement [000030] in BB01:
[000030] I-C-G------- * CALL void BlenderClassFromBase`2..ctor (exactContextHnd=0x00000000D1FFAB1E)
[000029] ------------ this in rcx \--* LCL_VAR ref V09 tmp2
thisArg: is a local var
[000029] ------------ * LCL_VAR ref V09 tmp2
INLINER: inlineInfo.tokenLookupContextHandle for BlenderClassFromBase`2:.ctor():this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method BlenderClassFromBase`2:.ctor():this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 28 2a 00 00 0a call 0xA00002A
IL_0006 2a ret
INLINER impTokenLookupContextHandle for BlenderClassFromBase`2:.ctor():this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for BlenderClassFromBase`2:.ctor():this
Jump targets:
none
New Basic Block BB03 [0002] created.
BB03 [000..007)
Basic block list for 'BlenderClassFromBase`2:.ctor():this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB03 [0002] 1 1 [000..007) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for BlenderClassFromBase`2:.ctor():this
impImportBlockPending for BB03
Importing BB03 (PC=000) of 'BlenderClassFromBase`2:.ctor():this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) call 0A00002A
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
[000067] I-C-G------- * CALL void BlenderBase`1..ctor (exactContextHnd=0x00000000D1FFAB1E)
[000029] ------------ this in rcx \--* LCL_VAR ref V09 tmp2
[ 0] 6 (0x006) ret
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000030] -----------
Arguments setup:
Inlinee method body:
[000067] I-C-G------- * CALL void BlenderBase`1..ctor (exactContextHnd=0x00000000D1FFAB1E)
[000029] ------------ this in rcx \--* LCL_VAR ref V09 tmp2
fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined BlenderClassFromBase`2:.ctor():this (7 IL bytes) (depth 1) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'BlenderClassFromBase`2:.ctor():this'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement [000067] in BB01:
[000067] I-C-G------- * CALL void BlenderBase`1..ctor (exactContextHnd=0x00000000D1FFAB1E)
[000029] ------------ this in rcx \--* LCL_VAR ref V09 tmp2
thisArg: is a local var
[000029] ------------ * LCL_VAR ref V09 tmp2
INLINER: inlineInfo.tokenLookupContextHandle for BlenderBase`1:.ctor():this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method BlenderBase`1:.ctor():this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 28 12 00 00 0a call 0xA000012
IL_0006 2a ret
INLINER impTokenLookupContextHandle for BlenderBase`1:.ctor():this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for BlenderBase`1:.ctor():this
Jump targets:
none
New Basic Block BB04 [0003] created.
BB04 [000..007)
Basic block list for 'BlenderBase`1:.ctor():this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB04 [0003] 1 1 [000..007) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for BlenderBase`1:.ctor():this
impImportBlockPending for BB04
Importing BB04 (PC=000) of 'BlenderBase`1:.ctor():this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) call 0A000012
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
[000069] I-C-G------- * CALL void Object..ctor (exactContextHnd=0x00000000D1FFAB1E)
[000029] ------------ this in rcx \--* LCL_VAR ref V09 tmp2
[ 0] 6 (0x006) ret
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000067] -----------
Arguments setup:
Inlinee method body:
[000069] I-C-G------- * CALL void Object..ctor (exactContextHnd=0x00000000D1FFAB1E)
[000029] ------------ this in rcx \--* LCL_VAR ref V09 tmp2
fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined BlenderBase`1:.ctor():this (7 IL bytes) (depth 2) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'BlenderBase`1:.ctor():this'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement [000069] in BB01:
[000069] I-C-G------- * CALL void Object..ctor (exactContextHnd=0x00000000D1FFAB1E)
[000029] ------------ this in rcx \--* LCL_VAR ref V09 tmp2
thisArg: is a local var
[000029] ------------ * LCL_VAR ref V09 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 BB05 [0004] created.
BB05 [000..001)
Basic block list for 'Object:.ctor():this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB05 [0004] 1 1 [000..001) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Object:.ctor():this
impImportBlockPending for BB05
Importing BB05 (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 [000069] -----------
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 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'Object:.ctor():this'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement [000038] in BB01:
[000038] I-C-G------- * CALL void Test1.TestMethod1Impl (exactContextHnd=0x00000000D1FFAB1E)
[000031] ------------ arg0 +--* LCL_VAR ref V09 tmp2
[000040] n----------- arg1 +--* OBJ(8) struct
[000039] ------------ | \--* ADDR byref
[000032] ------------ | \--* LCL_VAR struct V00 arg0
[000033] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000034] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000035] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000036] ------------ arg5 +--* LCL_VAR ubyte V04 arg4
[000037] ------------ arg6 \--* LCL_VAR ubyte V05 arg5
Argument #0: is a local var
[000031] ------------ * LCL_VAR ref V09 tmp2
Argument #1:
[000040] n----------- * OBJ(8) struct
[000039] ------------ \--* ADDR byref
[000032] ------------ \--* LCL_VAR struct V00 arg0
Argument #2: is a local var
[000033] ------------ * LCL_VAR ubyte V01 arg1
Argument #3: is a local var
[000034] ------------ * LCL_VAR ubyte V02 arg2
Argument #4: is a local var
[000035] ------------ * LCL_VAR ubyte V03 arg3
Argument #5: is a local var
[000036] ------------ * LCL_VAR ubyte V04 arg4
Argument #6: is a local var
[000037] ------------ * LCL_VAR ubyte V05 arg5
INLINER: inlineInfo.tokenLookupContextHandle for Test1:TestMethod1Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte) set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method Test1:TestMethod1Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte) :
IL to import:
IL_0000 02 ldarg.0
IL_0001 03 ldarg.1
IL_0002 04 ldarg.2
IL_0003 05 ldarg.3
IL_0004 0e 04 ldarg.s 0x4
IL_0006 0e 05 ldarg.s 0x5
IL_0008 6f 1a 00 00 0a callvirt 0xA00001A
IL_000d 2a ret
INLINER impTokenLookupContextHandle for Test1:TestMethod1Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte) is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for Test1:TestMethod1Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte)
Jump targets:
none
New Basic Block BB06 [0005] created.
BB06 [000..00E)
Basic block list for 'Test1:TestMethod1Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB06 [0005] 1 1 [000..00E) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Test1:TestMethod1Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte)
impImportBlockPending for BB06
Importing BB06 (PC=000) of 'Test1:TestMethod1Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldarg.1
lvaGrabTemp returning 13 (V13 tmp6) called for Inlining Arg.
[ 2] 2 (0x002) ldarg.2
[ 3] 3 (0x003) ldarg.3
[ 4] 4 (0x004) ldarg.s 4
[ 5] 6 (0x006) ldarg.s 5
[ 6] 8 (0x008) callvirt 0A00001A
In Compiler::impImportCall: opcode is callvirt, kind=4, callRetType is void, structSize is 0
Calling impNormStructVal on:
[000072] ------------ * LCL_VAR struct V13 tmp6
resulting tree:
[000075] n----------- * OBJ(8) struct
[000074] ------------ \--* ADDR byref
[000072] ------------ \--* LCL_VAR struct V13 tmp6
impDevirtualizeCall: Trying to devirtualize virtual call:
class for 'this' is BlenderClassFromBase`2 [exact] (attrib 20000010)
base method is BlenderBase`1::Blend
devirt to BlenderClassFromBase`2::Blend -- exact
[000073] --C-G------- * CALLV ind void BlenderBase`1.Blend
[000031] ------------ this in rcx +--* LCL_VAR ref V09 tmp2
[000075] n----------- arg1 +--* OBJ(8) struct
[000074] ------------ | \--* ADDR byref
[000072] ------------ | \--* LCL_VAR struct V13 tmp6
[000033] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000034] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000035] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000036] ------------ arg5 \--* LCL_VAR ubyte V04 arg4
exact; can devirtualize
... after devirt...
[000073] --C-G------- * CALL nullcheck void BlenderClassFromBase`2.Blend
[000031] ------------ this in rcx +--* LCL_VAR ref V09 tmp2
[000075] n----------- arg1 +--* OBJ(8) struct
[000074] ------------ | \--* ADDR byref
[000072] ------------ | \--* LCL_VAR struct V13 tmp6
[000033] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000034] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000035] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000036] ------------ arg5 \--* LCL_VAR ubyte V04 arg4
[000073] I-C-G------- * CALL nullcheck void BlenderClassFromBase`2.Blend (exactContextHnd=0x00000000D1FFAB1E)
[000031] ------------ this in rcx +--* LCL_VAR ref V09 tmp2
[000075] n----------- arg1 +--* OBJ(8) struct
[000074] ------------ | \--* ADDR byref
[000072] ------------ | \--* LCL_VAR struct V13 tmp6
[000033] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000034] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000035] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000036] ------------ arg5 \--* LCL_VAR ubyte V04 arg4
[ 0] 13 (0x00d) ret
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000038] -----------
Arguments setup:
[000078] -A---------- * ASG struct (copy)
[000076] D----------- +--* LCL_VAR struct V13 tmp6
[000040] n----------- \--* OBJ(8) struct
[000039] ------------ \--* ADDR byref
[000032] ------------ \--* LCL_VAR struct V00 arg0
Inlinee method body:
[000073] I-C-G------- * CALL nullcheck void BlenderClassFromBase`2.Blend (exactContextHnd=0x00000000D1FFAB1E)
[000031] ------------ this in rcx +--* LCL_VAR ref V09 tmp2
[000075] n----------- arg1 +--* OBJ(8) struct
[000074] ------------ | \--* ADDR byref
[000072] ------------ | \--* LCL_VAR struct V13 tmp6
[000033] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000034] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000035] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000036] ------------ arg5 \--* LCL_VAR ubyte V04 arg4
fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined Test1:TestMethod1Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte) (14 IL bytes) (depth 1) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'Test1:TestMethod1Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement [000073] in BB01:
[000073] I-C-G------- * CALL nullcheck void BlenderClassFromBase`2.Blend (exactContextHnd=0x00000000D1FFAB1E)
[000031] ------------ this in rcx +--* LCL_VAR ref V09 tmp2
[000075] n----------- arg1 +--* OBJ(8) struct
[000074] ------------ | \--* ADDR byref
[000072] ------------ | \--* LCL_VAR struct V13 tmp6
[000033] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000034] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000035] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000036] ------------ arg5 \--* LCL_VAR ubyte V04 arg4
thisArg: is a local var
[000031] ------------ * LCL_VAR ref V09 tmp2
Argument #1:
[000075] n----------- * OBJ(8) struct
[000074] ------------ \--* ADDR byref
[000072] ------------ \--* LCL_VAR struct V13 tmp6
Argument #2: is a local var
[000033] ------------ * LCL_VAR ubyte V01 arg1
Argument #3: is a local var
[000034] ------------ * LCL_VAR ubyte V02 arg2
Argument #4: is a local var
[000035] ------------ * LCL_VAR ubyte V03 arg3
Argument #5: is a local var
[000036] ------------ * LCL_VAR ubyte V04 arg4
INLINER: inlineInfo.tokenLookupContextHandle for BlenderClassFromBase`2:Blend(struct,ubyte,ubyte,ubyte,ubyte):this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method BlenderClassFromBase`2:Blend(struct,ubyte,ubyte,ubyte,ubyte):this :
IL to import:
IL_0000 12 00 ldloca.s 0x0
IL_0002 fe 15 12 00 00 02 initobj 0x2000012
IL_0008 12 01 ldloca.s 0x1
IL_000a fe 15 10 00 00 1b initobj 0x1B000010
IL_0010 0f 01 ldarga.s 0x1
IL_0012 12 00 ldloca.s 0x0
IL_0014 28 23 00 00 06 call 0x6000023
IL_0019 28 28 00 00 0a call 0xA000028
IL_001e 0c stloc.2
IL_001f 0f 01 ldarga.s 0x1
IL_0021 12 00 ldloca.s 0x0
IL_0023 28 24 00 00 06 call 0x6000024
IL_0028 28 28 00 00 0a call 0xA000028
IL_002d 0d stloc.3
IL_002e 0f 01 ldarga.s 0x1
IL_0030 12 00 ldloca.s 0x0
IL_0032 28 25 00 00 06 call 0x6000025
IL_0037 28 28 00 00 0a call 0xA000028
IL_003c 13 04 stloc.s 0x4
IL_003e 08 ldloc.2
IL_003f 12 01 ldloca.s 0x1
IL_0041 08 ldloc.2
IL_0042 71 12 00 00 1b ldobj 0x1B000012
IL_0047 04 ldarg.2
IL_0048 0e 05 ldarg.s 0x5
IL_004a fe 16 10 00 00 1b constrained. 0x1B000010
IL_0050 6f 29 00 00 0a callvirt 0xA000029
IL_0055 81 12 00 00 1b stobj 0x1B000012
IL_005a 09 ldloc.3
IL_005b 12 01 ldloca.s 0x1
IL_005d 09 ldloc.3
IL_005e 71 12 00 00 1b ldobj 0x1B000012
IL_0063 05 ldarg.3
IL_0064 0e 05 ldarg.s 0x5
IL_0066 fe 16 10 00 00 1b constrained. 0x1B000010
IL_006c 6f 29 00 00 0a callvirt 0xA000029
IL_0071 81 12 00 00 1b stobj 0x1B000012
IL_0076 11 04 ldloc.s 0x4
IL_0078 12 01 ldloca.s 0x1
IL_007a 11 04 ldloc.s 0x4
IL_007c 71 12 00 00 1b ldobj 0x1B000012
IL_0081 0e 04 ldarg.s 0x4
IL_0083 0e 05 ldarg.s 0x5
IL_0085 fe 16 10 00 00 1b constrained. 0x1B000010
IL_008b 6f 29 00 00 0a callvirt 0xA000029
IL_0090 81 12 00 00 1b stobj 0x1B000012
IL_0095 2a ret
INLINER impTokenLookupContextHandle for BlenderClassFromBase`2:Blend(struct,ubyte,ubyte,ubyte,ubyte):this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for BlenderClassFromBase`2:Blend(struct,ubyte,ubyte,ubyte,ubyte):this
Jump targets:
none
New Basic Block BB07 [0006] created.
BB07 [000..096)
Basic block list for 'BlenderClassFromBase`2:Blend(struct,ubyte,ubyte,ubyte,ubyte):this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB07 [0006] 1 1 [000..096) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for BlenderClassFromBase`2:Blend(struct,ubyte,ubyte,ubyte,ubyte):this
impImportBlockPending for BB07
Importing BB07 (PC=000) of 'BlenderClassFromBase`2:Blend(struct,ubyte,ubyte,ubyte,ubyte):this'
[ 0] 0 (0x000) ldloca.s 0
lvaGrabTemp returning 14 (V14 tmp7) (a long lifetime temp) called for Inline ldloca(s) first use temp.
[ 1] 2 (0x002) initobj 02000012
[000083] IA---------- * ASG struct (init)
[000080] D------N---- +--* LCL_VAR struct V14 tmp7
[000082] ------------ \--* CNS_INT int 0
[ 0] 8 (0x008) ldloca.s 1
lvaGrabTemp returning 15 (V15 tmp8) (a long lifetime temp) called for Inline ldloca(s) first use temp.
[ 1] 10 (0x00a) initobj 1B000010
[000087] IA---------- * ASG struct (init)
[000084] D------N---- +--* LCL_VAR struct V15 tmp8
[000086] ------------ \--* CNS_INT int 0
[ 0] 16 (0x010) ldarga.s 1
lvaGrabTemp returning 16 (V16 tmp9) called for Inlining Arg.
[ 1] 18 (0x012) ldloca.s 0
[ 2] 20 (0x014) call 06000023
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
[000092] I-C-G------- * CALL int OrderBgra.get_R (exactContextHnd=0x00000000D1FFAB1E)
[000091] ------------ this in rcx \--* ADDR byref
[000090] ------------ \--* LCL_VAR struct V14 tmp7
[ 2] 25 (0x019) call 0A000028
In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0
[000094] I-C-G------- * CALL byref PodPtr`1.get_Item (exactContextHnd=0x00000000D1FFAB1E)
[000089] ------------ this in rcx +--* ADDR byref
[000088] ------------ | \--* LCL_VAR struct V16 tmp9
[000093] --C--------- arg1 \--* RET_EXPR int (inl return from call [000092])
[ 1] 30 (0x01e) stloc.2
lvaGrabTemp returning 17 (V17 tmp10) (a long lifetime temp) called for Inline stloc first use temp.
[000097] -AC--------- * ASG byref
[000096] D------N---- +--* LCL_VAR byref V17 tmp10
[000095] --C--------- \--* RET_EXPR byref (inl return from call [000094])
[ 0] 31 (0x01f) ldarga.s 1
[ 1] 33 (0x021) ldloca.s 0
[ 2] 35 (0x023) call 06000024
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
[000102] I-C-G------- * CALL int OrderBgra.get_G (exactContextHnd=0x00000000D1FFAB1E)
[000101] ------------ this in rcx \--* ADDR byref
[000100] ------------ \--* LCL_VAR struct V14 tmp7
[ 2] 40 (0x028) call 0A000028
In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0
[000104] I-C-G------- * CALL byref PodPtr`1.get_Item (exactContextHnd=0x00000000D1FFAB1E)
[000099] ------------ this in rcx +--* ADDR byref
[000098] ------------ | \--* LCL_VAR struct V16 tmp9
[000103] --C--------- arg1 \--* RET_EXPR int (inl return from call [000102])
[ 1] 45 (0x02d) stloc.3
lvaGrabTemp returning 18 (V18 tmp11) (a long lifetime temp) called for Inline stloc first use temp.
[000107] -AC--------- * ASG byref
[000106] D------N---- +--* LCL_VAR byref V18 tmp11
[000105] --C--------- \--* RET_EXPR byref (inl return from call [000104])
[ 0] 46 (0x02e) ldarga.s 1
[ 1] 48 (0x030) ldloca.s 0
[ 2] 50 (0x032) call 06000025
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
[000112] I-C-G------- * CALL int OrderBgra.get_B (exactContextHnd=0x00000000D1FFAB1E)
[000111] ------------ this in rcx \--* ADDR byref
[000110] ------------ \--* LCL_VAR struct V14 tmp7
[ 2] 55 (0x037) call 0A000028
In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0
[000114] I-C-G------- * CALL byref PodPtr`1.get_Item (exactContextHnd=0x00000000D1FFAB1E)
[000109] ------------ this in rcx +--* ADDR byref
[000108] ------------ | \--* LCL_VAR struct V16 tmp9
[000113] --C--------- arg1 \--* RET_EXPR int (inl return from call [000112])
[ 1] 60 (0x03c) stloc.s 4
lvaGrabTemp returning 19 (V19 tmp12) (a long lifetime temp) called for Inline stloc first use temp.
[000117] -AC--------- * ASG byref
[000116] D------N---- +--* LCL_VAR byref V19 tmp12
[000115] --C--------- \--* RET_EXPR byref (inl return from call [000114])
[ 0] 62 (0x03e) ldloc.2
[ 1] 63 (0x03f) ldloca.s 1
[ 2] 65 (0x041) ldloc.2
[ 3] 66 (0x042) ldobj 1B000012
[ 3] 71 (0x047) ldarg.2
[ 4] 72 (0x048) ldarg.s 5
[ 5] 74 (0x04a) constrained. (1B000010) callvirt 0A000029
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is ubyte, structSize is 0
[000123] I-CXG------- * CALL int Rgba8.Lerp (exactContextHnd=0x00000000D1FFAB1E)
[000120] ------------ this in rcx +--* ADDR byref
[000119] ------------ | \--* LCL_VAR struct V15 tmp8
[000122] *--XG------- arg1 +--* IND ubyte
[000121] ------------ | \--* LCL_VAR byref V17 tmp10
[000033] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000036] ------------ arg3 \--* LCL_VAR ubyte V04 arg4
[ 2] 85 (0x055) stobj 1B000012
[000126] -ACXG------- * ASG ubyte
[000125] *------N---- +--* IND ubyte
[000118] ------------ | \--* LCL_VAR byref V17 tmp10
[000124] --C--------- \--* RET_EXPR int (inl return from call [000123])
[ 0] 90 (0x05a) ldloc.3
[ 1] 91 (0x05b) ldloca.s 1
[ 2] 93 (0x05d) ldloc.3
[ 3] 94 (0x05e) ldobj 1B000012
[ 3] 99 (0x063) ldarg.3
[ 4] 100 (0x064) ldarg.s 5
[ 5] 102 (0x066) constrained. (1B000010) callvirt 0A000029
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is ubyte, structSize is 0
[000133] I-CXG------- * CALL int Rgba8.Lerp (exactContextHnd=0x00000000D1FFAB1E)
[000129] ------------ this in rcx +--* ADDR byref
[000128] ------------ | \--* LCL_VAR struct V15 tmp8
[000131] *--XG------- arg1 +--* IND ubyte
[000130] ------------ | \--* LCL_VAR byref V18 tmp11
[000034] ------------ arg2 +--* LCL_VAR ubyte V02 arg2
[000132] ------------ arg3 \--* LCL_VAR ubyte V04 arg4
[ 2] 113 (0x071) stobj 1B000012
[000136] -ACXG------- * ASG ubyte
[000135] *------N---- +--* IND ubyte
[000127] ------------ | \--* LCL_VAR byref V18 tmp11
[000134] --C--------- \--* RET_EXPR int (inl return from call [000133])
[ 0] 118 (0x076) ldloc.s 4
[ 1] 120 (0x078) ldloca.s 1
[ 2] 122 (0x07a) ldloc.s 4
[ 3] 124 (0x07c) ldobj 1B000012
[ 3] 129 (0x081) ldarg.s 4
[ 4] 131 (0x083) ldarg.s 5
[ 5] 133 (0x085) constrained. (1B000010) callvirt 0A000029
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is ubyte, structSize is 0
[000143] I-CXG------- * CALL int Rgba8.Lerp (exactContextHnd=0x00000000D1FFAB1E)
[000139] ------------ this in rcx +--* ADDR byref
[000138] ------------ | \--* LCL_VAR struct V15 tmp8
[000141] *--XG------- arg1 +--* IND ubyte
[000140] ------------ | \--* LCL_VAR byref V19 tmp12
[000035] ------------ arg2 +--* LCL_VAR ubyte V03 arg3
[000142] ------------ arg3 \--* LCL_VAR ubyte V04 arg4
[ 2] 144 (0x090) stobj 1B000012
[000146] -ACXG------- * ASG ubyte
[000145] *------N---- +--* IND ubyte
[000137] ------------ | \--* LCL_VAR byref V19 tmp12
[000144] --C--------- \--* RET_EXPR int (inl return from call [000143])
[ 0] 149 (0x095) ret
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000073] -----------
Arguments setup:
[000150] -A---------- * ASG struct (copy)
[000148] D----------- +--* LCL_VAR struct V16 tmp9
[000075] n----------- \--* OBJ(8) struct
[000074] ------------ \--* ADDR byref
[000072] ------------ \--* LCL_VAR struct V13 tmp6
Zero init inlinee locals:
[000147] ---X-------- * IND int
[000031] ------------ \--* LCL_VAR ref V09 tmp2
[000147] ---X-------- * IND int
[000031] ------------ \--* LCL_VAR ref V09 tmp2
[000153] -A---------- * ASG byref
[000152] D------N---- +--* LCL_VAR byref V17 tmp10
[000151] ------------ \--* CNS_INT byref 0
[000156] -A---------- * ASG byref
[000155] D------N---- +--* LCL_VAR byref V18 tmp11
[000154] ------------ \--* CNS_INT byref 0
[000159] -A---------- * ASG byref
[000158] D------N---- +--* LCL_VAR byref V19 tmp12
[000157] ------------ \--* CNS_INT byref 0
Inlinee method body:
[000083] IA---------- * ASG struct (init)
[000080] D------N---- +--* LCL_VAR struct V14 tmp7
[000082] ------------ \--* CNS_INT int 0
[000087] IA---------- * ASG struct (init)
[000084] D------N---- +--* LCL_VAR struct V15 tmp8
[000086] ------------ \--* CNS_INT int 0
[000092] I-C-G------- * CALL int OrderBgra.get_R (exactContextHnd=0x00000000D1FFAB1E)
[000091] ------------ this in rcx \--* ADDR byref
[000090] ------------ \--* LCL_VAR struct V14 tmp7
[000094] I-C-G------- * CALL byref PodPtr`1.get_Item (exactContextHnd=0x00000000D1FFAB1E)
[000089] ------------ this in rcx +--* ADDR byref
[000088] ------------ | \--* LCL_VAR struct V16 tmp9
[000093] --C--------- arg1 \--* RET_EXPR int (inl return from call [000092])
[000097] -AC--------- * ASG byref
[000096] D------N---- +--* LCL_VAR byref V17 tmp10
[000095] --C--------- \--* RET_EXPR byref (inl return from call [000094])
[000102] I-C-G------- * CALL int OrderBgra.get_G (exactContextHnd=0x00000000D1FFAB1E)
[000101] ------------ this in rcx \--* ADDR byref
[000100] ------------ \--* LCL_VAR struct V14 tmp7
[000104] I-C-G------- * CALL byref PodPtr`1.get_Item (exactContextHnd=0x00000000D1FFAB1E)
[000099] ------------ this in rcx +--* ADDR byref
[000098] ------------ | \--* LCL_VAR struct V16 tmp9
[000103] --C--------- arg1 \--* RET_EXPR int (inl return from call [000102])
[000107] -AC--------- * ASG byref
[000106] D------N---- +--* LCL_VAR byref V18 tmp11
[000105] --C--------- \--* RET_EXPR byref (inl return from call [000104])
[000112] I-C-G------- * CALL int OrderBgra.get_B (exactContextHnd=0x00000000D1FFAB1E)
[000111] ------------ this in rcx \--* ADDR byref
[000110] ------------ \--* LCL_VAR struct V14 tmp7
[000114] I-C-G------- * CALL byref PodPtr`1.get_Item (exactContextHnd=0x00000000D1FFAB1E)
[000109] ------------ this in rcx +--* ADDR byref
[000108] ------------ | \--* LCL_VAR struct V16 tmp9
[000113] --C--------- arg1 \--* RET_EXPR int (inl return from call [000112])
[000117] -AC--------- * ASG byref
[000116] D------N---- +--* LCL_VAR byref V19 tmp12
[000115] --C--------- \--* RET_EXPR byref (inl return from call [000114])
[000123] I-CXG------- * CALL int Rgba8.Lerp (exactContextHnd=0x00000000D1FFAB1E)
[000120] ------------ this in rcx +--* ADDR byref
[000119] ------------ | \--* LCL_VAR struct V15 tmp8
[000122] *--XG------- arg1 +--* IND ubyte
[000121] ------------ | \--* LCL_VAR byref V17 tmp10
[000033] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000036] ------------ arg3 \--* LCL_VAR ubyte V04 arg4
[000126] -ACXG------- * ASG ubyte
[000125] *------N---- +--* IND ubyte
[000118] ------------ | \--* LCL_VAR byref V17 tmp10
[000124] --C--------- \--* RET_EXPR int (inl return from call [000123])
[000133] I-CXG------- * CALL int Rgba8.Lerp (exactContextHnd=0x00000000D1FFAB1E)
[000129] ------------ this in rcx +--* ADDR byref
[000128] ------------ | \--* LCL_VAR struct V15 tmp8
[000131] *--XG------- arg1 +--* IND ubyte
[000130] ------------ | \--* LCL_VAR byref V18 tmp11
[000034] ------------ arg2 +--* LCL_VAR ubyte V02 arg2
[000132] ------------ arg3 \--* LCL_VAR ubyte V04 arg4
[000136] -ACXG------- * ASG ubyte
[000135] *------N---- +--* IND ubyte
[000127] ------------ | \--* LCL_VAR byref V18 tmp11
[000134] --C--------- \--* RET_EXPR int (inl return from call [000133])
[000143] I-CXG------- * CALL int Rgba8.Lerp (exactContextHnd=0x00000000D1FFAB1E)
[000139] ------------ this in rcx +--* ADDR byref
[000138] ------------ | \--* LCL_VAR struct V15 tmp8
[000141] *--XG------- arg1 +--* IND ubyte
[000140] ------------ | \--* LCL_VAR byref V19 tmp12
[000035] ------------ arg2 +--* LCL_VAR ubyte V03 arg3
[000142] ------------ arg3 \--* LCL_VAR ubyte V04 arg4
[000146] -ACXG------- * ASG ubyte
[000145] *------N---- +--* IND ubyte
[000137] ------------ | \--* LCL_VAR byref V19 tmp12
[000144] --C--------- \--* RET_EXPR int (inl return from call [000143])
fgInlineAppendStatements: nulling out gc ref inlinee locals.
[000162] -A---------- * ASG byref
[000161] D------N---- +--* LCL_VAR byref V17 tmp10
[000160] ------------ \--* CNS_INT byref 0
[000165] -A---------- * ASG byref
[000164] D------N---- +--* LCL_VAR byref V18 tmp11
[000163] ------------ \--* CNS_INT byref 0
[000168] -A---------- * ASG byref
[000167] D------N---- +--* LCL_VAR byref V19 tmp12
[000166] ------------ \--* CNS_INT byref 0
Successfully inlined BlenderClassFromBase`2:Blend(struct,ubyte,ubyte,ubyte,ubyte):this (150 IL bytes) (depth 2) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'BlenderClassFromBase`2:Blend(struct,ubyte,ubyte,ubyte,ubyte):this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement [000092] in BB01:
[000092] I-C-G------- * CALL int OrderBgra.get_R (exactContextHnd=0x00000000D1FFAB1E)
[000091] ------------ this in rcx \--* ADDR byref
[000090] ------------ \--* LCL_VAR struct V14 tmp7
thisArg: is a constant is byref to a struct local
[000091] ------------ * ADDR byref
[000090] ------------ \--* LCL_VAR struct V14 tmp7
INLINER: inlineInfo.tokenLookupContextHandle for OrderBgra:get_R():int:this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method OrderBgra:get_R():int:this :
IL to import:
IL_0000 18 ldc.i4.2
IL_0001 2a ret
INLINER impTokenLookupContextHandle for OrderBgra:get_R():int:this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for OrderBgra:get_R():int:this
Jump targets:
none
New Basic Block BB08 [0007] created.
BB08 [000..002)
Basic block list for 'OrderBgra:get_R():int:this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB08 [0007] 1 1 [000..002) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for OrderBgra:get_R():int:this
impImportBlockPending for BB08
Importing BB08 (PC=000) of 'OrderBgra:get_R():int:this'
[ 0] 0 (0x000) ldc.i4.2 2
[ 1] 1 (0x001) ret
Inlinee Return expression (before normalization) =>
[000170] ------------ * CNS_INT int 2
Inlinee Return expression (after normalization) =>
[000170] ------------ * CNS_INT int 2
** 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 [000092] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000092] is
[000170] ------------ * CNS_INT int 2
Successfully inlined OrderBgra:get_R():int:this (2 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'OrderBgra:get_R():int:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement [000094] in BB01:
[000094] I-C-G------- * CALL byref PodPtr`1.get_Item (exactContextHnd=0x00000000D1FFAB1E)
[000089] ------------ this in rcx +--* ADDR byref
[000088] ------------ | \--* LCL_VAR struct V16 tmp9
[000093] --C--------- arg1 \--* RET_EXPR int (inl return from call [000170])
thisArg: is a constant is byref to a struct local
[000089] ------------ * ADDR byref
[000088] ------------ \--* LCL_VAR struct V16 tmp9
Argument #1: is a constant
[000170] ------------ * CNS_INT int 2
INLINER: inlineInfo.tokenLookupContextHandle for PodPtr`1:get_Item(int):byref:this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method PodPtr`1:get_Item(int):byref:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 7b 2b 00 00 0a ldfld 0xA00002B
IL_0006 03 ldarg.1
IL_0007 d3 conv.i
IL_0008 fe 1c 12 00 00 1b sizeof 0x1B000012
IL_000e 5a mul
IL_000f 58 add
IL_0010 2a ret
INLINER impTokenLookupContextHandle for PodPtr`1:get_Item(int):byref:this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for PodPtr`1:get_Item(int):byref:this
Jump targets:
none
New Basic Block BB09 [0008] created.
BB09 [000..011)
Basic block list for 'PodPtr`1:get_Item(int):byref:this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB09 [0008] 1 1 [000..011) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for PodPtr`1:get_Item(int):byref:this
impImportBlockPending for BB09
Importing BB09 (PC=000) of 'PodPtr`1:get_Item(int):byref:this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldfld 0A00002B
[ 1] 6 (0x006) ldarg.1
[ 2] 7 (0x007) conv.i
[ 2] 8 (0x008) sizeof 1B000012
[ 3] 14 (0x00e) mul
[ 2] 15 (0x00f) add
[ 1] 16 (0x010) ret
Inlinee Return expression (before normalization) =>
[000180] ------------ * ADD long
[000174] ------------ +--* FIELD long _pointer
[000172] ------------ | \--* ADDR byref
[000173] ------------ | \--* LCL_VAR struct V16 tmp9
[000179] ------------ \--* MUL long
[000176] ------------ +--* CAST long <- int
[000175] ------------ | \--* CNS_INT int 2
[000178] ------------ \--* CAST long <- int
[000177] ------------ \--* CNS_INT int 1
Allowing return type mismatch: have long, needed byref
Inlinee Return expression (after normalization) =>
[000180] ------------ * ADD long
[000174] ------------ +--* FIELD long _pointer
[000172] ------------ | \--* ADDR byref
[000173] ------------ | \--* LCL_VAR struct V16 tmp9
[000179] ------------ \--* MUL long
[000176] ------------ +--* CAST long <- int
[000175] ------------ | \--* CNS_INT int 2
[000178] ------------ \--* CAST long <- int
[000177] ------------ \--* CNS_INT int 1
** Note: inlinee IL was partially imported -- imported 0 of 17 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000094] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000094] is
[000180] ------------ * ADD long
[000174] ------------ +--* FIELD long _pointer
[000172] ------------ | \--* ADDR byref
[000173] ------------ | \--* LCL_VAR struct V16 tmp9
[000179] ------------ \--* MUL long
[000176] ------------ +--* CAST long <- int
[000175] ------------ | \--* CNS_INT int 2
[000178] ------------ \--* CAST long <- int
[000177] ------------ \--* CNS_INT int 1
Successfully inlined PodPtr`1:get_Item(int):byref:this (17 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'PodPtr`1:get_Item(int):byref:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000095] with [000180]
[000095] --C--------- * RET_EXPR byref (inl return from call [000180])
Inserting the inline return expression
[000180] ------------ * ADD long
[000174] ------------ +--* FIELD long _pointer
[000172] ------------ | \--* ADDR byref
[000173] ------------ | \--* LCL_VAR struct V16 tmp9
[000179] ------------ \--* MUL long
[000176] ------------ +--* CAST long <- int
[000175] ------------ | \--* CNS_INT int 2
[000178] ------------ \--* CAST long <- int
[000177] ------------ \--* CNS_INT int 1
Expanding INLINE_CANDIDATE in statement [000102] in BB01:
[000102] I-C-G------- * CALL int OrderBgra.get_G (exactContextHnd=0x00000000D1FFAB1E)
[000101] ------------ this in rcx \--* ADDR byref
[000100] ------------ \--* LCL_VAR struct V14 tmp7
thisArg: is a constant is byref to a struct local
[000101] ------------ * ADDR byref
[000100] ------------ \--* LCL_VAR struct V14 tmp7
INLINER: inlineInfo.tokenLookupContextHandle for OrderBgra:get_G():int:this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method OrderBgra:get_G():int:this :
IL to import:
IL_0000 17 ldc.i4.1
IL_0001 2a ret
INLINER impTokenLookupContextHandle for OrderBgra:get_G():int:this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for OrderBgra:get_G():int:this
Jump targets:
none
New Basic Block BB10 [0009] created.
BB10 [000..002)
Basic block list for 'OrderBgra:get_G():int:this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB10 [0009] 1 1 [000..002) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for OrderBgra:get_G():int:this
impImportBlockPending for BB10
Importing BB10 (PC=000) of 'OrderBgra:get_G():int:this'
[ 0] 0 (0x000) ldc.i4.1 1
[ 1] 1 (0x001) ret
Inlinee Return expression (before normalization) =>
[000182] ------------ * CNS_INT int 1
Inlinee Return expression (after normalization) =>
[000182] ------------ * CNS_INT int 1
** 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 [000102] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000102] is
[000182] ------------ * CNS_INT int 1
Successfully inlined OrderBgra:get_G():int:this (2 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'OrderBgra:get_G():int:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement [000104] in BB01:
[000104] I-C-G------- * CALL byref PodPtr`1.get_Item (exactContextHnd=0x00000000D1FFAB1E)
[000099] ------------ this in rcx +--* ADDR byref
[000098] ------------ | \--* LCL_VAR struct V16 tmp9
[000103] --C--------- arg1 \--* RET_EXPR int (inl return from call [000182])
thisArg: is a constant is byref to a struct local
[000099] ------------ * ADDR byref
[000098] ------------ \--* LCL_VAR struct V16 tmp9
Argument #1: is a constant
[000182] ------------ * CNS_INT int 1
INLINER: inlineInfo.tokenLookupContextHandle for PodPtr`1:get_Item(int):byref:this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method PodPtr`1:get_Item(int):byref:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 7b 2b 00 00 0a ldfld 0xA00002B
IL_0006 03 ldarg.1
IL_0007 d3 conv.i
IL_0008 fe 1c 12 00 00 1b sizeof 0x1B000012
IL_000e 5a mul
IL_000f 58 add
IL_0010 2a ret
INLINER impTokenLookupContextHandle for PodPtr`1:get_Item(int):byref:this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for PodPtr`1:get_Item(int):byref:this
Jump targets:
none
New Basic Block BB11 [0010] created.
BB11 [000..011)
Basic block list for 'PodPtr`1:get_Item(int):byref:this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB11 [0010] 1 1 [000..011) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for PodPtr`1:get_Item(int):byref:this
impImportBlockPending for BB11
Importing BB11 (PC=000) of 'PodPtr`1:get_Item(int):byref:this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldfld 0A00002B
[ 1] 6 (0x006) ldarg.1
[ 2] 7 (0x007) conv.i
[ 2] 8 (0x008) sizeof 1B000012
[ 3] 14 (0x00e) mul
[ 2] 15 (0x00f) add
[ 1] 16 (0x010) ret
Inlinee Return expression (before normalization) =>
[000192] ------------ * ADD long
[000186] ------------ +--* FIELD long _pointer
[000184] ------------ | \--* ADDR byref
[000185] ------------ | \--* LCL_VAR struct V16 tmp9
[000191] ------------ \--* MUL long
[000188] ------------ +--* CAST long <- int
[000187] ------------ | \--* CNS_INT int 1
[000190] ------------ \--* CAST long <- int
[000189] ------------ \--* CNS_INT int 1
Allowing return type mismatch: have long, needed byref
Inlinee Return expression (after normalization) =>
[000192] ------------ * ADD long
[000186] ------------ +--* FIELD long _pointer
[000184] ------------ | \--* ADDR byref
[000185] ------------ | \--* LCL_VAR struct V16 tmp9
[000191] ------------ \--* MUL long
[000188] ------------ +--* CAST long <- int
[000187] ------------ | \--* CNS_INT int 1
[000190] ------------ \--* CAST long <- int
[000189] ------------ \--* CNS_INT int 1
** Note: inlinee IL was partially imported -- imported 0 of 17 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000104] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000104] is
[000192] ------------ * ADD long
[000186] ------------ +--* FIELD long _pointer
[000184] ------------ | \--* ADDR byref
[000185] ------------ | \--* LCL_VAR struct V16 tmp9
[000191] ------------ \--* MUL long
[000188] ------------ +--* CAST long <- int
[000187] ------------ | \--* CNS_INT int 1
[000190] ------------ \--* CAST long <- int
[000189] ------------ \--* CNS_INT int 1
Successfully inlined PodPtr`1:get_Item(int):byref:this (17 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'PodPtr`1:get_Item(int):byref:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000105] with [000192]
[000105] --C--------- * RET_EXPR byref (inl return from call [000192])
Inserting the inline return expression
[000192] ------------ * ADD long
[000186] ------------ +--* FIELD long _pointer
[000184] ------------ | \--* ADDR byref
[000185] ------------ | \--* LCL_VAR struct V16 tmp9
[000191] ------------ \--* MUL long
[000188] ------------ +--* CAST long <- int
[000187] ------------ | \--* CNS_INT int 1
[000190] ------------ \--* CAST long <- int
[000189] ------------ \--* CNS_INT int 1
Expanding INLINE_CANDIDATE in statement [000112] in BB01:
[000112] I-C-G------- * CALL int OrderBgra.get_B (exactContextHnd=0x00000000D1FFAB1E)
[000111] ------------ this in rcx \--* ADDR byref
[000110] ------------ \--* LCL_VAR struct V14 tmp7
thisArg: is a constant is byref to a struct local
[000111] ------------ * ADDR byref
[000110] ------------ \--* LCL_VAR struct V14 tmp7
INLINER: inlineInfo.tokenLookupContextHandle for OrderBgra:get_B():int:this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method OrderBgra:get_B():int:this :
IL to import:
IL_0000 16 ldc.i4.0
IL_0001 2a ret
INLINER impTokenLookupContextHandle for OrderBgra:get_B():int:this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for OrderBgra:get_B():int:this
Jump targets:
none
New Basic Block BB12 [0011] created.
BB12 [000..002)
Basic block list for 'OrderBgra:get_B():int:this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB12 [0011] 1 1 [000..002) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for OrderBgra:get_B():int:this
impImportBlockPending for BB12
Importing BB12 (PC=000) of 'OrderBgra:get_B():int:this'
[ 0] 0 (0x000) ldc.i4.0 0
[ 1] 1 (0x001) ret
Inlinee Return expression (before normalization) =>
[000194] ------------ * CNS_INT int 0
Inlinee Return expression (after normalization) =>
[000194] ------------ * CNS_INT int 0
** 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
[000194] ------------ * CNS_INT int 0
Successfully inlined OrderBgra:get_B():int:this (2 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'OrderBgra:get_B():int:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement [000114] in BB01:
[000114] I-C-G------- * CALL byref PodPtr`1.get_Item (exactContextHnd=0x00000000D1FFAB1E)
[000109] ------------ this in rcx +--* ADDR byref
[000108] ------------ | \--* LCL_VAR struct V16 tmp9
[000113] --C--------- arg1 \--* RET_EXPR int (inl return from call [000194])
thisArg: is a constant is byref to a struct local
[000109] ------------ * ADDR byref
[000108] ------------ \--* LCL_VAR struct V16 tmp9
Argument #1: is a constant
[000194] ------------ * CNS_INT int 0
INLINER: inlineInfo.tokenLookupContextHandle for PodPtr`1:get_Item(int):byref:this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method PodPtr`1:get_Item(int):byref:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 7b 2b 00 00 0a ldfld 0xA00002B
IL_0006 03 ldarg.1
IL_0007 d3 conv.i
IL_0008 fe 1c 12 00 00 1b sizeof 0x1B000012
IL_000e 5a mul
IL_000f 58 add
IL_0010 2a ret
INLINER impTokenLookupContextHandle for PodPtr`1:get_Item(int):byref:this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for PodPtr`1:get_Item(int):byref:this
Jump targets:
none
New Basic Block BB13 [0012] created.
BB13 [000..011)
Basic block list for 'PodPtr`1:get_Item(int):byref:this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB13 [0012] 1 1 [000..011) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for PodPtr`1:get_Item(int):byref:this
impImportBlockPending for BB13
Importing BB13 (PC=000) of 'PodPtr`1:get_Item(int):byref:this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldfld 0A00002B
[ 1] 6 (0x006) ldarg.1
[ 2] 7 (0x007) conv.i
[ 2] 8 (0x008) sizeof 1B000012
[ 3] 14 (0x00e) mul
[ 2] 15 (0x00f) add
[ 1] 16 (0x010) ret
Inlinee Return expression (before normalization) =>
[000204] ------------ * ADD long
[000198] ------------ +--* FIELD long _pointer
[000196] ------------ | \--* ADDR byref
[000197] ------------ | \--* LCL_VAR struct V16 tmp9
[000203] ------------ \--* MUL long
[000200] ------------ +--* CAST long <- int
[000199] ------------ | \--* CNS_INT int 0
[000202] ------------ \--* CAST long <- int
[000201] ------------ \--* CNS_INT int 1
Allowing return type mismatch: have long, needed byref
Inlinee Return expression (after normalization) =>
[000204] ------------ * ADD long
[000198] ------------ +--* FIELD long _pointer
[000196] ------------ | \--* ADDR byref
[000197] ------------ | \--* LCL_VAR struct V16 tmp9
[000203] ------------ \--* MUL long
[000200] ------------ +--* CAST long <- int
[000199] ------------ | \--* CNS_INT int 0
[000202] ------------ \--* CAST long <- int
[000201] ------------ \--* CNS_INT int 1
** Note: inlinee IL was partially imported -- imported 0 of 17 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000114] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000114] is
[000204] ------------ * ADD long
[000198] ------------ +--* FIELD long _pointer
[000196] ------------ | \--* ADDR byref
[000197] ------------ | \--* LCL_VAR struct V16 tmp9
[000203] ------------ \--* MUL long
[000200] ------------ +--* CAST long <- int
[000199] ------------ | \--* CNS_INT int 0
[000202] ------------ \--* CAST long <- int
[000201] ------------ \--* CNS_INT int 1
Successfully inlined PodPtr`1:get_Item(int):byref:this (17 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'PodPtr`1:get_Item(int):byref:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000115] with [000204]
[000115] --C--------- * RET_EXPR byref (inl return from call [000204])
Inserting the inline return expression
[000204] ------------ * ADD long
[000198] ------------ +--* FIELD long _pointer
[000196] ------------ | \--* ADDR byref
[000197] ------------ | \--* LCL_VAR struct V16 tmp9
[000203] ------------ \--* MUL long
[000200] ------------ +--* CAST long <- int
[000199] ------------ | \--* CNS_INT int 0
[000202] ------------ \--* CAST long <- int
[000201] ------------ \--* CNS_INT int 1
Expanding INLINE_CANDIDATE in statement [000123] in BB01:
[000123] I-CXG------- * CALL int Rgba8.Lerp (exactContextHnd=0x00000000D1FFAB1E)
[000120] ------------ this in rcx +--* ADDR byref
[000119] ------------ | \--* LCL_VAR struct V15 tmp8
[000122] *--XG------- arg1 +--* IND ubyte
[000121] ------------ | \--* LCL_VAR byref V17 tmp10
[000033] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000036] ------------ arg3 \--* LCL_VAR ubyte V04 arg4
thisArg: is a constant is byref to a struct local
[000120] ------------ * ADDR byref
[000119] ------------ \--* LCL_VAR struct V15 tmp8
Argument #1: has global refs has side effects
[000122] *--XG------- * IND ubyte
[000121] ------------ \--* LCL_VAR byref V17 tmp10
Argument #2: is a local var
[000033] ------------ * LCL_VAR ubyte V01 arg1
Argument #3: is a local var
[000036] ------------ * LCL_VAR ubyte V04 arg4
INLINER: inlineInfo.tokenLookupContextHandle for Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this :
IL to import:
IL_0000 04 ldarg.2
IL_0001 03 ldarg.1
IL_0002 59 sub
IL_0003 05 ldarg.3
IL_0004 5a mul
IL_0005 20 80 00 00 00 ldc.i4 0x80
IL_000a 58 add
IL_000b 03 ldarg.1
IL_000c 04 ldarg.2
IL_000d 30 03 bgt.s 3 (IL_0012)
IL_000f 16 ldc.i4.0
IL_0010 2b 01 br.s 1 (IL_0013)
IL_0012 17 ldc.i4.1
IL_0013 59 sub
IL_0014 0a stloc.0
IL_0015 03 ldarg.1
IL_0016 06 ldloc.0
IL_0017 1e ldc.i4.8
IL_0018 63 shr
IL_0019 06 ldloc.0
IL_001a 58 add
IL_001b 1e ldc.i4.8
IL_001c 63 shr
IL_001d 58 add
IL_001e d2 conv.u1
IL_001f 2a ret
INLINER impTokenLookupContextHandle for Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this
Jump targets:
IL_0012
IL_0013
New Basic Block BB14 [0013] created.
BB14 [000..00F)
New Basic Block BB15 [0014] created.
BB15 [00F..012)
New Basic Block BB16 [0015] created.
BB16 [012..013)
New Basic Block BB17 [0016] created.
BB17 [013..020)
Basic block list for 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB14 [0013] 1 1 [000..00F)-> BB16 ( cond )
BB15 [0014] 1 1 [00F..012)-> BB17 (always)
BB16 [0015] 1 1 [012..013)
BB17 [0016] 2 1 [013..020) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this
impImportBlockPending for BB14
Importing BB14 (PC=000) of 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
[ 0] 0 (0x000) ldarg.2
[ 1] 1 (0x001) ldarg.1
lvaGrabTemp returning 20 (V20 tmp13) called for Inlining Arg.
[ 2] 2 (0x002) sub
[ 1] 3 (0x003) ldarg.3
[ 2] 4 (0x004) mul
[ 1] 5 (0x005) ldc.i4 128
[ 2] 10 (0x00a) add
[ 1] 11 (0x00b) ldarg.1
[ 2] 12 (0x00c) ldarg.2
[ 3] 13 (0x00d) bgt.s
[000214] ------------ * JTRUE void
[000213] ------------ \--* GT int
[000211] ------------ +--* LCL_VAR int V20 tmp13
[000212] ------------ \--* LCL_VAR ubyte V01 arg1
*************** In impGetSpillTmpBase(BB14)
lvaGrabTemps(1) returning 21..21 (long lifetime temps) called for IL Stack Entries
*************** In fgComputeCheapPreds()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB14 [0013] 1 1 [000..00F)-> BB16 ( cond )
BB15 [0014] 1 1 [00F..012)-> BB17 (always)
BB16 [0015] 1 1 [012..013)
BB17 [0016] 2 1 [013..020) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** After fgComputeCheapPreds()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd cheap preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB14 [0013] 1 1 [000..00F)-> BB16 ( cond )
BB15 [0014] 1 BB14 1 [00F..012)-> BB17 (always)
BB16 [0015] 1 BB14 1 [012..013)
BB17 [0016] 2 BB16,BB15 1 [013..020) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
Spilling stack entries into temps
[000216] -A---------- * ASG int
[000215] D------N---- +--* LCL_VAR int V21 tmp14
[000210] ------------ \--* ADD int
[000208] ------------ +--* MUL int
[000207] ------------ | +--* SUB int
[000033] ------------ | | +--* LCL_VAR ubyte V01 arg1
[000206] ------------ | | \--* LCL_VAR int V20 tmp13
[000036] ------------ | \--* LCL_VAR ubyte V04 arg4
[000209] ------------ \--* CNS_INT int 128
[000214] ------------ * JTRUE void
[000213] ------------ \--* GT int
[000211] ------------ +--* LCL_VAR int V20 tmp13
[000212] ------------ \--* LCL_VAR ubyte V01 arg1
impImportBlockPending for BB15
impImportBlockPending for BB16
Importing BB16 (PC=018) of 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
[ 1] 18 (0x012) ldc.i4.1 1
*************** In impGetSpillTmpBase(BB16)
lvaGrabTemps(2) returning 22..23 (long lifetime temps) called for IL Stack Entries
Spilling stack entries into temps
[000222] -A---------- * ASG int
[000221] D------N---- +--* LCL_VAR int V22 tmp15
[000219] ------------ \--* LCL_VAR int V21 tmp14
[000225] -A---------- * ASG int
[000224] D------N---- +--* LCL_VAR int V23 tmp16
[000220] ------------ \--* CNS_INT int 1
impImportBlockPending for BB17
Importing BB17 (PC=019) of 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
[ 2] 19 (0x013) sub
[ 1] 20 (0x014) stloc.0
lvaGrabTemp returning 24 (V24 tmp17) (a long lifetime temp) called for Inline stloc first use temp.
[000231] -A---------- * ASG int
[000230] D------N---- +--* LCL_VAR int V24 tmp17
[000229] ------------ \--* SUB int
[000227] ------------ +--* LCL_VAR int V22 tmp15
[000228] ------------ \--* LCL_VAR int V23 tmp16
[ 0] 21 (0x015) ldarg.1
[ 1] 22 (0x016) ldloc.0
[ 2] 23 (0x017) ldc.i4.8 8
[ 3] 24 (0x018) shr
[ 2] 25 (0x019) ldloc.0
[ 3] 26 (0x01a) add
[ 2] 27 (0x01b) ldc.i4.8 8
[ 3] 28 (0x01c) shr
[ 2] 29 (0x01d) add
[ 1] 30 (0x01e) conv.u1
[ 1] 31 (0x01f) ret
Inlinee Return expression (before normalization) =>
[000241] ------------ * CAST int <- ubyte <- int
[000240] ------------ \--* ADD int
[000232] ------------ +--* LCL_VAR int V20 tmp13
[000239] ------------ \--* RSH int
[000237] ------------ +--* ADD int
[000235] ------------ | +--* RSH int
[000233] ------------ | | +--* LCL_VAR int V24 tmp17
[000234] ------------ | | \--* CNS_INT int 8
[000236] ------------ | \--* LCL_VAR int V24 tmp17
[000238] ------------ \--* CNS_INT int 8
Inlinee Return expression (after normalization) =>
[000241] ------------ * CAST int <- ubyte <- int
[000240] ------------ \--* ADD int
[000232] ------------ +--* LCL_VAR int V20 tmp13
[000239] ------------ \--* RSH int
[000237] ------------ +--* ADD int
[000235] ------------ | +--* RSH int
[000233] ------------ | | +--* LCL_VAR int V24 tmp17
[000234] ------------ | | \--* CNS_INT int 8
[000236] ------------ | \--* LCL_VAR int V24 tmp17
[000238] ------------ \--* CNS_INT int 8
Importing BB15 (PC=015) of 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
[ 1] 15 (0x00f) ldc.i4.0 0
[ 2] 16 (0x010) br.s
Spilling stack entries into temps
[000244] -A---------- * ASG int
[000243] D------N---- +--* LCL_VAR int V22 tmp15
[000218] ------------ \--* LCL_VAR int V21 tmp14
[000247] -A---------- * ASG int
[000246] D------N---- +--* LCL_VAR int V23 tmp16
[000242] ------------ \--* CNS_INT int 0
impImportBlockPending for BB17
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000123] -----------
Arguments setup:
[000250] -A-XG------- * ASG ubyte
[000249] D------N---- +--* LCL_VAR ubyte V20 tmp13
[000122] *--XG------- \--* IND ubyte
[000121] ------------ \--* LCL_VAR byref V17 tmp10
Zero init inlinee locals:
[000253] -A---------- * ASG int
[000252] D------N---- +--* LCL_VAR int V24 tmp17
[000251] ------------ \--* CNS_INT int 0
Inlinee method body:New Basic Block BB18 [0017] created.
Convert bbJumpKind of BB17 to BBJ_NONE
fgInlineAppendStatements: no gc ref inline locals.
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB14 [0013] 1 1 [020..021)-> BB16 ( cond ) i
BB15 [0014] 1 0.50 [020..021)-> BB17 (always) i
BB16 [0015] 1 0.50 [020..021) i
BB17 [0016] 2 1 [020..021) i
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB14 [020..021) -> BB16 (cond), preds={} succs={BB15,BB16}
***** BB14, stmt 1
[000216] -A---------- * ASG int
[000215] D------N---- +--* LCL_VAR int V21 tmp14
[000210] ------------ \--* ADD int
[000208] ------------ +--* MUL int
[000207] ------------ | +--* SUB int
[000033] ------------ | | +--* LCL_VAR ubyte V01 arg1
[000206] ------------ | | \--* LCL_VAR int V20 tmp13
[000036] ------------ | \--* LCL_VAR ubyte V04 arg4
[000209] ------------ \--* CNS_INT int 128
***** BB14, stmt 2
[000214] ------------ * JTRUE void
[000213] ------------ \--* GT int
[000211] ------------ +--* LCL_VAR int V20 tmp13
[000212] ------------ \--* LCL_VAR ubyte V01 arg1
------------ BB15 [020..021) -> BB17 (always), preds={} succs={BB17}
***** BB15, stmt 3
[000244] -A---------- * ASG int
[000243] D------N---- +--* LCL_VAR int V22 tmp15
[000218] ------------ \--* LCL_VAR int V21 tmp14
***** BB15, stmt 4
[000247] -A---------- * ASG int
[000246] D------N---- +--* LCL_VAR int V23 tmp16
[000242] ------------ \--* CNS_INT int 0
------------ BB16 [020..021), preds={} succs={BB17}
***** BB16, stmt 5
[000222] -A---------- * ASG int
[000221] D------N---- +--* LCL_VAR int V22 tmp15
[000219] ------------ \--* LCL_VAR int V21 tmp14
***** BB16, stmt 6
[000225] -A---------- * ASG int
[000224] D------N---- +--* LCL_VAR int V23 tmp16
[000220] ------------ \--* CNS_INT int 1
------------ BB17 [020..021), preds={} succs={BB18}
***** BB17, stmt 7
[000231] -A---------- * ASG int
[000230] D------N---- +--* LCL_VAR int V24 tmp17
[000229] ------------ \--* SUB int
[000227] ------------ +--* LCL_VAR int V22 tmp15
[000228] ------------ \--* LCL_VAR int V23 tmp16
-------------------------------------------------------------------------------------------------------------------
Return expression for call at [000123] is
[000241] ------------ * CAST int <- ubyte <- int
[000240] ------------ \--* ADD int
[000232] ------------ +--* LCL_VAR int V20 tmp13
[000239] ------------ \--* RSH int
[000237] ------------ +--* ADD int
[000235] ------------ | +--* RSH int
[000233] ------------ | | +--* LCL_VAR int V24 tmp17
[000234] ------------ | | \--* CNS_INT int 8
[000236] ------------ | \--* LCL_VAR int V24 tmp17
[000238] ------------ \--* CNS_INT int 8
Successfully inlined Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this (32 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000124] with [000241]
[000124] --C--------- * RET_EXPR int (inl return from call [000241])
Inserting the inline return expression
[000241] ------------ * CAST int <- ubyte <- int
[000240] ------------ \--* ADD int
[000232] ------------ +--* LCL_VAR int V20 tmp13
[000239] ------------ \--* RSH int
[000237] ------------ +--* ADD int
[000235] ------------ | +--* RSH int
[000233] ------------ | | +--* LCL_VAR int V24 tmp17
[000234] ------------ | | \--* CNS_INT int 8
[000236] ------------ | \--* LCL_VAR int V24 tmp17
[000238] ------------ \--* CNS_INT int 8
Expanding INLINE_CANDIDATE in statement [000133] in BB18:
[000133] I-CXG------- * CALL int Rgba8.Lerp (exactContextHnd=0x00000000D1FFAB1E)
[000129] ------------ this in rcx +--* ADDR byref
[000128] ------------ | \--* LCL_VAR struct V15 tmp8
[000131] *--XG------- arg1 +--* IND ubyte
[000130] ------------ | \--* LCL_VAR byref V18 tmp11
[000034] ------------ arg2 +--* LCL_VAR ubyte V02 arg2
[000132] ------------ arg3 \--* LCL_VAR ubyte V04 arg4
thisArg: is a constant is byref to a struct local
[000129] ------------ * ADDR byref
[000128] ------------ \--* LCL_VAR struct V15 tmp8
Argument #1: has global refs has side effects
[000131] *--XG------- * IND ubyte
[000130] ------------ \--* LCL_VAR byref V18 tmp11
Argument #2: is a local var
[000034] ------------ * LCL_VAR ubyte V02 arg2
Argument #3: is a local var
[000132] ------------ * LCL_VAR ubyte V04 arg4
INLINER: inlineInfo.tokenLookupContextHandle for Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this :
IL to import:
IL_0000 04 ldarg.2
IL_0001 03 ldarg.1
IL_0002 59 sub
IL_0003 05 ldarg.3
IL_0004 5a mul
IL_0005 20 80 00 00 00 ldc.i4 0x80
IL_000a 58 add
IL_000b 03 ldarg.1
IL_000c 04 ldarg.2
IL_000d 30 03 bgt.s 3 (IL_0012)
IL_000f 16 ldc.i4.0
IL_0010 2b 01 br.s 1 (IL_0013)
IL_0012 17 ldc.i4.1
IL_0013 59 sub
IL_0014 0a stloc.0
IL_0015 03 ldarg.1
IL_0016 06 ldloc.0
IL_0017 1e ldc.i4.8
IL_0018 63 shr
IL_0019 06 ldloc.0
IL_001a 58 add
IL_001b 1e ldc.i4.8
IL_001c 63 shr
IL_001d 58 add
IL_001e d2 conv.u1
IL_001f 2a ret
INLINER impTokenLookupContextHandle for Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this
Jump targets:
IL_0012
IL_0013
New Basic Block BB19 [0018] created.
BB19 [000..00F)
New Basic Block BB20 [0019] created.
BB20 [00F..012)
New Basic Block BB21 [0020] created.
BB21 [012..013)
New Basic Block BB22 [0021] created.
BB22 [013..020)
Basic block list for 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB19 [0018] 1 1 [000..00F)-> BB21 ( cond )
BB20 [0019] 1 1 [00F..012)-> BB22 (always)
BB21 [0020] 1 1 [012..013)
BB22 [0021] 2 1 [013..020) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this
impImportBlockPending for BB19
Importing BB19 (PC=000) of 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
[ 0] 0 (0x000) ldarg.2
[ 1] 1 (0x001) ldarg.1
lvaGrabTemp returning 25 (V25 tmp18) called for Inlining Arg.
[ 2] 2 (0x002) sub
[ 1] 3 (0x003) ldarg.3
[ 2] 4 (0x004) mul
[ 1] 5 (0x005) ldc.i4 128
[ 2] 10 (0x00a) add
[ 1] 11 (0x00b) ldarg.1
[ 2] 12 (0x00c) ldarg.2
[ 3] 13 (0x00d) bgt.s
[000263] ------------ * JTRUE void
[000262] ------------ \--* GT int
[000260] ------------ +--* LCL_VAR int V25 tmp18
[000261] ------------ \--* LCL_VAR ubyte V02 arg2
*************** In impGetSpillTmpBase(BB19)
lvaGrabTemps(1) returning 26..26 (long lifetime temps) called for IL Stack Entries
*************** In fgComputeCheapPreds()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB19 [0018] 1 1 [000..00F)-> BB21 ( cond )
BB20 [0019] 1 1 [00F..012)-> BB22 (always)
BB21 [0020] 1 1 [012..013)
BB22 [0021] 2 1 [013..020) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** After fgComputeCheapPreds()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd cheap preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB19 [0018] 1 1 [000..00F)-> BB21 ( cond )
BB20 [0019] 1 BB19 1 [00F..012)-> BB22 (always)
BB21 [0020] 1 BB19 1 [012..013)
BB22 [0021] 2 BB21,BB20 1 [013..020) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
Spilling stack entries into temps
[000265] -A---------- * ASG int
[000264] D------N---- +--* LCL_VAR int V26 tmp19
[000259] ------------ \--* ADD int
[000257] ------------ +--* MUL int
[000256] ------------ | +--* SUB int
[000034] ------------ | | +--* LCL_VAR ubyte V02 arg2
[000255] ------------ | | \--* LCL_VAR int V25 tmp18
[000132] ------------ | \--* LCL_VAR ubyte V04 arg4
[000258] ------------ \--* CNS_INT int 128
[000263] ------------ * JTRUE void
[000262] ------------ \--* GT int
[000260] ------------ +--* LCL_VAR int V25 tmp18
[000261] ------------ \--* LCL_VAR ubyte V02 arg2
impImportBlockPending for BB20
impImportBlockPending for BB21
Importing BB21 (PC=018) of 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
[ 1] 18 (0x012) ldc.i4.1 1
*************** In impGetSpillTmpBase(BB21)
lvaGrabTemps(2) returning 27..28 (long lifetime temps) called for IL Stack Entries
Spilling stack entries into temps
[000271] -A---------- * ASG int
[000270] D------N---- +--* LCL_VAR int V27 tmp20
[000268] ------------ \--* LCL_VAR int V26 tmp19
[000274] -A---------- * ASG int
[000273] D------N---- +--* LCL_VAR int V28 tmp21
[000269] ------------ \--* CNS_INT int 1
impImportBlockPending for BB22
Importing BB22 (PC=019) of 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
[ 2] 19 (0x013) sub
[ 1] 20 (0x014) stloc.0
lvaGrabTemp returning 29 (V29 tmp22) (a long lifetime temp) called for Inline stloc first use temp.
[000280] -A---------- * ASG int
[000279] D------N---- +--* LCL_VAR int V29 tmp22
[000278] ------------ \--* SUB int
[000276] ------------ +--* LCL_VAR int V27 tmp20
[000277] ------------ \--* LCL_VAR int V28 tmp21
[ 0] 21 (0x015) ldarg.1
[ 1] 22 (0x016) ldloc.0
[ 2] 23 (0x017) ldc.i4.8 8
[ 3] 24 (0x018) shr
[ 2] 25 (0x019) ldloc.0
[ 3] 26 (0x01a) add
[ 2] 27 (0x01b) ldc.i4.8 8
[ 3] 28 (0x01c) shr
[ 2] 29 (0x01d) add
[ 1] 30 (0x01e) conv.u1
[ 1] 31 (0x01f) ret
Inlinee Return expression (before normalization) =>
[000290] ------------ * CAST int <- ubyte <- int
[000289] ------------ \--* ADD int
[000281] ------------ +--* LCL_VAR int V25 tmp18
[000288] ------------ \--* RSH int
[000286] ------------ +--* ADD int
[000284] ------------ | +--* RSH int
[000282] ------------ | | +--* LCL_VAR int V29 tmp22
[000283] ------------ | | \--* CNS_INT int 8
[000285] ------------ | \--* LCL_VAR int V29 tmp22
[000287] ------------ \--* CNS_INT int 8
Inlinee Return expression (after normalization) =>
[000290] ------------ * CAST int <- ubyte <- int
[000289] ------------ \--* ADD int
[000281] ------------ +--* LCL_VAR int V25 tmp18
[000288] ------------ \--* RSH int
[000286] ------------ +--* ADD int
[000284] ------------ | +--* RSH int
[000282] ------------ | | +--* LCL_VAR int V29 tmp22
[000283] ------------ | | \--* CNS_INT int 8
[000285] ------------ | \--* LCL_VAR int V29 tmp22
[000287] ------------ \--* CNS_INT int 8
Importing BB20 (PC=015) of 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
[ 1] 15 (0x00f) ldc.i4.0 0
[ 2] 16 (0x010) br.s
Spilling stack entries into temps
[000293] -A---------- * ASG int
[000292] D------N---- +--* LCL_VAR int V27 tmp20
[000267] ------------ \--* LCL_VAR int V26 tmp19
[000296] -A---------- * ASG int
[000295] D------N---- +--* LCL_VAR int V28 tmp21
[000291] ------------ \--* CNS_INT int 0
impImportBlockPending for BB22
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000133] -----------
Arguments setup:
[000299] -A-XG------- * ASG ubyte
[000298] D------N---- +--* LCL_VAR ubyte V25 tmp18
[000131] *--XG------- \--* IND ubyte
[000130] ------------ \--* LCL_VAR byref V18 tmp11
Zero init inlinee locals:
[000302] -A---------- * ASG int
[000301] D------N---- +--* LCL_VAR int V29 tmp22
[000300] ------------ \--* CNS_INT int 0
Inlinee method body:New Basic Block BB23 [0022] created.
Convert bbJumpKind of BB22 to BBJ_NONE
fgInlineAppendStatements: no gc ref inline locals.
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB19 [0018] 1 1 [020..021)-> BB21 ( cond ) i
BB20 [0019] 1 0.50 [020..021)-> BB22 (always) i
BB21 [0020] 1 0.50 [020..021) i
BB22 [0021] 2 1 [020..021) i
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB19 [020..021) -> BB21 (cond), preds={} succs={BB20,BB21}
***** BB19, stmt 1
[000265] -A---------- * ASG int
[000264] D------N---- +--* LCL_VAR int V26 tmp19
[000259] ------------ \--* ADD int
[000257] ------------ +--* MUL int
[000256] ------------ | +--* SUB int
[000034] ------------ | | +--* LCL_VAR ubyte V02 arg2
[000255] ------------ | | \--* LCL_VAR int V25 tmp18
[000132] ------------ | \--* LCL_VAR ubyte V04 arg4
[000258] ------------ \--* CNS_INT int 128
***** BB19, stmt 2
[000263] ------------ * JTRUE void
[000262] ------------ \--* GT int
[000260] ------------ +--* LCL_VAR int V25 tmp18
[000261] ------------ \--* LCL_VAR ubyte V02 arg2
------------ BB20 [020..021) -> BB22 (always), preds={} succs={BB22}
***** BB20, stmt 3
[000293] -A---------- * ASG int
[000292] D------N---- +--* LCL_VAR int V27 tmp20
[000267] ------------ \--* LCL_VAR int V26 tmp19
***** BB20, stmt 4
[000296] -A---------- * ASG int
[000295] D------N---- +--* LCL_VAR int V28 tmp21
[000291] ------------ \--* CNS_INT int 0
------------ BB21 [020..021), preds={} succs={BB22}
***** BB21, stmt 5
[000271] -A---------- * ASG int
[000270] D------N---- +--* LCL_VAR int V27 tmp20
[000268] ------------ \--* LCL_VAR int V26 tmp19
***** BB21, stmt 6
[000274] -A---------- * ASG int
[000273] D------N---- +--* LCL_VAR int V28 tmp21
[000269] ------------ \--* CNS_INT int 1
------------ BB22 [020..021), preds={} succs={BB23}
***** BB22, stmt 7
[000280] -A---------- * ASG int
[000279] D------N---- +--* LCL_VAR int V29 tmp22
[000278] ------------ \--* SUB int
[000276] ------------ +--* LCL_VAR int V27 tmp20
[000277] ------------ \--* LCL_VAR int V28 tmp21
-------------------------------------------------------------------------------------------------------------------
Return expression for call at [000133] is
[000290] ------------ * CAST int <- ubyte <- int
[000289] ------------ \--* ADD int
[000281] ------------ +--* LCL_VAR int V25 tmp18
[000288] ------------ \--* RSH int
[000286] ------------ +--* ADD int
[000284] ------------ | +--* RSH int
[000282] ------------ | | +--* LCL_VAR int V29 tmp22
[000283] ------------ | | \--* CNS_INT int 8
[000285] ------------ | \--* LCL_VAR int V29 tmp22
[000287] ------------ \--* CNS_INT int 8
Successfully inlined Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this (32 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000134] with [000290]
[000134] --C--------- * RET_EXPR int (inl return from call [000290])
Inserting the inline return expression
[000290] ------------ * CAST int <- ubyte <- int
[000289] ------------ \--* ADD int
[000281] ------------ +--* LCL_VAR int V25 tmp18
[000288] ------------ \--* RSH int
[000286] ------------ +--* ADD int
[000284] ------------ | +--* RSH int
[000282] ------------ | | +--* LCL_VAR int V29 tmp22
[000283] ------------ | | \--* CNS_INT int 8
[000285] ------------ | \--* LCL_VAR int V29 tmp22
[000287] ------------ \--* CNS_INT int 8
Expanding INLINE_CANDIDATE in statement [000143] in BB23:
[000143] I-CXG------- * CALL int Rgba8.Lerp (exactContextHnd=0x00000000D1FFAB1E)
[000139] ------------ this in rcx +--* ADDR byref
[000138] ------------ | \--* LCL_VAR struct V15 tmp8
[000141] *--XG------- arg1 +--* IND ubyte
[000140] ------------ | \--* LCL_VAR byref V19 tmp12
[000035] ------------ arg2 +--* LCL_VAR ubyte V03 arg3
[000142] ------------ arg3 \--* LCL_VAR ubyte V04 arg4
thisArg: is a constant is byref to a struct local
[000139] ------------ * ADDR byref
[000138] ------------ \--* LCL_VAR struct V15 tmp8
Argument #1: has global refs has side effects
[000141] *--XG------- * IND ubyte
[000140] ------------ \--* LCL_VAR byref V19 tmp12
Argument #2: is a local var
[000035] ------------ * LCL_VAR ubyte V03 arg3
Argument #3: is a local var
[000142] ------------ * LCL_VAR ubyte V04 arg4
INLINER: inlineInfo.tokenLookupContextHandle for Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this :
IL to import:
IL_0000 04 ldarg.2
IL_0001 03 ldarg.1
IL_0002 59 sub
IL_0003 05 ldarg.3
IL_0004 5a mul
IL_0005 20 80 00 00 00 ldc.i4 0x80
IL_000a 58 add
IL_000b 03 ldarg.1
IL_000c 04 ldarg.2
IL_000d 30 03 bgt.s 3 (IL_0012)
IL_000f 16 ldc.i4.0
IL_0010 2b 01 br.s 1 (IL_0013)
IL_0012 17 ldc.i4.1
IL_0013 59 sub
IL_0014 0a stloc.0
IL_0015 03 ldarg.1
IL_0016 06 ldloc.0
IL_0017 1e ldc.i4.8
IL_0018 63 shr
IL_0019 06 ldloc.0
IL_001a 58 add
IL_001b 1e ldc.i4.8
IL_001c 63 shr
IL_001d 58 add
IL_001e d2 conv.u1
IL_001f 2a ret
INLINER impTokenLookupContextHandle for Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this
Jump targets:
IL_0012
IL_0013
New Basic Block BB24 [0023] created.
BB24 [000..00F)
New Basic Block BB25 [0024] created.
BB25 [00F..012)
New Basic Block BB26 [0025] created.
BB26 [012..013)
New Basic Block BB27 [0026] created.
BB27 [013..020)
Basic block list for 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB24 [0023] 1 1 [000..00F)-> BB26 ( cond )
BB25 [0024] 1 1 [00F..012)-> BB27 (always)
BB26 [0025] 1 1 [012..013)
BB27 [0026] 2 1 [013..020) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this
impImportBlockPending for BB24
Importing BB24 (PC=000) of 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
[ 0] 0 (0x000) ldarg.2
[ 1] 1 (0x001) ldarg.1
lvaGrabTemp returning 30 (V30 tmp23) called for Inlining Arg.
[ 2] 2 (0x002) sub
[ 1] 3 (0x003) ldarg.3
[ 2] 4 (0x004) mul
[ 1] 5 (0x005) ldc.i4 128
[ 2] 10 (0x00a) add
[ 1] 11 (0x00b) ldarg.1
[ 2] 12 (0x00c) ldarg.2
[ 3] 13 (0x00d) bgt.s
[000312] ------------ * JTRUE void
[000311] ------------ \--* GT int
[000309] ------------ +--* LCL_VAR int V30 tmp23
[000310] ------------ \--* LCL_VAR ubyte V03 arg3
*************** In impGetSpillTmpBase(BB24)
lvaGrabTemps(1) returning 31..31 (long lifetime temps) called for IL Stack Entries
*************** In fgComputeCheapPreds()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB24 [0023] 1 1 [000..00F)-> BB26 ( cond )
BB25 [0024] 1 1 [00F..012)-> BB27 (always)
BB26 [0025] 1 1 [012..013)
BB27 [0026] 2 1 [013..020) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** After fgComputeCheapPreds()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd cheap preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB24 [0023] 1 1 [000..00F)-> BB26 ( cond )
BB25 [0024] 1 BB24 1 [00F..012)-> BB27 (always)
BB26 [0025] 1 BB24 1 [012..013)
BB27 [0026] 2 BB26,BB25 1 [013..020) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
Spilling stack entries into temps
[000314] -A---------- * ASG int
[000313] D------N---- +--* LCL_VAR int V31 tmp24
[000308] ------------ \--* ADD int
[000306] ------------ +--* MUL int
[000305] ------------ | +--* SUB int
[000035] ------------ | | +--* LCL_VAR ubyte V03 arg3
[000304] ------------ | | \--* LCL_VAR int V30 tmp23
[000142] ------------ | \--* LCL_VAR ubyte V04 arg4
[000307] ------------ \--* CNS_INT int 128
[000312] ------------ * JTRUE void
[000311] ------------ \--* GT int
[000309] ------------ +--* LCL_VAR int V30 tmp23
[000310] ------------ \--* LCL_VAR ubyte V03 arg3
impImportBlockPending for BB25
impImportBlockPending for BB26
Importing BB26 (PC=018) of 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
[ 1] 18 (0x012) ldc.i4.1 1
*************** In impGetSpillTmpBase(BB26)
lvaGrabTemps(2) returning 32..33 (long lifetime temps) called for IL Stack Entries
Spilling stack entries into temps
[000320] -A---------- * ASG int
[000319] D------N---- +--* LCL_VAR int V32 tmp25
[000317] ------------ \--* LCL_VAR int V31 tmp24
[000323] -A---------- * ASG int
[000322] D------N---- +--* LCL_VAR int V33 tmp26
[000318] ------------ \--* CNS_INT int 1
impImportBlockPending for BB27
Importing BB27 (PC=019) of 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
[ 2] 19 (0x013) sub
[ 1] 20 (0x014) stloc.0
lvaGrabTemp returning 34 (V34 tmp27) (a long lifetime temp) called for Inline stloc first use temp.
[000329] -A---------- * ASG int
[000328] D------N---- +--* LCL_VAR int V34 tmp27
[000327] ------------ \--* SUB int
[000325] ------------ +--* LCL_VAR int V32 tmp25
[000326] ------------ \--* LCL_VAR int V33 tmp26
[ 0] 21 (0x015) ldarg.1
[ 1] 22 (0x016) ldloc.0
[ 2] 23 (0x017) ldc.i4.8 8
[ 3] 24 (0x018) shr
[ 2] 25 (0x019) ldloc.0
[ 3] 26 (0x01a) add
[ 2] 27 (0x01b) ldc.i4.8 8
[ 3] 28 (0x01c) shr
[ 2] 29 (0x01d) add
[ 1] 30 (0x01e) conv.u1
[ 1] 31 (0x01f) ret
Inlinee Return expression (before normalization) =>
[000339] ------------ * CAST int <- ubyte <- int
[000338] ------------ \--* ADD int
[000330] ------------ +--* LCL_VAR int V30 tmp23
[000337] ------------ \--* RSH int
[000335] ------------ +--* ADD int
[000333] ------------ | +--* RSH int
[000331] ------------ | | +--* LCL_VAR int V34 tmp27
[000332] ------------ | | \--* CNS_INT int 8
[000334] ------------ | \--* LCL_VAR int V34 tmp27
[000336] ------------ \--* CNS_INT int 8
Inlinee Return expression (after normalization) =>
[000339] ------------ * CAST int <- ubyte <- int
[000338] ------------ \--* ADD int
[000330] ------------ +--* LCL_VAR int V30 tmp23
[000337] ------------ \--* RSH int
[000335] ------------ +--* ADD int
[000333] ------------ | +--* RSH int
[000331] ------------ | | +--* LCL_VAR int V34 tmp27
[000332] ------------ | | \--* CNS_INT int 8
[000334] ------------ | \--* LCL_VAR int V34 tmp27
[000336] ------------ \--* CNS_INT int 8
Importing BB25 (PC=015) of 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
[ 1] 15 (0x00f) ldc.i4.0 0
[ 2] 16 (0x010) br.s
Spilling stack entries into temps
[000342] -A---------- * ASG int
[000341] D------N---- +--* LCL_VAR int V32 tmp25
[000316] ------------ \--* LCL_VAR int V31 tmp24
[000345] -A---------- * ASG int
[000344] D------N---- +--* LCL_VAR int V33 tmp26
[000340] ------------ \--* CNS_INT int 0
impImportBlockPending for BB27
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000143] -----------
Arguments setup:
[000348] -A-XG------- * ASG ubyte
[000347] D------N---- +--* LCL_VAR ubyte V30 tmp23
[000141] *--XG------- \--* IND ubyte
[000140] ------------ \--* LCL_VAR byref V19 tmp12
Zero init inlinee locals:
[000351] -A---------- * ASG int
[000350] D------N---- +--* LCL_VAR int V34 tmp27
[000349] ------------ \--* CNS_INT int 0
Inlinee method body:New Basic Block BB28 [0027] created.
Convert bbJumpKind of BB27 to BBJ_NONE
fgInlineAppendStatements: no gc ref inline locals.
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB24 [0023] 1 1 [020..021)-> BB26 ( cond ) i
BB25 [0024] 1 0.50 [020..021)-> BB27 (always) i
BB26 [0025] 1 0.50 [020..021) i
BB27 [0026] 2 1 [020..021) i
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB24 [020..021) -> BB26 (cond), preds={} succs={BB25,BB26}
***** BB24, stmt 1
[000314] -A---------- * ASG int
[000313] D------N---- +--* LCL_VAR int V31 tmp24
[000308] ------------ \--* ADD int
[000306] ------------ +--* MUL int
[000305] ------------ | +--* SUB int
[000035] ------------ | | +--* LCL_VAR ubyte V03 arg3
[000304] ------------ | | \--* LCL_VAR int V30 tmp23
[000142] ------------ | \--* LCL_VAR ubyte V04 arg4
[000307] ------------ \--* CNS_INT int 128
***** BB24, stmt 2
[000312] ------------ * JTRUE void
[000311] ------------ \--* GT int
[000309] ------------ +--* LCL_VAR int V30 tmp23
[000310] ------------ \--* LCL_VAR ubyte V03 arg3
------------ BB25 [020..021) -> BB27 (always), preds={} succs={BB27}
***** BB25, stmt 3
[000342] -A---------- * ASG int
[000341] D------N---- +--* LCL_VAR int V32 tmp25
[000316] ------------ \--* LCL_VAR int V31 tmp24
***** BB25, stmt 4
[000345] -A---------- * ASG int
[000344] D------N---- +--* LCL_VAR int V33 tmp26
[000340] ------------ \--* CNS_INT int 0
------------ BB26 [020..021), preds={} succs={BB27}
***** BB26, stmt 5
[000320] -A---------- * ASG int
[000319] D------N---- +--* LCL_VAR int V32 tmp25
[000317] ------------ \--* LCL_VAR int V31 tmp24
***** BB26, stmt 6
[000323] -A---------- * ASG int
[000322] D------N---- +--* LCL_VAR int V33 tmp26
[000318] ------------ \--* CNS_INT int 1
------------ BB27 [020..021), preds={} succs={BB28}
***** BB27, stmt 7
[000329] -A---------- * ASG int
[000328] D------N---- +--* LCL_VAR int V34 tmp27
[000327] ------------ \--* SUB int
[000325] ------------ +--* LCL_VAR int V32 tmp25
[000326] ------------ \--* LCL_VAR int V33 tmp26
-------------------------------------------------------------------------------------------------------------------
Return expression for call at [000143] is
[000339] ------------ * CAST int <- ubyte <- int
[000338] ------------ \--* ADD int
[000330] ------------ +--* LCL_VAR int V30 tmp23
[000337] ------------ \--* RSH int
[000335] ------------ +--* ADD int
[000333] ------------ | +--* RSH int
[000331] ------------ | | +--* LCL_VAR int V34 tmp27
[000332] ------------ | | \--* CNS_INT int 8
[000334] ------------ | \--* LCL_VAR int V34 tmp27
[000336] ------------ \--* CNS_INT int 8
Successfully inlined Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this (32 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000144] with [000339]
[000144] --C--------- * RET_EXPR int (inl return from call [000339])
Inserting the inline return expression
[000339] ------------ * CAST int <- ubyte <- int
[000338] ------------ \--* ADD int
[000330] ------------ +--* LCL_VAR int V30 tmp23
[000337] ------------ \--* RSH int
[000335] ------------ +--* ADD int
[000333] ------------ | +--* RSH int
[000331] ------------ | | +--* LCL_VAR int V34 tmp27
[000332] ------------ | | \--* CNS_INT int 8
[000334] ------------ | \--* LCL_VAR int V34 tmp27
[000336] ------------ \--* CNS_INT int 8
Expanding INLINE_CANDIDATE in statement [000046] in BB28:
[000046] I-C-G------- * CALL void BlenderClassFromInterface`2..ctor (exactContextHnd=0x00000000D1FFAB1E)
[000045] ------------ this in rcx \--* LCL_VAR ref V10 tmp3
thisArg: is a local var
[000045] ------------ * LCL_VAR ref V10 tmp3
INLINER: inlineInfo.tokenLookupContextHandle for BlenderClassFromInterface`2:.ctor():this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method BlenderClassFromInterface`2:.ctor():this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 28 12 00 00 0a call 0xA000012
IL_0006 2a ret
INLINER impTokenLookupContextHandle for BlenderClassFromInterface`2:.ctor():this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for BlenderClassFromInterface`2:.ctor():this
Jump targets:
none
New Basic Block BB29 [0028] created.
BB29 [000..007)
Basic block list for 'BlenderClassFromInterface`2:.ctor():this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB29 [0028] 1 1 [000..007) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for BlenderClassFromInterface`2:.ctor():this
impImportBlockPending for BB29
Importing BB29 (PC=000) of 'BlenderClassFromInterface`2:.ctor():this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) call 0A000012
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
[000353] I-C-G------- * CALL void Object..ctor (exactContextHnd=0x00000000D1FFAB1E)
[000045] ------------ this in rcx \--* LCL_VAR ref V10 tmp3
[ 0] 6 (0x006) ret
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000046] -----------
Arguments setup:
Inlinee method body:
[000353] I-C-G------- * CALL void Object..ctor (exactContextHnd=0x00000000D1FFAB1E)
[000045] ------------ this in rcx \--* LCL_VAR ref V10 tmp3
fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined BlenderClassFromInterface`2:.ctor():this (7 IL bytes) (depth 1) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'BlenderClassFromInterface`2:.ctor():this'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement [000353] in BB28:
[000353] I-C-G------- * CALL void Object..ctor (exactContextHnd=0x00000000D1FFAB1E)
[000045] ------------ this in rcx \--* LCL_VAR ref V10 tmp3
thisArg: is a local var
[000045] ------------ * LCL_VAR ref V10 tmp3
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 BB30 [0029] created.
BB30 [000..001)
Basic block list for 'Object:.ctor():this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB30 [0029] 1 1 [000..001) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Object:.ctor():this
impImportBlockPending for BB30
Importing BB30 (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 [000353] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined Object:.ctor():this (1 IL bytes) (depth 2) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'Object:.ctor():this'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement [000054] in BB28:
[000054] I-C-G------- * CALL void Test1.TestMethod2Impl (exactContextHnd=0x00000000D1FFAB1E)
[000047] ------------ arg0 +--* LCL_VAR ref V10 tmp3
[000056] n----------- arg1 +--* OBJ(8) struct
[000055] ------------ | \--* ADDR byref
[000048] ------------ | \--* LCL_VAR struct V00 arg0
[000049] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000050] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000051] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000052] ------------ arg5 +--* LCL_VAR ubyte V04 arg4
[000053] ------------ arg6 \--* LCL_VAR ubyte V05 arg5
Note: candidate is implicit tail call
Argument #0: is a local var
[000047] ------------ * LCL_VAR ref V10 tmp3
Argument #1:
[000056] n----------- * OBJ(8) struct
[000055] ------------ \--* ADDR byref
[000048] ------------ \--* LCL_VAR struct V00 arg0
Argument #2: is a local var
[000049] ------------ * LCL_VAR ubyte V01 arg1
Argument #3: is a local var
[000050] ------------ * LCL_VAR ubyte V02 arg2
Argument #4: is a local var
[000051] ------------ * LCL_VAR ubyte V03 arg3
Argument #5: is a local var
[000052] ------------ * LCL_VAR ubyte V04 arg4
Argument #6: is a local var
[000053] ------------ * LCL_VAR ubyte V05 arg5
INLINER: inlineInfo.tokenLookupContextHandle for Test1:TestMethod2Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte) set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method Test1:TestMethod2Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte) :
IL to import:
IL_0000 02 ldarg.0
IL_0001 03 ldarg.1
IL_0002 04 ldarg.2
IL_0003 05 ldarg.3
IL_0004 0e 04 ldarg.s 0x4
IL_0006 0e 05 ldarg.s 0x5
IL_0008 6f 1b 00 00 0a callvirt 0xA00001B
IL_000d 2a ret
INLINER impTokenLookupContextHandle for Test1:TestMethod2Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte) is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for Test1:TestMethod2Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte)
Jump targets:
none
New Basic Block BB31 [0030] created.
BB31 [000..00E)
Basic block list for 'Test1:TestMethod2Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB31 [0030] 1 1 [000..00E) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Test1:TestMethod2Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte)
impImportBlockPending for BB31
Importing BB31 (PC=000) of 'Test1:TestMethod2Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldarg.1
lvaGrabTemp returning 35 (V35 tmp28) called for Inlining Arg.
[ 2] 2 (0x002) ldarg.2
[ 3] 3 (0x003) ldarg.3
[ 4] 4 (0x004) ldarg.s 4
[ 5] 6 (0x006) ldarg.s 5
[ 6] 8 (0x008) callvirt 0A00001B (Inline Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT)
In Compiler::impImportCall: opcode is callvirt, kind=2, callRetType is void, structSize is 0
Calling impNormStructVal on:
[000356] ------------ * LCL_VAR struct V35 tmp28
resulting tree:
[000359] n----------- * OBJ(8) struct
[000358] ------------ \--* ADDR byref
[000356] ------------ \--* LCL_VAR struct V35 tmp28
impDevirtualizeCall: Trying to devirtualize interface call:
class for 'this' is BlenderClassFromInterface`2 [exact] (attrib 20000010)
base method is IBlender`1::Blend
--- base class is interface
devirt to BlenderClassFromInterface`2::Blend -- exact
[000357] --C-G------- * CALLV stub void IBlender`1.Blend
[000047] ------------ this in rcx +--* LCL_VAR ref V10 tmp3
[000359] n----------- arg1 +--* OBJ(8) struct
[000358] ------------ | \--* ADDR byref
[000356] ------------ | \--* LCL_VAR struct V35 tmp28
[000049] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000050] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000051] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000052] ------------ arg5 \--* LCL_VAR ubyte V04 arg4
exact; can devirtualize
... after devirt...
[000357] --C-G------- * CALL nullcheck void BlenderClassFromInterface`2.Blend
[000047] ------------ this in rcx +--* LCL_VAR ref V10 tmp3
[000359] n----------- arg1 +--* OBJ(8) struct
[000358] ------------ | \--* ADDR byref
[000356] ------------ | \--* LCL_VAR struct V35 tmp28
[000049] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000050] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000051] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000052] ------------ arg5 \--* LCL_VAR ubyte V04 arg4
GTF_CALL_M_IMPLICIT_TAILCALL bit set for call [000357]
[000357] I-C-G------- * CALL nullcheck void BlenderClassFromInterface`2.Blend (exactContextHnd=0x00000000D1FFAB1E)
[000047] ------------ this in rcx +--* LCL_VAR ref V10 tmp3
[000359] n----------- arg1 +--* OBJ(8) struct
[000358] ------------ | \--* ADDR byref
[000356] ------------ | \--* LCL_VAR struct V35 tmp28
[000049] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000050] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000051] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000052] ------------ arg5 \--* LCL_VAR ubyte V04 arg4
[ 0] 13 (0x00d) ret
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000054] -----------
Arguments setup:
[000362] -A---------- * ASG struct (copy)
[000360] D----------- +--* LCL_VAR struct V35 tmp28
[000056] n----------- \--* OBJ(8) struct
[000055] ------------ \--* ADDR byref
[000048] ------------ \--* LCL_VAR struct V00 arg0
Inlinee method body:
[000357] I-C-G------- * CALL nullcheck void BlenderClassFromInterface`2.Blend (exactContextHnd=0x00000000D1FFAB1E)
[000047] ------------ this in rcx +--* LCL_VAR ref V10 tmp3
[000359] n----------- arg1 +--* OBJ(8) struct
[000358] ------------ | \--* ADDR byref
[000356] ------------ | \--* LCL_VAR struct V35 tmp28
[000049] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000050] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000051] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000052] ------------ arg5 \--* LCL_VAR ubyte V04 arg4
fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined Test1:TestMethod2Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte) (14 IL bytes) (depth 1) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'Test1:TestMethod2Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement [000357] in BB28:
[000357] I-C-G------- * CALL nullcheck void BlenderClassFromInterface`2.Blend (exactContextHnd=0x00000000D1FFAB1E)
[000047] ------------ this in rcx +--* LCL_VAR ref V10 tmp3
[000359] n----------- arg1 +--* OBJ(8) struct
[000358] ------------ | \--* ADDR byref
[000356] ------------ | \--* LCL_VAR struct V35 tmp28
[000049] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000050] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000051] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000052] ------------ arg5 \--* LCL_VAR ubyte V04 arg4
Note: candidate is implicit tail call
thisArg: is a local var
[000047] ------------ * LCL_VAR ref V10 tmp3
Argument #1:
[000359] n----------- * OBJ(8) struct
[000358] ------------ \--* ADDR byref
[000356] ------------ \--* LCL_VAR struct V35 tmp28
Argument #2: is a local var
[000049] ------------ * LCL_VAR ubyte V01 arg1
Argument #3: is a local var
[000050] ------------ * LCL_VAR ubyte V02 arg2
Argument #4: is a local var
[000051] ------------ * LCL_VAR ubyte V03 arg3
Argument #5: is a local var
[000052] ------------ * LCL_VAR ubyte V04 arg4
INLINER: inlineInfo.tokenLookupContextHandle for BlenderClassFromInterface`2:Blend(struct,ubyte,ubyte,ubyte,ubyte):this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method BlenderClassFromInterface`2:Blend(struct,ubyte,ubyte,ubyte,ubyte):this :
IL to import:
IL_0000 12 00 ldloca.s 0x0
IL_0002 fe 15 12 00 00 02 initobj 0x2000012
IL_0008 12 01 ldloca.s 0x1
IL_000a fe 15 10 00 00 1b initobj 0x1B000010
IL_0010 0f 01 ldarga.s 0x1
IL_0012 12 00 ldloca.s 0x0
IL_0014 28 23 00 00 06 call 0x6000023
IL_0019 28 28 00 00 0a call 0xA000028
IL_001e 0c stloc.2
IL_001f 0f 01 ldarga.s 0x1
IL_0021 12 00 ldloca.s 0x0
IL_0023 28 24 00 00 06 call 0x6000024
IL_0028 28 28 00 00 0a call 0xA000028
IL_002d 0d stloc.3
IL_002e 0f 01 ldarga.s 0x1
IL_0030 12 00 ldloca.s 0x0
IL_0032 28 25 00 00 06 call 0x6000025
IL_0037 28 28 00 00 0a call 0xA000028
IL_003c 13 04 stloc.s 0x4
IL_003e 08 ldloc.2
IL_003f 12 01 ldloca.s 0x1
IL_0041 08 ldloc.2
IL_0042 71 12 00 00 1b ldobj 0x1B000012
IL_0047 04 ldarg.2
IL_0048 0e 05 ldarg.s 0x5
IL_004a fe 16 10 00 00 1b constrained. 0x1B000010
IL_0050 6f 29 00 00 0a callvirt 0xA000029
IL_0055 81 12 00 00 1b stobj 0x1B000012
IL_005a 09 ldloc.3
IL_005b 12 01 ldloca.s 0x1
IL_005d 09 ldloc.3
IL_005e 71 12 00 00 1b ldobj 0x1B000012
IL_0063 05 ldarg.3
IL_0064 0e 05 ldarg.s 0x5
IL_0066 fe 16 10 00 00 1b constrained. 0x1B000010
IL_006c 6f 29 00 00 0a callvirt 0xA000029
IL_0071 81 12 00 00 1b stobj 0x1B000012
IL_0076 11 04 ldloc.s 0x4
IL_0078 12 01 ldloca.s 0x1
IL_007a 11 04 ldloc.s 0x4
IL_007c 71 12 00 00 1b ldobj 0x1B000012
IL_0081 0e 04 ldarg.s 0x4
IL_0083 0e 05 ldarg.s 0x5
IL_0085 fe 16 10 00 00 1b constrained. 0x1B000010
IL_008b 6f 29 00 00 0a callvirt 0xA000029
IL_0090 81 12 00 00 1b stobj 0x1B000012
IL_0095 2a ret
INLINER impTokenLookupContextHandle for BlenderClassFromInterface`2:Blend(struct,ubyte,ubyte,ubyte,ubyte):this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for BlenderClassFromInterface`2:Blend(struct,ubyte,ubyte,ubyte,ubyte):this
Jump targets:
none
New Basic Block BB32 [0031] created.
BB32 [000..096)
Basic block list for 'BlenderClassFromInterface`2:Blend(struct,ubyte,ubyte,ubyte,ubyte):this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB32 [0031] 1 1 [000..096) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for BlenderClassFromInterface`2:Blend(struct,ubyte,ubyte,ubyte,ubyte):this
impImportBlockPending for BB32
Importing BB32 (PC=000) of 'BlenderClassFromInterface`2:Blend(struct,ubyte,ubyte,ubyte,ubyte):this'
[ 0] 0 (0x000) ldloca.s 0
lvaGrabTemp returning 36 (V36 tmp29) (a long lifetime temp) called for Inline ldloca(s) first use temp.
[ 1] 2 (0x002) initobj 02000012
[000367] IA---------- * ASG struct (init)
[000364] D------N---- +--* LCL_VAR struct V36 tmp29
[000366] ------------ \--* CNS_INT int 0
[ 0] 8 (0x008) ldloca.s 1
lvaGrabTemp returning 37 (V37 tmp30) (a long lifetime temp) called for Inline ldloca(s) first use temp.
[ 1] 10 (0x00a) initobj 1B000010
[000371] IA---------- * ASG struct (init)
[000368] D------N---- +--* LCL_VAR struct V37 tmp30
[000370] ------------ \--* CNS_INT int 0
[ 0] 16 (0x010) ldarga.s 1
lvaGrabTemp returning 38 (V38 tmp31) called for Inlining Arg.
[ 1] 18 (0x012) ldloca.s 0
[ 2] 20 (0x014) call 06000023
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
[000376] I-C-G------- * CALL int OrderBgra.get_R (exactContextHnd=0x00000000D1FFAB1E)
[000375] ------------ this in rcx \--* ADDR byref
[000374] ------------ \--* LCL_VAR struct V36 tmp29
[ 2] 25 (0x019) call 0A000028
In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0
[000378] I-C-G------- * CALL byref PodPtr`1.get_Item (exactContextHnd=0x00000000D1FFAB1E)
[000373] ------------ this in rcx +--* ADDR byref
[000372] ------------ | \--* LCL_VAR struct V38 tmp31
[000377] --C--------- arg1 \--* RET_EXPR int (inl return from call [000376])
[ 1] 30 (0x01e) stloc.2
lvaGrabTemp returning 39 (V39 tmp32) (a long lifetime temp) called for Inline stloc first use temp.
[000381] -AC--------- * ASG byref
[000380] D------N---- +--* LCL_VAR byref V39 tmp32
[000379] --C--------- \--* RET_EXPR byref (inl return from call [000378])
[ 0] 31 (0x01f) ldarga.s 1
[ 1] 33 (0x021) ldloca.s 0
[ 2] 35 (0x023) call 06000024
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
[000386] I-C-G------- * CALL int OrderBgra.get_G (exactContextHnd=0x00000000D1FFAB1E)
[000385] ------------ this in rcx \--* ADDR byref
[000384] ------------ \--* LCL_VAR struct V36 tmp29
[ 2] 40 (0x028) call 0A000028
In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0
[000388] I-C-G------- * CALL byref PodPtr`1.get_Item (exactContextHnd=0x00000000D1FFAB1E)
[000383] ------------ this in rcx +--* ADDR byref
[000382] ------------ | \--* LCL_VAR struct V38 tmp31
[000387] --C--------- arg1 \--* RET_EXPR int (inl return from call [000386])
[ 1] 45 (0x02d) stloc.3
lvaGrabTemp returning 40 (V40 tmp33) (a long lifetime temp) called for Inline stloc first use temp.
[000391] -AC--------- * ASG byref
[000390] D------N---- +--* LCL_VAR byref V40 tmp33
[000389] --C--------- \--* RET_EXPR byref (inl return from call [000388])
[ 0] 46 (0x02e) ldarga.s 1
[ 1] 48 (0x030) ldloca.s 0
[ 2] 50 (0x032) call 06000025
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
[000396] I-C-G------- * CALL int OrderBgra.get_B (exactContextHnd=0x00000000D1FFAB1E)
[000395] ------------ this in rcx \--* ADDR byref
[000394] ------------ \--* LCL_VAR struct V36 tmp29
[ 2] 55 (0x037) call 0A000028
In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0
[000398] I-C-G------- * CALL byref PodPtr`1.get_Item (exactContextHnd=0x00000000D1FFAB1E)
[000393] ------------ this in rcx +--* ADDR byref
[000392] ------------ | \--* LCL_VAR struct V38 tmp31
[000397] --C--------- arg1 \--* RET_EXPR int (inl return from call [000396])
[ 1] 60 (0x03c) stloc.s 4
lvaGrabTemp returning 41 (V41 tmp34) (a long lifetime temp) called for Inline stloc first use temp.
[000401] -AC--------- * ASG byref
[000400] D------N---- +--* LCL_VAR byref V41 tmp34
[000399] --C--------- \--* RET_EXPR byref (inl return from call [000398])
[ 0] 62 (0x03e) ldloc.2
[ 1] 63 (0x03f) ldloca.s 1
[ 2] 65 (0x041) ldloc.2
[ 3] 66 (0x042) ldobj 1B000012
[ 3] 71 (0x047) ldarg.2
[ 4] 72 (0x048) ldarg.s 5
[ 5] 74 (0x04a) constrained. (1B000010) callvirt 0A000029
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is ubyte, structSize is 0
[000407] I-CXG------- * CALL int Rgba8.Lerp (exactContextHnd=0x00000000D1FFAB1E)
[000404] ------------ this in rcx +--* ADDR byref
[000403] ------------ | \--* LCL_VAR struct V37 tmp30
[000406] *--XG------- arg1 +--* IND ubyte
[000405] ------------ | \--* LCL_VAR byref V39 tmp32
[000049] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000052] ------------ arg3 \--* LCL_VAR ubyte V04 arg4
[ 2] 85 (0x055) stobj 1B000012
[000410] -ACXG------- * ASG ubyte
[000409] *------N---- +--* IND ubyte
[000402] ------------ | \--* LCL_VAR byref V39 tmp32
[000408] --C--------- \--* RET_EXPR int (inl return from call [000407])
[ 0] 90 (0x05a) ldloc.3
[ 1] 91 (0x05b) ldloca.s 1
[ 2] 93 (0x05d) ldloc.3
[ 3] 94 (0x05e) ldobj 1B000012
[ 3] 99 (0x063) ldarg.3
[ 4] 100 (0x064) ldarg.s 5
[ 5] 102 (0x066) constrained. (1B000010) callvirt 0A000029
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is ubyte, structSize is 0
[000417] I-CXG------- * CALL int Rgba8.Lerp (exactContextHnd=0x00000000D1FFAB1E)
[000413] ------------ this in rcx +--* ADDR byref
[000412] ------------ | \--* LCL_VAR struct V37 tmp30
[000415] *--XG------- arg1 +--* IND ubyte
[000414] ------------ | \--* LCL_VAR byref V40 tmp33
[000050] ------------ arg2 +--* LCL_VAR ubyte V02 arg2
[000416] ------------ arg3 \--* LCL_VAR ubyte V04 arg4
[ 2] 113 (0x071) stobj 1B000012
[000420] -ACXG------- * ASG ubyte
[000419] *------N---- +--* IND ubyte
[000411] ------------ | \--* LCL_VAR byref V40 tmp33
[000418] --C--------- \--* RET_EXPR int (inl return from call [000417])
[ 0] 118 (0x076) ldloc.s 4
[ 1] 120 (0x078) ldloca.s 1
[ 2] 122 (0x07a) ldloc.s 4
[ 3] 124 (0x07c) ldobj 1B000012
[ 3] 129 (0x081) ldarg.s 4
[ 4] 131 (0x083) ldarg.s 5
[ 5] 133 (0x085) constrained. (1B000010) callvirt 0A000029
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is ubyte, structSize is 0
[000427] I-CXG------- * CALL int Rgba8.Lerp (exactContextHnd=0x00000000D1FFAB1E)
[000423] ------------ this in rcx +--* ADDR byref
[000422] ------------ | \--* LCL_VAR struct V37 tmp30
[000425] *--XG------- arg1 +--* IND ubyte
[000424] ------------ | \--* LCL_VAR byref V41 tmp34
[000051] ------------ arg2 +--* LCL_VAR ubyte V03 arg3
[000426] ------------ arg3 \--* LCL_VAR ubyte V04 arg4
[ 2] 144 (0x090) stobj 1B000012
[000430] -ACXG------- * ASG ubyte
[000429] *------N---- +--* IND ubyte
[000421] ------------ | \--* LCL_VAR byref V41 tmp34
[000428] --C--------- \--* RET_EXPR int (inl return from call [000427])
[ 0] 149 (0x095) ret
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000357] -----------
Arguments setup:
[000434] -A---------- * ASG struct (copy)
[000432] D----------- +--* LCL_VAR struct V38 tmp31
[000359] n----------- \--* OBJ(8) struct
[000358] ------------ \--* ADDR byref
[000356] ------------ \--* LCL_VAR struct V35 tmp28
Zero init inlinee locals:
[000431] ---X-------- * IND int
[000047] ------------ \--* LCL_VAR ref V10 tmp3
[000431] ---X-------- * IND int
[000047] ------------ \--* LCL_VAR ref V10 tmp3
[000437] -A---------- * ASG byref
[000436] D------N---- +--* LCL_VAR byref V39 tmp32
[000435] ------------ \--* CNS_INT byref 0
[000440] -A---------- * ASG byref
[000439] D------N---- +--* LCL_VAR byref V40 tmp33
[000438] ------------ \--* CNS_INT byref 0
[000443] -A---------- * ASG byref
[000442] D------N---- +--* LCL_VAR byref V41 tmp34
[000441] ------------ \--* CNS_INT byref 0
Inlinee method body:
[000367] IA---------- * ASG struct (init)
[000364] D------N---- +--* LCL_VAR struct V36 tmp29
[000366] ------------ \--* CNS_INT int 0
[000371] IA---------- * ASG struct (init)
[000368] D------N---- +--* LCL_VAR struct V37 tmp30
[000370] ------------ \--* CNS_INT int 0
[000376] I-C-G------- * CALL int OrderBgra.get_R (exactContextHnd=0x00000000D1FFAB1E)
[000375] ------------ this in rcx \--* ADDR byref
[000374] ------------ \--* LCL_VAR struct V36 tmp29
[000378] I-C-G------- * CALL byref PodPtr`1.get_Item (exactContextHnd=0x00000000D1FFAB1E)
[000373] ------------ this in rcx +--* ADDR byref
[000372] ------------ | \--* LCL_VAR struct V38 tmp31
[000377] --C--------- arg1 \--* RET_EXPR int (inl return from call [000376])
[000381] -AC--------- * ASG byref
[000380] D------N---- +--* LCL_VAR byref V39 tmp32
[000379] --C--------- \--* RET_EXPR byref (inl return from call [000378])
[000386] I-C-G------- * CALL int OrderBgra.get_G (exactContextHnd=0x00000000D1FFAB1E)
[000385] ------------ this in rcx \--* ADDR byref
[000384] ------------ \--* LCL_VAR struct V36 tmp29
[000388] I-C-G------- * CALL byref PodPtr`1.get_Item (exactContextHnd=0x00000000D1FFAB1E)
[000383] ------------ this in rcx +--* ADDR byref
[000382] ------------ | \--* LCL_VAR struct V38 tmp31
[000387] --C--------- arg1 \--* RET_EXPR int (inl return from call [000386])
[000391] -AC--------- * ASG byref
[000390] D------N---- +--* LCL_VAR byref V40 tmp33
[000389] --C--------- \--* RET_EXPR byref (inl return from call [000388])
[000396] I-C-G------- * CALL int OrderBgra.get_B (exactContextHnd=0x00000000D1FFAB1E)
[000395] ------------ this in rcx \--* ADDR byref
[000394] ------------ \--* LCL_VAR struct V36 tmp29
[000398] I-C-G------- * CALL byref PodPtr`1.get_Item (exactContextHnd=0x00000000D1FFAB1E)
[000393] ------------ this in rcx +--* ADDR byref
[000392] ------------ | \--* LCL_VAR struct V38 tmp31
[000397] --C--------- arg1 \--* RET_EXPR int (inl return from call [000396])
[000401] -AC--------- * ASG byref
[000400] D------N---- +--* LCL_VAR byref V41 tmp34
[000399] --C--------- \--* RET_EXPR byref (inl return from call [000398])
[000407] I-CXG------- * CALL int Rgba8.Lerp (exactContextHnd=0x00000000D1FFAB1E)
[000404] ------------ this in rcx +--* ADDR byref
[000403] ------------ | \--* LCL_VAR struct V37 tmp30
[000406] *--XG------- arg1 +--* IND ubyte
[000405] ------------ | \--* LCL_VAR byref V39 tmp32
[000049] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000052] ------------ arg3 \--* LCL_VAR ubyte V04 arg4
[000410] -ACXG------- * ASG ubyte
[000409] *------N---- +--* IND ubyte
[000402] ------------ | \--* LCL_VAR byref V39 tmp32
[000408] --C--------- \--* RET_EXPR int (inl return from call [000407])
[000417] I-CXG------- * CALL int Rgba8.Lerp (exactContextHnd=0x00000000D1FFAB1E)
[000413] ------------ this in rcx +--* ADDR byref
[000412] ------------ | \--* LCL_VAR struct V37 tmp30
[000415] *--XG------- arg1 +--* IND ubyte
[000414] ------------ | \--* LCL_VAR byref V40 tmp33
[000050] ------------ arg2 +--* LCL_VAR ubyte V02 arg2
[000416] ------------ arg3 \--* LCL_VAR ubyte V04 arg4
[000420] -ACXG------- * ASG ubyte
[000419] *------N---- +--* IND ubyte
[000411] ------------ | \--* LCL_VAR byref V40 tmp33
[000418] --C--------- \--* RET_EXPR int (inl return from call [000417])
[000427] I-CXG------- * CALL int Rgba8.Lerp (exactContextHnd=0x00000000D1FFAB1E)
[000423] ------------ this in rcx +--* ADDR byref
[000422] ------------ | \--* LCL_VAR struct V37 tmp30
[000425] *--XG------- arg1 +--* IND ubyte
[000424] ------------ | \--* LCL_VAR byref V41 tmp34
[000051] ------------ arg2 +--* LCL_VAR ubyte V03 arg3
[000426] ------------ arg3 \--* LCL_VAR ubyte V04 arg4
[000430] -ACXG------- * ASG ubyte
[000429] *------N---- +--* IND ubyte
[000421] ------------ | \--* LCL_VAR byref V41 tmp34
[000428] --C--------- \--* RET_EXPR int (inl return from call [000427])
fgInlineAppendStatements: implicit tail call; skipping nulling.
Successfully inlined BlenderClassFromInterface`2:Blend(struct,ubyte,ubyte,ubyte,ubyte):this (150 IL bytes) (depth 2) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'BlenderClassFromInterface`2:Blend(struct,ubyte,ubyte,ubyte,ubyte):this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement [000376] in BB28:
[000376] I-C-G------- * CALL int OrderBgra.get_R (exactContextHnd=0x00000000D1FFAB1E)
[000375] ------------ this in rcx \--* ADDR byref
[000374] ------------ \--* LCL_VAR struct V36 tmp29
thisArg: is a constant is byref to a struct local
[000375] ------------ * ADDR byref
[000374] ------------ \--* LCL_VAR struct V36 tmp29
INLINER: inlineInfo.tokenLookupContextHandle for OrderBgra:get_R():int:this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method OrderBgra:get_R():int:this :
IL to import:
IL_0000 18 ldc.i4.2
IL_0001 2a ret
INLINER impTokenLookupContextHandle for OrderBgra:get_R():int:this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for OrderBgra:get_R():int:this
Jump targets:
none
New Basic Block BB33 [0032] created.
BB33 [000..002)
Basic block list for 'OrderBgra:get_R():int:this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB33 [0032] 1 1 [000..002) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for OrderBgra:get_R():int:this
impImportBlockPending for BB33
Importing BB33 (PC=000) of 'OrderBgra:get_R():int:this'
[ 0] 0 (0x000) ldc.i4.2 2
[ 1] 1 (0x001) ret
Inlinee Return expression (before normalization) =>
[000445] ------------ * CNS_INT int 2
Inlinee Return expression (after normalization) =>
[000445] ------------ * CNS_INT int 2
** 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 [000376] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000376] is
[000445] ------------ * CNS_INT int 2
Successfully inlined OrderBgra:get_R():int:this (2 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'OrderBgra:get_R():int:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement [000378] in BB28:
[000378] I-C-G------- * CALL byref PodPtr`1.get_Item (exactContextHnd=0x00000000D1FFAB1E)
[000373] ------------ this in rcx +--* ADDR byref
[000372] ------------ | \--* LCL_VAR struct V38 tmp31
[000377] --C--------- arg1 \--* RET_EXPR int (inl return from call [000445])
thisArg: is a constant is byref to a struct local
[000373] ------------ * ADDR byref
[000372] ------------ \--* LCL_VAR struct V38 tmp31
Argument #1: is a constant
[000445] ------------ * CNS_INT int 2
INLINER: inlineInfo.tokenLookupContextHandle for PodPtr`1:get_Item(int):byref:this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method PodPtr`1:get_Item(int):byref:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 7b 2b 00 00 0a ldfld 0xA00002B
IL_0006 03 ldarg.1
IL_0007 d3 conv.i
IL_0008 fe 1c 12 00 00 1b sizeof 0x1B000012
IL_000e 5a mul
IL_000f 58 add
IL_0010 2a ret
INLINER impTokenLookupContextHandle for PodPtr`1:get_Item(int):byref:this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for PodPtr`1:get_Item(int):byref:this
Jump targets:
none
New Basic Block BB34 [0033] created.
BB34 [000..011)
Basic block list for 'PodPtr`1:get_Item(int):byref:this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB34 [0033] 1 1 [000..011) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for PodPtr`1:get_Item(int):byref:this
impImportBlockPending for BB34
Importing BB34 (PC=000) of 'PodPtr`1:get_Item(int):byref:this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldfld 0A00002B
[ 1] 6 (0x006) ldarg.1
[ 2] 7 (0x007) conv.i
[ 2] 8 (0x008) sizeof 1B000012
[ 3] 14 (0x00e) mul
[ 2] 15 (0x00f) add
[ 1] 16 (0x010) ret
Inlinee Return expression (before normalization) =>
[000455] ------------ * ADD long
[000449] ------------ +--* FIELD long _pointer
[000447] ------------ | \--* ADDR byref
[000448] ------------ | \--* LCL_VAR struct V38 tmp31
[000454] ------------ \--* MUL long
[000451] ------------ +--* CAST long <- int
[000450] ------------ | \--* CNS_INT int 2
[000453] ------------ \--* CAST long <- int
[000452] ------------ \--* CNS_INT int 1
Allowing return type mismatch: have long, needed byref
Inlinee Return expression (after normalization) =>
[000455] ------------ * ADD long
[000449] ------------ +--* FIELD long _pointer
[000447] ------------ | \--* ADDR byref
[000448] ------------ | \--* LCL_VAR struct V38 tmp31
[000454] ------------ \--* MUL long
[000451] ------------ +--* CAST long <- int
[000450] ------------ | \--* CNS_INT int 2
[000453] ------------ \--* CAST long <- int
[000452] ------------ \--* CNS_INT int 1
** Note: inlinee IL was partially imported -- imported 0 of 17 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000378] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000378] is
[000455] ------------ * ADD long
[000449] ------------ +--* FIELD long _pointer
[000447] ------------ | \--* ADDR byref
[000448] ------------ | \--* LCL_VAR struct V38 tmp31
[000454] ------------ \--* MUL long
[000451] ------------ +--* CAST long <- int
[000450] ------------ | \--* CNS_INT int 2
[000453] ------------ \--* CAST long <- int
[000452] ------------ \--* CNS_INT int 1
Successfully inlined PodPtr`1:get_Item(int):byref:this (17 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'PodPtr`1:get_Item(int):byref:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000379] with [000455]
[000379] --C--------- * RET_EXPR byref (inl return from call [000455])
Inserting the inline return expression
[000455] ------------ * ADD long
[000449] ------------ +--* FIELD long _pointer
[000447] ------------ | \--* ADDR byref
[000448] ------------ | \--* LCL_VAR struct V38 tmp31
[000454] ------------ \--* MUL long
[000451] ------------ +--* CAST long <- int
[000450] ------------ | \--* CNS_INT int 2
[000453] ------------ \--* CAST long <- int
[000452] ------------ \--* CNS_INT int 1
Expanding INLINE_CANDIDATE in statement [000386] in BB28:
[000386] I-C-G------- * CALL int OrderBgra.get_G (exactContextHnd=0x00000000D1FFAB1E)
[000385] ------------ this in rcx \--* ADDR byref
[000384] ------------ \--* LCL_VAR struct V36 tmp29
thisArg: is a constant is byref to a struct local
[000385] ------------ * ADDR byref
[000384] ------------ \--* LCL_VAR struct V36 tmp29
INLINER: inlineInfo.tokenLookupContextHandle for OrderBgra:get_G():int:this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method OrderBgra:get_G():int:this :
IL to import:
IL_0000 17 ldc.i4.1
IL_0001 2a ret
INLINER impTokenLookupContextHandle for OrderBgra:get_G():int:this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for OrderBgra:get_G():int:this
Jump targets:
none
New Basic Block BB35 [0034] created.
BB35 [000..002)
Basic block list for 'OrderBgra:get_G():int:this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB35 [0034] 1 1 [000..002) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for OrderBgra:get_G():int:this
impImportBlockPending for BB35
Importing BB35 (PC=000) of 'OrderBgra:get_G():int:this'
[ 0] 0 (0x000) ldc.i4.1 1
[ 1] 1 (0x001) ret
Inlinee Return expression (before normalization) =>
[000457] ------------ * CNS_INT int 1
Inlinee Return expression (after normalization) =>
[000457] ------------ * CNS_INT int 1
** 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 [000386] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000386] is
[000457] ------------ * CNS_INT int 1
Successfully inlined OrderBgra:get_G():int:this (2 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'OrderBgra:get_G():int:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement [000388] in BB28:
[000388] I-C-G------- * CALL byref PodPtr`1.get_Item (exactContextHnd=0x00000000D1FFAB1E)
[000383] ------------ this in rcx +--* ADDR byref
[000382] ------------ | \--* LCL_VAR struct V38 tmp31
[000387] --C--------- arg1 \--* RET_EXPR int (inl return from call [000457])
thisArg: is a constant is byref to a struct local
[000383] ------------ * ADDR byref
[000382] ------------ \--* LCL_VAR struct V38 tmp31
Argument #1: is a constant
[000457] ------------ * CNS_INT int 1
INLINER: inlineInfo.tokenLookupContextHandle for PodPtr`1:get_Item(int):byref:this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method PodPtr`1:get_Item(int):byref:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 7b 2b 00 00 0a ldfld 0xA00002B
IL_0006 03 ldarg.1
IL_0007 d3 conv.i
IL_0008 fe 1c 12 00 00 1b sizeof 0x1B000012
IL_000e 5a mul
IL_000f 58 add
IL_0010 2a ret
INLINER impTokenLookupContextHandle for PodPtr`1:get_Item(int):byref:this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for PodPtr`1:get_Item(int):byref:this
Jump targets:
none
New Basic Block BB36 [0035] created.
BB36 [000..011)
Basic block list for 'PodPtr`1:get_Item(int):byref:this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB36 [0035] 1 1 [000..011) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for PodPtr`1:get_Item(int):byref:this
impImportBlockPending for BB36
Importing BB36 (PC=000) of 'PodPtr`1:get_Item(int):byref:this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldfld 0A00002B
[ 1] 6 (0x006) ldarg.1
[ 2] 7 (0x007) conv.i
[ 2] 8 (0x008) sizeof 1B000012
[ 3] 14 (0x00e) mul
[ 2] 15 (0x00f) add
[ 1] 16 (0x010) ret
Inlinee Return expression (before normalization) =>
[000467] ------------ * ADD long
[000461] ------------ +--* FIELD long _pointer
[000459] ------------ | \--* ADDR byref
[000460] ------------ | \--* LCL_VAR struct V38 tmp31
[000466] ------------ \--* MUL long
[000463] ------------ +--* CAST long <- int
[000462] ------------ | \--* CNS_INT int 1
[000465] ------------ \--* CAST long <- int
[000464] ------------ \--* CNS_INT int 1
Allowing return type mismatch: have long, needed byref
Inlinee Return expression (after normalization) =>
[000467] ------------ * ADD long
[000461] ------------ +--* FIELD long _pointer
[000459] ------------ | \--* ADDR byref
[000460] ------------ | \--* LCL_VAR struct V38 tmp31
[000466] ------------ \--* MUL long
[000463] ------------ +--* CAST long <- int
[000462] ------------ | \--* CNS_INT int 1
[000465] ------------ \--* CAST long <- int
[000464] ------------ \--* CNS_INT int 1
** Note: inlinee IL was partially imported -- imported 0 of 17 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000388] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000388] is
[000467] ------------ * ADD long
[000461] ------------ +--* FIELD long _pointer
[000459] ------------ | \--* ADDR byref
[000460] ------------ | \--* LCL_VAR struct V38 tmp31
[000466] ------------ \--* MUL long
[000463] ------------ +--* CAST long <- int
[000462] ------------ | \--* CNS_INT int 1
[000465] ------------ \--* CAST long <- int
[000464] ------------ \--* CNS_INT int 1
Successfully inlined PodPtr`1:get_Item(int):byref:this (17 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'PodPtr`1:get_Item(int):byref:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000389] with [000467]
[000389] --C--------- * RET_EXPR byref (inl return from call [000467])
Inserting the inline return expression
[000467] ------------ * ADD long
[000461] ------------ +--* FIELD long _pointer
[000459] ------------ | \--* ADDR byref
[000460] ------------ | \--* LCL_VAR struct V38 tmp31
[000466] ------------ \--* MUL long
[000463] ------------ +--* CAST long <- int
[000462] ------------ | \--* CNS_INT int 1
[000465] ------------ \--* CAST long <- int
[000464] ------------ \--* CNS_INT int 1
Expanding INLINE_CANDIDATE in statement [000396] in BB28:
[000396] I-C-G------- * CALL int OrderBgra.get_B (exactContextHnd=0x00000000D1FFAB1E)
[000395] ------------ this in rcx \--* ADDR byref
[000394] ------------ \--* LCL_VAR struct V36 tmp29
thisArg: is a constant is byref to a struct local
[000395] ------------ * ADDR byref
[000394] ------------ \--* LCL_VAR struct V36 tmp29
INLINER: inlineInfo.tokenLookupContextHandle for OrderBgra:get_B():int:this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method OrderBgra:get_B():int:this :
IL to import:
IL_0000 16 ldc.i4.0
IL_0001 2a ret
INLINER impTokenLookupContextHandle for OrderBgra:get_B():int:this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for OrderBgra:get_B():int:this
Jump targets:
none
New Basic Block BB37 [0036] created.
BB37 [000..002)
Basic block list for 'OrderBgra:get_B():int:this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB37 [0036] 1 1 [000..002) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for OrderBgra:get_B():int:this
impImportBlockPending for BB37
Importing BB37 (PC=000) of 'OrderBgra:get_B():int:this'
[ 0] 0 (0x000) ldc.i4.0 0
[ 1] 1 (0x001) ret
Inlinee Return expression (before normalization) =>
[000469] ------------ * CNS_INT int 0
Inlinee Return expression (after normalization) =>
[000469] ------------ * CNS_INT int 0
** 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 [000396] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000396] is
[000469] ------------ * CNS_INT int 0
Successfully inlined OrderBgra:get_B():int:this (2 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'OrderBgra:get_B():int:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement [000398] in BB28:
[000398] I-C-G------- * CALL byref PodPtr`1.get_Item (exactContextHnd=0x00000000D1FFAB1E)
[000393] ------------ this in rcx +--* ADDR byref
[000392] ------------ | \--* LCL_VAR struct V38 tmp31
[000397] --C--------- arg1 \--* RET_EXPR int (inl return from call [000469])
thisArg: is a constant is byref to a struct local
[000393] ------------ * ADDR byref
[000392] ------------ \--* LCL_VAR struct V38 tmp31
Argument #1: is a constant
[000469] ------------ * CNS_INT int 0
INLINER: inlineInfo.tokenLookupContextHandle for PodPtr`1:get_Item(int):byref:this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method PodPtr`1:get_Item(int):byref:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 7b 2b 00 00 0a ldfld 0xA00002B
IL_0006 03 ldarg.1
IL_0007 d3 conv.i
IL_0008 fe 1c 12 00 00 1b sizeof 0x1B000012
IL_000e 5a mul
IL_000f 58 add
IL_0010 2a ret
INLINER impTokenLookupContextHandle for PodPtr`1:get_Item(int):byref:this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for PodPtr`1:get_Item(int):byref:this
Jump targets:
none
New Basic Block BB38 [0037] created.
BB38 [000..011)
Basic block list for 'PodPtr`1:get_Item(int):byref:this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB38 [0037] 1 1 [000..011) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for PodPtr`1:get_Item(int):byref:this
impImportBlockPending for BB38
Importing BB38 (PC=000) of 'PodPtr`1:get_Item(int):byref:this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldfld 0A00002B
[ 1] 6 (0x006) ldarg.1
[ 2] 7 (0x007) conv.i
[ 2] 8 (0x008) sizeof 1B000012
[ 3] 14 (0x00e) mul
[ 2] 15 (0x00f) add
[ 1] 16 (0x010) ret
Inlinee Return expression (before normalization) =>
[000479] ------------ * ADD long
[000473] ------------ +--* FIELD long _pointer
[000471] ------------ | \--* ADDR byref
[000472] ------------ | \--* LCL_VAR struct V38 tmp31
[000478] ------------ \--* MUL long
[000475] ------------ +--* CAST long <- int
[000474] ------------ | \--* CNS_INT int 0
[000477] ------------ \--* CAST long <- int
[000476] ------------ \--* CNS_INT int 1
Allowing return type mismatch: have long, needed byref
Inlinee Return expression (after normalization) =>
[000479] ------------ * ADD long
[000473] ------------ +--* FIELD long _pointer
[000471] ------------ | \--* ADDR byref
[000472] ------------ | \--* LCL_VAR struct V38 tmp31
[000478] ------------ \--* MUL long
[000475] ------------ +--* CAST long <- int
[000474] ------------ | \--* CNS_INT int 0
[000477] ------------ \--* CAST long <- int
[000476] ------------ \--* CNS_INT int 1
** Note: inlinee IL was partially imported -- imported 0 of 17 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000398] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000398] is
[000479] ------------ * ADD long
[000473] ------------ +--* FIELD long _pointer
[000471] ------------ | \--* ADDR byref
[000472] ------------ | \--* LCL_VAR struct V38 tmp31
[000478] ------------ \--* MUL long
[000475] ------------ +--* CAST long <- int
[000474] ------------ | \--* CNS_INT int 0
[000477] ------------ \--* CAST long <- int
[000476] ------------ \--* CNS_INT int 1
Successfully inlined PodPtr`1:get_Item(int):byref:this (17 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'PodPtr`1:get_Item(int):byref:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000399] with [000479]
[000399] --C--------- * RET_EXPR byref (inl return from call [000479])
Inserting the inline return expression
[000479] ------------ * ADD long
[000473] ------------ +--* FIELD long _pointer
[000471] ------------ | \--* ADDR byref
[000472] ------------ | \--* LCL_VAR struct V38 tmp31
[000478] ------------ \--* MUL long
[000475] ------------ +--* CAST long <- int
[000474] ------------ | \--* CNS_INT int 0
[000477] ------------ \--* CAST long <- int
[000476] ------------ \--* CNS_INT int 1
Expanding INLINE_CANDIDATE in statement [000407] in BB28:
[000407] I-CXG------- * CALL int Rgba8.Lerp (exactContextHnd=0x00000000D1FFAB1E)
[000404] ------------ this in rcx +--* ADDR byref
[000403] ------------ | \--* LCL_VAR struct V37 tmp30
[000406] *--XG------- arg1 +--* IND ubyte
[000405] ------------ | \--* LCL_VAR byref V39 tmp32
[000049] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000052] ------------ arg3 \--* LCL_VAR ubyte V04 arg4
thisArg: is a constant is byref to a struct local
[000404] ------------ * ADDR byref
[000403] ------------ \--* LCL_VAR struct V37 tmp30
Argument #1: has global refs has side effects
[000406] *--XG------- * IND ubyte
[000405] ------------ \--* LCL_VAR byref V39 tmp32
Argument #2: is a local var
[000049] ------------ * LCL_VAR ubyte V01 arg1
Argument #3: is a local var
[000052] ------------ * LCL_VAR ubyte V04 arg4
INLINER: inlineInfo.tokenLookupContextHandle for Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this :
IL to import:
IL_0000 04 ldarg.2
IL_0001 03 ldarg.1
IL_0002 59 sub
IL_0003 05 ldarg.3
IL_0004 5a mul
IL_0005 20 80 00 00 00 ldc.i4 0x80
IL_000a 58 add
IL_000b 03 ldarg.1
IL_000c 04 ldarg.2
IL_000d 30 03 bgt.s 3 (IL_0012)
IL_000f 16 ldc.i4.0
IL_0010 2b 01 br.s 1 (IL_0013)
IL_0012 17 ldc.i4.1
IL_0013 59 sub
IL_0014 0a stloc.0
IL_0015 03 ldarg.1
IL_0016 06 ldloc.0
IL_0017 1e ldc.i4.8
IL_0018 63 shr
IL_0019 06 ldloc.0
IL_001a 58 add
IL_001b 1e ldc.i4.8
IL_001c 63 shr
IL_001d 58 add
IL_001e d2 conv.u1
IL_001f 2a ret
INLINER impTokenLookupContextHandle for Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this
Jump targets:
IL_0012
IL_0013
New Basic Block BB39 [0038] created.
BB39 [000..00F)
New Basic Block BB40 [0039] created.
BB40 [00F..012)
New Basic Block BB41 [0040] created.
BB41 [012..013)
New Basic Block BB42 [0041] created.
BB42 [013..020)
Basic block list for 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB39 [0038] 1 1 [000..00F)-> BB41 ( cond )
BB40 [0039] 1 1 [00F..012)-> BB42 (always)
BB41 [0040] 1 1 [012..013)
BB42 [0041] 2 1 [013..020) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this
impImportBlockPending for BB39
Importing BB39 (PC=000) of 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
[ 0] 0 (0x000) ldarg.2
[ 1] 1 (0x001) ldarg.1
lvaGrabTemp returning 42 (V42 tmp35) called for Inlining Arg.
[ 2] 2 (0x002) sub
[ 1] 3 (0x003) ldarg.3
[ 2] 4 (0x004) mul
[ 1] 5 (0x005) ldc.i4 128
[ 2] 10 (0x00a) add
[ 1] 11 (0x00b) ldarg.1
[ 2] 12 (0x00c) ldarg.2
[ 3] 13 (0x00d) bgt.s
[000489] ------------ * JTRUE void
[000488] ------------ \--* GT int
[000486] ------------ +--* LCL_VAR int V42 tmp35
[000487] ------------ \--* LCL_VAR ubyte V01 arg1
*************** In impGetSpillTmpBase(BB39)
lvaGrabTemps(1) returning 43..43 (long lifetime temps) called for IL Stack Entries
*************** In fgComputeCheapPreds()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB39 [0038] 1 1 [000..00F)-> BB41 ( cond )
BB40 [0039] 1 1 [00F..012)-> BB42 (always)
BB41 [0040] 1 1 [012..013)
BB42 [0041] 2 1 [013..020) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** After fgComputeCheapPreds()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd cheap preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB39 [0038] 1 1 [000..00F)-> BB41 ( cond )
BB40 [0039] 1 BB39 1 [00F..012)-> BB42 (always)
BB41 [0040] 1 BB39 1 [012..013)
BB42 [0041] 2 BB41,BB40 1 [013..020) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
Spilling stack entries into temps
[000491] -A---------- * ASG int
[000490] D------N---- +--* LCL_VAR int V43 tmp36
[000485] ------------ \--* ADD int
[000483] ------------ +--* MUL int
[000482] ------------ | +--* SUB int
[000049] ------------ | | +--* LCL_VAR ubyte V01 arg1
[000481] ------------ | | \--* LCL_VAR int V42 tmp35
[000052] ------------ | \--* LCL_VAR ubyte V04 arg4
[000484] ------------ \--* CNS_INT int 128
[000489] ------------ * JTRUE void
[000488] ------------ \--* GT int
[000486] ------------ +--* LCL_VAR int V42 tmp35
[000487] ------------ \--* LCL_VAR ubyte V01 arg1
impImportBlockPending for BB40
impImportBlockPending for BB41
Importing BB41 (PC=018) of 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
[ 1] 18 (0x012) ldc.i4.1 1
*************** In impGetSpillTmpBase(BB41)
lvaGrabTemps(2) returning 44..45 (long lifetime temps) called for IL Stack Entries
Spilling stack entries into temps
[000497] -A---------- * ASG int
[000496] D------N---- +--* LCL_VAR int V44 tmp37
[000494] ------------ \--* LCL_VAR int V43 tmp36
[000500] -A---------- * ASG int
[000499] D------N---- +--* LCL_VAR int V45 tmp38
[000495] ------------ \--* CNS_INT int 1
impImportBlockPending for BB42
Importing BB42 (PC=019) of 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
[ 2] 19 (0x013) sub
[ 1] 20 (0x014) stloc.0
lvaGrabTemp returning 46 (V46 tmp39) (a long lifetime temp) called for Inline stloc first use temp.
[000506] -A---------- * ASG int
[000505] D------N---- +--* LCL_VAR int V46 tmp39
[000504] ------------ \--* SUB int
[000502] ------------ +--* LCL_VAR int V44 tmp37
[000503] ------------ \--* LCL_VAR int V45 tmp38
[ 0] 21 (0x015) ldarg.1
[ 1] 22 (0x016) ldloc.0
[ 2] 23 (0x017) ldc.i4.8 8
[ 3] 24 (0x018) shr
[ 2] 25 (0x019) ldloc.0
[ 3] 26 (0x01a) add
[ 2] 27 (0x01b) ldc.i4.8 8
[ 3] 28 (0x01c) shr
[ 2] 29 (0x01d) add
[ 1] 30 (0x01e) conv.u1
[ 1] 31 (0x01f) ret
Inlinee Return expression (before normalization) =>
[000516] ------------ * CAST int <- ubyte <- int
[000515] ------------ \--* ADD int
[000507] ------------ +--* LCL_VAR int V42 tmp35
[000514] ------------ \--* RSH int
[000512] ------------ +--* ADD int
[000510] ------------ | +--* RSH int
[000508] ------------ | | +--* LCL_VAR int V46 tmp39
[000509] ------------ | | \--* CNS_INT int 8
[000511] ------------ | \--* LCL_VAR int V46 tmp39
[000513] ------------ \--* CNS_INT int 8
Inlinee Return expression (after normalization) =>
[000516] ------------ * CAST int <- ubyte <- int
[000515] ------------ \--* ADD int
[000507] ------------ +--* LCL_VAR int V42 tmp35
[000514] ------------ \--* RSH int
[000512] ------------ +--* ADD int
[000510] ------------ | +--* RSH int
[000508] ------------ | | +--* LCL_VAR int V46 tmp39
[000509] ------------ | | \--* CNS_INT int 8
[000511] ------------ | \--* LCL_VAR int V46 tmp39
[000513] ------------ \--* CNS_INT int 8
Importing BB40 (PC=015) of 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
[ 1] 15 (0x00f) ldc.i4.0 0
[ 2] 16 (0x010) br.s
Spilling stack entries into temps
[000519] -A---------- * ASG int
[000518] D------N---- +--* LCL_VAR int V44 tmp37
[000493] ------------ \--* LCL_VAR int V43 tmp36
[000522] -A---------- * ASG int
[000521] D------N---- +--* LCL_VAR int V45 tmp38
[000517] ------------ \--* CNS_INT int 0
impImportBlockPending for BB42
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000407] -----------
Arguments setup:
[000525] -A-XG------- * ASG ubyte
[000524] D------N---- +--* LCL_VAR ubyte V42 tmp35
[000406] *--XG------- \--* IND ubyte
[000405] ------------ \--* LCL_VAR byref V39 tmp32
Zero init inlinee locals:
[000528] -A---------- * ASG int
[000527] D------N---- +--* LCL_VAR int V46 tmp39
[000526] ------------ \--* CNS_INT int 0
Inlinee method body:New Basic Block BB43 [0042] created.
Convert bbJumpKind of BB42 to BBJ_NONE
fgInlineAppendStatements: no gc ref inline locals.
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB39 [0038] 1 1 [032..033)-> BB41 ( cond ) i
BB40 [0039] 1 0.50 [032..033)-> BB42 (always) i
BB41 [0040] 1 0.50 [032..033) i
BB42 [0041] 2 1 [032..033) i
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB39 [032..033) -> BB41 (cond), preds={} succs={BB40,BB41}
***** BB39, stmt 1
[000491] -A---------- * ASG int
[000490] D------N---- +--* LCL_VAR int V43 tmp36
[000485] ------------ \--* ADD int
[000483] ------------ +--* MUL int
[000482] ------------ | +--* SUB int
[000049] ------------ | | +--* LCL_VAR ubyte V01 arg1
[000481] ------------ | | \--* LCL_VAR int V42 tmp35
[000052] ------------ | \--* LCL_VAR ubyte V04 arg4
[000484] ------------ \--* CNS_INT int 128
***** BB39, stmt 2
[000489] ------------ * JTRUE void
[000488] ------------ \--* GT int
[000486] ------------ +--* LCL_VAR int V42 tmp35
[000487] ------------ \--* LCL_VAR ubyte V01 arg1
------------ BB40 [032..033) -> BB42 (always), preds={} succs={BB42}
***** BB40, stmt 3
[000519] -A---------- * ASG int
[000518] D------N---- +--* LCL_VAR int V44 tmp37
[000493] ------------ \--* LCL_VAR int V43 tmp36
***** BB40, stmt 4
[000522] -A---------- * ASG int
[000521] D------N---- +--* LCL_VAR int V45 tmp38
[000517] ------------ \--* CNS_INT int 0
------------ BB41 [032..033), preds={} succs={BB42}
***** BB41, stmt 5
[000497] -A---------- * ASG int
[000496] D------N---- +--* LCL_VAR int V44 tmp37
[000494] ------------ \--* LCL_VAR int V43 tmp36
***** BB41, stmt 6
[000500] -A---------- * ASG int
[000499] D------N---- +--* LCL_VAR int V45 tmp38
[000495] ------------ \--* CNS_INT int 1
------------ BB42 [032..033), preds={} succs={BB43}
***** BB42, stmt 7
[000506] -A---------- * ASG int
[000505] D------N---- +--* LCL_VAR int V46 tmp39
[000504] ------------ \--* SUB int
[000502] ------------ +--* LCL_VAR int V44 tmp37
[000503] ------------ \--* LCL_VAR int V45 tmp38
-------------------------------------------------------------------------------------------------------------------
Return expression for call at [000407] is
[000516] ------------ * CAST int <- ubyte <- int
[000515] ------------ \--* ADD int
[000507] ------------ +--* LCL_VAR int V42 tmp35
[000514] ------------ \--* RSH int
[000512] ------------ +--* ADD int
[000510] ------------ | +--* RSH int
[000508] ------------ | | +--* LCL_VAR int V46 tmp39
[000509] ------------ | | \--* CNS_INT int 8
[000511] ------------ | \--* LCL_VAR int V46 tmp39
[000513] ------------ \--* CNS_INT int 8
Successfully inlined Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this (32 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000408] with [000516]
[000408] --C--------- * RET_EXPR int (inl return from call [000516])
Inserting the inline return expression
[000516] ------------ * CAST int <- ubyte <- int
[000515] ------------ \--* ADD int
[000507] ------------ +--* LCL_VAR int V42 tmp35
[000514] ------------ \--* RSH int
[000512] ------------ +--* ADD int
[000510] ------------ | +--* RSH int
[000508] ------------ | | +--* LCL_VAR int V46 tmp39
[000509] ------------ | | \--* CNS_INT int 8
[000511] ------------ | \--* LCL_VAR int V46 tmp39
[000513] ------------ \--* CNS_INT int 8
Expanding INLINE_CANDIDATE in statement [000417] in BB43:
[000417] I-CXG------- * CALL int Rgba8.Lerp (exactContextHnd=0x00000000D1FFAB1E)
[000413] ------------ this in rcx +--* ADDR byref
[000412] ------------ | \--* LCL_VAR struct V37 tmp30
[000415] *--XG------- arg1 +--* IND ubyte
[000414] ------------ | \--* LCL_VAR byref V40 tmp33
[000050] ------------ arg2 +--* LCL_VAR ubyte V02 arg2
[000416] ------------ arg3 \--* LCL_VAR ubyte V04 arg4
thisArg: is a constant is byref to a struct local
[000413] ------------ * ADDR byref
[000412] ------------ \--* LCL_VAR struct V37 tmp30
Argument #1: has global refs has side effects
[000415] *--XG------- * IND ubyte
[000414] ------------ \--* LCL_VAR byref V40 tmp33
Argument #2: is a local var
[000050] ------------ * LCL_VAR ubyte V02 arg2
Argument #3: is a local var
[000416] ------------ * LCL_VAR ubyte V04 arg4
INLINER: inlineInfo.tokenLookupContextHandle for Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this :
IL to import:
IL_0000 04 ldarg.2
IL_0001 03 ldarg.1
IL_0002 59 sub
IL_0003 05 ldarg.3
IL_0004 5a mul
IL_0005 20 80 00 00 00 ldc.i4 0x80
IL_000a 58 add
IL_000b 03 ldarg.1
IL_000c 04 ldarg.2
IL_000d 30 03 bgt.s 3 (IL_0012)
IL_000f 16 ldc.i4.0
IL_0010 2b 01 br.s 1 (IL_0013)
IL_0012 17 ldc.i4.1
IL_0013 59 sub
IL_0014 0a stloc.0
IL_0015 03 ldarg.1
IL_0016 06 ldloc.0
IL_0017 1e ldc.i4.8
IL_0018 63 shr
IL_0019 06 ldloc.0
IL_001a 58 add
IL_001b 1e ldc.i4.8
IL_001c 63 shr
IL_001d 58 add
IL_001e d2 conv.u1
IL_001f 2a ret
INLINER impTokenLookupContextHandle for Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this
Jump targets:
IL_0012
IL_0013
New Basic Block BB44 [0043] created.
BB44 [000..00F)
New Basic Block BB45 [0044] created.
BB45 [00F..012)
New Basic Block BB46 [0045] created.
BB46 [012..013)
New Basic Block BB47 [0046] created.
BB47 [013..020)
Basic block list for 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB44 [0043] 1 1 [000..00F)-> BB46 ( cond )
BB45 [0044] 1 1 [00F..012)-> BB47 (always)
BB46 [0045] 1 1 [012..013)
BB47 [0046] 2 1 [013..020) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this
impImportBlockPending for BB44
Importing BB44 (PC=000) of 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
[ 0] 0 (0x000) ldarg.2
[ 1] 1 (0x001) ldarg.1
lvaGrabTemp returning 47 (V47 tmp40) called for Inlining Arg.
[ 2] 2 (0x002) sub
[ 1] 3 (0x003) ldarg.3
[ 2] 4 (0x004) mul
[ 1] 5 (0x005) ldc.i4 128
[ 2] 10 (0x00a) add
[ 1] 11 (0x00b) ldarg.1
[ 2] 12 (0x00c) ldarg.2
[ 3] 13 (0x00d) bgt.s
[000538] ------------ * JTRUE void
[000537] ------------ \--* GT int
[000535] ------------ +--* LCL_VAR int V47 tmp40
[000536] ------------ \--* LCL_VAR ubyte V02 arg2
*************** In impGetSpillTmpBase(BB44)
lvaGrabTemps(1) returning 48..48 (long lifetime temps) called for IL Stack Entries
*************** In fgComputeCheapPreds()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB44 [0043] 1 1 [000..00F)-> BB46 ( cond )
BB45 [0044] 1 1 [00F..012)-> BB47 (always)
BB46 [0045] 1 1 [012..013)
BB47 [0046] 2 1 [013..020) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** After fgComputeCheapPreds()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd cheap preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB44 [0043] 1 1 [000..00F)-> BB46 ( cond )
BB45 [0044] 1 BB44 1 [00F..012)-> BB47 (always)
BB46 [0045] 1 BB44 1 [012..013)
BB47 [0046] 2 BB46,BB45 1 [013..020) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
Spilling stack entries into temps
[000540] -A---------- * ASG int
[000539] D------N---- +--* LCL_VAR int V48 tmp41
[000534] ------------ \--* ADD int
[000532] ------------ +--* MUL int
[000531] ------------ | +--* SUB int
[000050] ------------ | | +--* LCL_VAR ubyte V02 arg2
[000530] ------------ | | \--* LCL_VAR int V47 tmp40
[000416] ------------ | \--* LCL_VAR ubyte V04 arg4
[000533] ------------ \--* CNS_INT int 128
[000538] ------------ * JTRUE void
[000537] ------------ \--* GT int
[000535] ------------ +--* LCL_VAR int V47 tmp40
[000536] ------------ \--* LCL_VAR ubyte V02 arg2
impImportBlockPending for BB45
impImportBlockPending for BB46
Importing BB46 (PC=018) of 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
[ 1] 18 (0x012) ldc.i4.1 1
*************** In impGetSpillTmpBase(BB46)
lvaGrabTemps(2) returning 49..50 (long lifetime temps) called for IL Stack Entries
Spilling stack entries into temps
[000546] -A---------- * ASG int
[000545] D------N---- +--* LCL_VAR int V49 tmp42
[000543] ------------ \--* LCL_VAR int V48 tmp41
[000549] -A---------- * ASG int
[000548] D------N---- +--* LCL_VAR int V50 tmp43
[000544] ------------ \--* CNS_INT int 1
impImportBlockPending for BB47
Importing BB47 (PC=019) of 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
[ 2] 19 (0x013) sub
[ 1] 20 (0x014) stloc.0
lvaGrabTemp returning 51 (V51 tmp44) (a long lifetime temp) called for Inline stloc first use temp.
[000555] -A---------- * ASG int
[000554] D------N---- +--* LCL_VAR int V51 tmp44
[000553] ------------ \--* SUB int
[000551] ------------ +--* LCL_VAR int V49 tmp42
[000552] ------------ \--* LCL_VAR int V50 tmp43
[ 0] 21 (0x015) ldarg.1
[ 1] 22 (0x016) ldloc.0
[ 2] 23 (0x017) ldc.i4.8 8
[ 3] 24 (0x018) shr
[ 2] 25 (0x019) ldloc.0
[ 3] 26 (0x01a) add
[ 2] 27 (0x01b) ldc.i4.8 8
[ 3] 28 (0x01c) shr
[ 2] 29 (0x01d) add
[ 1] 30 (0x01e) conv.u1
[ 1] 31 (0x01f) ret
Inlinee Return expression (before normalization) =>
[000565] ------------ * CAST int <- ubyte <- int
[000564] ------------ \--* ADD int
[000556] ------------ +--* LCL_VAR int V47 tmp40
[000563] ------------ \--* RSH int
[000561] ------------ +--* ADD int
[000559] ------------ | +--* RSH int
[000557] ------------ | | +--* LCL_VAR int V51 tmp44
[000558] ------------ | | \--* CNS_INT int 8
[000560] ------------ | \--* LCL_VAR int V51 tmp44
[000562] ------------ \--* CNS_INT int 8
Inlinee Return expression (after normalization) =>
[000565] ------------ * CAST int <- ubyte <- int
[000564] ------------ \--* ADD int
[000556] ------------ +--* LCL_VAR int V47 tmp40
[000563] ------------ \--* RSH int
[000561] ------------ +--* ADD int
[000559] ------------ | +--* RSH int
[000557] ------------ | | +--* LCL_VAR int V51 tmp44
[000558] ------------ | | \--* CNS_INT int 8
[000560] ------------ | \--* LCL_VAR int V51 tmp44
[000562] ------------ \--* CNS_INT int 8
Importing BB45 (PC=015) of 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
[ 1] 15 (0x00f) ldc.i4.0 0
[ 2] 16 (0x010) br.s
Spilling stack entries into temps
[000568] -A---------- * ASG int
[000567] D------N---- +--* LCL_VAR int V49 tmp42
[000542] ------------ \--* LCL_VAR int V48 tmp41
[000571] -A---------- * ASG int
[000570] D------N---- +--* LCL_VAR int V50 tmp43
[000566] ------------ \--* CNS_INT int 0
impImportBlockPending for BB47
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000417] -----------
Arguments setup:
[000574] -A-XG------- * ASG ubyte
[000573] D------N---- +--* LCL_VAR ubyte V47 tmp40
[000415] *--XG------- \--* IND ubyte
[000414] ------------ \--* LCL_VAR byref V40 tmp33
Zero init inlinee locals:
[000577] -A---------- * ASG int
[000576] D------N---- +--* LCL_VAR int V51 tmp44
[000575] ------------ \--* CNS_INT int 0
Inlinee method body:New Basic Block BB48 [0047] created.
Convert bbJumpKind of BB47 to BBJ_NONE
fgInlineAppendStatements: no gc ref inline locals.
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB44 [0043] 1 1 [032..033)-> BB46 ( cond ) i
BB45 [0044] 1 0.50 [032..033)-> BB47 (always) i
BB46 [0045] 1 0.50 [032..033) i
BB47 [0046] 2 1 [032..033) i
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB44 [032..033) -> BB46 (cond), preds={} succs={BB45,BB46}
***** BB44, stmt 1
[000540] -A---------- * ASG int
[000539] D------N---- +--* LCL_VAR int V48 tmp41
[000534] ------------ \--* ADD int
[000532] ------------ +--* MUL int
[000531] ------------ | +--* SUB int
[000050] ------------ | | +--* LCL_VAR ubyte V02 arg2
[000530] ------------ | | \--* LCL_VAR int V47 tmp40
[000416] ------------ | \--* LCL_VAR ubyte V04 arg4
[000533] ------------ \--* CNS_INT int 128
***** BB44, stmt 2
[000538] ------------ * JTRUE void
[000537] ------------ \--* GT int
[000535] ------------ +--* LCL_VAR int V47 tmp40
[000536] ------------ \--* LCL_VAR ubyte V02 arg2
------------ BB45 [032..033) -> BB47 (always), preds={} succs={BB47}
***** BB45, stmt 3
[000568] -A---------- * ASG int
[000567] D------N---- +--* LCL_VAR int V49 tmp42
[000542] ------------ \--* LCL_VAR int V48 tmp41
***** BB45, stmt 4
[000571] -A---------- * ASG int
[000570] D------N---- +--* LCL_VAR int V50 tmp43
[000566] ------------ \--* CNS_INT int 0
------------ BB46 [032..033), preds={} succs={BB47}
***** BB46, stmt 5
[000546] -A---------- * ASG int
[000545] D------N---- +--* LCL_VAR int V49 tmp42
[000543] ------------ \--* LCL_VAR int V48 tmp41
***** BB46, stmt 6
[000549] -A---------- * ASG int
[000548] D------N---- +--* LCL_VAR int V50 tmp43
[000544] ------------ \--* CNS_INT int 1
------------ BB47 [032..033), preds={} succs={BB48}
***** BB47, stmt 7
[000555] -A---------- * ASG int
[000554] D------N---- +--* LCL_VAR int V51 tmp44
[000553] ------------ \--* SUB int
[000551] ------------ +--* LCL_VAR int V49 tmp42
[000552] ------------ \--* LCL_VAR int V50 tmp43
-------------------------------------------------------------------------------------------------------------------
Return expression for call at [000417] is
[000565] ------------ * CAST int <- ubyte <- int
[000564] ------------ \--* ADD int
[000556] ------------ +--* LCL_VAR int V47 tmp40
[000563] ------------ \--* RSH int
[000561] ------------ +--* ADD int
[000559] ------------ | +--* RSH int
[000557] ------------ | | +--* LCL_VAR int V51 tmp44
[000558] ------------ | | \--* CNS_INT int 8
[000560] ------------ | \--* LCL_VAR int V51 tmp44
[000562] ------------ \--* CNS_INT int 8
Successfully inlined Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this (32 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000418] with [000565]
[000418] --C--------- * RET_EXPR int (inl return from call [000565])
Inserting the inline return expression
[000565] ------------ * CAST int <- ubyte <- int
[000564] ------------ \--* ADD int
[000556] ------------ +--* LCL_VAR int V47 tmp40
[000563] ------------ \--* RSH int
[000561] ------------ +--* ADD int
[000559] ------------ | +--* RSH int
[000557] ------------ | | +--* LCL_VAR int V51 tmp44
[000558] ------------ | | \--* CNS_INT int 8
[000560] ------------ | \--* LCL_VAR int V51 tmp44
[000562] ------------ \--* CNS_INT int 8
Expanding INLINE_CANDIDATE in statement [000427] in BB48:
[000427] I-CXG------- * CALL int Rgba8.Lerp (exactContextHnd=0x00000000D1FFAB1E)
[000423] ------------ this in rcx +--* ADDR byref
[000422] ------------ | \--* LCL_VAR struct V37 tmp30
[000425] *--XG------- arg1 +--* IND ubyte
[000424] ------------ | \--* LCL_VAR byref V41 tmp34
[000051] ------------ arg2 +--* LCL_VAR ubyte V03 arg3
[000426] ------------ arg3 \--* LCL_VAR ubyte V04 arg4
thisArg: is a constant is byref to a struct local
[000423] ------------ * ADDR byref
[000422] ------------ \--* LCL_VAR struct V37 tmp30
Argument #1: has global refs has side effects
[000425] *--XG------- * IND ubyte
[000424] ------------ \--* LCL_VAR byref V41 tmp34
Argument #2: is a local var
[000051] ------------ * LCL_VAR ubyte V03 arg3
Argument #3: is a local var
[000426] ------------ * LCL_VAR ubyte V04 arg4
INLINER: inlineInfo.tokenLookupContextHandle for Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this :
IL to import:
IL_0000 04 ldarg.2
IL_0001 03 ldarg.1
IL_0002 59 sub
IL_0003 05 ldarg.3
IL_0004 5a mul
IL_0005 20 80 00 00 00 ldc.i4 0x80
IL_000a 58 add
IL_000b 03 ldarg.1
IL_000c 04 ldarg.2
IL_000d 30 03 bgt.s 3 (IL_0012)
IL_000f 16 ldc.i4.0
IL_0010 2b 01 br.s 1 (IL_0013)
IL_0012 17 ldc.i4.1
IL_0013 59 sub
IL_0014 0a stloc.0
IL_0015 03 ldarg.1
IL_0016 06 ldloc.0
IL_0017 1e ldc.i4.8
IL_0018 63 shr
IL_0019 06 ldloc.0
IL_001a 58 add
IL_001b 1e ldc.i4.8
IL_001c 63 shr
IL_001d 58 add
IL_001e d2 conv.u1
IL_001f 2a ret
INLINER impTokenLookupContextHandle for Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this is 0x00000000D1FFAB1E.
*************** In fgFindBasicBlocks() for Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this
Jump targets:
IL_0012
IL_0013
New Basic Block BB49 [0048] created.
BB49 [000..00F)
New Basic Block BB50 [0049] created.
BB50 [00F..012)
New Basic Block BB51 [0050] created.
BB51 [012..013)
New Basic Block BB52 [0051] created.
BB52 [013..020)
Basic block list for 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB49 [0048] 1 1 [000..00F)-> BB51 ( cond )
BB50 [0049] 1 1 [00F..012)-> BB52 (always)
BB51 [0050] 1 1 [012..013)
BB52 [0051] 2 1 [013..020) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this
impImportBlockPending for BB49
Importing BB49 (PC=000) of 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
[ 0] 0 (0x000) ldarg.2
[ 1] 1 (0x001) ldarg.1
lvaGrabTemp returning 52 (V52 tmp45) called for Inlining Arg.
[ 2] 2 (0x002) sub
[ 1] 3 (0x003) ldarg.3
[ 2] 4 (0x004) mul
[ 1] 5 (0x005) ldc.i4 128
[ 2] 10 (0x00a) add
[ 1] 11 (0x00b) ldarg.1
[ 2] 12 (0x00c) ldarg.2
[ 3] 13 (0x00d) bgt.s
[000587] ------------ * JTRUE void
[000586] ------------ \--* GT int
[000584] ------------ +--* LCL_VAR int V52 tmp45
[000585] ------------ \--* LCL_VAR ubyte V03 arg3
*************** In impGetSpillTmpBase(BB49)
lvaGrabTemps(1) returning 53..53 (long lifetime temps) called for IL Stack Entries
*************** In fgComputeCheapPreds()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB49 [0048] 1 1 [000..00F)-> BB51 ( cond )
BB50 [0049] 1 1 [00F..012)-> BB52 (always)
BB51 [0050] 1 1 [012..013)
BB52 [0051] 2 1 [013..020) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** After fgComputeCheapPreds()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd cheap preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB49 [0048] 1 1 [000..00F)-> BB51 ( cond )
BB50 [0049] 1 BB49 1 [00F..012)-> BB52 (always)
BB51 [0050] 1 BB49 1 [012..013)
BB52 [0051] 2 BB51,BB50 1 [013..020) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
Spilling stack entries into temps
[000589] -A---------- * ASG int
[000588] D------N---- +--* LCL_VAR int V53 tmp46
[000583] ------------ \--* ADD int
[000581] ------------ +--* MUL int
[000580] ------------ | +--* SUB int
[000051] ------------ | | +--* LCL_VAR ubyte V03 arg3
[000579] ------------ | | \--* LCL_VAR int V52 tmp45
[000426] ------------ | \--* LCL_VAR ubyte V04 arg4
[000582] ------------ \--* CNS_INT int 128
[000587] ------------ * JTRUE void
[000586] ------------ \--* GT int
[000584] ------------ +--* LCL_VAR int V52 tmp45
[000585] ------------ \--* LCL_VAR ubyte V03 arg3
impImportBlockPending for BB50
impImportBlockPending for BB51
Importing BB51 (PC=018) of 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
[ 1] 18 (0x012) ldc.i4.1 1
*************** In impGetSpillTmpBase(BB51)
lvaGrabTemps(2) returning 54..55 (long lifetime temps) called for IL Stack Entries
Spilling stack entries into temps
[000595] -A---------- * ASG int
[000594] D------N---- +--* LCL_VAR int V54 tmp47
[000592] ------------ \--* LCL_VAR int V53 tmp46
[000598] -A---------- * ASG int
[000597] D------N---- +--* LCL_VAR int V55 tmp48
[000593] ------------ \--* CNS_INT int 1
impImportBlockPending for BB52
Importing BB52 (PC=019) of 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
[ 2] 19 (0x013) sub
[ 1] 20 (0x014) stloc.0
lvaGrabTemp returning 56 (V56 tmp49) (a long lifetime temp) called for Inline stloc first use temp.
[000604] -A---------- * ASG int
[000603] D------N---- +--* LCL_VAR int V56 tmp49
[000602] ------------ \--* SUB int
[000600] ------------ +--* LCL_VAR int V54 tmp47
[000601] ------------ \--* LCL_VAR int V55 tmp48
[ 0] 21 (0x015) ldarg.1
[ 1] 22 (0x016) ldloc.0
[ 2] 23 (0x017) ldc.i4.8 8
[ 3] 24 (0x018) shr
[ 2] 25 (0x019) ldloc.0
[ 3] 26 (0x01a) add
[ 2] 27 (0x01b) ldc.i4.8 8
[ 3] 28 (0x01c) shr
[ 2] 29 (0x01d) add
[ 1] 30 (0x01e) conv.u1
[ 1] 31 (0x01f) ret
Inlinee Return expression (before normalization) =>
[000614] ------------ * CAST int <- ubyte <- int
[000613] ------------ \--* ADD int
[000605] ------------ +--* LCL_VAR int V52 tmp45
[000612] ------------ \--* RSH int
[000610] ------------ +--* ADD int
[000608] ------------ | +--* RSH int
[000606] ------------ | | +--* LCL_VAR int V56 tmp49
[000607] ------------ | | \--* CNS_INT int 8
[000609] ------------ | \--* LCL_VAR int V56 tmp49
[000611] ------------ \--* CNS_INT int 8
Inlinee Return expression (after normalization) =>
[000614] ------------ * CAST int <- ubyte <- int
[000613] ------------ \--* ADD int
[000605] ------------ +--* LCL_VAR int V52 tmp45
[000612] ------------ \--* RSH int
[000610] ------------ +--* ADD int
[000608] ------------ | +--* RSH int
[000606] ------------ | | +--* LCL_VAR int V56 tmp49
[000607] ------------ | | \--* CNS_INT int 8
[000609] ------------ | \--* LCL_VAR int V56 tmp49
[000611] ------------ \--* CNS_INT int 8
Importing BB50 (PC=015) of 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
[ 1] 15 (0x00f) ldc.i4.0 0
[ 2] 16 (0x010) br.s
Spilling stack entries into temps
[000617] -A---------- * ASG int
[000616] D------N---- +--* LCL_VAR int V54 tmp47
[000591] ------------ \--* LCL_VAR int V53 tmp46
[000620] -A---------- * ASG int
[000619] D------N---- +--* LCL_VAR int V55 tmp48
[000615] ------------ \--* CNS_INT int 0
impImportBlockPending for BB52
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000427] -----------
Arguments setup:
[000623] -A-XG------- * ASG ubyte
[000622] D------N---- +--* LCL_VAR ubyte V52 tmp45
[000425] *--XG------- \--* IND ubyte
[000424] ------------ \--* LCL_VAR byref V41 tmp34
Zero init inlinee locals:
[000626] -A---------- * ASG int
[000625] D------N---- +--* LCL_VAR int V56 tmp49
[000624] ------------ \--* CNS_INT int 0
Inlinee method body:New Basic Block BB53 [0052] created.
Convert bbJumpKind of BB52 to BBJ_NONE
fgInlineAppendStatements: no gc ref inline locals.
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB49 [0048] 1 1 [032..033)-> BB51 ( cond ) i
BB50 [0049] 1 0.50 [032..033)-> BB52 (always) i
BB51 [0050] 1 0.50 [032..033) i
BB52 [0051] 2 1 [032..033) i
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB49 [032..033) -> BB51 (cond), preds={} succs={BB50,BB51}
***** BB49, stmt 1
[000589] -A---------- * ASG int
[000588] D------N---- +--* LCL_VAR int V53 tmp46
[000583] ------------ \--* ADD int
[000581] ------------ +--* MUL int
[000580] ------------ | +--* SUB int
[000051] ------------ | | +--* LCL_VAR ubyte V03 arg3
[000579] ------------ | | \--* LCL_VAR int V52 tmp45
[000426] ------------ | \--* LCL_VAR ubyte V04 arg4
[000582] ------------ \--* CNS_INT int 128
***** BB49, stmt 2
[000587] ------------ * JTRUE void
[000586] ------------ \--* GT int
[000584] ------------ +--* LCL_VAR int V52 tmp45
[000585] ------------ \--* LCL_VAR ubyte V03 arg3
------------ BB50 [032..033) -> BB52 (always), preds={} succs={BB52}
***** BB50, stmt 3
[000617] -A---------- * ASG int
[000616] D------N---- +--* LCL_VAR int V54 tmp47
[000591] ------------ \--* LCL_VAR int V53 tmp46
***** BB50, stmt 4
[000620] -A---------- * ASG int
[000619] D------N---- +--* LCL_VAR int V55 tmp48
[000615] ------------ \--* CNS_INT int 0
------------ BB51 [032..033), preds={} succs={BB52}
***** BB51, stmt 5
[000595] -A---------- * ASG int
[000594] D------N---- +--* LCL_VAR int V54 tmp47
[000592] ------------ \--* LCL_VAR int V53 tmp46
***** BB51, stmt 6
[000598] -A---------- * ASG int
[000597] D------N---- +--* LCL_VAR int V55 tmp48
[000593] ------------ \--* CNS_INT int 1
------------ BB52 [032..033), preds={} succs={BB53}
***** BB52, stmt 7
[000604] -A---------- * ASG int
[000603] D------N---- +--* LCL_VAR int V56 tmp49
[000602] ------------ \--* SUB int
[000600] ------------ +--* LCL_VAR int V54 tmp47
[000601] ------------ \--* LCL_VAR int V55 tmp48
-------------------------------------------------------------------------------------------------------------------
Return expression for call at [000427] is
[000614] ------------ * CAST int <- ubyte <- int
[000613] ------------ \--* ADD int
[000605] ------------ +--* LCL_VAR int V52 tmp45
[000612] ------------ \--* RSH int
[000610] ------------ +--* ADD int
[000608] ------------ | +--* RSH int
[000606] ------------ | | +--* LCL_VAR int V56 tmp49
[000607] ------------ | | \--* CNS_INT int 8
[000609] ------------ | \--* LCL_VAR int V56 tmp49
[000611] ------------ \--* CNS_INT int 8
Successfully inlined Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this (32 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)' calling 'Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000428] with [000614]
[000428] --C--------- * RET_EXPR int (inl return from call [000614])
Inserting the inline return expression
[000614] ------------ * CAST int <- ubyte <- int
[000613] ------------ \--* ADD int
[000605] ------------ +--* LCL_VAR int V52 tmp45
[000612] ------------ \--* RSH int
[000610] ------------ +--* ADD int
[000608] ------------ | +--* RSH int
[000606] ------------ | | +--* LCL_VAR int V56 tmp49
[000607] ------------ | | \--* CNS_INT int 8
[000609] ------------ | \--* LCL_VAR int V56 tmp49
[000611] ------------ \--* CNS_INT int 8
*************** After fgInline()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..040) i newobj
BB14 [0013] 1 1 [020..021)-> BB16 ( cond ) i
BB15 [0014] 1 0.50 [020..021)-> BB17 (always) i
BB16 [0015] 1 0.50 [020..021) i
BB17 [0016] 2 1 [020..021) i
BB18 [0017] 1 1 [???..???) internal newobj
BB19 [0018] 1 1 [020..021)-> BB21 ( cond ) i
BB20 [0019] 1 0.50 [020..021)-> BB22 (always) i
BB21 [0020] 1 0.50 [020..021) i
BB22 [0021] 2 1 [020..021) i
BB23 [0022] 1 1 [???..???) internal newobj
BB24 [0023] 1 1 [020..021)-> BB26 ( cond ) i
BB25 [0024] 1 0.50 [020..021)-> BB27 (always) i
BB26 [0025] 1 0.50 [020..021) i
BB27 [0026] 2 1 [020..021) i
BB28 [0027] 1 1 [???..???) i internal newobj
BB39 [0038] 1 1 [032..033)-> BB41 ( cond ) i
BB40 [0039] 1 0.50 [032..033)-> BB42 (always) i
BB41 [0040] 1 0.50 [032..033) i
BB42 [0041] 2 1 [032..033) i
BB43 [0042] 1 1 [???..???) internal newobj
BB44 [0043] 1 1 [032..033)-> BB46 ( cond ) i
BB45 [0044] 1 0.50 [032..033)-> BB47 (always) i
BB46 [0045] 1 0.50 [032..033) i
BB47 [0046] 2 1 [032..033) i
BB48 [0047] 1 1 [???..???) internal newobj
BB49 [0048] 1 1 [032..033)-> BB51 ( cond ) i
BB50 [0049] 1 0.50 [032..033)-> BB52 (always) i
BB51 [0050] 1 0.50 [032..033) i
BB52 [0051] 2 1 [032..033) i
BB53 [0052] 1 1 [???..???) (return) internal newobj
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..040), preds={} succs={BB14}
***** BB01, stmt 1
[000003] IA---------- * ASG struct (init)
[000000] D------N---- +--* LCL_VAR struct V06 loc0
[000002] ------------ \--* CNS_INT int 0
***** BB01, stmt 2
[000008] -A---------- * ASG ref
[000007] D------N---- +--* LCL_VAR ref V08 tmp1
[000006] ------------ \--* ALLOCOBJ ref
[000005] ------------ \--* CNS_INT(h) long 0xd1ffab1e class
***** BB01, stmt 3
[000013] -A---------- * ASG struct (copy)
[000012] ------------ +--* BLK(1) struct
[000011] ------------ | \--* ADD byref
[000009] ------------ | +--* LCL_VAR ref V08 tmp1
[000010] ------------ | \--* CNS_INT long 8
[000004] ------------ \--* LCL_VAR struct V06 loc0
***** BB01, stmt 4
[000065] -A---------- * ASG struct (copy)
[000063] D----------- +--* LCL_VAR struct V12 tmp5
[000024] n----------- \--* OBJ(8) struct
[000023] ------------ \--* ADDR byref
[000016] ------------ \--* LCL_VAR struct V00 arg0
***** BB01, stmt 5
[000060] --C-G------- * CALL nullcheck void BlenderStruct`2.Blend
[000015] ------------ this in rcx +--* BOX ref
[000014] ------------ | \--* LCL_VAR ref V08 tmp1
[000062] n----------- arg1 +--* OBJ(8) struct
[000061] ------------ | \--* ADDR byref
[000059] ------------ | \--* LCL_VAR struct V12 tmp5
[000017] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000018] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000019] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000020] ------------ arg5 \--* LCL_VAR ubyte V04 arg4
***** BB01, stmt 6
[000028] -A---------- * ASG ref
[000027] D------N---- +--* LCL_VAR ref V09 tmp2
[000026] ------------ \--* ALLOCOBJ ref
[000025] ------------ \--* CNS_INT(h) long 0xd1ffab1e token
***** BB01, stmt 7
[000078] -A---------- * ASG struct (copy)
[000076] D----------- +--* LCL_VAR struct V13 tmp6
[000040] n----------- \--* OBJ(8) struct
[000039] ------------ \--* ADDR byref
[000032] ------------ \--* LCL_VAR struct V00 arg0
***** BB01, stmt 8
[000150] -A---------- * ASG struct (copy)
[000148] D----------- +--* LCL_VAR struct V16 tmp9
[000075] n----------- \--* OBJ(8) struct
[000074] ------------ \--* ADDR byref
[000072] ------------ \--* LCL_VAR struct V13 tmp6
***** BB01, stmt 9
[000147] ---X-------- * IND int
[000031] ------------ \--* LCL_VAR ref V09 tmp2
***** BB01, stmt 10
[000153] -A---------- * ASG byref
[000152] D------N---- +--* LCL_VAR byref V17 tmp10
[000151] ------------ \--* CNS_INT byref 0
***** BB01, stmt 11
[000156] -A---------- * ASG byref
[000155] D------N---- +--* LCL_VAR byref V18 tmp11
[000154] ------------ \--* CNS_INT byref 0
***** BB01, stmt 12
[000159] -A---------- * ASG byref
[000158] D------N---- +--* LCL_VAR byref V19 tmp12
[000157] ------------ \--* CNS_INT byref 0
***** BB01, stmt 13
[000083] IA---------- * ASG struct (init)
[000080] D------N---- +--* LCL_VAR struct V14 tmp7
[000082] ------------ \--* CNS_INT int 0
***** BB01, stmt 14
[000087] IA---------- * ASG struct (init)
[000084] D------N---- +--* LCL_VAR struct V15 tmp8
[000086] ------------ \--* CNS_INT int 0
***** BB01, stmt 15
[000097] -AC--------- * ASG byref
[000096] D------N---- +--* LCL_VAR byref V17 tmp10
[000180] ------------ \--* ADD long
[000174] ------------ +--* FIELD long _pointer
[000172] ------------ | \--* ADDR byref
[000173] ------------ | \--* LCL_VAR struct V16 tmp9
[000179] ------------ \--* MUL long
[000176] ------------ +--* CAST long <- int
[000175] ------------ | \--* CNS_INT int 2
[000178] ------------ \--* CAST long <- int
[000177] ------------ \--* CNS_INT int 1
***** BB01, stmt 16
[000107] -AC--------- * ASG byref
[000106] D------N---- +--* LCL_VAR byref V18 tmp11
[000192] ------------ \--* ADD long
[000186] ------------ +--* FIELD long _pointer
[000184] ------------ | \--* ADDR byref
[000185] ------------ | \--* LCL_VAR struct V16 tmp9
[000191] ------------ \--* MUL long
[000188] ------------ +--* CAST long <- int
[000187] ------------ | \--* CNS_INT int 1
[000190] ------------ \--* CAST long <- int
[000189] ------------ \--* CNS_INT int 1
***** BB01, stmt 17
[000117] -AC--------- * ASG byref
[000116] D------N---- +--* LCL_VAR byref V19 tmp12
[000204] ------------ \--* ADD long
[000198] ------------ +--* FIELD long _pointer
[000196] ------------ | \--* ADDR byref
[000197] ------------ | \--* LCL_VAR struct V16 tmp9
[000203] ------------ \--* MUL long
[000200] ------------ +--* CAST long <- int
[000199] ------------ | \--* CNS_INT int 0
[000202] ------------ \--* CAST long <- int
[000201] ------------ \--* CNS_INT int 1
***** BB01, stmt 18
[000250] -A-XG------- * ASG ubyte
[000249] D------N---- +--* LCL_VAR ubyte V20 tmp13
[000122] *--XG------- \--* IND ubyte
[000121] ------------ \--* LCL_VAR byref V17 tmp10
***** BB01, stmt 19
[000253] -A---------- * ASG int
[000252] D------N---- +--* LCL_VAR int V24 tmp17
[000251] ------------ \--* CNS_INT int 0
------------ BB14 [020..021) -> BB16 (cond), preds={} succs={BB15,BB16}
***** BB14, stmt 20
[000216] -A---------- * ASG int
[000215] D------N---- +--* LCL_VAR int V21 tmp14
[000210] ------------ \--* ADD int
[000208] ------------ +--* MUL int
[000207] ------------ | +--* SUB int
[000033] ------------ | | +--* LCL_VAR ubyte V01 arg1
[000206] ------------ | | \--* LCL_VAR int V20 tmp13
[000036] ------------ | \--* LCL_VAR ubyte V04 arg4
[000209] ------------ \--* CNS_INT int 128
***** BB14, stmt 21
[000214] ------------ * JTRUE void
[000213] ------------ \--* GT int
[000211] ------------ +--* LCL_VAR int V20 tmp13
[000212] ------------ \--* LCL_VAR ubyte V01 arg1
------------ BB15 [020..021) -> BB17 (always), preds={} succs={BB17}
***** BB15, stmt 22
[000244] -A---------- * ASG int
[000243] D------N---- +--* LCL_VAR int V22 tmp15
[000218] ------------ \--* LCL_VAR int V21 tmp14
***** BB15, stmt 23
[000247] -A---------- * ASG int
[000246] D------N---- +--* LCL_VAR int V23 tmp16
[000242] ------------ \--* CNS_INT int 0
------------ BB16 [020..021), preds={} succs={BB17}
***** BB16, stmt 24
[000222] -A---------- * ASG int
[000221] D------N---- +--* LCL_VAR int V22 tmp15
[000219] ------------ \--* LCL_VAR int V21 tmp14
***** BB16, stmt 25
[000225] -A---------- * ASG int
[000224] D------N---- +--* LCL_VAR int V23 tmp16
[000220] ------------ \--* CNS_INT int 1
------------ BB17 [020..021), preds={} succs={BB18}
***** BB17, stmt 26
[000231] -A---------- * ASG int
[000230] D------N---- +--* LCL_VAR int V24 tmp17
[000229] ------------ \--* SUB int
[000227] ------------ +--* LCL_VAR int V22 tmp15
[000228] ------------ \--* LCL_VAR int V23 tmp16
------------ BB18 [???..???), preds={} succs={BB19}
***** BB18, stmt 27
[000126] -ACXG------- * ASG ubyte
[000125] *------N---- +--* IND ubyte
[000118] ------------ | \--* LCL_VAR byref V17 tmp10
[000241] ------------ \--* CAST int <- ubyte <- int
[000240] ------------ \--* ADD int
[000232] ------------ +--* LCL_VAR int V20 tmp13
[000239] ------------ \--* RSH int
[000237] ------------ +--* ADD int
[000235] ------------ | +--* RSH int
[000233] ------------ | | +--* LCL_VAR int V24 tmp17
[000234] ------------ | | \--* CNS_INT int 8
[000236] ------------ | \--* LCL_VAR int V24 tmp17
[000238] ------------ \--* CNS_INT int 8
***** BB18, stmt 28
[000299] -A-XG------- * ASG ubyte
[000298] D------N---- +--* LCL_VAR ubyte V25 tmp18
[000131] *--XG------- \--* IND ubyte
[000130] ------------ \--* LCL_VAR byref V18 tmp11
***** BB18, stmt 29
[000302] -A---------- * ASG int
[000301] D------N---- +--* LCL_VAR int V29 tmp22
[000300] ------------ \--* CNS_INT int 0
------------ BB19 [020..021) -> BB21 (cond), preds={} succs={BB20,BB21}
***** BB19, stmt 30
[000265] -A---------- * ASG int
[000264] D------N---- +--* LCL_VAR int V26 tmp19
[000259] ------------ \--* ADD int
[000257] ------------ +--* MUL int
[000256] ------------ | +--* SUB int
[000034] ------------ | | +--* LCL_VAR ubyte V02 arg2
[000255] ------------ | | \--* LCL_VAR int V25 tmp18
[000132] ------------ | \--* LCL_VAR ubyte V04 arg4
[000258] ------------ \--* CNS_INT int 128
***** BB19, stmt 31
[000263] ------------ * JTRUE void
[000262] ------------ \--* GT int
[000260] ------------ +--* LCL_VAR int V25 tmp18
[000261] ------------ \--* LCL_VAR ubyte V02 arg2
------------ BB20 [020..021) -> BB22 (always), preds={} succs={BB22}
***** BB20, stmt 32
[000293] -A---------- * ASG int
[000292] D------N---- +--* LCL_VAR int V27 tmp20
[000267] ------------ \--* LCL_VAR int V26 tmp19
***** BB20, stmt 33
[000296] -A---------- * ASG int
[000295] D------N---- +--* LCL_VAR int V28 tmp21
[000291] ------------ \--* CNS_INT int 0
------------ BB21 [020..021), preds={} succs={BB22}
***** BB21, stmt 34
[000271] -A---------- * ASG int
[000270] D------N---- +--* LCL_VAR int V27 tmp20
[000268] ------------ \--* LCL_VAR int V26 tmp19
***** BB21, stmt 35
[000274] -A---------- * ASG int
[000273] D------N---- +--* LCL_VAR int V28 tmp21
[000269] ------------ \--* CNS_INT int 1
------------ BB22 [020..021), preds={} succs={BB23}
***** BB22, stmt 36
[000280] -A---------- * ASG int
[000279] D------N---- +--* LCL_VAR int V29 tmp22
[000278] ------------ \--* SUB int
[000276] ------------ +--* LCL_VAR int V27 tmp20
[000277] ------------ \--* LCL_VAR int V28 tmp21
------------ BB23 [???..???), preds={} succs={BB24}
***** BB23, stmt 37
[000136] -ACXG------- * ASG ubyte
[000135] *------N---- +--* IND ubyte
[000127] ------------ | \--* LCL_VAR byref V18 tmp11
[000290] ------------ \--* CAST int <- ubyte <- int
[000289] ------------ \--* ADD int
[000281] ------------ +--* LCL_VAR int V25 tmp18
[000288] ------------ \--* RSH int
[000286] ------------ +--* ADD int
[000284] ------------ | +--* RSH int
[000282] ------------ | | +--* LCL_VAR int V29 tmp22
[000283] ------------ | | \--* CNS_INT int 8
[000285] ------------ | \--* LCL_VAR int V29 tmp22
[000287] ------------ \--* CNS_INT int 8
***** BB23, stmt 38
[000348] -A-XG------- * ASG ubyte
[000347] D------N---- +--* LCL_VAR ubyte V30 tmp23
[000141] *--XG------- \--* IND ubyte
[000140] ------------ \--* LCL_VAR byref V19 tmp12
***** BB23, stmt 39
[000351] -A---------- * ASG int
[000350] D------N---- +--* LCL_VAR int V34 tmp27
[000349] ------------ \--* CNS_INT int 0
------------ BB24 [020..021) -> BB26 (cond), preds={} succs={BB25,BB26}
***** BB24, stmt 40
[000314] -A---------- * ASG int
[000313] D------N---- +--* LCL_VAR int V31 tmp24
[000308] ------------ \--* ADD int
[000306] ------------ +--* MUL int
[000305] ------------ | +--* SUB int
[000035] ------------ | | +--* LCL_VAR ubyte V03 arg3
[000304] ------------ | | \--* LCL_VAR int V30 tmp23
[000142] ------------ | \--* LCL_VAR ubyte V04 arg4
[000307] ------------ \--* CNS_INT int 128
***** BB24, stmt 41
[000312] ------------ * JTRUE void
[000311] ------------ \--* GT int
[000309] ------------ +--* LCL_VAR int V30 tmp23
[000310] ------------ \--* LCL_VAR ubyte V03 arg3
------------ BB25 [020..021) -> BB27 (always), preds={} succs={BB27}
***** BB25, stmt 42
[000342] -A---------- * ASG int
[000341] D------N---- +--* LCL_VAR int V32 tmp25
[000316] ------------ \--* LCL_VAR int V31 tmp24
***** BB25, stmt 43
[000345] -A---------- * ASG int
[000344] D------N---- +--* LCL_VAR int V33 tmp26
[000340] ------------ \--* CNS_INT int 0
------------ BB26 [020..021), preds={} succs={BB27}
***** BB26, stmt 44
[000320] -A---------- * ASG int
[000319] D------N---- +--* LCL_VAR int V32 tmp25
[000317] ------------ \--* LCL_VAR int V31 tmp24
***** BB26, stmt 45
[000323] -A---------- * ASG int
[000322] D------N---- +--* LCL_VAR int V33 tmp26
[000318] ------------ \--* CNS_INT int 1
------------ BB27 [020..021), preds={} succs={BB28}
***** BB27, stmt 46
[000329] -A---------- * ASG int
[000328] D------N---- +--* LCL_VAR int V34 tmp27
[000327] ------------ \--* SUB int
[000325] ------------ +--* LCL_VAR int V32 tmp25
[000326] ------------ \--* LCL_VAR int V33 tmp26
------------ BB28 [???..???), preds={} succs={BB39}
***** BB28, stmt 47
[000146] -ACXG------- * ASG ubyte
[000145] *------N---- +--* IND ubyte
[000137] ------------ | \--* LCL_VAR byref V19 tmp12
[000339] ------------ \--* CAST int <- ubyte <- int
[000338] ------------ \--* ADD int
[000330] ------------ +--* LCL_VAR int V30 tmp23
[000337] ------------ \--* RSH int
[000335] ------------ +--* ADD int
[000333] ------------ | +--* RSH int
[000331] ------------ | | +--* LCL_VAR int V34 tmp27
[000332] ------------ | | \--* CNS_INT int 8
[000334] ------------ | \--* LCL_VAR int V34 tmp27
[000336] ------------ \--* CNS_INT int 8
***** BB28, stmt 48
[000162] -A---------- * ASG byref
[000161] D------N---- +--* LCL_VAR byref V17 tmp10
[000160] ------------ \--* CNS_INT byref 0
***** BB28, stmt 49
[000165] -A---------- * ASG byref
[000164] D------N---- +--* LCL_VAR byref V18 tmp11
[000163] ------------ \--* CNS_INT byref 0
***** BB28, stmt 50
[000168] -A---------- * ASG byref
[000167] D------N---- +--* LCL_VAR byref V19 tmp12
[000166] ------------ \--* CNS_INT byref 0
***** BB28, stmt 51
[000044] -A---------- * ASG ref
[000043] D------N---- +--* LCL_VAR ref V10 tmp3
[000042] ------------ \--* ALLOCOBJ ref
[000041] ------------ \--* CNS_INT(h) long 0xd1ffab1e token
***** BB28, stmt 52
[000362] -A---------- * ASG struct (copy)
[000360] D----------- +--* LCL_VAR struct V35 tmp28
[000056] n----------- \--* OBJ(8) struct
[000055] ------------ \--* ADDR byref
[000048] ------------ \--* LCL_VAR struct V00 arg0
***** BB28, stmt 53
[000434] -A---------- * ASG struct (copy)
[000432] D----------- +--* LCL_VAR struct V38 tmp31
[000359] n----------- \--* OBJ(8) struct
[000358] ------------ \--* ADDR byref
[000356] ------------ \--* LCL_VAR struct V35 tmp28
***** BB28, stmt 54
[000431] ---X-------- * IND int
[000047] ------------ \--* LCL_VAR ref V10 tmp3
***** BB28, stmt 55
[000437] -A---------- * ASG byref
[000436] D------N---- +--* LCL_VAR byref V39 tmp32
[000435] ------------ \--* CNS_INT byref 0
***** BB28, stmt 56
[000440] -A---------- * ASG byref
[000439] D------N---- +--* LCL_VAR byref V40 tmp33
[000438] ------------ \--* CNS_INT byref 0
***** BB28, stmt 57
[000443] -A---------- * ASG byref
[000442] D------N---- +--* LCL_VAR byref V41 tmp34
[000441] ------------ \--* CNS_INT byref 0
***** BB28, stmt 58
[000367] IA---------- * ASG struct (init)
[000364] D------N---- +--* LCL_VAR struct V36 tmp29
[000366] ------------ \--* CNS_INT int 0
***** BB28, stmt 59
[000371] IA---------- * ASG struct (init)
[000368] D------N---- +--* LCL_VAR struct V37 tmp30
[000370] ------------ \--* CNS_INT int 0
***** BB28, stmt 60
[000381] -AC--------- * ASG byref
[000380] D------N---- +--* LCL_VAR byref V39 tmp32
[000455] ------------ \--* ADD long
[000449] ------------ +--* FIELD long _pointer
[000447] ------------ | \--* ADDR byref
[000448] ------------ | \--* LCL_VAR struct V38 tmp31
[000454] ------------ \--* MUL long
[000451] ------------ +--* CAST long <- int
[000450] ------------ | \--* CNS_INT int 2
[000453] ------------ \--* CAST long <- int
[000452] ------------ \--* CNS_INT int 1
***** BB28, stmt 61
[000391] -AC--------- * ASG byref
[000390] D------N---- +--* LCL_VAR byref V40 tmp33
[000467] ------------ \--* ADD long
[000461] ------------ +--* FIELD long _pointer
[000459] ------------ | \--* ADDR byref
[000460] ------------ | \--* LCL_VAR struct V38 tmp31
[000466] ------------ \--* MUL long
[000463] ------------ +--* CAST long <- int
[000462] ------------ | \--* CNS_INT int 1
[000465] ------------ \--* CAST long <- int
[000464] ------------ \--* CNS_INT int 1
***** BB28, stmt 62
[000401] -AC--------- * ASG byref
[000400] D------N---- +--* LCL_VAR byref V41 tmp34
[000479] ------------ \--* ADD long
[000473] ------------ +--* FIELD long _pointer
[000471] ------------ | \--* ADDR byref
[000472] ------------ | \--* LCL_VAR struct V38 tmp31
[000478] ------------ \--* MUL long
[000475] ------------ +--* CAST long <- int
[000474] ------------ | \--* CNS_INT int 0
[000477] ------------ \--* CAST long <- int
[000476] ------------ \--* CNS_INT int 1
***** BB28, stmt 63
[000525] -A-XG------- * ASG ubyte
[000524] D------N---- +--* LCL_VAR ubyte V42 tmp35
[000406] *--XG------- \--* IND ubyte
[000405] ------------ \--* LCL_VAR byref V39 tmp32
***** BB28, stmt 64
[000528] -A---------- * ASG int
[000527] D------N---- +--* LCL_VAR int V46 tmp39
[000526] ------------ \--* CNS_INT int 0
------------ BB39 [032..033) -> BB41 (cond), preds={} succs={BB40,BB41}
***** BB39, stmt 65
[000491] -A---------- * ASG int
[000490] D------N---- +--* LCL_VAR int V43 tmp36
[000485] ------------ \--* ADD int
[000483] ------------ +--* MUL int
[000482] ------------ | +--* SUB int
[000049] ------------ | | +--* LCL_VAR ubyte V01 arg1
[000481] ------------ | | \--* LCL_VAR int V42 tmp35
[000052] ------------ | \--* LCL_VAR ubyte V04 arg4
[000484] ------------ \--* CNS_INT int 128
***** BB39, stmt 66
[000489] ------------ * JTRUE void
[000488] ------------ \--* GT int
[000486] ------------ +--* LCL_VAR int V42 tmp35
[000487] ------------ \--* LCL_VAR ubyte V01 arg1
------------ BB40 [032..033) -> BB42 (always), preds={} succs={BB42}
***** BB40, stmt 67
[000519] -A---------- * ASG int
[000518] D------N---- +--* LCL_VAR int V44 tmp37
[000493] ------------ \--* LCL_VAR int V43 tmp36
***** BB40, stmt 68
[000522] -A---------- * ASG int
[000521] D------N---- +--* LCL_VAR int V45 tmp38
[000517] ------------ \--* CNS_INT int 0
------------ BB41 [032..033), preds={} succs={BB42}
***** BB41, stmt 69
[000497] -A---------- * ASG int
[000496] D------N---- +--* LCL_VAR int V44 tmp37
[000494] ------------ \--* LCL_VAR int V43 tmp36
***** BB41, stmt 70
[000500] -A---------- * ASG int
[000499] D------N---- +--* LCL_VAR int V45 tmp38
[000495] ------------ \--* CNS_INT int 1
------------ BB42 [032..033), preds={} succs={BB43}
***** BB42, stmt 71
[000506] -A---------- * ASG int
[000505] D------N---- +--* LCL_VAR int V46 tmp39
[000504] ------------ \--* SUB int
[000502] ------------ +--* LCL_VAR int V44 tmp37
[000503] ------------ \--* LCL_VAR int V45 tmp38
------------ BB43 [???..???), preds={} succs={BB44}
***** BB43, stmt 72
[000410] -ACXG------- * ASG ubyte
[000409] *------N---- +--* IND ubyte
[000402] ------------ | \--* LCL_VAR byref V39 tmp32
[000516] ------------ \--* CAST int <- ubyte <- int
[000515] ------------ \--* ADD int
[000507] ------------ +--* LCL_VAR int V42 tmp35
[000514] ------------ \--* RSH int
[000512] ------------ +--* ADD int
[000510] ------------ | +--* RSH int
[000508] ------------ | | +--* LCL_VAR int V46 tmp39
[000509] ------------ | | \--* CNS_INT int 8
[000511] ------------ | \--* LCL_VAR int V46 tmp39
[000513] ------------ \--* CNS_INT int 8
***** BB43, stmt 73
[000574] -A-XG------- * ASG ubyte
[000573] D------N---- +--* LCL_VAR ubyte V47 tmp40
[000415] *--XG------- \--* IND ubyte
[000414] ------------ \--* LCL_VAR byref V40 tmp33
***** BB43, stmt 74
[000577] -A---------- * ASG int
[000576] D------N---- +--* LCL_VAR int V51 tmp44
[000575] ------------ \--* CNS_INT int 0
------------ BB44 [032..033) -> BB46 (cond), preds={} succs={BB45,BB46}
***** BB44, stmt 75
[000540] -A---------- * ASG int
[000539] D------N---- +--* LCL_VAR int V48 tmp41
[000534] ------------ \--* ADD int
[000532] ------------ +--* MUL int
[000531] ------------ | +--* SUB int
[000050] ------------ | | +--* LCL_VAR ubyte V02 arg2
[000530] ------------ | | \--* LCL_VAR int V47 tmp40
[000416] ------------ | \--* LCL_VAR ubyte V04 arg4
[000533] ------------ \--* CNS_INT int 128
***** BB44, stmt 76
[000538] ------------ * JTRUE void
[000537] ------------ \--* GT int
[000535] ------------ +--* LCL_VAR int V47 tmp40
[000536] ------------ \--* LCL_VAR ubyte V02 arg2
------------ BB45 [032..033) -> BB47 (always), preds={} succs={BB47}
***** BB45, stmt 77
[000568] -A---------- * ASG int
[000567] D------N---- +--* LCL_VAR int V49 tmp42
[000542] ------------ \--* LCL_VAR int V48 tmp41
***** BB45, stmt 78
[000571] -A---------- * ASG int
[000570] D------N---- +--* LCL_VAR int V50 tmp43
[000566] ------------ \--* CNS_INT int 0
------------ BB46 [032..033), preds={} succs={BB47}
***** BB46, stmt 79
[000546] -A---------- * ASG int
[000545] D------N---- +--* LCL_VAR int V49 tmp42
[000543] ------------ \--* LCL_VAR int V48 tmp41
***** BB46, stmt 80
[000549] -A---------- * ASG int
[000548] D------N---- +--* LCL_VAR int V50 tmp43
[000544] ------------ \--* CNS_INT int 1
------------ BB47 [032..033), preds={} succs={BB48}
***** BB47, stmt 81
[000555] -A---------- * ASG int
[000554] D------N---- +--* LCL_VAR int V51 tmp44
[000553] ------------ \--* SUB int
[000551] ------------ +--* LCL_VAR int V49 tmp42
[000552] ------------ \--* LCL_VAR int V50 tmp43
------------ BB48 [???..???), preds={} succs={BB49}
***** BB48, stmt 82
[000420] -ACXG------- * ASG ubyte
[000419] *------N---- +--* IND ubyte
[000411] ------------ | \--* LCL_VAR byref V40 tmp33
[000565] ------------ \--* CAST int <- ubyte <- int
[000564] ------------ \--* ADD int
[000556] ------------ +--* LCL_VAR int V47 tmp40
[000563] ------------ \--* RSH int
[000561] ------------ +--* ADD int
[000559] ------------ | +--* RSH int
[000557] ------------ | | +--* LCL_VAR int V51 tmp44
[000558] ------------ | | \--* CNS_INT int 8
[000560] ------------ | \--* LCL_VAR int V51 tmp44
[000562] ------------ \--* CNS_INT int 8
***** BB48, stmt 83
[000623] -A-XG------- * ASG ubyte
[000622] D------N---- +--* LCL_VAR ubyte V52 tmp45
[000425] *--XG------- \--* IND ubyte
[000424] ------------ \--* LCL_VAR byref V41 tmp34
***** BB48, stmt 84
[000626] -A---------- * ASG int
[000625] D------N---- +--* LCL_VAR int V56 tmp49
[000624] ------------ \--* CNS_INT int 0
------------ BB49 [032..033) -> BB51 (cond), preds={} succs={BB50,BB51}
***** BB49, stmt 85
[000589] -A---------- * ASG int
[000588] D------N---- +--* LCL_VAR int V53 tmp46
[000583] ------------ \--* ADD int
[000581] ------------ +--* MUL int
[000580] ------------ | +--* SUB int
[000051] ------------ | | +--* LCL_VAR ubyte V03 arg3
[000579] ------------ | | \--* LCL_VAR int V52 tmp45
[000426] ------------ | \--* LCL_VAR ubyte V04 arg4
[000582] ------------ \--* CNS_INT int 128
***** BB49, stmt 86
[000587] ------------ * JTRUE void
[000586] ------------ \--* GT int
[000584] ------------ +--* LCL_VAR int V52 tmp45
[000585] ------------ \--* LCL_VAR ubyte V03 arg3
------------ BB50 [032..033) -> BB52 (always), preds={} succs={BB52}
***** BB50, stmt 87
[000617] -A---------- * ASG int
[000616] D------N---- +--* LCL_VAR int V54 tmp47
[000591] ------------ \--* LCL_VAR int V53 tmp46
***** BB50, stmt 88
[000620] -A---------- * ASG int
[000619] D------N---- +--* LCL_VAR int V55 tmp48
[000615] ------------ \--* CNS_INT int 0
------------ BB51 [032..033), preds={} succs={BB52}
***** BB51, stmt 89
[000595] -A---------- * ASG int
[000594] D------N---- +--* LCL_VAR int V54 tmp47
[000592] ------------ \--* LCL_VAR int V53 tmp46
***** BB51, stmt 90
[000598] -A---------- * ASG int
[000597] D------N---- +--* LCL_VAR int V55 tmp48
[000593] ------------ \--* CNS_INT int 1
------------ BB52 [032..033), preds={} succs={BB53}
***** BB52, stmt 91
[000604] -A---------- * ASG int
[000603] D------N---- +--* LCL_VAR int V56 tmp49
[000602] ------------ \--* SUB int
[000600] ------------ +--* LCL_VAR int V54 tmp47
[000601] ------------ \--* LCL_VAR int V55 tmp48
------------ BB53 [???..???) (return), preds={} succs={}
***** BB53, stmt 92
[000430] -ACXG------- * ASG ubyte
[000429] *------N---- +--* IND ubyte
[000421] ------------ | \--* LCL_VAR byref V41 tmp34
[000614] ------------ \--* CAST int <- ubyte <- int
[000613] ------------ \--* ADD int
[000605] ------------ +--* LCL_VAR int V52 tmp45
[000612] ------------ \--* RSH int
[000610] ------------ +--* ADD int
[000608] ------------ | +--* RSH int
[000606] ------------ | | +--* LCL_VAR int V56 tmp49
[000607] ------------ | | \--* CNS_INT int 8
[000609] ------------ | \--* LCL_VAR int V56 tmp49
[000611] ------------ \--* CNS_INT int 8
***** BB53, stmt 93
[000057] ------------ * RETURN void
-------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
**************** Inline Tree
Inlines into 06000015 Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)
[1 IL=0022 TR=000022 06000017] [aggressive inline attribute] Test1:TestMethod2Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte)
[0 IL=0008 TR=000060 0600001E] [FAILED: cannot get method info devirt] BlenderStruct`2:Blend(struct,ubyte,ubyte,ubyte,ubyte):this
[2 IL=0027 TR=000030 06000020] [below ALWAYS_INLINE size] BlenderClassFromBase`2:.ctor():this
[3 IL=0001 TR=000067 0600001D] [below ALWAYS_INLINE size] BlenderBase`1:.ctor():this
[4 IL=0001 TR=000069 06000464] [below ALWAYS_INLINE size] Object:.ctor():this
[5 IL=0040 TR=000038 06000016] [aggressive inline attribute] Test1:TestMethod1Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte)
[6 IL=0008 TR=000073 0600001F] [aggressive inline attribute devirt] BlenderClassFromBase`2:Blend(struct,ubyte,ubyte,ubyte,ubyte):this
[7 IL=0020 TR=000092 06000023] [aggressive inline attribute] OrderBgra:get_R():int:this
[8 IL=0025 TR=000094 06000049] [aggressive inline attribute] PodPtr`1:get_Item(int):byref:this
[9 IL=0035 TR=000102 06000024] [aggressive inline attribute] OrderBgra:get_G():int:this
[10 IL=0040 TR=000104 06000049] [aggressive inline attribute] PodPtr`1:get_Item(int):byref:this
[11 IL=0050 TR=000112 06000025] [aggressive inline attribute] OrderBgra:get_B():int:this
[12 IL=0055 TR=000114 06000049] [aggressive inline attribute] PodPtr`1:get_Item(int):byref:this
[13 IL=0080 TR=000123 06000047] [aggressive inline attribute] Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this
[14 IL=0108 TR=000133 06000047] [aggressive inline attribute] Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this
[15 IL=0139 TR=000143 06000047] [aggressive inline attribute] Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this
[16 IL=0045 TR=000046 06000022] [below ALWAYS_INLINE size] BlenderClassFromInterface`2:.ctor():this
[17 IL=0001 TR=000353 06000464] [below ALWAYS_INLINE size] Object:.ctor():this
[18 IL=0058 TR=000054 06000017] [aggressive inline attribute] Test1:TestMethod2Impl(ref,struct,ubyte,ubyte,ubyte,ubyte,ubyte)
[19 IL=0008 TR=000357 06000021] [aggressive inline attribute devirt] BlenderClassFromInterface`2:Blend(struct,ubyte,ubyte,ubyte,ubyte):this
[20 IL=0020 TR=000376 06000023] [aggressive inline attribute] OrderBgra:get_R():int:this
[21 IL=0025 TR=000378 06000049] [aggressive inline attribute] PodPtr`1:get_Item(int):byref:this
[22 IL=0035 TR=000386 06000024] [aggressive inline attribute] OrderBgra:get_G():int:this
[23 IL=0040 TR=000388 06000049] [aggressive inline attribute] PodPtr`1:get_Item(int):byref:this
[24 IL=0050 TR=000396 06000025] [aggressive inline attribute] OrderBgra:get_B():int:this
[25 IL=0055 TR=000398 06000049] [aggressive inline attribute] PodPtr`1:get_Item(int):byref:this
[26 IL=0080 TR=000407 06000047] [aggressive inline attribute] Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this
[27 IL=0108 TR=000417 06000047] [aggressive inline attribute] Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this
[28 IL=0139 TR=000427 06000047] [aggressive inline attribute] Rgba8:Lerp(ubyte,ubyte,ubyte):ubyte:this
Budget: initialTime=252, finalTime=970, initialBudget=2520, currentBudget=3434
Budget: increased by 914 because of force inlines
Budget: initialSize=1590, finalSize=1590
*************** 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..040) i newobj
BB14 [0013] 1 1 [020..021)-> BB16 ( cond ) i
BB15 [0014] 1 0.50 [020..021)-> BB17 (always) i
BB16 [0015] 1 0.50 [020..021) i
BB17 [0016] 2 1 [020..021) i
BB18 [0017] 1 1 [???..???) internal newobj
BB19 [0018] 1 1 [020..021)-> BB21 ( cond ) i
BB20 [0019] 1 0.50 [020..021)-> BB22 (always) i
BB21 [0020] 1 0.50 [020..021) i
BB22 [0021] 2 1 [020..021) i
BB23 [0022] 1 1 [???..???) internal newobj
BB24 [0023] 1 1 [020..021)-> BB26 ( cond ) i
BB25 [0024] 1 0.50 [020..021)-> BB27 (always) i
BB26 [0025] 1 0.50 [020..021) i
BB27 [0026] 2 1 [020..021) i
BB28 [0027] 1 1 [???..???) i internal newobj
BB39 [0038] 1 1 [032..033)-> BB41 ( cond ) i
BB40 [0039] 1 0.50 [032..033)-> BB42 (always) i
BB41 [0040] 1 0.50 [032..033) i
BB42 [0041] 2 1 [032..033) i
BB43 [0042] 1 1 [???..???) internal newobj
BB44 [0043] 1 1 [032..033)-> BB46 ( cond ) i
BB45 [0044] 1 0.50 [032..033)-> BB47 (always) i
BB46 [0045] 1 0.50 [032..033) i
BB47 [0046] 2 1 [032..033) i
BB48 [0047] 1 1 [???..???) internal newobj
BB49 [0048] 1 1 [032..033)-> BB51 ( cond ) i
BB50 [0049] 1 0.50 [032..033)-> BB52 (always) i
BB51 [0050] 1 0.50 [032..033) i
BB52 [0051] 2 1 [032..033) i
BB53 [0052] 1 1 [???..???) (return) internal newobj
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..040), preds={} succs={BB14}
***** BB01, stmt 1
[000003] IA---------- * ASG struct (init)
[000000] D------N---- +--* LCL_VAR struct V06 loc0
[000002] ------------ \--* CNS_INT int 0
***** BB01, stmt 2
[000008] -A---------- * ASG ref
[000007] D------N---- +--* LCL_VAR ref V08 tmp1
[000006] ------------ \--* ALLOCOBJ ref
[000005] ------------ \--* CNS_INT(h) long 0xd1ffab1e class
***** BB01, stmt 3
[000013] -A---------- * ASG struct (copy)
[000012] ------------ +--* BLK(1) struct
[000011] ------------ | \--* ADD byref
[000009] ------------ | +--* LCL_VAR ref V08 tmp1
[000010] ------------ | \--* CNS_INT long 8
[000004] ------------ \--* LCL_VAR struct V06 loc0
***** BB01, stmt 4
[000065] -A---------- * ASG struct (copy)
[000063] D----------- +--* LCL_VAR struct V12 tmp5
[000024] n----------- \--* OBJ(8) struct
[000023] ------------ \--* ADDR byref
[000016] ------------ \--* LCL_VAR struct V00 arg0
***** BB01, stmt 5
[000060] --C-G------- * CALL nullcheck void BlenderStruct`2.Blend
[000015] ------------ this in rcx +--* BOX ref
[000014] ------------ | \--* LCL_VAR ref V08 tmp1
[000062] n----------- arg1 +--* OBJ(8) struct
[000061] ------------ | \--* ADDR byref
[000059] ------------ | \--* LCL_VAR struct V12 tmp5
[000017] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000018] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000019] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000020] ------------ arg5 \--* LCL_VAR ubyte V04 arg4
***** BB01, stmt 6
[000028] -A---------- * ASG ref
[000027] D------N---- +--* LCL_VAR ref V09 tmp2
[000026] ------------ \--* ALLOCOBJ ref
[000025] ------------ \--* CNS_INT(h) long 0xd1ffab1e token
***** BB01, stmt 7
[000078] -A---------- * ASG struct (copy)
[000076] D----------- +--* LCL_VAR struct V13 tmp6
[000040] n----------- \--* OBJ(8) struct
[000039] ------------ \--* ADDR byref
[000032] ------------ \--* LCL_VAR struct V00 arg0
***** BB01, stmt 8
[000150] -A---------- * ASG struct (copy)
[000148] D----------- +--* LCL_VAR struct V16 tmp9
[000075] n----------- \--* OBJ(8) struct
[000074] ------------ \--* ADDR byref
[000072] ------------ \--* LCL_VAR struct V13 tmp6
***** BB01, stmt 9
[000147] ---X-------- * IND int
[000031] ------------ \--* LCL_VAR ref V09 tmp2
***** BB01, stmt 10
[000153] -A---------- * ASG byref
[000152] D------N---- +--* LCL_VAR byref V17 tmp10
[000151] ------------ \--* CNS_INT byref 0
***** BB01, stmt 11
[000156] -A---------- * ASG byref
[000155] D------N---- +--* LCL_VAR byref V18 tmp11
[000154] ------------ \--* CNS_INT byref 0
***** BB01, stmt 12
[000159] -A---------- * ASG byref
[000158] D------N---- +--* LCL_VAR byref V19 tmp12
[000157] ------------ \--* CNS_INT byref 0
***** BB01, stmt 13
[000083] IA---------- * ASG struct (init)
[000080] D------N---- +--* LCL_VAR struct V14 tmp7
[000082] ------------ \--* CNS_INT int 0
***** BB01, stmt 14
[000087] IA---------- * ASG struct (init)
[000084] D------N---- +--* LCL_VAR struct V15 tmp8
[000086] ------------ \--* CNS_INT int 0
***** BB01, stmt 15
[000097] -AC--------- * ASG byref
[000096] D------N---- +--* LCL_VAR byref V17 tmp10
[000180] ------------ \--* ADD long
[000174] ------------ +--* FIELD long _pointer
[000172] ------------ | \--* ADDR byref
[000173] ------------ | \--* LCL_VAR struct V16 tmp9
[000179] ------------ \--* MUL long
[000176] ------------ +--* CAST long <- int
[000175] ------------ | \--* CNS_INT int 2
[000178] ------------ \--* CAST long <- int
[000177] ------------ \--* CNS_INT int 1
***** BB01, stmt 16
[000107] -AC--------- * ASG byref
[000106] D------N---- +--* LCL_VAR byref V18 tmp11
[000192] ------------ \--* ADD long
[000186] ------------ +--* FIELD long _pointer
[000184] ------------ | \--* ADDR byref
[000185] ------------ | \--* LCL_VAR struct V16 tmp9
[000191] ------------ \--* MUL long
[000188] ------------ +--* CAST long <- int
[000187] ------------ | \--* CNS_INT int 1
[000190] ------------ \--* CAST long <- int
[000189] ------------ \--* CNS_INT int 1
***** BB01, stmt 17
[000117] -AC--------- * ASG byref
[000116] D------N---- +--* LCL_VAR byref V19 tmp12
[000204] ------------ \--* ADD long
[000198] ------------ +--* FIELD long _pointer
[000196] ------------ | \--* ADDR byref
[000197] ------------ | \--* LCL_VAR struct V16 tmp9
[000203] ------------ \--* MUL long
[000200] ------------ +--* CAST long <- int
[000199] ------------ | \--* CNS_INT int 0
[000202] ------------ \--* CAST long <- int
[000201] ------------ \--* CNS_INT int 1
***** BB01, stmt 18
[000250] -A-XG------- * ASG ubyte
[000249] D------N---- +--* LCL_VAR ubyte V20 tmp13
[000122] *--XG------- \--* IND ubyte
[000121] ------------ \--* LCL_VAR byref V17 tmp10
***** BB01, stmt 19
[000253] -A---------- * ASG int
[000252] D------N---- +--* LCL_VAR int V24 tmp17
[000251] ------------ \--* CNS_INT int 0
------------ BB14 [020..021) -> BB16 (cond), preds={} succs={BB15,BB16}
***** BB14, stmt 20
[000216] -A---------- * ASG int
[000215] D------N---- +--* LCL_VAR int V21 tmp14
[000210] ------------ \--* ADD int
[000208] ------------ +--* MUL int
[000207] ------------ | +--* SUB int
[000033] ------------ | | +--* LCL_VAR ubyte V01 arg1
[000206] ------------ | | \--* LCL_VAR int V20 tmp13
[000036] ------------ | \--* LCL_VAR ubyte V04 arg4
[000209] ------------ \--* CNS_INT int 128
***** BB14, stmt 21
[000214] ------------ * JTRUE void
[000213] ------------ \--* GT int
[000211] ------------ +--* LCL_VAR int V20 tmp13
[000212] ------------ \--* LCL_VAR ubyte V01 arg1
------------ BB15 [020..021) -> BB17 (always), preds={} succs={BB17}
***** BB15, stmt 22
[000244] -A---------- * ASG int
[000243] D------N---- +--* LCL_VAR int V22 tmp15
[000218] ------------ \--* LCL_VAR int V21 tmp14
***** BB15, stmt 23
[000247] -A---------- * ASG int
[000246] D------N---- +--* LCL_VAR int V23 tmp16
[000242] ------------ \--* CNS_INT int 0
------------ BB16 [020..021), preds={} succs={BB17}
***** BB16, stmt 24
[000222] -A---------- * ASG int
[000221] D------N---- +--* LCL_VAR int V22 tmp15
[000219] ------------ \--* LCL_VAR int V21 tmp14
***** BB16, stmt 25
[000225] -A---------- * ASG int
[000224] D------N---- +--* LCL_VAR int V23 tmp16
[000220] ------------ \--* CNS_INT int 1
------------ BB17 [020..021), preds={} succs={BB18}
***** BB17, stmt 26
[000231] -A---------- * ASG int
[000230] D------N---- +--* LCL_VAR int V24 tmp17
[000229] ------------ \--* SUB int
[000227] ------------ +--* LCL_VAR int V22 tmp15
[000228] ------------ \--* LCL_VAR int V23 tmp16
------------ BB18 [???..???), preds={} succs={BB19}
***** BB18, stmt 27
[000126] -ACXG------- * ASG ubyte
[000125] *------N---- +--* IND ubyte
[000118] ------------ | \--* LCL_VAR byref V17 tmp10
[000241] ------------ \--* CAST int <- ubyte <- int
[000240] ------------ \--* ADD int
[000232] ------------ +--* LCL_VAR int V20 tmp13
[000239] ------------ \--* RSH int
[000237] ------------ +--* ADD int
[000235] ------------ | +--* RSH int
[000233] ------------ | | +--* LCL_VAR int V24 tmp17
[000234] ------------ | | \--* CNS_INT int 8
[000236] ------------ | \--* LCL_VAR int V24 tmp17
[000238] ------------ \--* CNS_INT int 8
***** BB18, stmt 28
[000299] -A-XG------- * ASG ubyte
[000298] D------N---- +--* LCL_VAR ubyte V25 tmp18
[000131] *--XG------- \--* IND ubyte
[000130] ------------ \--* LCL_VAR byref V18 tmp11
***** BB18, stmt 29
[000302] -A---------- * ASG int
[000301] D------N---- +--* LCL_VAR int V29 tmp22
[000300] ------------ \--* CNS_INT int 0
------------ BB19 [020..021) -> BB21 (cond), preds={} succs={BB20,BB21}
***** BB19, stmt 30
[000265] -A---------- * ASG int
[000264] D------N---- +--* LCL_VAR int V26 tmp19
[000259] ------------ \--* ADD int
[000257] ------------ +--* MUL int
[000256] ------------ | +--* SUB int
[000034] ------------ | | +--* LCL_VAR ubyte V02 arg2
[000255] ------------ | | \--* LCL_VAR int V25 tmp18
[000132] ------------ | \--* LCL_VAR ubyte V04 arg4
[000258] ------------ \--* CNS_INT int 128
***** BB19, stmt 31
[000263] ------------ * JTRUE void
[000262] ------------ \--* GT int
[000260] ------------ +--* LCL_VAR int V25 tmp18
[000261] ------------ \--* LCL_VAR ubyte V02 arg2
------------ BB20 [020..021) -> BB22 (always), preds={} succs={BB22}
***** BB20, stmt 32
[000293] -A---------- * ASG int
[000292] D------N---- +--* LCL_VAR int V27 tmp20
[000267] ------------ \--* LCL_VAR int V26 tmp19
***** BB20, stmt 33
[000296] -A---------- * ASG int
[000295] D------N---- +--* LCL_VAR int V28 tmp21
[000291] ------------ \--* CNS_INT int 0
------------ BB21 [020..021), preds={} succs={BB22}
***** BB21, stmt 34
[000271] -A---------- * ASG int
[000270] D------N---- +--* LCL_VAR int V27 tmp20
[000268] ------------ \--* LCL_VAR int V26 tmp19
***** BB21, stmt 35
[000274] -A---------- * ASG int
[000273] D------N---- +--* LCL_VAR int V28 tmp21
[000269] ------------ \--* CNS_INT int 1
------------ BB22 [020..021), preds={} succs={BB23}
***** BB22, stmt 36
[000280] -A---------- * ASG int
[000279] D------N---- +--* LCL_VAR int V29 tmp22
[000278] ------------ \--* SUB int
[000276] ------------ +--* LCL_VAR int V27 tmp20
[000277] ------------ \--* LCL_VAR int V28 tmp21
------------ BB23 [???..???), preds={} succs={BB24}
***** BB23, stmt 37
[000136] -ACXG------- * ASG ubyte
[000135] *------N---- +--* IND ubyte
[000127] ------------ | \--* LCL_VAR byref V18 tmp11
[000290] ------------ \--* CAST int <- ubyte <- int
[000289] ------------ \--* ADD int
[000281] ------------ +--* LCL_VAR int V25 tmp18
[000288] ------------ \--* RSH int
[000286] ------------ +--* ADD int
[000284] ------------ | +--* RSH int
[000282] ------------ | | +--* LCL_VAR int V29 tmp22
[000283] ------------ | | \--* CNS_INT int 8
[000285] ------------ | \--* LCL_VAR int V29 tmp22
[000287] ------------ \--* CNS_INT int 8
***** BB23, stmt 38
[000348] -A-XG------- * ASG ubyte
[000347] D------N---- +--* LCL_VAR ubyte V30 tmp23
[000141] *--XG------- \--* IND ubyte
[000140] ------------ \--* LCL_VAR byref V19 tmp12
***** BB23, stmt 39
[000351] -A---------- * ASG int
[000350] D------N---- +--* LCL_VAR int V34 tmp27
[000349] ------------ \--* CNS_INT int 0
------------ BB24 [020..021) -> BB26 (cond), preds={} succs={BB25,BB26}
***** BB24, stmt 40
[000314] -A---------- * ASG int
[000313] D------N---- +--* LCL_VAR int V31 tmp24
[000308] ------------ \--* ADD int
[000306] ------------ +--* MUL int
[000305] ------------ | +--* SUB int
[000035] ------------ | | +--* LCL_VAR ubyte V03 arg3
[000304] ------------ | | \--* LCL_VAR int V30 tmp23
[000142] ------------ | \--* LCL_VAR ubyte V04 arg4
[000307] ------------ \--* CNS_INT int 128
***** BB24, stmt 41
[000312] ------------ * JTRUE void
[000311] ------------ \--* GT int
[000309] ------------ +--* LCL_VAR int V30 tmp23
[000310] ------------ \--* LCL_VAR ubyte V03 arg3
------------ BB25 [020..021) -> BB27 (always), preds={} succs={BB27}
***** BB25, stmt 42
[000342] -A---------- * ASG int
[000341] D------N---- +--* LCL_VAR int V32 tmp25
[000316] ------------ \--* LCL_VAR int V31 tmp24
***** BB25, stmt 43
[000345] -A---------- * ASG int
[000344] D------N---- +--* LCL_VAR int V33 tmp26
[000340] ------------ \--* CNS_INT int 0
------------ BB26 [020..021), preds={} succs={BB27}
***** BB26, stmt 44
[000320] -A---------- * ASG int
[000319] D------N---- +--* LCL_VAR int V32 tmp25
[000317] ------------ \--* LCL_VAR int V31 tmp24
***** BB26, stmt 45
[000323] -A---------- * ASG int
[000322] D------N---- +--* LCL_VAR int V33 tmp26
[000318] ------------ \--* CNS_INT int 1
------------ BB27 [020..021), preds={} succs={BB28}
***** BB27, stmt 46
[000329] -A---------- * ASG int
[000328] D------N---- +--* LCL_VAR int V34 tmp27
[000327] ------------ \--* SUB int
[000325] ------------ +--* LCL_VAR int V32 tmp25
[000326] ------------ \--* LCL_VAR int V33 tmp26
------------ BB28 [???..???), preds={} succs={BB39}
***** BB28, stmt 47
[000146] -ACXG------- * ASG ubyte
[000145] *------N---- +--* IND ubyte
[000137] ------------ | \--* LCL_VAR byref V19 tmp12
[000339] ------------ \--* CAST int <- ubyte <- int
[000338] ------------ \--* ADD int
[000330] ------------ +--* LCL_VAR int V30 tmp23
[000337] ------------ \--* RSH int
[000335] ------------ +--* ADD int
[000333] ------------ | +--* RSH int
[000331] ------------ | | +--* LCL_VAR int V34 tmp27
[000332] ------------ | | \--* CNS_INT int 8
[000334] ------------ | \--* LCL_VAR int V34 tmp27
[000336] ------------ \--* CNS_INT int 8
***** BB28, stmt 48
[000162] -A---------- * ASG byref
[000161] D------N---- +--* LCL_VAR byref V17 tmp10
[000160] ------------ \--* CNS_INT byref 0
***** BB28, stmt 49
[000165] -A---------- * ASG byref
[000164] D------N---- +--* LCL_VAR byref V18 tmp11
[000163] ------------ \--* CNS_INT byref 0
***** BB28, stmt 50
[000168] -A---------- * ASG byref
[000167] D------N---- +--* LCL_VAR byref V19 tmp12
[000166] ------------ \--* CNS_INT byref 0
***** BB28, stmt 51
[000044] -A---------- * ASG ref
[000043] D------N---- +--* LCL_VAR ref V10 tmp3
[000042] ------------ \--* ALLOCOBJ ref
[000041] ------------ \--* CNS_INT(h) long 0xd1ffab1e token
***** BB28, stmt 52
[000362] -A---------- * ASG struct (copy)
[000360] D----------- +--* LCL_VAR struct V35 tmp28
[000056] n----------- \--* OBJ(8) struct
[000055] ------------ \--* ADDR byref
[000048] ------------ \--* LCL_VAR struct V00 arg0
***** BB28, stmt 53
[000434] -A---------- * ASG struct (copy)
[000432] D----------- +--* LCL_VAR struct V38 tmp31
[000359] n----------- \--* OBJ(8) struct
[000358] ------------ \--* ADDR byref
[000356] ------------ \--* LCL_VAR struct V35 tmp28
***** BB28, stmt 54
[000431] ---X-------- * IND int
[000047] ------------ \--* LCL_VAR ref V10 tmp3
***** BB28, stmt 55
[000437] -A---------- * ASG byref
[000436] D------N---- +--* LCL_VAR byref V39 tmp32
[000435] ------------ \--* CNS_INT byref 0
***** BB28, stmt 56
[000440] -A---------- * ASG byref
[000439] D------N---- +--* LCL_VAR byref V40 tmp33
[000438] ------------ \--* CNS_INT byref 0
***** BB28, stmt 57
[000443] -A---------- * ASG byref
[000442] D------N---- +--* LCL_VAR byref V41 tmp34
[000441] ------------ \--* CNS_INT byref 0
***** BB28, stmt 58
[000367] IA---------- * ASG struct (init)
[000364] D------N---- +--* LCL_VAR struct V36 tmp29
[000366] ------------ \--* CNS_INT int 0
***** BB28, stmt 59
[000371] IA---------- * ASG struct (init)
[000368] D------N---- +--* LCL_VAR struct V37 tmp30
[000370] ------------ \--* CNS_INT int 0
***** BB28, stmt 60
[000381] -AC--------- * ASG byref
[000380] D------N---- +--* LCL_VAR byref V39 tmp32
[000455] ------------ \--* ADD long
[000449] ------------ +--* FIELD long _pointer
[000447] ------------ | \--* ADDR byref
[000448] ------------ | \--* LCL_VAR struct V38 tmp31
[000454] ------------ \--* MUL long
[000451] ------------ +--* CAST long <- int
[000450] ------------ | \--* CNS_INT int 2
[000453] ------------ \--* CAST long <- int
[000452] ------------ \--* CNS_INT int 1
***** BB28, stmt 61
[000391] -AC--------- * ASG byref
[000390] D------N---- +--* LCL_VAR byref V40 tmp33
[000467] ------------ \--* ADD long
[000461] ------------ +--* FIELD long _pointer
[000459] ------------ | \--* ADDR byref
[000460] ------------ | \--* LCL_VAR struct V38 tmp31
[000466] ------------ \--* MUL long
[000463] ------------ +--* CAST long <- int
[000462] ------------ | \--* CNS_INT int 1
[000465] ------------ \--* CAST long <- int
[000464] ------------ \--* CNS_INT int 1
***** BB28, stmt 62
[000401] -AC--------- * ASG byref
[000400] D------N---- +--* LCL_VAR byref V41 tmp34
[000479] ------------ \--* ADD long
[000473] ------------ +--* FIELD long _pointer
[000471] ------------ | \--* ADDR byref
[000472] ------------ | \--* LCL_VAR struct V38 tmp31
[000478] ------------ \--* MUL long
[000475] ------------ +--* CAST long <- int
[000474] ------------ | \--* CNS_INT int 0
[000477] ------------ \--* CAST long <- int
[000476] ------------ \--* CNS_INT int 1
***** BB28, stmt 63
[000525] -A-XG------- * ASG ubyte
[000524] D------N---- +--* LCL_VAR ubyte V42 tmp35
[000406] *--XG------- \--* IND ubyte
[000405] ------------ \--* LCL_VAR byref V39 tmp32
***** BB28, stmt 64
[000528] -A---------- * ASG int
[000527] D------N---- +--* LCL_VAR int V46 tmp39
[000526] ------------ \--* CNS_INT int 0
------------ BB39 [032..033) -> BB41 (cond), preds={} succs={BB40,BB41}
***** BB39, stmt 65
[000491] -A---------- * ASG int
[000490] D------N---- +--* LCL_VAR int V43 tmp36
[000485] ------------ \--* ADD int
[000483] ------------ +--* MUL int
[000482] ------------ | +--* SUB int
[000049] ------------ | | +--* LCL_VAR ubyte V01 arg1
[000481] ------------ | | \--* LCL_VAR int V42 tmp35
[000052] ------------ | \--* LCL_VAR ubyte V04 arg4
[000484] ------------ \--* CNS_INT int 128
***** BB39, stmt 66
[000489] ------------ * JTRUE void
[000488] ------------ \--* GT int
[000486] ------------ +--* LCL_VAR int V42 tmp35
[000487] ------------ \--* LCL_VAR ubyte V01 arg1
------------ BB40 [032..033) -> BB42 (always), preds={} succs={BB42}
***** BB40, stmt 67
[000519] -A---------- * ASG int
[000518] D------N---- +--* LCL_VAR int V44 tmp37
[000493] ------------ \--* LCL_VAR int V43 tmp36
***** BB40, stmt 68
[000522] -A---------- * ASG int
[000521] D------N---- +--* LCL_VAR int V45 tmp38
[000517] ------------ \--* CNS_INT int 0
------------ BB41 [032..033), preds={} succs={BB42}
***** BB41, stmt 69
[000497] -A---------- * ASG int
[000496] D------N---- +--* LCL_VAR int V44 tmp37
[000494] ------------ \--* LCL_VAR int V43 tmp36
***** BB41, stmt 70
[000500] -A---------- * ASG int
[000499] D------N---- +--* LCL_VAR int V45 tmp38
[000495] ------------ \--* CNS_INT int 1
------------ BB42 [032..033), preds={} succs={BB43}
***** BB42, stmt 71
[000506] -A---------- * ASG int
[000505] D------N---- +--* LCL_VAR int V46 tmp39
[000504] ------------ \--* SUB int
[000502] ------------ +--* LCL_VAR int V44 tmp37
[000503] ------------ \--* LCL_VAR int V45 tmp38
------------ BB43 [???..???), preds={} succs={BB44}
***** BB43, stmt 72
[000410] -ACXG------- * ASG ubyte
[000409] *------N---- +--* IND ubyte
[000402] ------------ | \--* LCL_VAR byref V39 tmp32
[000516] ------------ \--* CAST int <- ubyte <- int
[000515] ------------ \--* ADD int
[000507] ------------ +--* LCL_VAR int V42 tmp35
[000514] ------------ \--* RSH int
[000512] ------------ +--* ADD int
[000510] ------------ | +--* RSH int
[000508] ------------ | | +--* LCL_VAR int V46 tmp39
[000509] ------------ | | \--* CNS_INT int 8
[000511] ------------ | \--* LCL_VAR int V46 tmp39
[000513] ------------ \--* CNS_INT int 8
***** BB43, stmt 73
[000574] -A-XG------- * ASG ubyte
[000573] D------N---- +--* LCL_VAR ubyte V47 tmp40
[000415] *--XG------- \--* IND ubyte
[000414] ------------ \--* LCL_VAR byref V40 tmp33
***** BB43, stmt 74
[000577] -A---------- * ASG int
[000576] D------N---- +--* LCL_VAR int V51 tmp44
[000575] ------------ \--* CNS_INT int 0
------------ BB44 [032..033) -> BB46 (cond), preds={} succs={BB45,BB46}
***** BB44, stmt 75
[000540] -A---------- * ASG int
[000539] D------N---- +--* LCL_VAR int V48 tmp41
[000534] ------------ \--* ADD int
[000532] ------------ +--* MUL int
[000531] ------------ | +--* SUB int
[000050] ------------ | | +--* LCL_VAR ubyte V02 arg2
[000530] ------------ | | \--* LCL_VAR int V47 tmp40
[000416] ------------ | \--* LCL_VAR ubyte V04 arg4
[000533] ------------ \--* CNS_INT int 128
***** BB44, stmt 76
[000538] ------------ * JTRUE void
[000537] ------------ \--* GT int
[000535] ------------ +--* LCL_VAR int V47 tmp40
[000536] ------------ \--* LCL_VAR ubyte V02 arg2
------------ BB45 [032..033) -> BB47 (always), preds={} succs={BB47}
***** BB45, stmt 77
[000568] -A---------- * ASG int
[000567] D------N---- +--* LCL_VAR int V49 tmp42
[000542] ------------ \--* LCL_VAR int V48 tmp41
***** BB45, stmt 78
[000571] -A---------- * ASG int
[000570] D------N---- +--* LCL_VAR int V50 tmp43
[000566] ------------ \--* CNS_INT int 0
------------ BB46 [032..033), preds={} succs={BB47}
***** BB46, stmt 79
[000546] -A---------- * ASG int
[000545] D------N---- +--* LCL_VAR int V49 tmp42
[000543] ------------ \--* LCL_VAR int V48 tmp41
***** BB46, stmt 80
[000549] -A---------- * ASG int
[000548] D------N---- +--* LCL_VAR int V50 tmp43
[000544] ------------ \--* CNS_INT int 1
------------ BB47 [032..033), preds={} succs={BB48}
***** BB47, stmt 81
[000555] -A---------- * ASG int
[000554] D------N---- +--* LCL_VAR int V51 tmp44
[000553] ------------ \--* SUB int
[000551] ------------ +--* LCL_VAR int V49 tmp42
[000552] ------------ \--* LCL_VAR int V50 tmp43
------------ BB48 [???..???), preds={} succs={BB49}
***** BB48, stmt 82
[000420] -ACXG------- * ASG ubyte
[000419] *------N---- +--* IND ubyte
[000411] ------------ | \--* LCL_VAR byref V40 tmp33
[000565] ------------ \--* CAST int <- ubyte <- int
[000564] ------------ \--* ADD int
[000556] ------------ +--* LCL_VAR int V47 tmp40
[000563] ------------ \--* RSH int
[000561] ------------ +--* ADD int
[000559] ------------ | +--* RSH int
[000557] ------------ | | +--* LCL_VAR int V51 tmp44
[000558] ------------ | | \--* CNS_INT int 8
[000560] ------------ | \--* LCL_VAR int V51 tmp44
[000562] ------------ \--* CNS_INT int 8
***** BB48, stmt 83
[000623] -A-XG------- * ASG ubyte
[000622] D------N---- +--* LCL_VAR ubyte V52 tmp45
[000425] *--XG------- \--* IND ubyte
[000424] ------------ \--* LCL_VAR byref V41 tmp34
***** BB48, stmt 84
[000626] -A---------- * ASG int
[000625] D------N---- +--* LCL_VAR int V56 tmp49
[000624] ------------ \--* CNS_INT int 0
------------ BB49 [032..033) -> BB51 (cond), preds={} succs={BB50,BB51}
***** BB49, stmt 85
[000589] -A---------- * ASG int
[000588] D------N---- +--* LCL_VAR int V53 tmp46
[000583] ------------ \--* ADD int
[000581] ------------ +--* MUL int
[000580] ------------ | +--* SUB int
[000051] ------------ | | +--* LCL_VAR ubyte V03 arg3
[000579] ------------ | | \--* LCL_VAR int V52 tmp45
[000426] ------------ | \--* LCL_VAR ubyte V04 arg4
[000582] ------------ \--* CNS_INT int 128
***** BB49, stmt 86
[000587] ------------ * JTRUE void
[000586] ------------ \--* GT int
[000584] ------------ +--* LCL_VAR int V52 tmp45
[000585] ------------ \--* LCL_VAR ubyte V03 arg3
------------ BB50 [032..033) -> BB52 (always), preds={} succs={BB52}
***** BB50, stmt 87
[000617] -A---------- * ASG int
[000616] D------N---- +--* LCL_VAR int V54 tmp47
[000591] ------------ \--* LCL_VAR int V53 tmp46
***** BB50, stmt 88
[000620] -A---------- * ASG int
[000619] D------N---- +--* LCL_VAR int V55 tmp48
[000615] ------------ \--* CNS_INT int 0
------------ BB51 [032..033), preds={} succs={BB52}
***** BB51, stmt 89
[000595] -A---------- * ASG int
[000594] D------N---- +--* LCL_VAR int V54 tmp47
[000592] ------------ \--* LCL_VAR int V53 tmp46
***** BB51, stmt 90
[000598] -A---------- * ASG int
[000597] D------N---- +--* LCL_VAR int V55 tmp48
[000593] ------------ \--* CNS_INT int 1
------------ BB52 [032..033), preds={} succs={BB53}
***** BB52, stmt 91
[000604] -A---------- * ASG int
[000603] D------N---- +--* LCL_VAR int V56 tmp49
[000602] ------------ \--* SUB int
[000600] ------------ +--* LCL_VAR int V54 tmp47
[000601] ------------ \--* LCL_VAR int V55 tmp48
------------ BB53 [???..???) (return), preds={} succs={}
***** BB53, stmt 92
[000430] -ACXG------- * ASG ubyte
[000429] *------N---- +--* IND ubyte
[000421] ------------ | \--* LCL_VAR byref V41 tmp34
[000614] ------------ \--* CAST int <- ubyte <- int
[000613] ------------ \--* ADD int
[000605] ------------ +--* LCL_VAR int V52 tmp45
[000612] ------------ \--* RSH int
[000610] ------------ +--* ADD int
[000608] ------------ | +--* RSH int
[000606] ------------ | | +--* LCL_VAR int V56 tmp49
[000607] ------------ | | \--* CNS_INT int 8
[000609] ------------ | \--* LCL_VAR int V56 tmp49
[000611] ------------ \--* CNS_INT int 8
***** BB53, stmt 93
[000057] ------------ * RETURN void
-------------------------------------------------------------------------------------------------------------------
*** 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..040) i newobj
BB14 [0013] 1 1 [020..021)-> BB16 ( cond ) i
BB15 [0014] 1 0.50 [020..021)-> BB17 (always) i
BB16 [0015] 1 0.50 [020..021) i
BB17 [0016] 2 1 [020..021) i
BB18 [0017] 1 1 [???..???) internal newobj
BB19 [0018] 1 1 [020..021)-> BB21 ( cond ) i
BB20 [0019] 1 0.50 [020..021)-> BB22 (always) i
BB21 [0020] 1 0.50 [020..021) i
BB22 [0021] 2 1 [020..021) i
BB23 [0022] 1 1 [???..???) internal newobj
BB24 [0023] 1 1 [020..021)-> BB26 ( cond ) i
BB25 [0024] 1 0.50 [020..021)-> BB27 (always) i
BB26 [0025] 1 0.50 [020..021) i
BB27 [0026] 2 1 [020..021) i
BB28 [0027] 1 1 [???..???) i internal newobj
BB39 [0038] 1 1 [032..033)-> BB41 ( cond ) i
BB40 [0039] 1 0.50 [032..033)-> BB42 (always) i
BB41 [0040] 1 0.50 [032..033) i
BB42 [0041] 2 1 [032..033) i
BB43 [0042] 1 1 [???..???) internal newobj
BB44 [0043] 1 1 [032..033)-> BB46 ( cond ) i
BB45 [0044] 1 0.50 [032..033)-> BB47 (always) i
BB46 [0045] 1 0.50 [032..033) i
BB47 [0046] 2 1 [032..033) i
BB48 [0047] 1 1 [???..???) internal newobj
BB49 [0048] 1 1 [032..033)-> BB51 ( cond ) i
BB50 [0049] 1 0.50 [032..033)-> BB52 (always) i
BB51 [0050] 1 0.50 [032..033) i
BB52 [0051] 2 1 [032..033) i
BB53 [0052] 1 1 [???..???) (return) internal newobj
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..040), preds={} succs={BB14}
***** BB01, stmt 1
[000003] IA---------- * ASG struct (init)
[000000] D------N---- +--* LCL_VAR struct V06 loc0
[000002] ------------ \--* CNS_INT int 0
***** BB01, stmt 2
[000008] -AC--------- * ASG ref
[000007] D------N---- +--* LCL_VAR ref V08 tmp1
[000006] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
[000005] ------------ arg0 \--* CNS_INT(h) long 0xd1ffab1e class
***** BB01, stmt 3
[000013] -A---------- * ASG struct (copy)
[000012] ------------ +--* BLK(1) struct
[000011] ------------ | \--* ADD byref
[000009] ------------ | +--* LCL_VAR ref V08 tmp1
[000010] ------------ | \--* CNS_INT long 8
[000004] ------------ \--* LCL_VAR struct V06 loc0
***** BB01, stmt 4
[000065] -A---------- * ASG struct (copy)
[000063] D----------- +--* LCL_VAR struct V12 tmp5
[000024] n----------- \--* OBJ(8) struct
[000023] ------------ \--* ADDR byref
[000016] ------------ \--* LCL_VAR struct V00 arg0
***** BB01, stmt 5
[000060] --C-G------- * CALL nullcheck void BlenderStruct`2.Blend
[000015] ------------ this in rcx +--* BOX ref
[000014] ------------ | \--* LCL_VAR ref V08 tmp1
[000062] n----------- arg1 +--* OBJ(8) struct
[000061] ------------ | \--* ADDR byref
[000059] ------------ | \--* LCL_VAR struct V12 tmp5
[000017] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000018] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000019] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000020] ------------ arg5 \--* LCL_VAR ubyte V04 arg4
***** BB01, stmt 6
[000028] -AC--------- * ASG ref
[000027] D------N---- +--* LCL_VAR ref V09 tmp2
[000026] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
[000025] ------------ arg0 \--* CNS_INT(h) long 0xd1ffab1e token
***** BB01, stmt 7
[000078] -A---------- * ASG struct (copy)
[000076] D----------- +--* LCL_VAR struct V13 tmp6
[000040] n----------- \--* OBJ(8) struct
[000039] ------------ \--* ADDR byref
[000032] ------------ \--* LCL_VAR struct V00 arg0
***** BB01, stmt 8
[000150] -A---------- * ASG struct (copy)
[000148] D----------- +--* LCL_VAR struct V16 tmp9
[000075] n----------- \--* OBJ(8) struct
[000074] ------------ \--* ADDR byref
[000072] ------------ \--* LCL_VAR struct V13 tmp6
***** BB01, stmt 9
[000147] ---X-------- * IND int
[000031] ------------ \--* LCL_VAR ref V09 tmp2
***** BB01, stmt 10
[000153] -A---------- * ASG byref
[000152] D------N---- +--* LCL_VAR byref V17 tmp10
[000151] ------------ \--* CNS_INT byref 0
***** BB01, stmt 11
[000156] -A---------- * ASG byref
[000155] D------N---- +--* LCL_VAR byref V18 tmp11
[000154] ------------ \--* CNS_INT byref 0
***** BB01, stmt 12
[000159] -A---------- * ASG byref
[000158] D------N---- +--* LCL_VAR byref V19 tmp12
[000157] ------------ \--* CNS_INT byref 0
***** BB01, stmt 13
[000083] IA---------- * ASG struct (init)
[000080] D------N---- +--* LCL_VAR struct V14 tmp7
[000082] ------------ \--* CNS_INT int 0
***** BB01, stmt 14
[000087] IA---------- * ASG struct (init)
[000084] D------N---- +--* LCL_VAR struct V15 tmp8
[000086] ------------ \--* CNS_INT int 0
***** BB01, stmt 15
[000097] -AC--------- * ASG byref
[000096] D------N---- +--* LCL_VAR byref V17 tmp10
[000180] ------------ \--* ADD long
[000174] ------------ +--* FIELD long _pointer
[000172] ------------ | \--* ADDR byref
[000173] ------------ | \--* LCL_VAR struct V16 tmp9
[000179] ------------ \--* MUL long
[000176] ------------ +--* CAST long <- int
[000175] ------------ | \--* CNS_INT int 2
[000178] ------------ \--* CAST long <- int
[000177] ------------ \--* CNS_INT int 1
***** BB01, stmt 16
[000107] -AC--------- * ASG byref
[000106] D------N---- +--* LCL_VAR byref V18 tmp11
[000192] ------------ \--* ADD long
[000186] ------------ +--* FIELD long _pointer
[000184] ------------ | \--* ADDR byref
[000185] ------------ | \--* LCL_VAR struct V16 tmp9
[000191] ------------ \--* MUL long
[000188] ------------ +--* CAST long <- int
[000187] ------------ | \--* CNS_INT int 1
[000190] ------------ \--* CAST long <- int
[000189] ------------ \--* CNS_INT int 1
***** BB01, stmt 17
[000117] -AC--------- * ASG byref
[000116] D------N---- +--* LCL_VAR byref V19 tmp12
[000204] ------------ \--* ADD long
[000198] ------------ +--* FIELD long _pointer
[000196] ------------ | \--* ADDR byref
[000197] ------------ | \--* LCL_VAR struct V16 tmp9
[000203] ------------ \--* MUL long
[000200] ------------ +--* CAST long <- int
[000199] ------------ | \--* CNS_INT int 0
[000202] ------------ \--* CAST long <- int
[000201] ------------ \--* CNS_INT int 1
***** BB01, stmt 18
[000250] -A-XG------- * ASG ubyte
[000249] D------N---- +--* LCL_VAR ubyte V20 tmp13
[000122] *--XG------- \--* IND ubyte
[000121] ------------ \--* LCL_VAR byref V17 tmp10
***** BB01, stmt 19
[000253] -A---------- * ASG int
[000252] D------N---- +--* LCL_VAR int V24 tmp17
[000251] ------------ \--* CNS_INT int 0
------------ BB14 [020..021) -> BB16 (cond), preds={} succs={BB15,BB16}
***** BB14, stmt 20
[000216] -A---------- * ASG int
[000215] D------N---- +--* LCL_VAR int V21 tmp14
[000210] ------------ \--* ADD int
[000208] ------------ +--* MUL int
[000207] ------------ | +--* SUB int
[000033] ------------ | | +--* LCL_VAR ubyte V01 arg1
[000206] ------------ | | \--* LCL_VAR int V20 tmp13
[000036] ------------ | \--* LCL_VAR ubyte V04 arg4
[000209] ------------ \--* CNS_INT int 128
***** BB14, stmt 21
[000214] ------------ * JTRUE void
[000213] ------------ \--* GT int
[000211] ------------ +--* LCL_VAR int V20 tmp13
[000212] ------------ \--* LCL_VAR ubyte V01 arg1
------------ BB15 [020..021) -> BB17 (always), preds={} succs={BB17}
***** BB15, stmt 22
[000244] -A---------- * ASG int
[000243] D------N---- +--* LCL_VAR int V22 tmp15
[000218] ------------ \--* LCL_VAR int V21 tmp14
***** BB15, stmt 23
[000247] -A---------- * ASG int
[000246] D------N---- +--* LCL_VAR int V23 tmp16
[000242] ------------ \--* CNS_INT int 0
------------ BB16 [020..021), preds={} succs={BB17}
***** BB16, stmt 24
[000222] -A---------- * ASG int
[000221] D------N---- +--* LCL_VAR int V22 tmp15
[000219] ------------ \--* LCL_VAR int V21 tmp14
***** BB16, stmt 25
[000225] -A---------- * ASG int
[000224] D------N---- +--* LCL_VAR int V23 tmp16
[000220] ------------ \--* CNS_INT int 1
------------ BB17 [020..021), preds={} succs={BB18}
***** BB17, stmt 26
[000231] -A---------- * ASG int
[000230] D------N---- +--* LCL_VAR int V24 tmp17
[000229] ------------ \--* SUB int
[000227] ------------ +--* LCL_VAR int V22 tmp15
[000228] ------------ \--* LCL_VAR int V23 tmp16
------------ BB18 [???..???), preds={} succs={BB19}
***** BB18, stmt 27
[000126] -ACXG------- * ASG ubyte
[000125] *------N---- +--* IND ubyte
[000118] ------------ | \--* LCL_VAR byref V17 tmp10
[000241] ------------ \--* CAST int <- ubyte <- int
[000240] ------------ \--* ADD int
[000232] ------------ +--* LCL_VAR int V20 tmp13
[000239] ------------ \--* RSH int
[000237] ------------ +--* ADD int
[000235] ------------ | +--* RSH int
[000233] ------------ | | +--* LCL_VAR int V24 tmp17
[000234] ------------ | | \--* CNS_INT int 8
[000236] ------------ | \--* LCL_VAR int V24 tmp17
[000238] ------------ \--* CNS_INT int 8
***** BB18, stmt 28
[000299] -A-XG------- * ASG ubyte
[000298] D------N---- +--* LCL_VAR ubyte V25 tmp18
[000131] *--XG------- \--* IND ubyte
[000130] ------------ \--* LCL_VAR byref V18 tmp11
***** BB18, stmt 29
[000302] -A---------- * ASG int
[000301] D------N---- +--* LCL_VAR int V29 tmp22
[000300] ------------ \--* CNS_INT int 0
------------ BB19 [020..021) -> BB21 (cond), preds={} succs={BB20,BB21}
***** BB19, stmt 30
[000265] -A---------- * ASG int
[000264] D------N---- +--* LCL_VAR int V26 tmp19
[000259] ------------ \--* ADD int
[000257] ------------ +--* MUL int
[000256] ------------ | +--* SUB int
[000034] ------------ | | +--* LCL_VAR ubyte V02 arg2
[000255] ------------ | | \--* LCL_VAR int V25 tmp18
[000132] ------------ | \--* LCL_VAR ubyte V04 arg4
[000258] ------------ \--* CNS_INT int 128
***** BB19, stmt 31
[000263] ------------ * JTRUE void
[000262] ------------ \--* GT int
[000260] ------------ +--* LCL_VAR int V25 tmp18
[000261] ------------ \--* LCL_VAR ubyte V02 arg2
------------ BB20 [020..021) -> BB22 (always), preds={} succs={BB22}
***** BB20, stmt 32
[000293] -A---------- * ASG int
[000292] D------N---- +--* LCL_VAR int V27 tmp20
[000267] ------------ \--* LCL_VAR int V26 tmp19
***** BB20, stmt 33
[000296] -A---------- * ASG int
[000295] D------N---- +--* LCL_VAR int V28 tmp21
[000291] ------------ \--* CNS_INT int 0
------------ BB21 [020..021), preds={} succs={BB22}
***** BB21, stmt 34
[000271] -A---------- * ASG int
[000270] D------N---- +--* LCL_VAR int V27 tmp20
[000268] ------------ \--* LCL_VAR int V26 tmp19
***** BB21, stmt 35
[000274] -A---------- * ASG int
[000273] D------N---- +--* LCL_VAR int V28 tmp21
[000269] ------------ \--* CNS_INT int 1
------------ BB22 [020..021), preds={} succs={BB23}
***** BB22, stmt 36
[000280] -A---------- * ASG int
[000279] D------N---- +--* LCL_VAR int V29 tmp22
[000278] ------------ \--* SUB int
[000276] ------------ +--* LCL_VAR int V27 tmp20
[000277] ------------ \--* LCL_VAR int V28 tmp21
------------ BB23 [???..???), preds={} succs={BB24}
***** BB23, stmt 37
[000136] -ACXG------- * ASG ubyte
[000135] *------N---- +--* IND ubyte
[000127] ------------ | \--* LCL_VAR byref V18 tmp11
[000290] ------------ \--* CAST int <- ubyte <- int
[000289] ------------ \--* ADD int
[000281] ------------ +--* LCL_VAR int V25 tmp18
[000288] ------------ \--* RSH int
[000286] ------------ +--* ADD int
[000284] ------------ | +--* RSH int
[000282] ------------ | | +--* LCL_VAR int V29 tmp22
[000283] ------------ | | \--* CNS_INT int 8
[000285] ------------ | \--* LCL_VAR int V29 tmp22
[000287] ------------ \--* CNS_INT int 8
***** BB23, stmt 38
[000348] -A-XG------- * ASG ubyte
[000347] D------N---- +--* LCL_VAR ubyte V30 tmp23
[000141] *--XG------- \--* IND ubyte
[000140] ------------ \--* LCL_VAR byref V19 tmp12
***** BB23, stmt 39
[000351] -A---------- * ASG int
[000350] D------N---- +--* LCL_VAR int V34 tmp27
[000349] ------------ \--* CNS_INT int 0
------------ BB24 [020..021) -> BB26 (cond), preds={} succs={BB25,BB26}
***** BB24, stmt 40
[000314] -A---------- * ASG int
[000313] D------N---- +--* LCL_VAR int V31 tmp24
[000308] ------------ \--* ADD int
[000306] ------------ +--* MUL int
[000305] ------------ | +--* SUB int
[000035] ------------ | | +--* LCL_VAR ubyte V03 arg3
[000304] ------------ | | \--* LCL_VAR int V30 tmp23
[000142] ------------ | \--* LCL_VAR ubyte V04 arg4
[000307] ------------ \--* CNS_INT int 128
***** BB24, stmt 41
[000312] ------------ * JTRUE void
[000311] ------------ \--* GT int
[000309] ------------ +--* LCL_VAR int V30 tmp23
[000310] ------------ \--* LCL_VAR ubyte V03 arg3
------------ BB25 [020..021) -> BB27 (always), preds={} succs={BB27}
***** BB25, stmt 42
[000342] -A---------- * ASG int
[000341] D------N---- +--* LCL_VAR int V32 tmp25
[000316] ------------ \--* LCL_VAR int V31 tmp24
***** BB25, stmt 43
[000345] -A---------- * ASG int
[000344] D------N---- +--* LCL_VAR int V33 tmp26
[000340] ------------ \--* CNS_INT int 0
------------ BB26 [020..021), preds={} succs={BB27}
***** BB26, stmt 44
[000320] -A---------- * ASG int
[000319] D------N---- +--* LCL_VAR int V32 tmp25
[000317] ------------ \--* LCL_VAR int V31 tmp24
***** BB26, stmt 45
[000323] -A---------- * ASG int
[000322] D------N---- +--* LCL_VAR int V33 tmp26
[000318] ------------ \--* CNS_INT int 1
------------ BB27 [020..021), preds={} succs={BB28}
***** BB27, stmt 46
[000329] -A---------- * ASG int
[000328] D------N---- +--* LCL_VAR int V34 tmp27
[000327] ------------ \--* SUB int
[000325] ------------ +--* LCL_VAR int V32 tmp25
[000326] ------------ \--* LCL_VAR int V33 tmp26
------------ BB28 [???..???), preds={} succs={BB39}
***** BB28, stmt 47
[000146] -ACXG------- * ASG ubyte
[000145] *------N---- +--* IND ubyte
[000137] ------------ | \--* LCL_VAR byref V19 tmp12
[000339] ------------ \--* CAST int <- ubyte <- int
[000338] ------------ \--* ADD int
[000330] ------------ +--* LCL_VAR int V30 tmp23
[000337] ------------ \--* RSH int
[000335] ------------ +--* ADD int
[000333] ------------ | +--* RSH int
[000331] ------------ | | +--* LCL_VAR int V34 tmp27
[000332] ------------ | | \--* CNS_INT int 8
[000334] ------------ | \--* LCL_VAR int V34 tmp27
[000336] ------------ \--* CNS_INT int 8
***** BB28, stmt 48
[000162] -A---------- * ASG byref
[000161] D------N---- +--* LCL_VAR byref V17 tmp10
[000160] ------------ \--* CNS_INT byref 0
***** BB28, stmt 49
[000165] -A---------- * ASG byref
[000164] D------N---- +--* LCL_VAR byref V18 tmp11
[000163] ------------ \--* CNS_INT byref 0
***** BB28, stmt 50
[000168] -A---------- * ASG byref
[000167] D------N---- +--* LCL_VAR byref V19 tmp12
[000166] ------------ \--* CNS_INT byref 0
***** BB28, stmt 51
[000044] -AC--------- * ASG ref
[000043] D------N---- +--* LCL_VAR ref V10 tmp3
[000042] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
[000041] ------------ arg0 \--* CNS_INT(h) long 0xd1ffab1e token
***** BB28, stmt 52
[000362] -A---------- * ASG struct (copy)
[000360] D----------- +--* LCL_VAR struct V35 tmp28
[000056] n----------- \--* OBJ(8) struct
[000055] ------------ \--* ADDR byref
[000048] ------------ \--* LCL_VAR struct V00 arg0
***** BB28, stmt 53
[000434] -A---------- * ASG struct (copy)
[000432] D----------- +--* LCL_VAR struct V38 tmp31
[000359] n----------- \--* OBJ(8) struct
[000358] ------------ \--* ADDR byref
[000356] ------------ \--* LCL_VAR struct V35 tmp28
***** BB28, stmt 54
[000431] ---X-------- * IND int
[000047] ------------ \--* LCL_VAR ref V10 tmp3
***** BB28, stmt 55
[000437] -A---------- * ASG byref
[000436] D------N---- +--* LCL_VAR byref V39 tmp32
[000435] ------------ \--* CNS_INT byref 0
***** BB28, stmt 56
[000440] -A---------- * ASG byref
[000439] D------N---- +--* LCL_VAR byref V40 tmp33
[000438] ------------ \--* CNS_INT byref 0
***** BB28, stmt 57
[000443] -A---------- * ASG byref
[000442] D------N---- +--* LCL_VAR byref V41 tmp34
[000441] ------------ \--* CNS_INT byref 0
***** BB28, stmt 58
[000367] IA---------- * ASG struct (init)
[000364] D------N---- +--* LCL_VAR struct V36 tmp29
[000366] ------------ \--* CNS_INT int 0
***** BB28, stmt 59
[000371] IA---------- * ASG struct (init)
[000368] D------N---- +--* LCL_VAR struct V37 tmp30
[000370] ------------ \--* CNS_INT int 0
***** BB28, stmt 60
[000381] -AC--------- * ASG byref
[000380] D------N---- +--* LCL_VAR byref V39 tmp32
[000455] ------------ \--* ADD long
[000449] ------------ +--* FIELD long _pointer
[000447] ------------ | \--* ADDR byref
[000448] ------------ | \--* LCL_VAR struct V38 tmp31
[000454] ------------ \--* MUL long
[000451] ------------ +--* CAST long <- int
[000450] ------------ | \--* CNS_INT int 2
[000453] ------------ \--* CAST long <- int
[000452] ------------ \--* CNS_INT int 1
***** BB28, stmt 61
[000391] -AC--------- * ASG byref
[000390] D------N---- +--* LCL_VAR byref V40 tmp33
[000467] ------------ \--* ADD long
[000461] ------------ +--* FIELD long _pointer
[000459] ------------ | \--* ADDR byref
[000460] ------------ | \--* LCL_VAR struct V38 tmp31
[000466] ------------ \--* MUL long
[000463] ------------ +--* CAST long <- int
[000462] ------------ | \--* CNS_INT int 1
[000465] ------------ \--* CAST long <- int
[000464] ------------ \--* CNS_INT int 1
***** BB28, stmt 62
[000401] -AC--------- * ASG byref
[000400] D------N---- +--* LCL_VAR byref V41 tmp34
[000479] ------------ \--* ADD long
[000473] ------------ +--* FIELD long _pointer
[000471] ------------ | \--* ADDR byref
[000472] ------------ | \--* LCL_VAR struct V38 tmp31
[000478] ------------ \--* MUL long
[000475] ------------ +--* CAST long <- int
[000474] ------------ | \--* CNS_INT int 0
[000477] ------------ \--* CAST long <- int
[000476] ------------ \--* CNS_INT int 1
***** BB28, stmt 63
[000525] -A-XG------- * ASG ubyte
[000524] D------N---- +--* LCL_VAR ubyte V42 tmp35
[000406] *--XG------- \--* IND ubyte
[000405] ------------ \--* LCL_VAR byref V39 tmp32
***** BB28, stmt 64
[000528] -A---------- * ASG int
[000527] D------N---- +--* LCL_VAR int V46 tmp39
[000526] ------------ \--* CNS_INT int 0
------------ BB39 [032..033) -> BB41 (cond), preds={} succs={BB40,BB41}
***** BB39, stmt 65
[000491] -A---------- * ASG int
[000490] D------N---- +--* LCL_VAR int V43 tmp36
[000485] ------------ \--* ADD int
[000483] ------------ +--* MUL int
[000482] ------------ | +--* SUB int
[000049] ------------ | | +--* LCL_VAR ubyte V01 arg1
[000481] ------------ | | \--* LCL_VAR int V42 tmp35
[000052] ------------ | \--* LCL_VAR ubyte V04 arg4
[000484] ------------ \--* CNS_INT int 128
***** BB39, stmt 66
[000489] ------------ * JTRUE void
[000488] ------------ \--* GT int
[000486] ------------ +--* LCL_VAR int V42 tmp35
[000487] ------------ \--* LCL_VAR ubyte V01 arg1
------------ BB40 [032..033) -> BB42 (always), preds={} succs={BB42}
***** BB40, stmt 67
[000519] -A---------- * ASG int
[000518] D------N---- +--* LCL_VAR int V44 tmp37
[000493] ------------ \--* LCL_VAR int V43 tmp36
***** BB40, stmt 68
[000522] -A---------- * ASG int
[000521] D------N---- +--* LCL_VAR int V45 tmp38
[000517] ------------ \--* CNS_INT int 0
------------ BB41 [032..033), preds={} succs={BB42}
***** BB41, stmt 69
[000497] -A---------- * ASG int
[000496] D------N---- +--* LCL_VAR int V44 tmp37
[000494] ------------ \--* LCL_VAR int V43 tmp36
***** BB41, stmt 70
[000500] -A---------- * ASG int
[000499] D------N---- +--* LCL_VAR int V45 tmp38
[000495] ------------ \--* CNS_INT int 1
------------ BB42 [032..033), preds={} succs={BB43}
***** BB42, stmt 71
[000506] -A---------- * ASG int
[000505] D------N---- +--* LCL_VAR int V46 tmp39
[000504] ------------ \--* SUB int
[000502] ------------ +--* LCL_VAR int V44 tmp37
[000503] ------------ \--* LCL_VAR int V45 tmp38
------------ BB43 [???..???), preds={} succs={BB44}
***** BB43, stmt 72
[000410] -ACXG------- * ASG ubyte
[000409] *------N---- +--* IND ubyte
[000402] ------------ | \--* LCL_VAR byref V39 tmp32
[000516] ------------ \--* CAST int <- ubyte <- int
[000515] ------------ \--* ADD int
[000507] ------------ +--* LCL_VAR int V42 tmp35
[000514] ------------ \--* RSH int
[000512] ------------ +--* ADD int
[000510] ------------ | +--* RSH int
[000508] ------------ | | +--* LCL_VAR int V46 tmp39
[000509] ------------ | | \--* CNS_INT int 8
[000511] ------------ | \--* LCL_VAR int V46 tmp39
[000513] ------------ \--* CNS_INT int 8
***** BB43, stmt 73
[000574] -A-XG------- * ASG ubyte
[000573] D------N---- +--* LCL_VAR ubyte V47 tmp40
[000415] *--XG------- \--* IND ubyte
[000414] ------------ \--* LCL_VAR byref V40 tmp33
***** BB43, stmt 74
[000577] -A---------- * ASG int
[000576] D------N---- +--* LCL_VAR int V51 tmp44
[000575] ------------ \--* CNS_INT int 0
------------ BB44 [032..033) -> BB46 (cond), preds={} succs={BB45,BB46}
***** BB44, stmt 75
[000540] -A---------- * ASG int
[000539] D------N---- +--* LCL_VAR int V48 tmp41
[000534] ------------ \--* ADD int
[000532] ------------ +--* MUL int
[000531] ------------ | +--* SUB int
[000050] ------------ | | +--* LCL_VAR ubyte V02 arg2
[000530] ------------ | | \--* LCL_VAR int V47 tmp40
[000416] ------------ | \--* LCL_VAR ubyte V04 arg4
[000533] ------------ \--* CNS_INT int 128
***** BB44, stmt 76
[000538] ------------ * JTRUE void
[000537] ------------ \--* GT int
[000535] ------------ +--* LCL_VAR int V47 tmp40
[000536] ------------ \--* LCL_VAR ubyte V02 arg2
------------ BB45 [032..033) -> BB47 (always), preds={} succs={BB47}
***** BB45, stmt 77
[000568] -A---------- * ASG int
[000567] D------N---- +--* LCL_VAR int V49 tmp42
[000542] ------------ \--* LCL_VAR int V48 tmp41
***** BB45, stmt 78
[000571] -A---------- * ASG int
[000570] D------N---- +--* LCL_VAR int V50 tmp43
[000566] ------------ \--* CNS_INT int 0
------------ BB46 [032..033), preds={} succs={BB47}
***** BB46, stmt 79
[000546] -A---------- * ASG int
[000545] D------N---- +--* LCL_VAR int V49 tmp42
[000543] ------------ \--* LCL_VAR int V48 tmp41
***** BB46, stmt 80
[000549] -A---------- * ASG int
[000548] D------N---- +--* LCL_VAR int V50 tmp43
[000544] ------------ \--* CNS_INT int 1
------------ BB47 [032..033), preds={} succs={BB48}
***** BB47, stmt 81
[000555] -A---------- * ASG int
[000554] D------N---- +--* LCL_VAR int V51 tmp44
[000553] ------------ \--* SUB int
[000551] ------------ +--* LCL_VAR int V49 tmp42
[000552] ------------ \--* LCL_VAR int V50 tmp43
------------ BB48 [???..???), preds={} succs={BB49}
***** BB48, stmt 82
[000420] -ACXG------- * ASG ubyte
[000419] *------N---- +--* IND ubyte
[000411] ------------ | \--* LCL_VAR byref V40 tmp33
[000565] ------------ \--* CAST int <- ubyte <- int
[000564] ------------ \--* ADD int
[000556] ------------ +--* LCL_VAR int V47 tmp40
[000563] ------------ \--* RSH int
[000561] ------------ +--* ADD int
[000559] ------------ | +--* RSH int
[000557] ------------ | | +--* LCL_VAR int V51 tmp44
[000558] ------------ | | \--* CNS_INT int 8
[000560] ------------ | \--* LCL_VAR int V51 tmp44
[000562] ------------ \--* CNS_INT int 8
***** BB48, stmt 83
[000623] -A-XG------- * ASG ubyte
[000622] D------N---- +--* LCL_VAR ubyte V52 tmp45
[000425] *--XG------- \--* IND ubyte
[000424] ------------ \--* LCL_VAR byref V41 tmp34
***** BB48, stmt 84
[000626] -A---------- * ASG int
[000625] D------N---- +--* LCL_VAR int V56 tmp49
[000624] ------------ \--* CNS_INT int 0
------------ BB49 [032..033) -> BB51 (cond), preds={} succs={BB50,BB51}
***** BB49, stmt 85
[000589] -A---------- * ASG int
[000588] D------N---- +--* LCL_VAR int V53 tmp46
[000583] ------------ \--* ADD int
[000581] ------------ +--* MUL int
[000580] ------------ | +--* SUB int
[000051] ------------ | | +--* LCL_VAR ubyte V03 arg3
[000579] ------------ | | \--* LCL_VAR int V52 tmp45
[000426] ------------ | \--* LCL_VAR ubyte V04 arg4
[000582] ------------ \--* CNS_INT int 128
***** BB49, stmt 86
[000587] ------------ * JTRUE void
[000586] ------------ \--* GT int
[000584] ------------ +--* LCL_VAR int V52 tmp45
[000585] ------------ \--* LCL_VAR ubyte V03 arg3
------------ BB50 [032..033) -> BB52 (always), preds={} succs={BB52}
***** BB50, stmt 87
[000617] -A---------- * ASG int
[000616] D------N---- +--* LCL_VAR int V54 tmp47
[000591] ------------ \--* LCL_VAR int V53 tmp46
***** BB50, stmt 88
[000620] -A---------- * ASG int
[000619] D------N---- +--* LCL_VAR int V55 tmp48
[000615] ------------ \--* CNS_INT int 0
------------ BB51 [032..033), preds={} succs={BB52}
***** BB51, stmt 89
[000595] -A---------- * ASG int
[000594] D------N---- +--* LCL_VAR int V54 tmp47
[000592] ------------ \--* LCL_VAR int V53 tmp46
***** BB51, stmt 90
[000598] -A---------- * ASG int
[000597] D------N---- +--* LCL_VAR int V55 tmp48
[000593] ------------ \--* CNS_INT int 1
------------ BB52 [032..033), preds={} succs={BB53}
***** BB52, stmt 91
[000604] -A---------- * ASG int
[000603] D------N---- +--* LCL_VAR int V56 tmp49
[000602] ------------ \--* SUB int
[000600] ------------ +--* LCL_VAR int V54 tmp47
[000601] ------------ \--* LCL_VAR int V55 tmp48
------------ BB53 [???..???) (return), preds={} succs={}
***** BB53, stmt 92
[000430] -ACXG------- * ASG ubyte
[000429] *------N---- +--* IND ubyte
[000421] ------------ | \--* LCL_VAR byref V41 tmp34
[000614] ------------ \--* CAST int <- ubyte <- int
[000613] ------------ \--* ADD int
[000605] ------------ +--* LCL_VAR int V52 tmp45
[000612] ------------ \--* RSH int
[000610] ------------ +--* ADD int
[000608] ------------ | +--* RSH int
[000606] ------------ | | +--* LCL_VAR int V56 tmp49
[000607] ------------ | | \--* CNS_INT int 8
[000609] ------------ | \--* LCL_VAR int V56 tmp49
[000611] ------------ \--* CNS_INT int 8
***** BB53, stmt 93
[000057] ------------ * RETURN void
-------------------------------------------------------------------------------------------------------------------
*************** After fgAddInternal()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..040) i newobj
BB14 [0013] 1 1 [020..021)-> BB16 ( cond ) i
BB15 [0014] 1 0.50 [020..021)-> BB17 (always) i
BB16 [0015] 1 0.50 [020..021) i
BB17 [0016] 2 1 [020..021) i
BB18 [0017] 1 1 [???..???) internal newobj
BB19 [0018] 1 1 [020..021)-> BB21 ( cond ) i
BB20 [0019] 1 0.50 [020..021)-> BB22 (always) i
BB21 [0020] 1 0.50 [020..021) i
BB22 [0021] 2 1 [020..021) i
BB23 [0022] 1 1 [???..???) internal newobj
BB24 [0023] 1 1 [020..021)-> BB26 ( cond ) i
BB25 [0024] 1 0.50 [020..021)-> BB27 (always) i
BB26 [0025] 1 0.50 [020..021) i
BB27 [0026] 2 1 [020..021) i
BB28 [0027] 1 1 [???..???) i internal newobj
BB39 [0038] 1 1 [032..033)-> BB41 ( cond ) i
BB40 [0039] 1 0.50 [032..033)-> BB42 (always) i
BB41 [0040] 1 0.50 [032..033) i
BB42 [0041] 2 1 [032..033) i
BB43 [0042] 1 1 [???..???) internal newobj
BB44 [0043] 1 1 [032..033)-> BB46 ( cond ) i
BB45 [0044] 1 0.50 [032..033)-> BB47 (always) i
BB46 [0045] 1 0.50 [032..033) i
BB47 [0046] 2 1 [032..033) i
BB48 [0047] 1 1 [???..???) internal newobj
BB49 [0048] 1 1 [032..033)-> BB51 ( cond ) i
BB50 [0049] 1 0.50 [032..033)-> BB52 (always) i
BB51 [0050] 1 0.50 [032..033) i
BB52 [0051] 2 1 [032..033) i
BB53 [0052] 1 1 [???..???) (return) internal 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 struct ( 8)
; V01 arg1 ubyte
; V02 arg2 ubyte
; V03 arg3 ubyte
; V04 arg4 ubyte
; V05 arg5 ubyte
; V06 loc0 struct ( 8) ld-addr-op
; V07 OutArgs lclBlk (na) "OutgoingArgSpace"
; V08 tmp1 ref class-hnd exact "Single-def Box Helper"
; V09 tmp2 ref class-hnd exact "NewObj constructor temp"
; V10 tmp3 ref class-hnd exact "NewObj constructor temp"
; V11 tmp4 ref class-hnd exact "Inlining Arg"
; V12 tmp5 struct ( 8) "Inlining Arg"
; V13 tmp6 struct ( 8) "Inlining Arg"
; V14 tmp7 struct ( 8) ld-addr-op "Inline ldloca(s) first use temp"
; V15 tmp8 struct ( 8) ld-addr-op "Inline ldloca(s) first use temp"
; V16 tmp9 struct ( 8) ld-addr-op "Inlining Arg"
; V17 tmp10 byref "Inline stloc first use temp"
; V18 tmp11 byref "Inline stloc first use temp"
; V19 tmp12 byref "Inline stloc first use temp"
; V20 tmp13 ubyte "Inlining Arg"
; V21 tmp14 int
; V22 tmp15 int
; V23 tmp16 int
; V24 tmp17 int "Inline stloc first use temp"
; V25 tmp18 ubyte "Inlining Arg"
; V26 tmp19 int
; V27 tmp20 int
; V28 tmp21 int
; V29 tmp22 int "Inline stloc first use temp"
; V30 tmp23 ubyte "Inlining Arg"
; V31 tmp24 int
; V32 tmp25 int
; V33 tmp26 int
; V34 tmp27 int "Inline stloc first use temp"
; V35 tmp28 struct ( 8) "Inlining Arg"
; V36 tmp29 struct ( 8) ld-addr-op "Inline ldloca(s) first use temp"
; V37 tmp30 struct ( 8) ld-addr-op "Inline ldloca(s) first use temp"
; V38 tmp31 struct ( 8) ld-addr-op "Inlining Arg"
; V39 tmp32 byref "Inline stloc first use temp"
; V40 tmp33 byref "Inline stloc first use temp"
; V41 tmp34 byref "Inline stloc first use temp"
; V42 tmp35 ubyte "Inlining Arg"
; V43 tmp36 int
; V44 tmp37 int
; V45 tmp38 int
; V46 tmp39 int "Inline stloc first use temp"
; V47 tmp40 ubyte "Inlining Arg"
; V48 tmp41 int
; V49 tmp42 int
; V50 tmp43 int
; V51 tmp44 int "Inline stloc first use temp"
; V52 tmp45 ubyte "Inlining Arg"
; V53 tmp46 int
; V54 tmp47 int
; V55 tmp48 int
; V56 tmp49 int "Inline stloc first use temp"
Promoting struct local V00 (PodPtr`1):
lvaGrabTemp returning 57 (V57 tmp50) (a long lifetime temp) called for field V00._pointer (fldOffset=0x0).
Promoting struct local V12 (PodPtr`1):
lvaGrabTemp returning 58 (V58 tmp51) (a long lifetime temp) called for field V12._pointer (fldOffset=0x0).
Promoting struct local V13 (PodPtr`1):
lvaGrabTemp returning 59 (V59 tmp52) (a long lifetime temp) called for field V13._pointer (fldOffset=0x0).
Not promoting promotable struct local V15: #fields = 4, fieldAccessed = 0.
Promoting struct local V16 (PodPtr`1):
lvaGrabTemp returning 60 (V60 tmp53) (a long lifetime temp) called for field V16._pointer (fldOffset=0x0).
Promoting struct local V35 (PodPtr`1):
lvaGrabTemp returning 61 (V61 tmp54) (a long lifetime temp) called for field V35._pointer (fldOffset=0x0).
Not promoting promotable struct local V37: #fields = 4, fieldAccessed = 0.
Promoting struct local V38 (PodPtr`1):
lvaGrabTemp returning 62 (V62 tmp55) (a long lifetime temp) called for field V38._pointer (fldOffset=0x0).
lvaTable after fgPromoteStructs
; Initial local variable assignments
;
; V00 arg0 struct ( 8)
; V01 arg1 ubyte
; V02 arg2 ubyte
; V03 arg3 ubyte
; V04 arg4 ubyte
; V05 arg5 ubyte
; V06 loc0 struct ( 8) ld-addr-op
; V07 OutArgs lclBlk (na) "OutgoingArgSpace"
; V08 tmp1 ref class-hnd exact "Single-def Box Helper"
; V09 tmp2 ref class-hnd exact "NewObj constructor temp"
; V10 tmp3 ref class-hnd exact "NewObj constructor temp"
; V11 tmp4 ref class-hnd exact "Inlining Arg"
; V12 tmp5 struct ( 8) "Inlining Arg"
; V13 tmp6 struct ( 8) "Inlining Arg"
; V14 tmp7 struct ( 8) ld-addr-op "Inline ldloca(s) first use temp"
; V15 tmp8 struct ( 8) ld-addr-op "Inline ldloca(s) first use temp"
; V16 tmp9 struct ( 8) ld-addr-op "Inlining Arg"
; V17 tmp10 byref "Inline stloc first use temp"
; V18 tmp11 byref "Inline stloc first use temp"
; V19 tmp12 byref "Inline stloc first use temp"
; V20 tmp13 ubyte "Inlining Arg"
; V21 tmp14 int
; V22 tmp15 int
; V23 tmp16 int
; V24 tmp17 int "Inline stloc first use temp"
; V25 tmp18 ubyte "Inlining Arg"
; V26 tmp19 int
; V27 tmp20 int
; V28 tmp21 int
; V29 tmp22 int "Inline stloc first use temp"
; V30 tmp23 ubyte "Inlining Arg"
; V31 tmp24 int
; V32 tmp25 int
; V33 tmp26 int
; V34 tmp27 int "Inline stloc first use temp"
; V35 tmp28 struct ( 8) "Inlining Arg"
; V36 tmp29 struct ( 8) ld-addr-op "Inline ldloca(s) first use temp"
; V37 tmp30 struct ( 8) ld-addr-op "Inline ldloca(s) first use temp"
; V38 tmp31 struct ( 8) ld-addr-op "Inlining Arg"
; V39 tmp32 byref "Inline stloc first use temp"
; V40 tmp33 byref "Inline stloc first use temp"
; V41 tmp34 byref "Inline stloc first use temp"
; V42 tmp35 ubyte "Inlining Arg"
; V43 tmp36 int
; V44 tmp37 int
; V45 tmp38 int
; V46 tmp39 int "Inline stloc first use temp"
; V47 tmp40 ubyte "Inlining Arg"
; V48 tmp41 int
; V49 tmp42 int
; V50 tmp43 int
; V51 tmp44 int "Inline stloc first use temp"
; V52 tmp45 ubyte "Inlining Arg"
; V53 tmp46 int
; V54 tmp47 int
; V55 tmp48 int
; V56 tmp49 int "Inline stloc first use temp"
; V57 tmp50 long V00._pointer(offs=0x00) P-INDEP "field V00._pointer (fldOffset=0x0)"
; V58 tmp51 long V12._pointer(offs=0x00) P-INDEP "field V12._pointer (fldOffset=0x0)"
; V59 tmp52 long V13._pointer(offs=0x00) P-INDEP "field V13._pointer (fldOffset=0x0)"
; V60 tmp53 long V16._pointer(offs=0x00) P-INDEP "field V16._pointer (fldOffset=0x0)"
; V61 tmp54 long V35._pointer(offs=0x00) P-INDEP "field V35._pointer (fldOffset=0x0)"
; V62 tmp55 long V38._pointer(offs=0x00) P-INDEP "field V38._pointer (fldOffset=0x0)"
*************** In fgMarkAddressExposedLocals()
LocalAddressVisitor visiting statement:
[000003] IA---------- * ASG struct (init)
[000000] D------N---- +--* LCL_VAR struct V06 loc0
[000002] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
[000008] -AC--------- * ASG ref
[000007] D------N---- +--* LCL_VAR ref V08 tmp1
[000006] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
[000005] ------------ arg0 \--* CNS_INT(h) long 0xd1ffab1e class
LocalAddressVisitor visiting statement:
[000013] -A---------- * ASG struct (copy)
[000012] ------------ +--* BLK(1) struct
[000011] ------------ | \--* ADD byref
[000009] ------------ | +--* LCL_VAR ref V08 tmp1
[000010] ------------ | \--* CNS_INT long 8
[000004] ------------ \--* LCL_VAR struct V06 loc0
LocalAddressVisitor visiting statement:
[000065] -A---------- * ASG struct (copy)
[000063] D----------- +--* LCL_VAR struct(P) V12 tmp5
+--* long V12._pointer (offs=0x00) -> V58 tmp51
[000024] n----------- \--* OBJ(8) struct
[000023] ------------ \--* ADDR byref
[000016] ------------ \--* LCL_VAR struct(P) V00 arg0
\--* long V00._pointer (offs=0x00) -> V57 tmp50
LocalAddressVisitor visiting statement:
[000060] --C-G------- * CALL nullcheck void BlenderStruct`2.Blend
[000015] ------------ this in rcx +--* BOX ref
[000014] ------------ | \--* LCL_VAR ref V08 tmp1
[000062] n----------- arg1 +--* OBJ(8) struct
[000061] ------------ | \--* ADDR byref
[000059] ------------ | \--* LCL_VAR struct(P) V12 tmp5
| \--* long V12._pointer (offs=0x00) -> V58 tmp51
[000017] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000018] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000019] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000020] ------------ arg5 \--* LCL_VAR ubyte V04 arg4
LocalAddressVisitor visiting statement:
[000028] -AC--------- * ASG ref
[000027] D------N---- +--* LCL_VAR ref V09 tmp2
[000026] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
[000025] ------------ arg0 \--* CNS_INT(h) long 0xd1ffab1e token
LocalAddressVisitor visiting statement:
[000078] -A---------- * ASG struct (copy)
[000076] D----------- +--* LCL_VAR struct(P) V13 tmp6
+--* long V13._pointer (offs=0x00) -> V59 tmp52
[000040] n----------- \--* OBJ(8) struct
[000039] ------------ \--* ADDR byref
[000032] ------------ \--* LCL_VAR struct(P) V00 arg0
\--* long V00._pointer (offs=0x00) -> V57 tmp50
LocalAddressVisitor visiting statement:
[000150] -A---------- * ASG struct (copy)
[000148] D----------- +--* LCL_VAR struct(P) V16 tmp9
+--* long V16._pointer (offs=0x00) -> V60 tmp53
[000075] n----------- \--* OBJ(8) struct
[000074] ------------ \--* ADDR byref
[000072] ------------ \--* LCL_VAR struct(P) V13 tmp6
\--* long V13._pointer (offs=0x00) -> V59 tmp52
LocalAddressVisitor visiting statement:
[000147] ---X-------- * IND int
[000031] ------------ \--* LCL_VAR ref V09 tmp2
LocalAddressVisitor visiting statement:
[000153] -A---------- * ASG byref
[000152] D------N---- +--* LCL_VAR byref V17 tmp10
[000151] ------------ \--* CNS_INT byref 0
LocalAddressVisitor visiting statement:
[000156] -A---------- * ASG byref
[000155] D------N---- +--* LCL_VAR byref V18 tmp11
[000154] ------------ \--* CNS_INT byref 0
LocalAddressVisitor visiting statement:
[000159] -A---------- * ASG byref
[000158] D------N---- +--* LCL_VAR byref V19 tmp12
[000157] ------------ \--* CNS_INT byref 0
LocalAddressVisitor visiting statement:
[000083] IA---------- * ASG struct (init)
[000080] D------N---- +--* LCL_VAR struct V14 tmp7
[000082] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
[000087] IA---------- * ASG struct (init)
[000084] D------N---- +--* LCL_VAR struct V15 tmp8
[000086] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
[000097] -AC--------- * ASG byref
[000096] D------N---- +--* LCL_VAR byref V17 tmp10
[000180] ------------ \--* ADD long
[000174] ------------ +--* FIELD long _pointer
[000172] ------------ | \--* ADDR byref
[000173] ------------ | \--* LCL_VAR struct(P) V16 tmp9
| \--* long V16._pointer (offs=0x00) -> V60 tmp53
[000179] ------------ \--* MUL long
[000176] ------------ +--* CAST long <- int
[000175] ------------ | \--* CNS_INT int 2
[000178] ------------ \--* CAST long <- int
[000177] ------------ \--* CNS_INT int 1
Replacing the field in promoted struct with local var V60
LocalAddressVisitor modified statement:
[000097] -AC--------- * ASG byref
[000096] D------N---- +--* LCL_VAR byref V17 tmp10
[000180] ------------ \--* ADD long
[000174] ------------ +--* LCL_VAR long V60 tmp53
[000179] ------------ \--* MUL long
[000176] ------------ +--* CAST long <- int
[000175] ------------ | \--* CNS_INT int 2
[000178] ------------ \--* CAST long <- int
[000177] ------------ \--* CNS_INT int 1
LocalAddressVisitor visiting statement:
[000107] -AC--------- * ASG byref
[000106] D------N---- +--* LCL_VAR byref V18 tmp11
[000192] ------------ \--* ADD long
[000186] ------------ +--* FIELD long _pointer
[000184] ------------ | \--* ADDR byref
[000185] ------------ | \--* LCL_VAR struct(P) V16 tmp9
| \--* long V16._pointer (offs=0x00) -> V60 tmp53
[000191] ------------ \--* MUL long
[000188] ------------ +--* CAST long <- int
[000187] ------------ | \--* CNS_INT int 1
[000190] ------------ \--* CAST long <- int
[000189] ------------ \--* CNS_INT int 1
Replacing the field in promoted struct with local var V60
LocalAddressVisitor modified statement:
[000107] -AC--------- * ASG byref
[000106] D------N---- +--* LCL_VAR byref V18 tmp11
[000192] ------------ \--* ADD long
[000186] ------------ +--* LCL_VAR long V60 tmp53
[000191] ------------ \--* MUL long
[000188] ------------ +--* CAST long <- int
[000187] ------------ | \--* CNS_INT int 1
[000190] ------------ \--* CAST long <- int
[000189] ------------ \--* CNS_INT int 1
LocalAddressVisitor visiting statement:
[000117] -AC--------- * ASG byref
[000116] D------N---- +--* LCL_VAR byref V19 tmp12
[000204] ------------ \--* ADD long
[000198] ------------ +--* FIELD long _pointer
[000196] ------------ | \--* ADDR byref
[000197] ------------ | \--* LCL_VAR struct(P) V16 tmp9
| \--* long V16._pointer (offs=0x00) -> V60 tmp53
[000203] ------------ \--* MUL long
[000200] ------------ +--* CAST long <- int
[000199] ------------ | \--* CNS_INT int 0
[000202] ------------ \--* CAST long <- int
[000201] ------------ \--* CNS_INT int 1
Replacing the field in promoted struct with local var V60
LocalAddressVisitor modified statement:
[000117] -AC--------- * ASG byref
[000116] D------N---- +--* LCL_VAR byref V19 tmp12
[000204] ------------ \--* ADD long
[000198] ------------ +--* LCL_VAR long V60 tmp53
[000203] ------------ \--* MUL long
[000200] ------------ +--* CAST long <- int
[000199] ------------ | \--* CNS_INT int 0
[000202] ------------ \--* CAST long <- int
[000201] ------------ \--* CNS_INT int 1
LocalAddressVisitor visiting statement:
[000250] -A-XG------- * ASG ubyte
[000249] D------N---- +--* LCL_VAR ubyte V20 tmp13
[000122] *--XG------- \--* IND ubyte
[000121] ------------ \--* LCL_VAR byref V17 tmp10
LocalAddressVisitor visiting statement:
[000253] -A---------- * ASG int
[000252] D------N---- +--* LCL_VAR int V24 tmp17
[000251] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
[000216] -A---------- * ASG int
[000215] D------N---- +--* LCL_VAR int V21 tmp14
[000210] ------------ \--* ADD int
[000208] ------------ +--* MUL int
[000207] ------------ | +--* SUB int
[000033] ------------ | | +--* LCL_VAR ubyte V01 arg1
[000206] ------------ | | \--* LCL_VAR int V20 tmp13
[000036] ------------ | \--* LCL_VAR ubyte V04 arg4
[000209] ------------ \--* CNS_INT int 128
LocalAddressVisitor visiting statement:
[000214] ------------ * JTRUE void
[000213] ------------ \--* GT int
[000211] ------------ +--* LCL_VAR int V20 tmp13
[000212] ------------ \--* LCL_VAR ubyte V01 arg1
LocalAddressVisitor visiting statement:
[000244] -A---------- * ASG int
[000243] D------N---- +--* LCL_VAR int V22 tmp15
[000218] ------------ \--* LCL_VAR int V21 tmp14
LocalAddressVisitor visiting statement:
[000247] -A---------- * ASG int
[000246] D------N---- +--* LCL_VAR int V23 tmp16
[000242] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
[000222] -A---------- * ASG int
[000221] D------N---- +--* LCL_VAR int V22 tmp15
[000219] ------------ \--* LCL_VAR int V21 tmp14
LocalAddressVisitor visiting statement:
[000225] -A---------- * ASG int
[000224] D------N---- +--* LCL_VAR int V23 tmp16
[000220] ------------ \--* CNS_INT int 1
LocalAddressVisitor visiting statement:
[000231] -A---------- * ASG int
[000230] D------N---- +--* LCL_VAR int V24 tmp17
[000229] ------------ \--* SUB int
[000227] ------------ +--* LCL_VAR int V22 tmp15
[000228] ------------ \--* LCL_VAR int V23 tmp16
LocalAddressVisitor visiting statement:
[000126] -ACXG------- * ASG ubyte
[000125] *------N---- +--* IND ubyte
[000118] ------------ | \--* LCL_VAR byref V17 tmp10
[000241] ------------ \--* CAST int <- ubyte <- int
[000240] ------------ \--* ADD int
[000232] ------------ +--* LCL_VAR int V20 tmp13
[000239] ------------ \--* RSH int
[000237] ------------ +--* ADD int
[000235] ------------ | +--* RSH int
[000233] ------------ | | +--* LCL_VAR int V24 tmp17
[000234] ------------ | | \--* CNS_INT int 8
[000236] ------------ | \--* LCL_VAR int V24 tmp17
[000238] ------------ \--* CNS_INT int 8
LocalAddressVisitor visiting statement:
[000299] -A-XG------- * ASG ubyte
[000298] D------N---- +--* LCL_VAR ubyte V25 tmp18
[000131] *--XG------- \--* IND ubyte
[000130] ------------ \--* LCL_VAR byref V18 tmp11
LocalAddressVisitor visiting statement:
[000302] -A---------- * ASG int
[000301] D------N---- +--* LCL_VAR int V29 tmp22
[000300] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
[000265] -A---------- * ASG int
[000264] D------N---- +--* LCL_VAR int V26 tmp19
[000259] ------------ \--* ADD int
[000257] ------------ +--* MUL int
[000256] ------------ | +--* SUB int
[000034] ------------ | | +--* LCL_VAR ubyte V02 arg2
[000255] ------------ | | \--* LCL_VAR int V25 tmp18
[000132] ------------ | \--* LCL_VAR ubyte V04 arg4
[000258] ------------ \--* CNS_INT int 128
LocalAddressVisitor visiting statement:
[000263] ------------ * JTRUE void
[000262] ------------ \--* GT int
[000260] ------------ +--* LCL_VAR int V25 tmp18
[000261] ------------ \--* LCL_VAR ubyte V02 arg2
LocalAddressVisitor visiting statement:
[000293] -A---------- * ASG int
[000292] D------N---- +--* LCL_VAR int V27 tmp20
[000267] ------------ \--* LCL_VAR int V26 tmp19
LocalAddressVisitor visiting statement:
[000296] -A---------- * ASG int
[000295] D------N---- +--* LCL_VAR int V28 tmp21
[000291] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
[000271] -A---------- * ASG int
[000270] D------N---- +--* LCL_VAR int V27 tmp20
[000268] ------------ \--* LCL_VAR int V26 tmp19
LocalAddressVisitor visiting statement:
[000274] -A---------- * ASG int
[000273] D------N---- +--* LCL_VAR int V28 tmp21
[000269] ------------ \--* CNS_INT int 1
LocalAddressVisitor visiting statement:
[000280] -A---------- * ASG int
[000279] D------N---- +--* LCL_VAR int V29 tmp22
[000278] ------------ \--* SUB int
[000276] ------------ +--* LCL_VAR int V27 tmp20
[000277] ------------ \--* LCL_VAR int V28 tmp21
LocalAddressVisitor visiting statement:
[000136] -ACXG------- * ASG ubyte
[000135] *------N---- +--* IND ubyte
[000127] ------------ | \--* LCL_VAR byref V18 tmp11
[000290] ------------ \--* CAST int <- ubyte <- int
[000289] ------------ \--* ADD int
[000281] ------------ +--* LCL_VAR int V25 tmp18
[000288] ------------ \--* RSH int
[000286] ------------ +--* ADD int
[000284] ------------ | +--* RSH int
[000282] ------------ | | +--* LCL_VAR int V29 tmp22
[000283] ------------ | | \--* CNS_INT int 8
[000285] ------------ | \--* LCL_VAR int V29 tmp22
[000287] ------------ \--* CNS_INT int 8
LocalAddressVisitor visiting statement:
[000348] -A-XG------- * ASG ubyte
[000347] D------N---- +--* LCL_VAR ubyte V30 tmp23
[000141] *--XG------- \--* IND ubyte
[000140] ------------ \--* LCL_VAR byref V19 tmp12
LocalAddressVisitor visiting statement:
[000351] -A---------- * ASG int
[000350] D------N---- +--* LCL_VAR int V34 tmp27
[000349] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
[000314] -A---------- * ASG int
[000313] D------N---- +--* LCL_VAR int V31 tmp24
[000308] ------------ \--* ADD int
[000306] ------------ +--* MUL int
[000305] ------------ | +--* SUB int
[000035] ------------ | | +--* LCL_VAR ubyte V03 arg3
[000304] ------------ | | \--* LCL_VAR int V30 tmp23
[000142] ------------ | \--* LCL_VAR ubyte V04 arg4
[000307] ------------ \--* CNS_INT int 128
LocalAddressVisitor visiting statement:
[000312] ------------ * JTRUE void
[000311] ------------ \--* GT int
[000309] ------------ +--* LCL_VAR int V30 tmp23
[000310] ------------ \--* LCL_VAR ubyte V03 arg3
LocalAddressVisitor visiting statement:
[000342] -A---------- * ASG int
[000341] D------N---- +--* LCL_VAR int V32 tmp25
[000316] ------------ \--* LCL_VAR int V31 tmp24
LocalAddressVisitor visiting statement:
[000345] -A---------- * ASG int
[000344] D------N---- +--* LCL_VAR int V33 tmp26
[000340] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
[000320] -A---------- * ASG int
[000319] D------N---- +--* LCL_VAR int V32 tmp25
[000317] ------------ \--* LCL_VAR int V31 tmp24
LocalAddressVisitor visiting statement:
[000323] -A---------- * ASG int
[000322] D------N---- +--* LCL_VAR int V33 tmp26
[000318] ------------ \--* CNS_INT int 1
LocalAddressVisitor visiting statement:
[000329] -A---------- * ASG int
[000328] D------N---- +--* LCL_VAR int V34 tmp27
[000327] ------------ \--* SUB int
[000325] ------------ +--* LCL_VAR int V32 tmp25
[000326] ------------ \--* LCL_VAR int V33 tmp26
LocalAddressVisitor visiting statement:
[000146] -ACXG------- * ASG ubyte
[000145] *------N---- +--* IND ubyte
[000137] ------------ | \--* LCL_VAR byref V19 tmp12
[000339] ------------ \--* CAST int <- ubyte <- int
[000338] ------------ \--* ADD int
[000330] ------------ +--* LCL_VAR int V30 tmp23
[000337] ------------ \--* RSH int
[000335] ------------ +--* ADD int
[000333] ------------ | +--* RSH int
[000331] ------------ | | +--* LCL_VAR int V34 tmp27
[000332] ------------ | | \--* CNS_INT int 8
[000334] ------------ | \--* LCL_VAR int V34 tmp27
[000336] ------------ \--* CNS_INT int 8
LocalAddressVisitor visiting statement:
[000162] -A---------- * ASG byref
[000161] D------N---- +--* LCL_VAR byref V17 tmp10
[000160] ------------ \--* CNS_INT byref 0
LocalAddressVisitor visiting statement:
[000165] -A---------- * ASG byref
[000164] D------N---- +--* LCL_VAR byref V18 tmp11
[000163] ------------ \--* CNS_INT byref 0
LocalAddressVisitor visiting statement:
[000168] -A---------- * ASG byref
[000167] D------N---- +--* LCL_VAR byref V19 tmp12
[000166] ------------ \--* CNS_INT byref 0
LocalAddressVisitor visiting statement:
[000044] -AC--------- * ASG ref
[000043] D------N---- +--* LCL_VAR ref V10 tmp3
[000042] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
[000041] ------------ arg0 \--* CNS_INT(h) long 0xd1ffab1e token
LocalAddressVisitor visiting statement:
[000362] -A---------- * ASG struct (copy)
[000360] D----------- +--* LCL_VAR struct(P) V35 tmp28
+--* long V35._pointer (offs=0x00) -> V61 tmp54
[000056] n----------- \--* OBJ(8) struct
[000055] ------------ \--* ADDR byref
[000048] ------------ \--* LCL_VAR struct(P) V00 arg0
\--* long V00._pointer (offs=0x00) -> V57 tmp50
LocalAddressVisitor visiting statement:
[000434] -A---------- * ASG struct (copy)
[000432] D----------- +--* LCL_VAR struct(P) V38 tmp31
+--* long V38._pointer (offs=0x00) -> V62 tmp55
[000359] n----------- \--* OBJ(8) struct
[000358] ------------ \--* ADDR byref
[000356] ------------ \--* LCL_VAR struct(P) V35 tmp28
\--* long V35._pointer (offs=0x00) -> V61 tmp54
LocalAddressVisitor visiting statement:
[000431] ---X-------- * IND int
[000047] ------------ \--* LCL_VAR ref V10 tmp3
LocalAddressVisitor visiting statement:
[000437] -A---------- * ASG byref
[000436] D------N---- +--* LCL_VAR byref V39 tmp32
[000435] ------------ \--* CNS_INT byref 0
LocalAddressVisitor visiting statement:
[000440] -A---------- * ASG byref
[000439] D------N---- +--* LCL_VAR byref V40 tmp33
[000438] ------------ \--* CNS_INT byref 0
LocalAddressVisitor visiting statement:
[000443] -A---------- * ASG byref
[000442] D------N---- +--* LCL_VAR byref V41 tmp34
[000441] ------------ \--* CNS_INT byref 0
LocalAddressVisitor visiting statement:
[000367] IA---------- * ASG struct (init)
[000364] D------N---- +--* LCL_VAR struct V36 tmp29
[000366] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
[000371] IA---------- * ASG struct (init)
[000368] D------N---- +--* LCL_VAR struct V37 tmp30
[000370] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
[000381] -AC--------- * ASG byref
[000380] D------N---- +--* LCL_VAR byref V39 tmp32
[000455] ------------ \--* ADD long
[000449] ------------ +--* FIELD long _pointer
[000447] ------------ | \--* ADDR byref
[000448] ------------ | \--* LCL_VAR struct(P) V38 tmp31
| \--* long V38._pointer (offs=0x00) -> V62 tmp55
[000454] ------------ \--* MUL long
[000451] ------------ +--* CAST long <- int
[000450] ------------ | \--* CNS_INT int 2
[000453] ------------ \--* CAST long <- int
[000452] ------------ \--* CNS_INT int 1
Replacing the field in promoted struct with local var V62
LocalAddressVisitor modified statement:
[000381] -AC--------- * ASG byref
[000380] D------N---- +--* LCL_VAR byref V39 tmp32
[000455] ------------ \--* ADD long
[000449] ------------ +--* LCL_VAR long V62 tmp55
[000454] ------------ \--* MUL long
[000451] ------------ +--* CAST long <- int
[000450] ------------ | \--* CNS_INT int 2
[000453] ------------ \--* CAST long <- int
[000452] ------------ \--* CNS_INT int 1
LocalAddressVisitor visiting statement:
[000391] -AC--------- * ASG byref
[000390] D------N---- +--* LCL_VAR byref V40 tmp33
[000467] ------------ \--* ADD long
[000461] ------------ +--* FIELD long _pointer
[000459] ------------ | \--* ADDR byref
[000460] ------------ | \--* LCL_VAR struct(P) V38 tmp31
| \--* long V38._pointer (offs=0x00) -> V62 tmp55
[000466] ------------ \--* MUL long
[000463] ------------ +--* CAST long <- int
[000462] ------------ | \--* CNS_INT int 1
[000465] ------------ \--* CAST long <- int
[000464] ------------ \--* CNS_INT int 1
Replacing the field in promoted struct with local var V62
LocalAddressVisitor modified statement:
[000391] -AC--------- * ASG byref
[000390] D------N---- +--* LCL_VAR byref V40 tmp33
[000467] ------------ \--* ADD long
[000461] ------------ +--* LCL_VAR long V62 tmp55
[000466] ------------ \--* MUL long
[000463] ------------ +--* CAST long <- int
[000462] ------------ | \--* CNS_INT int 1
[000465] ------------ \--* CAST long <- int
[000464] ------------ \--* CNS_INT int 1
LocalAddressVisitor visiting statement:
[000401] -AC--------- * ASG byref
[000400] D------N---- +--* LCL_VAR byref V41 tmp34
[000479] ------------ \--* ADD long
[000473] ------------ +--* FIELD long _pointer
[000471] ------------ | \--* ADDR byref
[000472] ------------ | \--* LCL_VAR struct(P) V38 tmp31
| \--* long V38._pointer (offs=0x00) -> V62 tmp55
[000478] ------------ \--* MUL long
[000475] ------------ +--* CAST long <- int
[000474] ------------ | \--* CNS_INT int 0
[000477] ------------ \--* CAST long <- int
[000476] ------------ \--* CNS_INT int 1
Replacing the field in promoted struct with local var V62
LocalAddressVisitor modified statement:
[000401] -AC--------- * ASG byref
[000400] D------N---- +--* LCL_VAR byref V41 tmp34
[000479] ------------ \--* ADD long
[000473] ------------ +--* LCL_VAR long V62 tmp55
[000478] ------------ \--* MUL long
[000475] ------------ +--* CAST long <- int
[000474] ------------ | \--* CNS_INT int 0
[000477] ------------ \--* CAST long <- int
[000476] ------------ \--* CNS_INT int 1
LocalAddressVisitor visiting statement:
[000525] -A-XG------- * ASG ubyte
[000524] D------N---- +--* LCL_VAR ubyte V42 tmp35
[000406] *--XG------- \--* IND ubyte
[000405] ------------ \--* LCL_VAR byref V39 tmp32
LocalAddressVisitor visiting statement:
[000528] -A---------- * ASG int
[000527] D------N---- +--* LCL_VAR int V46 tmp39
[000526] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
[000491] -A---------- * ASG int
[000490] D------N---- +--* LCL_VAR int V43 tmp36
[000485] ------------ \--* ADD int
[000483] ------------ +--* MUL int
[000482] ------------ | +--* SUB int
[000049] ------------ | | +--* LCL_VAR ubyte V01 arg1
[000481] ------------ | | \--* LCL_VAR int V42 tmp35
[000052] ------------ | \--* LCL_VAR ubyte V04 arg4
[000484] ------------ \--* CNS_INT int 128
LocalAddressVisitor visiting statement:
[000489] ------------ * JTRUE void
[000488] ------------ \--* GT int
[000486] ------------ +--* LCL_VAR int V42 tmp35
[000487] ------------ \--* LCL_VAR ubyte V01 arg1
LocalAddressVisitor visiting statement:
[000519] -A---------- * ASG int
[000518] D------N---- +--* LCL_VAR int V44 tmp37
[000493] ------------ \--* LCL_VAR int V43 tmp36
LocalAddressVisitor visiting statement:
[000522] -A---------- * ASG int
[000521] D------N---- +--* LCL_VAR int V45 tmp38
[000517] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
[000497] -A---------- * ASG int
[000496] D------N---- +--* LCL_VAR int V44 tmp37
[000494] ------------ \--* LCL_VAR int V43 tmp36
LocalAddressVisitor visiting statement:
[000500] -A---------- * ASG int
[000499] D------N---- +--* LCL_VAR int V45 tmp38
[000495] ------------ \--* CNS_INT int 1
LocalAddressVisitor visiting statement:
[000506] -A---------- * ASG int
[000505] D------N---- +--* LCL_VAR int V46 tmp39
[000504] ------------ \--* SUB int
[000502] ------------ +--* LCL_VAR int V44 tmp37
[000503] ------------ \--* LCL_VAR int V45 tmp38
LocalAddressVisitor visiting statement:
[000410] -ACXG------- * ASG ubyte
[000409] *------N---- +--* IND ubyte
[000402] ------------ | \--* LCL_VAR byref V39 tmp32
[000516] ------------ \--* CAST int <- ubyte <- int
[000515] ------------ \--* ADD int
[000507] ------------ +--* LCL_VAR int V42 tmp35
[000514] ------------ \--* RSH int
[000512] ------------ +--* ADD int
[000510] ------------ | +--* RSH int
[000508] ------------ | | +--* LCL_VAR int V46 tmp39
[000509] ------------ | | \--* CNS_INT int 8
[000511] ------------ | \--* LCL_VAR int V46 tmp39
[000513] ------------ \--* CNS_INT int 8
LocalAddressVisitor visiting statement:
[000574] -A-XG------- * ASG ubyte
[000573] D------N---- +--* LCL_VAR ubyte V47 tmp40
[000415] *--XG------- \--* IND ubyte
[000414] ------------ \--* LCL_VAR byref V40 tmp33
LocalAddressVisitor visiting statement:
[000577] -A---------- * ASG int
[000576] D------N---- +--* LCL_VAR int V51 tmp44
[000575] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
[000540] -A---------- * ASG int
[000539] D------N---- +--* LCL_VAR int V48 tmp41
[000534] ------------ \--* ADD int
[000532] ------------ +--* MUL int
[000531] ------------ | +--* SUB int
[000050] ------------ | | +--* LCL_VAR ubyte V02 arg2
[000530] ------------ | | \--* LCL_VAR int V47 tmp40
[000416] ------------ | \--* LCL_VAR ubyte V04 arg4
[000533] ------------ \--* CNS_INT int 128
LocalAddressVisitor visiting statement:
[000538] ------------ * JTRUE void
[000537] ------------ \--* GT int
[000535] ------------ +--* LCL_VAR int V47 tmp40
[000536] ------------ \--* LCL_VAR ubyte V02 arg2
LocalAddressVisitor visiting statement:
[000568] -A---------- * ASG int
[000567] D------N---- +--* LCL_VAR int V49 tmp42
[000542] ------------ \--* LCL_VAR int V48 tmp41
LocalAddressVisitor visiting statement:
[000571] -A---------- * ASG int
[000570] D------N---- +--* LCL_VAR int V50 tmp43
[000566] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
[000546] -A---------- * ASG int
[000545] D------N---- +--* LCL_VAR int V49 tmp42
[000543] ------------ \--* LCL_VAR int V48 tmp41
LocalAddressVisitor visiting statement:
[000549] -A---------- * ASG int
[000548] D------N---- +--* LCL_VAR int V50 tmp43
[000544] ------------ \--* CNS_INT int 1
LocalAddressVisitor visiting statement:
[000555] -A---------- * ASG int
[000554] D------N---- +--* LCL_VAR int V51 tmp44
[000553] ------------ \--* SUB int
[000551] ------------ +--* LCL_VAR int V49 tmp42
[000552] ------------ \--* LCL_VAR int V50 tmp43
LocalAddressVisitor visiting statement:
[000420] -ACXG------- * ASG ubyte
[000419] *------N---- +--* IND ubyte
[000411] ------------ | \--* LCL_VAR byref V40 tmp33
[000565] ------------ \--* CAST int <- ubyte <- int
[000564] ------------ \--* ADD int
[000556] ------------ +--* LCL_VAR int V47 tmp40
[000563] ------------ \--* RSH int
[000561] ------------ +--* ADD int
[000559] ------------ | +--* RSH int
[000557] ------------ | | +--* LCL_VAR int V51 tmp44
[000558] ------------ | | \--* CNS_INT int 8
[000560] ------------ | \--* LCL_VAR int V51 tmp44
[000562] ------------ \--* CNS_INT int 8
LocalAddressVisitor visiting statement:
[000623] -A-XG------- * ASG ubyte
[000622] D------N---- +--* LCL_VAR ubyte V52 tmp45
[000425] *--XG------- \--* IND ubyte
[000424] ------------ \--* LCL_VAR byref V41 tmp34
LocalAddressVisitor visiting statement:
[000626] -A---------- * ASG int
[000625] D------N---- +--* LCL_VAR int V56 tmp49
[000624] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
[000589] -A---------- * ASG int
[000588] D------N---- +--* LCL_VAR int V53 tmp46
[000583] ------------ \--* ADD int
[000581] ------------ +--* MUL int
[000580] ------------ | +--* SUB int
[000051] ------------ | | +--* LCL_VAR ubyte V03 arg3
[000579] ------------ | | \--* LCL_VAR int V52 tmp45
[000426] ------------ | \--* LCL_VAR ubyte V04 arg4
[000582] ------------ \--* CNS_INT int 128
LocalAddressVisitor visiting statement:
[000587] ------------ * JTRUE void
[000586] ------------ \--* GT int
[000584] ------------ +--* LCL_VAR int V52 tmp45
[000585] ------------ \--* LCL_VAR ubyte V03 arg3
LocalAddressVisitor visiting statement:
[000617] -A---------- * ASG int
[000616] D------N---- +--* LCL_VAR int V54 tmp47
[000591] ------------ \--* LCL_VAR int V53 tmp46
LocalAddressVisitor visiting statement:
[000620] -A---------- * ASG int
[000619] D------N---- +--* LCL_VAR int V55 tmp48
[000615] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
[000595] -A---------- * ASG int
[000594] D------N---- +--* LCL_VAR int V54 tmp47
[000592] ------------ \--* LCL_VAR int V53 tmp46
LocalAddressVisitor visiting statement:
[000598] -A---------- * ASG int
[000597] D------N---- +--* LCL_VAR int V55 tmp48
[000593] ------------ \--* CNS_INT int 1
LocalAddressVisitor visiting statement:
[000604] -A---------- * ASG int
[000603] D------N---- +--* LCL_VAR int V56 tmp49
[000602] ------------ \--* SUB int
[000600] ------------ +--* LCL_VAR int V54 tmp47
[000601] ------------ \--* LCL_VAR int V55 tmp48
LocalAddressVisitor visiting statement:
[000430] -ACXG------- * ASG ubyte
[000429] *------N---- +--* IND ubyte
[000421] ------------ | \--* LCL_VAR byref V41 tmp34
[000614] ------------ \--* CAST int <- ubyte <- int
[000613] ------------ \--* ADD int
[000605] ------------ +--* LCL_VAR int V52 tmp45
[000612] ------------ \--* RSH int
[000610] ------------ +--* ADD int
[000608] ------------ | +--* RSH int
[000606] ------------ | | +--* LCL_VAR int V56 tmp49
[000607] ------------ | | \--* CNS_INT int 8
[000609] ------------ | \--* LCL_VAR int V56 tmp49
[000611] ------------ \--* CNS_INT int 8
LocalAddressVisitor visiting statement:
[000057] ------------ * RETURN void
*************** In fgRetypeImplicitByRefArgs()
*************** In fgMorphBlocks()
Morphing BB01 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB01, stmt 1 (before)
[000003] IA---------- * ASG struct (init)
[000000] D------N---- +--* LCL_VAR struct V06 loc0
[000002] ------------ \--* CNS_INT int 0
fgMorphInitBlock:
Local V06 should not be enregistered because: was accessed as a local field
fgMorphOneAsgBlock (after):
[000003] -A---------- * ASG byte
[000629] n------N---- +--* IND byte
[000628] ------------ | \--* ADDR byref
[000000] D----+-N---- | \--* LCL_VAR struct V06 loc0
[000002] -----+------ \--* CNS_INT int 0
using oneAsgTree.
fgMorphTree BB01, stmt 1 (after)
[000003] -A---+------ * ASG byte
[000629] n------N---- +--* IND byte
[000628] ------------ | \--* ADDR byref
[000000] D----+-N---- | \--* LCL_VAR struct V06 loc0
[000002] -----+------ \--* CNS_INT int 0
fgMorphTree BB01, stmt 2 (before)
[000008] -AC--------- * ASG ref
[000007] D------N---- +--* LCL_VAR ref V08 tmp1
[000006] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
[000005] ------------ arg0 \--* CNS_INT(h) long 0xd1ffab1e class
Initializing arg info for 6.CALL:
ArgTable for 6.CALL after fgInitArgInfo:
fgArgTabEntry[arg 0 5.CNS_INT long, 1 reg: rcx, align=1]
Morphing args for 6.CALL:
argSlots=1, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('rcx'):
[000005] -----+------ * CNS_INT(h) long 0xd1ffab1e class
Replaced with placeholder node:
[000630] ----------L- * ARGPLACE long
Shuffled argument table: rcx
ArgTable for 6.CALL after fgMorphArgs:
fgArgTabEntry[arg 0 5.CNS_INT long, 1 reg: rcx, align=1, lateArgInx=0, processed]
fgMorphTree BB01, stmt 2 (after)
[000008] -AC--+------ * ASG ref
[000007] D----+-N---- +--* LCL_VAR ref V08 tmp1
[000006] --C--+------ \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
[000005] -----+------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e class
fgMorphTree BB01, stmt 3 (before)
[000013] -A---------- * ASG struct (copy)
[000012] ------------ +--* BLK(1) struct
[000011] ------------ | \--* ADD byref
[000009] ------------ | +--* LCL_VAR ref V08 tmp1
[000010] ------------ | \--* CNS_INT long 8
[000004] ------------ \--* LCL_VAR struct V06 loc0
GenTreeNode creates assertion:
[000012] ---X-------- * BLK(1) struct
In BB01 New Local Constant Assertion: V08 != null index=#01, mask=0000000000000001
fgMorphCopyBlock:
Local V06 should not be enregistered because: written in a block op
fgMorphOneAsgBlock (after):
[000013] -A-XG------- * ASG byte
[000012] *--XG+-N---- +--* IND byte
[000011] -----+------ | \--* ADD byref
[000009] -----+------ | +--* LCL_VAR ref V08 tmp1
[000010] -----+------ | \--* CNS_INT long 8
[000632] n----------- \--* IND byte
[000631] ------------ \--* ADDR byref
[000004] -----+------ \--* LCL_VAR struct V06 loc0
using oneAsgTree.
fgMorphCopyBlock (after):
[000013] -A-XG------- * ASG byte
[000012] *--XG+-N---- +--* IND byte
[000011] -----+------ | \--* ADD byref
[000009] -----+------ | +--* LCL_VAR ref V08 tmp1
[000010] -----+------ | \--* CNS_INT long 8
[000632] n----------- \--* IND byte
[000631] ------------ \--* ADDR byref
[000004] -----+------ \--* LCL_VAR struct V06 loc0
fgMorphTree BB01, stmt 3 (after)
[000013] -A-XG+------ * ASG byte
[000012] *--XG+-N---- +--* IND byte
[000011] -----+------ | \--* ADD byref
[000009] -----+------ | +--* LCL_VAR ref V08 tmp1
[000010] -----+------ | \--* CNS_INT long 8
[000632] n----------- \--* IND byte
[000631] ------------ \--* ADDR byref
[000004] -----+------ \--* LCL_VAR struct V06 loc0
fgMorphTree BB01, stmt 4 (before)
[000065] -A---------- * ASG struct (copy)
[000063] D----------- +--* LCL_VAR struct(P) V12 tmp5
+--* long V12._pointer (offs=0x00) -> V58 tmp51
[000024] n----------- \--* OBJ(8) struct
[000023] ------------ \--* ADDR byref
[000016] ------------ \--* LCL_VAR struct(P) V00 arg0
\--* long V00._pointer (offs=0x00) -> V57 tmp50
fgMorphCopyBlock:block assignment to morph:
[000065] -A---------- * ASG struct (copy)
[000063] D----+-N---- +--* LCL_VAR struct(P) V12 tmp5
+--* long V12._pointer (offs=0x00) -> V58 tmp51
[000024] n----+------ \--* OBJ(8) struct
[000023] -----+------ \--* ADDR byref
[000016] -----+-N---- \--* LCL_VAR struct(P) V00 arg0
\--* long V00._pointer (offs=0x00) -> V57 tmp50
(destDoFldAsg=true) (srcDoFldAsg=true) using field by field assignments.
GenTreeNode creates assertion:
[000635] -A---------- * ASG long
In BB01 New Local Copy Assertion: V58 == V57 index=#02, mask=0000000000000002
fgMorphCopyBlock (after):
[000635] -A---+------ * ASG long
[000633] D------N---- +--* LCL_VAR long V58 tmp51
[000634] -------N---- \--* LCL_VAR long V57 tmp50
The assignment [000635] using V58 removes: Copy Assertion: V58 == V57
GenTreeNode creates assertion:
[000635] -A---+------ * ASG long
In BB01 New Local Copy Assertion: V58 == V57 index=#02, mask=0000000000000002
fgMorphTree BB01, stmt 4 (after)
[000635] -A---+------ * ASG long
[000633] D------N---- +--* LCL_VAR long V58 tmp51
[000634] -------N---- \--* LCL_VAR long V57 tmp50
fgMorphTree BB01, stmt 5 (before)
[000060] --C-G------- * CALL nullcheck void BlenderStruct`2.Blend
[000015] ------------ this in rcx +--* BOX ref
[000014] ------------ | \--* LCL_VAR ref V08 tmp1
[000062] n----------- arg1 +--* OBJ(8) struct
[000061] ------------ | \--* ADDR byref
[000059] ------------ | \--* LCL_VAR struct(P) V12 tmp5
| \--* long V12._pointer (offs=0x00) -> V58 tmp51
[000017] ------------ arg2 +--* LCL_VAR ubyte V01 arg1
[000018] ------------ arg3 +--* LCL_VAR ubyte V02 arg2
[000019] ------------ arg4 +--* LCL_VAR ubyte V03 arg3
[000020] ------------ arg5 \--* LCL_VAR ubyte V04 arg4
Initializing arg info for 60.CALL:
ArgTable for 60.CALL after fgInitArgInfo:
fgArgTabEntry[arg 0 15.BOX ref, 1 reg: rcx, align=1]
fgArgTabEntry[arg 1 62.OBJ long, 1 reg: rdx, align=1, isStruct]
fgArgTabEntry[arg 2 17.LCL_VAR ubyte, 1 reg: r8, align=1]
fgArgTabEntry[arg 3 18.LCL_VAR ubyte, 1 reg: r9, align=1]
fgArgTabEntry[arg 4 19.LCL_VAR ubyte, numSlots=1, slotNum=4, align=1]
fgArgTabEntry[arg 5 20.LCL_VAR ubyte, numSlots=1, slotNum=5, align=1]
Morphing args for 60.CALL:
argSlots=6, preallocatedArgCount=6, nextSlotNum=6, outgoingArgSpaceSize=48
Sorting the arguments:
Deferred argument ('rcx'):
( 9, 6) [000015] ------------ * BOX ref
( 3, 2) [000014] ------------ \--* LCL_VAR ref V08 tmp1
Replaced with placeholder node:
[000640] ----------L- * ARGPLACE ref
Deferred argument ('r8'):
( 4, 4) [000636] ------------ * CAST int <- ubyte <- int
( 3, 2) [000017] ------------ \--* LCL_VAR int V01 arg1
Replaced with placeholder node:
[000641] ----------L- * ARGPLACE int
Deferred argument ('r9'):
( 4, 4) [000637] ------------ * CAST int <- ubyte <- int
( 3, 2) [000018] ------------ \--* LCL_VAR int V02 arg2
Replaced with placeholder node:
[000642] ----------L- * ARGPLACE int
Deferred argument ('rdx'):
[000059] -----+------ * LCL_VAR long V58 tmp51
Replaced with placeholder node:
[000643] ----------L- * ARGPLACE long
Shuffled argument table: rcx r8 r9 rdx
ArgTable for 60.CALL after fgMorphArgs:
fgArgTabEntry[arg 0 15.BOX ref, 1 reg: rcx, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 5 639.CAST ubyte, numSlots=1, slotNum=5, align=1, processed]
fgArgTabEntry[arg 2 636.CAST ubyte, 1 reg: r8, align=1, lateArgInx=1, processed]
fgArgTabEntry[arg 3 637.CAST ubyte, 1 reg: r9, align=1, lateArgInx=2, processed]
fgArgTabEntry[arg 4 638.CAST ubyte, numSlots=1, slotNum=4, align=1, processed]
fgArgTabEntry[arg 1 59.LCL_VAR long, 1 reg: rdx, align=1, lateArgInx=3, processed, isStruct]
fgMorphTree BB01, stmt 5 (after)
[000060] --CXG+------ * CALL nullcheck void BlenderStruct`2.Blend
( 4, 4) [000638] ------------ arg4 out+20 +--* CAST int <- ubyte <- int
( 3, 2) [000019] ------------ | \--* LCL_VAR int V03 arg3
( 4, 4) [000639] ------------ arg5 out+28 +--* CAST int <- ubyte <- int
( 3, 2) [000020] ------------ | \--* LCL_VAR int V04 arg4
( 9, 6) [000015] ------------ this in rcx +--* BOX ref
( 3, 2) [000014] ------------ | \--* LCL_VAR ref V08 tmp1
( 4, 4) [000636] ------------ arg2 in r8 +--* CAST int <- ubyte <- int
( 3, 2) [000017] ------------ | \--* LCL_VAR int V01 arg1
( 4, 4) [000637] ------------ arg3 in r9 +--* CAST int <- ubyte <- int
( 3, 2) [000018] ------------ | \--* LCL_VAR int V02 arg2
[000059] -----+------ arg1 in rdx \--* LCL_VAR long V58 tmp51
fgMorphTree BB01, stmt 6 (before)
[000028] -AC--------- * ASG ref
[000027] D------N---- +--* LCL_VAR ref V09 tmp2
[000026] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
[000025] ------------ arg0 \--* CNS_INT(h) long 0xd1ffab1e token
Initializing arg info for 26.CALL:
ArgTable for 26.CALL after fgInitArgInfo:
fgArgTabEntry[arg 0 25.CNS_INT long, 1 reg: rcx, align=1]
Morphing args for 26.CALL:
argSlots=1, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('rcx'):
[000025] -----+------ * CNS_INT(h) long 0xd1ffab1e token
Replaced with placeholder node:
[000644] ----------L- * ARGPLACE long
Shuffled argument table: rcx
ArgTable for 26.CALL after fgMorphArgs:
fgArgTabEntry[arg 0 25.CNS_INT long, 1 reg: rcx, align=1, lateArgInx=0, processed]
fgMorphTree BB01, stmt 6 (after)
[000028] -AC--+------ * ASG ref
[000027] D----+-N---- +--* LCL_VAR ref V09 tmp2
[000026] --C--+------ \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
[000025] -----+------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e token
fgMorphTree BB01, stmt 7 (before)
[000078] -A---------- * ASG struct (copy)
[000076] D----------- +--* LCL_VAR struct(P) V13 tmp6
+--* long V13._pointer (offs=0x00) -> V59 tmp52
[000040] n----------- \--* OBJ(8) struct
[000039] ------------ \--* ADDR byref
[000032] ------------ \--* LCL_VAR struct(P) V00 arg0
\--* long V00._pointer (offs=0x00) -> V57 tmp50
fgMorphCopyBlock:block assignment to morph:
[000078] -A---------- * ASG struct (copy)
[000076] D----+-N---- +--* LCL_VAR struct(P) V13 tmp6
+--* long V13._pointer (offs=0x00) -> V59 tmp52
[000040] n----+------ \--* OBJ(8) struct
[000039] -----+------ \--* ADDR byref
[000032] -----+-N---- \--* LCL_VAR struct(P) V00 arg0
\--* long V00._pointer (offs=0x00) -> V57 tmp50
(destDoFldAsg=true) (srcDoFldAsg=true) using field by field assignments.
GenTreeNode creates assertion:
[000647] -A---------- * ASG long
In BB01 New Local Copy Assertion: V59 == V57 index=#03, mask=0000000000000004
fgMorphCopyBlock (after):
[000647] -A---+------ * ASG long
[000645] D------N---- +--* LCL_VAR long V59 tmp52
[000646] -------N---- \--* LCL_VAR long V57 tmp50
The assignment [000647] using V59 removes: Copy Assertion: V59 == V57
GenTreeNode creates assertion:
[000647] -A---+------ * ASG long
In BB01 New Local Copy Assertion: V59 == V57 index=#03, mask=0000000000000004
fgMorphTree BB01, stmt 7 (after)
[000647] -A---+------ * ASG long
[000645] D------N---- +--* LCL_VAR long V59 tmp52
[000646] -------N---- \--* LCL_VAR long V57 tmp50
fgMorphTree BB01, stmt 8 (before)
[000150] -A---------- * ASG struct (copy)
[000148] D----------- +--* LCL_VAR struct(P) V16 tmp9
+--* long V16._pointer (offs=0x00) -> V60 tmp53
[000075] n----------- \--* OBJ(8) struct
[000074] ------------ \--* ADDR byref
[000072] ------------ \--* LCL_VAR struct(P) V13 tmp6
\--* long V13._pointer (offs=0x00) -> V59 tmp52
fgMorphCopyBlock:block assignment to morph:
[000150] -A---------- * ASG struct (copy)
[000148] D----+-N---- +--* LCL_VAR struct(P) V16 tmp9
+--* long V16._pointer (offs=0x00) -> V60 tmp53
[000075] n----+------ \--* OBJ(8) struct
[000074] -----+------ \--* ADDR byref
[000072] -----+-N---- \--* LCL_VAR struct(P) V13 tmp6
\--* long V13._pointer (offs=0x00) -> V59 tmp52
(destDoFldAsg=true) (srcDoFldAsg=true) using field by field assignments.
GenTreeNode creates assertion:
[000650] -A---------- * ASG long
In BB01 New Local Copy Assertion: V60 == V59 index=#04, mask=0000000000000008
fgMorphCopyBlock (after):
[000650] -A---+------ * ASG long
[000648] D------N---- +--* LCL_VAR long V60 tmp53
[000649] -------N---- \--* LCL_VAR long V59 tmp52
The assignment [000650] using V60 removes: Copy Assertion: V60 == V59
GenTreeNode creates assertion:
[000650] -A---+------ * ASG long
In BB01 New Local Copy Assertion: V60 == V59 index=#04, mask=0000000000000008
fgMorphTree BB01, stmt 8 (after)
[000650] -A---+------ * ASG long
[000648] D------N---- +--* LCL_VAR long V60 tmp53
[000649] -------N---- \--* LCL_VAR long V59 tmp52
fgMorphTree BB01, stmt 9 (before)
[000147] ---X-------- * IND int
[000031] ------------ \--* LCL_VAR ref V09 tmp2
GenTreeNode creates assertion:
[000147] ---X-------- * IND int
In BB01 New Local Constant Assertion: V09 != null index=#05, mask=0000000000000010
fgMorphTree BB01, stmt 10 (before)
[000153] -A---------- * ASG byref
[000152] D------N---- +--* LCL_VAR byref V17 tmp10
[000151] ------------ \--* CNS_INT byref 0
GenTreeNode creates assertion:
[000153] -A---------- * ASG byref
In BB01 New Local Constant Assertion: V17 == 0 index=#06, mask=0000000000000020
fgMorphTree BB01, stmt 11 (before)
[000156] -A---------- * ASG byref
[000155] D------N---- +--* LCL_VAR byref V18 tmp11
[000154] ------------ \--* CNS_INT byref 0
GenTreeNode creates assertion:
[000156] -A---------- * ASG byref
In BB01 New Local Constant Assertion: V18 == 0 index=#07, mask=0000000000000040
fgMorphTree BB01, stmt 12 (before)
[000159] -A---------- * ASG byref
[000158] D------N---- +--* LCL_VAR byref V19 tmp12
[000157] ------------ \--* CNS_INT byref 0
GenTreeNode creates assertion:
[000159] -A---------- * ASG byref
In BB01 New Local Constant Assertion: V19 == 0 index=#08, mask=0000000000000080
fgMorphTree BB01, stmt 13 (before)
[000083] IA---------- * ASG struct (init)
[000080] D------N---- +--* LCL_VAR struct V14 tmp7
[000082] ------------ \--* CNS_INT int 0
fgMorphInitBlock:
Local V14 should not be enregistered because: was accessed as a local field
fgMorphOneAsgBlock (after):
[000083] -A---------- * ASG byte
[000652] n------N---- +--* IND byte
[000651] ------------ | \--* ADDR byref
[000080] D----+-N---- | \--* LCL_VAR struct V14 tmp7
[000082] -----+------ \--* CNS_INT int 0
using oneAsgTree.
fgMorphTree BB01, stmt 13 (after)
[000083] -A---+------ * ASG byte
[000652] n------N---- +--* IND byte
[000651] ------------ | \--* ADDR byref
[000080] D----+-N---- | \--* LCL_VAR struct V14 tmp7
[000082] -----+------ \--* CNS_INT int 0
fgMorphTree BB01, stmt 14 (before)
[000087] IA---------- * ASG struct (init)
[000084] D------N---- +--* LCL_VAR struct V15 tmp8
[000086] ------------ \--* CNS_INT int 0
fgMorphInitBlock:
Local V15 should not be enregistered because: was accessed as a local field
fgMorphOneAsgBlock (after):
[000087] -A---------- * ASG int
[000654] n------N---- +--* IND int
[000653] ------------ | \--* ADDR byref
[000084] D----+-N---- | \--* LCL_VAR struct V15 tmp8
[000086] -----+------ \--* CNS_INT int 0
using oneAsgTree.
fgMorphTree BB01, stmt 14 (after)
[000087] -A---+------ * ASG int
[000654] n------N---- +--* IND int
[000653] ------------ | \--* ADDR byref
[000084] D----+-N---- | \--* LCL_VAR struct V15 tmp8
[000086] -----+------ \--* CNS_INT int 0
fgMorphTree BB01, stmt 15 (before)
[000097] -AC--------- * ASG byref
[000096] D------N---- +--* LCL_VAR byref V17 tmp10
[000180] ------------ \--* ADD long
[000174] ------------ +--* LCL_VAR long V60 tmp53
[000179] ------------ \--* MUL long
[000176] ------------ +--* CAST long <- int
[000175] ------------ | \--* CNS_INT int 2
[000178] ------------ \--* CAST long <- int
[000177] ------------ \--* CNS_INT int 1
Assertion prop in BB01:
Copy Assertion: V60 == V59 index=#04, mask=0000000000000008
[000174] ------------ * LCL_VAR long V59 tmp52
Assertion prop in BB01:
Copy Assertion: V59 == V57 index=#03, mask=0000000000000004
[000174] ------------ * LCL_VAR long V57 tmp50
Folding long operator with constant nodes into a constant:
[000176] ------------ * CAST long <- int
[000175] -----+------ \--* CNS_INT int 2
Bashed to long constant:
[000176] ------------ * CNS_INT long 2
Folding long operator with constant nodes into a constant:
[000178] ------------ * CAST long <- int
[000177] -----+------ \--* CNS_INT int 1
Bashed to long constant:
[000178] ------------ * CNS_INT long 1
Folding long operator with constant nodes into a constant:
[000179] ------------ * MUL long
[000176] -----+------ +--* CNS_INT long 2
[000178] -----+------ \--* CNS_INT long 1
Bashed to long constant:
[000179] ------------ * CNS_INT long 2
The assignment [000097] using V17 removes: Constant Assertion: V17 == 0
fgMorphTree BB01, stmt 15 (after)
[000097] -A---+------ * ASG byref
[000096] D----+-N---- +--* LCL_VAR byref V17 tmp10
[000180] -----+------ \--* ADD long
[000174] -----+------ +--* LCL_VAR long V57 tmp50
[000179] -----+------ \--* CNS_INT long 2
fgMorphTree BB01, stmt 16 (before)
[000107] -AC--------- * ASG byref
[000106] D------N---- +--* LCL_VAR byref V18 tmp11
[000192] ------------ \--* ADD long
[000186] ------------ +--* LCL_VAR long V60 tmp53
[000191] ------------ \--* MUL long
[000188] ------------ +--* CAST long <- int
[000187] ------------ | \--* CNS_INT int 1
[000190] ------------ \--* CAST long <- int
[000189] ------------ \--* CNS_INT int 1
Assertion prop in BB01:
Copy Assertion: V60 == V59 index=#04, mask=0000000000000008
[000186] ------------ * LCL_VAR long V59 tmp52
Assertion prop in BB01:
Copy Assertion: V59 == V57 index=#03, mask=0000000000000004
[000186] ------------ * LCL_VAR long V57 tmp50
Folding long operator with constant nodes into a constant:
[000188] ------------ * CAST long <- int
[000187] -----+------ \--* CNS_INT int 1
Bashed to long constant:
[000188] ------------ * CNS_INT long 1
Folding long operator with constant nodes into a constant:
[000190] ------------ * CAST long <- int
[000189] -----+------ \--* CNS_INT int 1
Bashed to long constant:
[000190] ------------ * CNS_INT long 1
Folding long operator with constant nodes into a constant:
[000191] ------------ * MUL long
[000188] -----+------ +--* CNS_INT long 1
[000190] -----+------ \--* CNS_INT long 1
Bashed to long constant:
[000191] ------------ * CNS_INT long 1
The assignment [000107] using V18 removes: Constant Assertion: V18 == 0
fgMorphTree BB01, stmt 16 (after)
[000107] -A---+------ * ASG byref
[000106] D----+-N---- +--* LCL_VAR byref V18 tmp11
[000192] -----+------ \--* ADD long
[000186] -----+------ +--* LCL_VAR long V57 tmp50
[000191] -----+------ \--* CNS_INT long 1
fgMorphTree BB01, stmt 17 (before)
[000117] -AC--------- * ASG byref
[000116] D------N---- +--* LCL_VAR byref V19 tmp12
[000204] ------------ \--* ADD long
[000198] ------------ +--* LCL_VAR long V60 tmp53
[000203] ------------ \--* MUL long
[000200] ------------ +--* CAST long <- int
[000199] ------------ | \--* CNS_INT int 0
[000202] ------------ \--* CAST long <- int
[000201] ------------ \--* CNS_INT int 1
Assertion prop in BB01:
Copy Assertion: V60 == V59 index=#04, mask=0000000000000008
[000198] ------------ * LCL_VAR long V59 tmp52
Assertion prop in BB01:
Copy Assertion: V59 == V57 index=#03, mask=0000000000000004
[000198] ------------ * LCL_VAR long V57 tmp50
Folding long operator with constant nodes into a constant:
[000200] ------------ * CAST long <- int
[000199] -----+------ \--* CNS_INT int 0
Bashed to long constant:
[000200] ------------ * CNS_INT long 0
Folding long operator with constant nodes into a constant:
[000202] ------------ * CAST long <- int
[000201] -----+------ \--* CNS_INT int 1
Bashed to long constant:
[000202] ------------ * CNS_INT long 1
Folding long operator with constant nodes into a constant:
[000203] ------------ * MUL long
[000200] -----+------ +--* CNS_INT long 0
[000202] -----+------ \--* CNS_INT long 1
Bashed to long constant:
[000203] ------------ * CNS_INT long 0
The assignment [000117] using V19 removes: Constant Assertion: V19 == 0
fgMorphTree BB01, stmt 17 (after)
[000117] -A---+------ * ASG byref
[000116] D----+-N---- +--* LCL_VAR byref V19 tmp12
[000198] -----+------ \--* LCL_VAR long V57 tmp50
fgMorphTree BB01, stmt 18 (before)
[000250] -A-XG------- * ASG ubyte
[000249] D------N---- +--* LCL_VAR ubyte V20 tmp13
[000122] *--XG------- \--* IND ubyte
[000121] ------------ \--* LCL_VAR byref V17 tmp10
GenTreeNode creates assertion:
[000250] -A-XG------- * ASG ubyte
In BB01 New Local Subrange Assertion: V20 in [0..255] index=#06, mask=0000000000000020
fgMorphTree BB01, stmt 19 (before)
[000253] -A---------- * ASG int
[000252] D------N---- +--* LCL_VAR int V24 tmp17
[000251] ------------ \--* CNS_INT int 0
GenTreeNode creates assertion:
[000253] -A---------- * ASG int
In BB01 New Local Constant Assertion: V24 == 0 index=#07, mask=0000000000000040
Morphing BB14 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB14, stmt 20 (before)
[000216] -A---------- * ASG int
[000215] D------N---- +--* LCL_VAR int V21 tmp14
[000210] ------------ \--* ADD int
[000208] ------------ +--* MUL int
[000207] ------------ | +--* SUB int
[000033] ------------ | | +--* LCL_VAR ubyte V01 arg1
[000206] ------------ | | \--* LCL_VAR int V20 tmp13
[000036] ------------ | \--* LCL_VAR ubyte V04 arg4
[000209] ------------ \--* CNS_INT int 128
fgMorphTree BB14, stmt 20 (after)
[000216] -A---+------ * ASG int
[000215] D----+-N---- +--* LCL_VAR int V21 tmp14
[000210] -----+------ \--* ADD int
[000208] -----+------ +--* MUL int
[000207] -----+------ | +--* SUB int
[000655] -----+------ | | +--* CAST int <- ubyte <- int
[000033] -----+------ | | | \--* LCL_VAR int V01 arg1
[000206] -----+------ | | \--* LCL_VAR int V20 tmp13
[000656] -----+------ | \--* CAST int <- ubyte <- int
[000036] -----+------ | \--* LCL_VAR int V04 arg4
[000209] -----+------ \--* CNS_INT int 128
fgMorphTree BB14, stmt 21 (before)
[000214] ------------ * JTRUE void
[000213] ------------ \--* GT int
[000211] ------------ +--* LCL_VAR int V20 tmp13
[000212] ------------ \--* LCL_VAR ubyte V01 arg1
fgMorphTree BB14, stmt 21 (after)
[000214] -----+------ * JTRUE void
[000213] J----+-N---- \--* GT int
[000211] -----+------ +--* LCL_VAR int V20 tmp13
[000657] -----+------ \--* CAST int <- ubyte <- int
[000212] -----+------ \--* LCL_VAR int V01 arg1
Morphing BB15 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB15, stmt 22 (before)
[000244] -A---------- * ASG int
[000243] D------N---- +--* LCL_VAR int V22 tmp15
[000218] ------------ \--* LCL_VAR int V21 tmp14
GenTreeNode creates assertion:
[000244] -A---------- * ASG int
In BB15 New Local Copy Assertion: V22 == V21 index=#01, mask=0000000000000001
fgMorphTree BB15, stmt 23 (before)
[000247] -A---------- * ASG int
[000246] D------N---- +--* LCL_VAR int V23 tmp16
[000242] ------------ \--* CNS_INT int 0
GenTreeNode creates assertion:
[000247] -A---------- * ASG int
In BB15 New Local Constant Assertion: V23 == 0 index=#02, mask=0000000000000002
Morphing BB16 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB16, stmt 24 (before)
[000222] -A---------- * ASG int
[000221] D------N---- +--* LCL_VAR int V22 tmp15
[000219] ------------ \--* LCL_VAR int V21 tmp14
GenTreeNode creates assertion:
[000222] -A---------- * ASG int
In BB16 New Local Copy Assertion: V22 == V21 index=#01, mask=0000000000000001
fgMorphTree BB16, stmt 25 (before)
[000225] -A---------- * ASG int
[000224] D------N---- +--* LCL_VAR int V23 tmp16
[000220] ------------ \--* CNS_INT int 1
GenTreeNode creates assertion:
[000225] -A---------- * ASG int
In BB16 New Local Constant Assertion: V23 == 1 index=#02, mask=0000000000000002
Morphing BB17 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB17, stmt 26 (before)
[000231] -A---------- * ASG int
[000230] D------N---- +--* LCL_VAR int V24 tmp17
[000229] ------------ \--* SUB int
[000227] ------------ +--* LCL_VAR int V22 tmp15
[000228] ------------ \--* LCL_VAR int V23 tmp16
Morphing BB18 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB18, stmt 27 (before)
[000126] -ACXG------- * ASG ubyte
[000125] *------N---- +--* IND ubyte
[000118] ------------ | \--* LCL_VAR byref V17 tmp10
[000241] ------------ \--* CAST int <- ubyte <- int
[000240] ------------ \--* ADD int
[000232] ------------ +--* LCL_VAR int V20 tmp13
[000239] ------------ \--* RSH int
[000237] ------------ +--* ADD int
[000235] ------------ | +--* RSH int
[000233] ------------ | | +--* LCL_VAR int V24 tmp17
[000234] ------------ | | \--* CNS_INT int 8
[000236] ------------ | \--* LCL_VAR int V24 tmp17
[000238] ------------ \--* CNS_INT int 8
fgMorphTree BB18, stmt 27 (after)
[000126] -A-XG+------ * ASG ubyte
[000125] *--X-+-N---- +--* IND ubyte
[000118] -----+------ | \--* LCL_VAR byref V17 tmp10
[000240] -----+------ \--* ADD int
[000232] -----+------ +--* LCL_VAR int V20 tmp13
[000239] -----+------ \--* RSH int
[000237] -----+------ +--* ADD int
[000235] -----+------ | +--* RSH int
[000233] -----+------ | | +--* LCL_VAR int V24 tmp17
[000234] -----+------ | | \--* CNS_INT int 8
[000236] -----+------ | \--* LCL_VAR int V24 tmp17
[000238] -----+------ \--* CNS_INT int 8
fgMorphTree BB18, stmt 28 (before)
[000299] -A-XG------- * ASG ubyte
[000298] D------N---- +--* LCL_VAR ubyte V25 tmp18
[000131] *--XG------- \--* IND ubyte
[000130] ------------ \--* LCL_VAR byref V18 tmp11
GenTreeNode creates assertion:
[000299] -A-XG------- * ASG ubyte
In BB18 New Local Subrange Assertion: V25 in [0..255] index=#01, mask=0000000000000001
fgMorphTree BB18, stmt 29 (before)
[000302] -A---------- * ASG int
[000301] D------N---- +--* LCL_VAR int V29 tmp22
[000300] ------------ \--* CNS_INT int 0
GenTreeNode creates assertion:
[000302] -A---------- * ASG int
In BB18 New Local Constant Assertion: V29 == 0 index=#02, mask=0000000000000002
Morphing BB19 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB19, stmt 30 (before)
[000265] -A---------- * ASG int
[000264] D------N---- +--* LCL_VAR int V26 tmp19
[000259] ------------ \--* ADD int
[000257] ------------ +--* MUL int
[000256] ------------ | +--* SUB int
[000034] ------------ | | +--* LCL_VAR ubyte V02 arg2
[000255] ------------ | | \--* LCL_VAR int V25 tmp18
[000132] ------------ | \--* LCL_VAR ubyte V04 arg4
[000258] ------------ \--* CNS_INT int 128
fgMorphTree BB19, stmt 30 (after)
[000265] -A---+------ * ASG int
[000264] D----+-N---- +--* LCL_VAR int V26 tmp19
[000259] -----+------ \--* ADD int
[000257] -----+------ +--* MUL int
[000256] -----+------ | +--* SUB int
[000658] -----+------ | | +--* CAST int <- ubyte <- int
[000034] -----+------ | | | \--* LCL_VAR int V02 arg2
[000255] -----+------ | | \--* LCL_VAR int V25 tmp18
[000659] -----+------ | \--* CAST int <- ubyte <- int
[000132] -----+------ | \--* LCL_VAR int V04 arg4
[000258] -----+------ \--* CNS_INT int 128
fgMorphTree BB19, stmt 31 (before)
[000263] ------------ * JTRUE void
[000262] ------------ \--* GT int
[000260] ------------ +--* LCL_VAR int V25 tmp18
[000261] ------------ \--* LCL_VAR ubyte V02 arg2
fgMorphTree BB19, stmt 31 (after)
[000263] -----+------ * JTRUE void
[000262] J----+-N---- \--* GT int
[000260] -----+------ +--* LCL_VAR int V25 tmp18
[000660] -----+------ \--* CAST int <- ubyte <- int
[000261] -----+------ \--* LCL_VAR int V02 arg2
Morphing BB20 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB20, stmt 32 (before)
[000293] -A---------- * ASG int
[000292] D------N---- +--* LCL_VAR int V27 tmp20
[000267] ------------ \--* LCL_VAR int V26 tmp19
GenTreeNode creates assertion:
[000293] -A---------- * ASG int
In BB20 New Local Copy Assertion: V27 == V26 index=#01, mask=0000000000000001
fgMorphTree BB20, stmt 33 (before)
[000296] -A---------- * ASG int
[000295] D------N---- +--* LCL_VAR int V28 tmp21
[000291] ------------ \--* CNS_INT int 0
GenTreeNode creates assertion:
[000296] -A---------- * ASG int
In BB20 New Local Constant Assertion: V28 == 0 index=#02, mask=0000000000000002
Morphing BB21 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB21, stmt 34 (before)
[000271] -A---------- * ASG int
[000270] D------N---- +--* LCL_VAR int V27 tmp20
[000268] ------------ \--* LCL_VAR int V26 tmp19
GenTreeNode creates assertion:
[000271] -A---------- * ASG int
In BB21 New Local Copy Assertion: V27 == V26 index=#01, mask=0000000000000001
fgMorphTree BB21, stmt 35 (before)
[000274] -A---------- * ASG int
[000273] D------N---- +--* LCL_VAR int V28 tmp21
[000269] ------------ \--* CNS_INT int 1
GenTreeNode creates assertion:
[000274] -A---------- * ASG int
In BB21 New Local Constant Assertion: V28 == 1 index=#02, mask=0000000000000002
Morphing BB22 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB22, stmt 36 (before)
[000280] -A---------- * ASG int
[000279] D------N---- +--* LCL_VAR int V29 tmp22
[000278] ------------ \--* SUB int
[000276] ------------ +--* LCL_VAR int V27 tmp20
[000277] ------------ \--* LCL_VAR int V28 tmp21
Morphing BB23 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB23, stmt 37 (before)
[000136] -ACXG------- * ASG ubyte
[000135] *------N---- +--* IND ubyte
[000127] ------------ | \--* LCL_VAR byref V18 tmp11
[000290] ------------ \--* CAST int <- ubyte <- int
[000289] ------------ \--* ADD int
[000281] ------------ +--* LCL_VAR int V25 tmp18
[000288] ------------ \--* RSH int
[000286] ------------ +--* ADD int
[000284] ------------ | +--* RSH int
[000282] ------------ | | +--* LCL_VAR int V29 tmp22
[000283] ------------ | | \--* CNS_INT int 8
[000285] ------------ | \--* LCL_VAR int V29 tmp22
[000287] ------------ \--* CNS_INT int 8
fgMorphTree BB23, stmt 37 (after)
[000136] -A-XG+------ * ASG ubyte
[000135] *--X-+-N---- +--* IND ubyte
[000127] -----+------ | \--* LCL_VAR byref V18 tmp11
[000289] -----+------ \--* ADD int
[000281] -----+------ +--* LCL_VAR int V25 tmp18
[000288] -----+------ \--* RSH int
[000286] -----+------ +--* ADD int
[000284] -----+------ | +--* RSH int
[000282] -----+------ | | +--* LCL_VAR int V29 tmp22
[000283] -----+------ | | \--* CNS_INT int 8
[000285] -----+------ | \--* LCL_VAR int V29 tmp22
[000287] -----+------ \--* CNS_INT int 8
fgMorphTree BB23, stmt 38 (before)
[000348] -A-XG------- * ASG ubyte
[000347] D------N---- +--* LCL_VAR ubyte V30 tmp23
[000141] *--XG------- \--* IND ubyte
[000140] ------------ \--* LCL_VAR byref V19 tmp12
GenTreeNode creates assertion:
[000348] -A-XG------- * ASG ubyte
In BB23 New Local Subrange Assertion: V30 in [0..255] index=#01, mask=0000000000000001
fgMorphTree BB23, stmt 39 (before)
[000351] -A---------- * ASG int
[000350] D------N---- +--* LCL_VAR int V34 tmp27
[000349] ------------ \--* CNS_INT int 0
GenTreeNode creates assertion:
[000351] -A---------- * ASG int
In BB23 New Local Constant Assertion: V34 == 0 index=#02, mask=0000000000000002
Morphing BB24 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB24, stmt 40 (before)
[000314] -A---------- * ASG int
[000313] D------N---- +--* LCL_VAR int V31 tmp24
[000308] ------------ \--* ADD int
[000306] ------------ +--* MUL int
[000305] ------------ | +--* SUB int
[000035] ------------ | | +--* LCL_VAR ubyte V03 arg3
[000304] ------------ | | \--* LCL_VAR int V30 tmp23
[000142] ------------ | \--* LCL_VAR ubyte V04 arg4
[000307] ------------ \--* CNS_INT int 128
fgMorphTree BB24, stmt 40 (after)
[000314] -A---+------ * ASG int
[000313] D----+-N---- +--* LCL_VAR int V31 tmp24
[000308] -----+------ \--* ADD int
[000306] -----+------ +--* MUL int
[000305] -----+------ | +--* SUB int
[000661] -----+------ | | +--* CAST int <- ubyte <- int
[000035] -----+------ | | | \--* LCL_VAR int V03 arg3
[000304] -----+------ | | \--* LCL_VAR int V30 tmp23
[000662] -----+------ | \--* CAST int <- ubyte <- int
[000142] -----+------ | \--* LCL_VAR int V04 arg4
[000307] -----+------ \--* CNS_INT int 128
fgMorphTree BB24, stmt 41 (before)
[000312] ------------ * JTRUE void
[000311] ------------ \--* GT int
[000309] ------------ +--* LCL_VAR int V30 tmp23
[000310] ------------ \--* LCL_VAR ubyte V03 arg3
fgMorphTree BB24, stmt 41 (after)
[000312] -----+------ * JTRUE void
[000311] J----+-N---- \--* GT int
[000309] -----+------ +--* LCL_VAR int V30 tmp23
[000663] -----+------ \--* CAST int <- ubyte <- int
[000310] -----+------ \--* LCL_VAR int V03 arg3
Morphing BB25 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB25, stmt 42 (before)
[000342] -A---------- * ASG int
[000341] D------N---- +--* LCL_VAR int V32 tmp25
[000316] ------------ \--* LCL_VAR int V31 tmp24
GenTreeNode creates assertion:
[000342] -A---------- * ASG int
In BB25 New Local Copy Assertion: V32 == V31 index=#01, mask=0000000000000001
fgMorphTree BB25, stmt 43 (before)
[000345] -A---------- * ASG int
[000344] D------N---- +--* LCL_VAR int V33 tmp26
[000340] ------------ \--* CNS_INT int 0
GenTreeNode creates assertion:
[000345] -A---------- * ASG int
In BB25 New Local Constant Assertion: V33 == 0 index=#02, mask=0000000000000002
Morphing BB26 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB26, stmt 44 (before)
[000320] -A---------- * ASG int
[000319] D------N---- +--* LCL_VAR int V32 tmp25
[000317] ------------ \--* LCL_VAR int V31 tmp24
GenTreeNode creates assertion:
[000320] -A---------- * ASG int
In BB26 New Local Copy Assertion: V32 == V31 index=#01, mask=0000000000000001
fgMorphTree BB26, stmt 45 (before)
[000323] -A---------- * ASG int
[000322] D------N---- +--* LCL_VAR int V33 tmp26
[000318] ------------ \--* CNS_INT int 1
GenTreeNode creates assertion:
[000323] -A---------- * ASG int
In BB26 New Local Constant Assertion: V33 == 1 index=#02, mask=0000000000000002
Morphing BB27 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB27, stmt 46 (before)
[000329] -A---------- * ASG int
[000328] D------N---- +--* LCL_VAR int V34 tmp27
[000327] ------------ \--* SUB int
[000325] ------------ +--* LCL_VAR int V32 tmp25
[000326] ------------ \--* LCL_VAR int V33 tmp26
Morphing BB28 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB28, stmt 47 (before)
[000146] -ACXG------- * ASG ubyte
[000145] *------N---- +--* IND ubyte
[000137] ------------ | \--* LCL_VAR byref V19 tmp12
[000339] ------------ \--* CAST int <- ubyte <- int
[000338] ------------ \--* ADD int
[000330] ------------ +--* LCL_VAR int V30 tmp23
[000337] ------------ \--* RSH int
[000335] ------------ +--* ADD int
[000333] ------------ | +--* RSH int
[000331] ------------ | | +--* LCL_VAR int V34 tmp27
[000332] ------------ | | \--* CNS_INT int 8
[000334] ------------ | \--* LCL_VAR int V34 tmp27
[000336] ------------ \--* CNS_INT int 8
fgMorphTree BB28, stmt 47 (after)
[000146] -A-XG+------ * ASG ubyte
[000145] *--X-+-N---- +--* IND ubyte
[000137] -----+------ | \--* LCL_VAR byref V19 tmp12
[000338] -----+------ \--* ADD int
[000330] -----+------ +--* LCL_VAR int V30 tmp23
[000337] -----+------ \--* RSH int
[000335] -----+------ +--* ADD int
[000333] -----+------ | +--* RSH int
[000331] -----+------ | | +--* LCL_VAR int V34 tmp27
[000332] -----+------ | | \--* CNS_INT int 8
[000334] -----+------ | \--* LCL_VAR int V34 tmp27
[000336] -----+------ \--* CNS_INT int 8
fgMorphTree BB28, stmt 48 (before)
[000162] -A---------- * ASG byref
[000161] D------N---- +--* LCL_VAR byref V17 tmp10
[000160] ------------ \--* CNS_INT byref 0
GenTreeNode creates assertion:
[000162] -A---------- * ASG byref
In BB28 New Local Constant Assertion: V17 == 0 index=#01, mask=0000000000000001
fgMorphTree BB28, stmt 49 (before)
[000165] -A---------- * ASG byref
[000164] D------N---- +--* LCL_VAR byref V18 tmp11
[000163] ------------ \--* CNS_INT byref 0
GenTreeNode creates assertion:
[000165] -A---------- * ASG byref
In BB28 New Local Constant Assertion: V18 == 0 index=#02, mask=0000000000000002
fgMorphTree BB28, stmt 50 (before)
[000168] -A---------- * ASG byref
[000167] D------N---- +--* LCL_VAR byref V19 tmp12
[000166] ------------ \--* CNS_INT byref 0
GenTreeNode creates assertion:
[000168] -A---------- * ASG byref
In BB28 New Local Constant Assertion: V19 == 0 index=#03, mask=0000000000000004
fgMorphTree BB28, stmt 51 (before)
[000044] -AC--------- * ASG ref
[000043] D------N---- +--* LCL_VAR ref V10 tmp3
[000042] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
[000041] ------------ arg0 \--* CNS_INT(h) long 0xd1ffab1e token
Initializing arg info for 42.CALL:
ArgTable for 42.CALL after fgInitArgInfo:
fgArgTabEntry[arg 0 41.CNS_INT long, 1 reg: rcx, align=1]
Morphing args for 42.CALL:
argSlots=1, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('rcx'):
[000041] -----+------ * CNS_INT(h) long 0xd1ffab1e token
Replaced with placeholder node:
[000664] ----------L- * ARGPLACE long
Shuffled argument table: rcx
ArgTable for 42.CALL after fgMorphArgs:
fgArgTabEntry[arg 0 41.CNS_INT long, 1 reg: rcx, align=1, lateArgInx=0, processed]
fgMorphTree BB28, stmt 51 (after)
[000044] -AC--+------ * ASG ref
[000043] D----+-N---- +--* LCL_VAR ref V10 tmp3
[000042] --C--+------ \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
[000041] -----+------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e token
fgMorphTree BB28, stmt 52 (before)
[000362] -A---------- * ASG struct (copy)
[000360] D----------- +--* LCL_VAR struct(P) V35 tmp28
+--* long V35._pointer (offs=0x00) -> V61 tmp54
[000056] n----------- \--* OBJ(8) struct
[000055] ------------ \--* ADDR byref
[000048] ------------ \--* LCL_VAR struct(P) V00 arg0
\--* long V00._pointer (offs=0x00) -> V57 tmp50
fgMorphCopyBlock:block assignment to morph:
[000362] -A---------- * ASG struct (copy)
[000360] D----+-N---- +--* LCL_VAR struct(P) V35 tmp28
+--* long V35._pointer (offs=0x00) -> V61 tmp54
[000056] n----+------ \--* OBJ(8) struct
[000055] -----+------ \--* ADDR byref
[000048] -----+-N---- \--* LCL_VAR struct(P) V00 arg0
\--* long V00._pointer (offs=0x00) -> V57 tmp50
(destDoFldAsg=true) (srcDoFldAsg=true) using field by field assignments.
GenTreeNode creates assertion:
[000667] -A---------- * ASG long
In BB28 New Local Copy Assertion: V61 == V57 index=#04, mask=0000000000000008
fgMorphCopyBlock (after):
[000667] -A---+------ * ASG long
[000665] D------N---- +--* LCL_VAR long V61 tmp54
[000666] -------N---- \--* LCL_VAR long V57 tmp50
The assignment [000667] using V61 removes: Copy Assertion: V61 == V57
GenTreeNode creates assertion:
[000667] -A---+------ * ASG long
In BB28 New Local Copy Assertion: V61 == V57 index=#04, mask=0000000000000008
fgMorphTree BB28, stmt 52 (after)
[000667] -A---+------ * ASG long
[000665] D------N---- +--* LCL_VAR long V61 tmp54
[000666] -------N---- \--* LCL_VAR long V57 tmp50
fgMorphTree BB28, stmt 53 (before)
[000434] -A---------- * ASG struct (copy)
[000432] D----------- +--* LCL_VAR struct(P) V38 tmp31
+--* long V38._pointer (offs=0x00) -> V62 tmp55
[000359] n----------- \--* OBJ(8) struct
[000358] ------------ \--* ADDR byref
[000356] ------------ \--* LCL_VAR struct(P) V35 tmp28
\--* long V35._pointer (offs=0x00) -> V61 tmp54
fgMorphCopyBlock:block assignment to morph:
[000434] -A---------- * ASG struct (copy)
[000432] D----+-N---- +--* LCL_VAR struct(P) V38 tmp31
+--* long V38._pointer (offs=0x00) -> V62 tmp55
[000359] n----+------ \--* OBJ(8) struct
[000358] -----+------ \--* ADDR byref
[000356] -----+-N---- \--* LCL_VAR struct(P) V35 tmp28
\--* long V35._pointer (offs=0x00) -> V61 tmp54
(destDoFldAsg=true) (srcDoFldAsg=true) using field by field assignments.
GenTreeNode creates assertion:
[000670] -A---------- * ASG long
In BB28 New Local Copy Assertion: V62 == V61 index=#05, mask=0000000000000010
fgMorphCopyBlock (after):
[000670] -A---+------ * ASG long
[000668] D------N---- +--* LCL_VAR long V62 tmp55
[000669] -------N---- \--* LCL_VAR long V61 tmp54
The assignment [000670] using V62 removes: Copy Assertion: V62 == V61
GenTreeNode creates assertion:
[000670] -A---+------ * ASG long
In BB28 New Local Copy Assertion: V62 == V61 index=#05, mask=0000000000000010
fgMorphTree BB28, stmt 53 (after)
[000670] -A---+------ * ASG long
[000668] D------N---- +--* LCL_VAR long V62 tmp55
[000669] -------N---- \--* LCL_VAR long V61 tmp54
fgMorphTree BB28, stmt 54 (before)
[000431] ---X-------- * IND int
[000047] ------------ \--* LCL_VAR ref V10 tmp3
GenTreeNode creates assertion:
[000431] ---X-------- * IND int
In BB28 New Local Constant Assertion: V10 != null index=#06, mask=0000000000000020
fgMorphTree BB28, stmt 55 (before)
[000437] -A---------- * ASG byref
[000436] D------N---- +--* LCL_VAR byref V39 tmp32
[000435] ------------ \--* CNS_INT byref 0
GenTreeNode creates assertion:
[000437] -A---------- * ASG byref
In BB28 New Local Constant Assertion: V39 == 0 index=#07, mask=0000000000000040
fgMorphTree BB28, stmt 56 (before)
[000440] -A---------- * ASG byref
[000439] D------N---- +--* LCL_VAR byref V40 tmp33
[000438] ------------ \--* CNS_INT byref 0
GenTreeNode creates assertion:
[000440] -A---------- * ASG byref
In BB28 New Local Constant Assertion: V40 == 0 index=#08, mask=0000000000000080
fgMorphTree BB28, stmt 57 (before)
[000443] -A---------- * ASG byref
[000442] D------N---- +--* LCL_VAR byref V41 tmp34
[000441] ------------ \--* CNS_INT byref 0
GenTreeNode creates assertion:
[000443] -A---------- * ASG byref
In BB28 New Local Constant Assertion: V41 == 0 index=#09, mask=0000000000000100
fgMorphTree BB28, stmt 58 (before)
[000367] IA---------- * ASG struct (init)
[000364] D------N---- +--* LCL_VAR struct V36 tmp29
[000366] ------------ \--* CNS_INT int 0
fgMorphInitBlock:
Local V36 should not be enregistered because: was accessed as a local field
fgMorphOneAsgBlock (after):
[000367] -A---------- * ASG byte
[000672] n------N---- +--* IND byte
[000671] ------------ | \--* ADDR byref
[000364] D----+-N---- | \--* LCL_VAR struct V36 tmp29
[000366] -----+------ \--* CNS_INT int 0
using oneAsgTree.
fgMorphTree BB28, stmt 58 (after)
[000367] -A---+------ * ASG byte
[000672] n------N---- +--* IND byte
[000671] ------------ | \--* ADDR byref
[000364] D----+-N---- | \--* LCL_VAR struct V36 tmp29
[000366] -----+------ \--* CNS_INT int 0
fgMorphTree BB28, stmt 59 (before)
[000371] IA---------- * ASG struct (init)
[000368] D------N---- +--* LCL_VAR struct V37 tmp30
[000370] ------------ \--* CNS_INT int 0
fgMorphInitBlock:
Local V37 should not be enregistered because: was accessed as a local field
fgMorphOneAsgBlock (after):
[000371] -A---------- * ASG int
[000674] n------N---- +--* IND int
[000673] ------------ | \--* ADDR byref
[000368] D----+-N---- | \--* LCL_VAR struct V37 tmp30
[000370] -----+------ \--* CNS_INT int 0
using oneAsgTree.
fgMorphTree BB28, stmt 59 (after)
[000371] -A---+------ * ASG int
[000674] n------N---- +--* IND int
[000673] ------------ | \--* ADDR byref
[000368] D----+-N---- | \--* LCL_VAR struct V37 tmp30
[000370] -----+------ \--* CNS_INT int 0
fgMorphTree BB28, stmt 60 (before)
[000381] -AC--------- * ASG byref
[000380] D------N---- +--* LCL_VAR byref V39 tmp32
[000455] ------------ \--* ADD long
[000449] ------------ +--* LCL_VAR long V62 tmp55
[000454] ------------ \--* MUL long
[000451] ------------ +--* CAST long <- int
[000450] ------------ | \--* CNS_INT int 2
[000453] ------------ \--* CAST long <- int
[000452] ------------ \--* CNS_INT int 1
Assertion prop in BB28:
Copy Assertion: V62 == V61 index=#05, mask=0000000000000010
[000449] ------------ * LCL_VAR long V61 tmp54
Assertion prop in BB28:
Copy Assertion: V61 == V57 index=#04, mask=0000000000000008
[000449] ------------ * LCL_VAR long V57 tmp50
Folding long operator with constant nodes into a constant:
[000451] ------------ * CAST long <- int
[000450] -----+------ \--* CNS_INT int 2
Bashed to long constant:
[000451] ------------ * CNS_INT long 2
Folding long operator with constant nodes into a constant:
[000453] ------------ * CAST long <- int
[000452] -----+------ \--* CNS_INT int 1
Bashed to long constant:
[000453] ------------ * CNS_INT long 1
Folding long operator with constant nodes into a constant:
[000454] ------------ * MUL long
[000451] -----+------ +--* CNS_INT long 2
[000453] -----+------ \--* CNS_INT long 1
Bashed to long constant:
[000454] ------------ * CNS_INT long 2
The assignment [000381] using V39 removes: Constant Assertion: V39 == 0
fgMorphTree BB28, stmt 60 (after)
[000381] -A---+------ * ASG byref
[000380] D----+-N---- +--* LCL_VAR byref V39 tmp32
[000455] -----+------ \--* ADD long
[000449] -----+------ +--* LCL_VAR long V57 tmp50
[000454] -----+------ \--* CNS_INT long 2
fgMorphTree BB28, stmt 61 (before)
[000391] -AC--------- * ASG byref
[000390] D------N---- +--* LCL_VAR byref V40 tmp33
[000467] ------------ \--* ADD long
[000461] ------------ +--* LCL_VAR long V62 tmp55
[000466] ------------ \--* MUL long
[000463] ------------ +--* CAST long <- int
[000462] ------------ | \--* CNS_INT int 1
[000465] ------------ \--* CAST long <- int
[000464] ------------ \--* CNS_INT int 1
Assertion prop in BB28:
Copy Assertion: V62 == V61 index=#05, mask=0000000000000010
[000461] ------------ * LCL_VAR long V61 tmp54
Assertion prop in BB28:
Copy Assertion: V61 == V57 index=#04, mask=0000000000000008
[000461] ------------ * LCL_VAR long V57 tmp50
Folding long operator with constant nodes into a constant:
[000463] ------------ * CAST long <- int
[000462] -----+------ \--* CNS_INT int 1
Bashed to long constant:
[000463] ------------ * CNS_INT long 1
Folding long operator with constant nodes into a constant:
[000465] ------------ * CAST long <- int
[000464] -----+------ \--* CNS_INT int 1
Bashed to long constant:
[000465] ------------ * CNS_INT long 1
Folding long operator with constant nodes into a constant:
[000466] ------------ * MUL long
[000463] -----+------ +--* CNS_INT long 1
[000465] -----+------ \--* CNS_INT long 1
Bashed to long constant:
[000466] ------------ * CNS_INT long 1
The assignment [000391] using V40 removes: Constant Assertion: V40 == 0
fgMorphTree BB28, stmt 61 (after)
[000391] -A---+------ * ASG byref
[000390] D----+-N---- +--* LCL_VAR byref V40 tmp33
[000467] -----+------ \--* ADD long
[000461] -----+------ +--* LCL_VAR long V57 tmp50
[000466] -----+------ \--* CNS_INT long 1
fgMorphTree BB28, stmt 62 (before)
[000401] -AC--------- * ASG byref
[000400] D------N---- +--* LCL_VAR byref V41 tmp34
[000479] ------------ \--* ADD long
[000473] ------------ +--* LCL_VAR long V62 tmp55
[000478] ------------ \--* MUL long
[000475] ------------ +--* CAST long <- int
[000474] ------------ | \--* CNS_INT int 0
[000477] ------------ \--* CAST long <- int
[000476] ------------ \--* CNS_INT int 1
Assertion prop in BB28:
Copy Assertion: V62 == V61 index=#05, mask=0000000000000010
[000473] ------------ * LCL_VAR long V61 tmp54
Assertion prop in BB28:
Copy Assertion: V61 == V57 index=#04, mask=0000000000000008
[000473] ------------ * LCL_VAR long V57 tmp50
Folding long operator with constant nodes into a constant:
[000475] ------------ * CAST long <- int
[000474] -----+------ \--* CNS_INT int 0
Bashed to long constant:
[000475] ------------ * CNS_INT long 0
Folding long operator with constant nodes into a constant:
[000477] ------------ * CAST long <- int
[000476] -----+------ \--* CNS_INT int 1
Bashed to long constant:
[000477] ------------ * CNS_INT long 1
Folding long operator with constant nodes into a constant:
[000478] ------------ * MUL long
[000475] -----+------ +--* CNS_INT long 0
[000477] -----+------ \--* CNS_INT long 1
Bashed to long constant:
[000478] ------------ * CNS_INT long 0
The assignment [000401] using V41 removes: Constant Assertion: V41 == 0
fgMorphTree BB28, stmt 62 (after)
[000401] -A---+------ * ASG byref
[000400] D----+-N---- +--* LCL_VAR byref V41 tmp34
[000473] -----+------ \--* LCL_VAR long V57 tmp50
fgMorphTree BB28, stmt 63 (before)
[000525] -A-XG------- * ASG ubyte
[000524] D------N---- +--* LCL_VAR ubyte V42 tmp35
[000406] *--XG------- \--* IND ubyte
[000405] ------------ \--* LCL_VAR byref V39 tmp32
GenTreeNode creates assertion:
[000525] -A-XG------- * ASG ubyte
In BB28 New Local Subrange Assertion: V42 in [0..255] index=#07, mask=0000000000000040
fgMorphTree BB28, stmt 64 (before)
[000528] -A---------- * ASG int
[000527] D------N---- +--* LCL_VAR int V46 tmp39
[000526] ------------ \--* CNS_INT int 0
GenTreeNode creates assertion:
[000528] -A---------- * ASG int
In BB28 New Local Constant Assertion: V46 == 0 index=#08, mask=0000000000000080
Morphing BB39 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB39, stmt 65 (before)
[000491] -A---------- * ASG int
[000490] D------N---- +--* LCL_VAR int V43 tmp36
[000485] ------------ \--* ADD int
[000483] ------------ +--* MUL int
[000482] ------------ | +--* SUB int
[000049] ------------ | | +--* LCL_VAR ubyte V01 arg1
[000481] ------------ | | \--* LCL_VAR int V42 tmp35
[000052] ------------ | \--* LCL_VAR ubyte V04 arg4
[000484] ------------ \--* CNS_INT int 128
fgMorphTree BB39, stmt 65 (after)
[000491] -A---+------ * ASG int
[000490] D----+-N---- +--* LCL_VAR int V43 tmp36
[000485] -----+------ \--* ADD int
[000483] -----+------ +--* MUL int
[000482] -----+------ | +--* SUB int
[000675] -----+------ | | +--* CAST int <- ubyte <- int
[000049] -----+------ | | | \--* LCL_VAR int V01 arg1
[000481] -----+------ | | \--* LCL_VAR int V42 tmp35
[000676] -----+------ | \--* CAST int <- ubyte <- int
[000052] -----+------ | \--* LCL_VAR int V04 arg4
[000484] -----+------ \--* CNS_INT int 128
fgMorphTree BB39, stmt 66 (before)
[000489] ------------ * JTRUE void
[000488] ------------ \--* GT int
[000486] ------------ +--* LCL_VAR int V42 tmp35
[000487] ------------ \--* LCL_VAR ubyte V01 arg1
fgMorphTree BB39, stmt 66 (after)
[000489] -----+------ * JTRUE void
[000488] J----+-N---- \--* GT int
[000486] -----+------ +--* LCL_VAR int V42 tmp35
[000677] -----+------ \--* CAST int <- ubyte <- int
[000487] -----+------ \--* LCL_VAR int V01 arg1
Morphing BB40 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB40, stmt 67 (before)
[000519] -A---------- * ASG int
[000518] D------N---- +--* LCL_VAR int V44 tmp37
[000493] ------------ \--* LCL_VAR int V43 tmp36
GenTreeNode creates assertion:
[000519] -A---------- * ASG int
In BB40 New Local Copy Assertion: V44 == V43 index=#01, mask=0000000000000001
fgMorphTree BB40, stmt 68 (before)
[000522] -A---------- * ASG int
[000521] D------N---- +--* LCL_VAR int V45 tmp38
[000517] ------------ \--* CNS_INT int 0
GenTreeNode creates assertion:
[000522] -A---------- * ASG int
In BB40 New Local Constant Assertion: V45 == 0 index=#02, mask=0000000000000002
Morphing BB41 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB41, stmt 69 (before)
[000497] -A---------- * ASG int
[000496] D------N---- +--* LCL_VAR int V44 tmp37
[000494] ------------ \--* LCL_VAR int V43 tmp36
GenTreeNode creates assertion:
[000497] -A---------- * ASG int
In BB41 New Local Copy Assertion: V44 == V43 index=#01, mask=0000000000000001
fgMorphTree BB41, stmt 70 (before)
[000500] -A---------- * ASG int
[000499] D------N---- +--* LCL_VAR int V45 tmp38
[000495] ------------ \--* CNS_INT int 1
GenTreeNode creates assertion:
[000500] -A---------- * ASG int
In BB41 New Local Constant Assertion: V45 == 1 index=#02, mask=0000000000000002
Morphing BB42 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB42, stmt 71 (before)
[000506] -A---------- * ASG int
[000505] D------N---- +--* LCL_VAR int V46 tmp39
[000504] ------------ \--* SUB int
[000502] ------------ +--* LCL_VAR int V44 tmp37
[000503] ------------ \--* LCL_VAR int V45 tmp38
Morphing BB43 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB43, stmt 72 (before)
[000410] -ACXG------- * ASG ubyte
[000409] *------N---- +--* IND ubyte
[000402] ------------ | \--* LCL_VAR byref V39 tmp32
[000516] ------------ \--* CAST int <- ubyte <- int
[000515] ------------ \--* ADD int
[000507] ------------ +--* LCL_VAR int V42 tmp35
[000514] ------------ \--* RSH int
[000512] ------------ +--* ADD int
[000510] ------------ | +--* RSH int
[000508] ------------ | | +--* LCL_VAR int V46 tmp39
[000509] ------------ | | \--* CNS_INT int 8
[000511] ------------ | \--* LCL_VAR int V46 tmp39
[000513] ------------ \--* CNS_INT int 8
fgMorphTree BB43, stmt 72 (after)
[000410] -A-XG+------ * ASG ubyte
[000409] *--X-+-N---- +--* IND ubyte
[000402] -----+------ | \--* LCL_VAR byref V39 tmp32
[000515] -----+------ \--* ADD int
[000507] -----+------ +--* LCL_VAR int V42 tmp35
[000514] -----+------ \--* RSH int
[000512] -----+------ +--* ADD int
[000510] -----+------ | +--* RSH int
[000508] -----+------ | | +--* LCL_VAR int V46 tmp39
[000509] -----+------ | | \--* CNS_INT int 8
[000511] -----+------ | \--* LCL_VAR int V46 tmp39
[000513] -----+------ \--* CNS_INT int 8
fgMorphTree BB43, stmt 73 (before)
[000574] -A-XG------- * ASG ubyte
[000573] D------N---- +--* LCL_VAR ubyte V47 tmp40
[000415] *--XG------- \--* IND ubyte
[000414] ------------ \--* LCL_VAR byref V40 tmp33
GenTreeNode creates assertion:
[000574] -A-XG------- * ASG ubyte
In BB43 New Local Subrange Assertion: V47 in [0..255] index=#01, mask=0000000000000001
fgMorphTree BB43, stmt 74 (before)
[000577] -A---------- * ASG int
[000576] D------N---- +--* LCL_VAR int V51 tmp44
[000575] ------------ \--* CNS_INT int 0
GenTreeNode creates assertion:
[000577] -A---------- * ASG int
In BB43 New Local Constant Assertion: V51 == 0 index=#02, mask=0000000000000002
Morphing BB44 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB44, stmt 75 (before)
[000540] -A---------- * ASG int
[000539] D------N---- +--* LCL_VAR int V48 tmp41
[000534] ------------ \--* ADD int
[000532] ------------ +--* MUL int
[000531] ------------ | +--* SUB int
[000050] ------------ | | +--* LCL_VAR ubyte V02 arg2
[000530] ------------ | | \--* LCL_VAR int V47 tmp40
[000416] ------------ | \--* LCL_VAR ubyte V04 arg4
[000533] ------------ \--* CNS_INT int 128
fgMorphTree BB44, stmt 75 (after)
[000540] -A---+------ * ASG int
[000539] D----+-N---- +--* LCL_VAR int V48 tmp41
[000534] -----+------ \--* ADD int
[000532] -----+------ +--* MUL int
[000531] -----+------ | +--* SUB int
[000678] -----+------ | | +--* CAST int <- ubyte <- int
[000050] -----+------ | | | \--* LCL_VAR int V02 arg2
[000530] -----+------ | | \--* LCL_VAR int V47 tmp40
[000679] -----+------ | \--* CAST int <- ubyte <- int
[000416] -----+------ | \--* LCL_VAR int V04 arg4
[000533] -----+------ \--* CNS_INT int 128
fgMorphTree BB44, stmt 76 (before)
[000538] ------------ * JTRUE void
[000537] ------------ \--* GT int
[000535] ------------ +--* LCL_VAR int V47 tmp40
[000536] ------------ \--* LCL_VAR ubyte V02 arg2
fgMorphTree BB44, stmt 76 (after)
[000538] -----+------ * JTRUE void
[000537] J----+-N---- \--* GT int
[000535] -----+------ +--* LCL_VAR int V47 tmp40
[000680] -----+------ \--* CAST int <- ubyte <- int
[000536] -----+------ \--* LCL_VAR int V02 arg2
Morphing BB45 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB45, stmt 77 (before)
[000568] -A---------- * ASG int
[000567] D------N---- +--* LCL_VAR int V49 tmp42
[000542] ------------ \--* LCL_VAR int V48 tmp41
GenTreeNode creates assertion:
[000568] -A---------- * ASG int
In BB45 New Local Copy Assertion: V49 == V48 index=#01, mask=0000000000000001
fgMorphTree BB45, stmt 78 (before)
[000571] -A---------- * ASG int
[000570] D------N---- +--* LCL_VAR int V50 tmp43
[000566] ------------ \--* CNS_INT int 0
GenTreeNode creates assertion:
[000571] -A---------- * ASG int
In BB45 New Local Constant Assertion: V50 == 0 index=#02, mask=0000000000000002
Morphing BB46 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB46, stmt 79 (before)
[000546] -A---------- * ASG int
[000545] D------N---- +--* LCL_VAR int V49 tmp42
[000543] ------------ \--* LCL_VAR int V48 tmp41
GenTreeNode creates assertion:
[000546] -A---------- * ASG int
In BB46 New Local Copy Assertion: V49 == V48 index=#01, mask=0000000000000001
fgMorphTree BB46, stmt 80 (before)
[000549] -A---------- * ASG int
[000548] D------N---- +--* LCL_VAR int V50 tmp43
[000544] ------------ \--* CNS_INT int 1
GenTreeNode creates assertion:
[000549] -A---------- * ASG int
In BB46 New Local Constant Assertion: V50 == 1 index=#02, mask=0000000000000002
Morphing BB47 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB47, stmt 81 (before)
[000555] -A---------- * ASG int
[000554] D------N---- +--* LCL_VAR int V51 tmp44
[000553] ------------ \--* SUB int
[000551] ------------ +--* LCL_VAR int V49 tmp42
[000552] ------------ \--* LCL_VAR int V50 tmp43
Morphing BB48 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB48, stmt 82 (before)
[000420] -ACXG------- * ASG ubyte
[000419] *------N---- +--* IND ubyte
[000411] ------------ | \--* LCL_VAR byref V40 tmp33
[000565] ------------ \--* CAST int <- ubyte <- int
[000564] ------------ \--* ADD int
[000556] ------------ +--* LCL_VAR int V47 tmp40
[000563] ------------ \--* RSH int
[000561] ------------ +--* ADD int
[000559] ------------ | +--* RSH int
[000557] ------------ | | +--* LCL_VAR int V51 tmp44
[000558] ------------ | | \--* CNS_INT int 8
[000560] ------------ | \--* LCL_VAR int V51 tmp44
[000562] ------------ \--* CNS_INT int 8
fgMorphTree BB48, stmt 82 (after)
[000420] -A-XG+------ * ASG ubyte
[000419] *--X-+-N---- +--* IND ubyte
[000411] -----+------ | \--* LCL_VAR byref V40 tmp33
[000564] -----+------ \--* ADD int
[000556] -----+------ +--* LCL_VAR int V47 tmp40
[000563] -----+------ \--* RSH int
[000561] -----+------ +--* ADD int
[000559] -----+------ | +--* RSH int
[000557] -----+------ | | +--* LCL_VAR int V51 tmp44
[000558] -----+------ | | \--* CNS_INT int 8
[000560] -----+------ | \--* LCL_VAR int V51 tmp44
[000562] -----+------ \--* CNS_INT int 8
fgMorphTree BB48, stmt 83 (before)
[000623] -A-XG------- * ASG ubyte
[000622] D------N---- +--* LCL_VAR ubyte V52 tmp45
[000425] *--XG------- \--* IND ubyte
[000424] ------------ \--* LCL_VAR byref V41 tmp34
GenTreeNode creates assertion:
[000623] -A-XG------- * ASG ubyte
In BB48 New Local Subrange Assertion: V52 in [0..255] index=#01, mask=0000000000000001
fgMorphTree BB48, stmt 84 (before)
[000626] -A---------- * ASG int
[000625] D------N---- +--* LCL_VAR int V56 tmp49
[000624] ------------ \--* CNS_INT int 0
GenTreeNode creates assertion:
[000626] -A---------- * ASG int
In BB48 New Local Constant Assertion: V56 == 0 index=#02, mask=0000000000000002
Morphing BB49 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB49, stmt 85 (before)
[000589] -A---------- * ASG int
[000588] D------N---- +--* LCL_VAR int V53 tmp46
[000583] ------------ \--* ADD int
[000581] ------------ +--* MUL int
[000580] ------------ | +--* SUB int
[000051] ------------ | | +--* LCL_VAR ubyte V03 arg3
[000579] ------------ | | \--* LCL_VAR int V52 tmp45
[000426] ------------ | \--* LCL_VAR ubyte V04 arg4
[000582] ------------ \--* CNS_INT int 128
fgMorphTree BB49, stmt 85 (after)
[000589] -A---+------ * ASG int
[000588] D----+-N---- +--* LCL_VAR int V53 tmp46
[000583] -----+------ \--* ADD int
[000581] -----+------ +--* MUL int
[000580] -----+------ | +--* SUB int
[000681] -----+------ | | +--* CAST int <- ubyte <- int
[000051] -----+------ | | | \--* LCL_VAR int V03 arg3
[000579] -----+------ | | \--* LCL_VAR int V52 tmp45
[000682] -----+------ | \--* CAST int <- ubyte <- int
[000426] -----+------ | \--* LCL_VAR int V04 arg4
[000582] -----+------ \--* CNS_INT int 128
fgMorphTree BB49, stmt 86 (before)
[000587] ------------ * JTRUE void
[000586] ------------ \--* GT int
[000584] ------------ +--* LCL_VAR int V52 tmp45
[000585] ------------ \--* LCL_VAR ubyte V03 arg3
fgMorphTree BB49, stmt 86 (after)
[000587] -----+------ * JTRUE void
[000586] J----+-N---- \--* GT int
[000584] -----+------ +--* LCL_VAR int V52 tmp45
[000683] -----+------ \--* CAST int <- ubyte <- int
[000585] -----+------ \--* LCL_VAR int V03 arg3
Morphing BB50 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB50, stmt 87 (before)
[000617] -A---------- * ASG int
[000616] D------N---- +--* LCL_VAR int V54 tmp47
[000591] ------------ \--* LCL_VAR int V53 tmp46
GenTreeNode creates assertion:
[000617] -A---------- * ASG int
In BB50 New Local Copy Assertion: V54 == V53 index=#01, mask=0000000000000001
fgMorphTree BB50, stmt 88 (before)
[000620] -A---------- * ASG int
[000619] D------N---- +--* LCL_VAR int V55 tmp48
[000615] ------------ \--* CNS_INT int 0
GenTreeNode creates assertion:
[000620] -A---------- * ASG int
In BB50 New Local Constant Assertion: V55 == 0 index=#02, mask=0000000000000002
Morphing BB51 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB51, stmt 89 (before)
[000595] -A---------- * ASG int
[000594] D------N---- +--* LCL_VAR int V54 tmp47
[000592] ------------ \--* LCL_VAR int V53 tmp46
GenTreeNode creates assertion:
[000595] -A---------- * ASG int
In BB51 New Local Copy Assertion: V54 == V53 index=#01, mask=0000000000000001
fgMorphTree BB51, stmt 90 (before)
[000598] -A---------- * ASG int
[000597] D------N---- +--* LCL_VAR int V55 tmp48
[000593] ------------ \--* CNS_INT int 1
GenTreeNode creates assertion:
[000598] -A---------- * ASG int
In BB51 New Local Constant Assertion: V55 == 1 index=#02, mask=0000000000000002
Morphing BB52 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB52, stmt 91 (before)
[000604] -A---------- * ASG int
[000603] D------N---- +--* LCL_VAR int V56 tmp49
[000602] ------------ \--* SUB int
[000600] ------------ +--* LCL_VAR int V54 tmp47
[000601] ------------ \--* LCL_VAR int V55 tmp48
Morphing BB53 of 'Test1:TestMethodAll(struct,ubyte,ubyte,ubyte,ubyte,ubyte)'
fgMorphTree BB53, stmt 92 (before)
[000430] -ACXG------- * ASG ubyte
[000429] *------N---- +--* IND ubyte
[000421] ------------ | \--* LCL_VAR byref V41 tmp34
[000614] ------------ \--* CAST int <- ubyte <- int
[000613] ------------ \--* ADD int
[000605] ------------ +--* LCL_VAR int V52 tmp45
[000612] ------------ \--* RSH int
[000610] ------------ +--* ADD int
[000608] ------------ | +--* RSH int
[000606] ------------ | | +--* LCL_VAR int V56 tmp49
[000607] ------------ | | \--* CNS_INT int 8
[000609] ------------ | \--* LCL_VAR int V56 tmp49
[000611] ------------ \--* CNS_INT int 8
fgMorphTree BB53, stmt 92 (after)
[000430] -A-XG+------ * ASG ubyte
[000429] *--X-+-N---- +--* IND ubyte
[000421] -----+------ | \--* LCL_VAR byref V41 tmp34
[000613] -----+------ \--* ADD int
[000605] -----+------ +--* LCL_VAR int V52 tmp45
[000612] -----+------ \--* RSH int
[000610] -----+------ +--* ADD int
[000608] -----+------ | +--* RSH int
[000606] -----+------ | | +--* LCL_VAR int V56 tmp49
[000607] -----+------ | | \--* CNS_INT int 8
[000609] -----+------ | \--* LCL_VAR int V56 tmp49
[000611] -----+------ \--* CNS_INT int 8
fgMorphTree BB53, stmt 93 (before)
[000057] ------------ * RETURN void
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..040) i gcsafe newobj
BB14 [0013] 1 1 [020..021)-> BB16 ( cond ) i
BB15 [0014] 1 0.50 [020..021)-> BB17 (always) i
BB16 [0015] 1 0.50 [020..021) i
BB17 [0016] 2 1 [020..021) i
BB18 [0017] 1 1 [???..???) internal newobj
BB19 [0018] 1 1 [020..021)-> BB21 ( cond ) i
BB20 [0019] 1 0.50 [020..021)-> BB22 (always) i
BB21 [0020] 1 0.50 [020..021) i
BB22 [0021] 2 1 [020..021) i
BB23 [0022] 1 1 [???..???) internal newobj
BB24 [0023] 1 1 [020..021)-> BB26 ( cond ) i
BB25 [0024] 1 0.50 [020..021)-> BB27 (always) i
BB26 [0025] 1 0.50 [020..021) i
BB27 [0026] 2 1 [020..021) i
BB28 [0027] 1 1 [???..???) i internal newobj
BB39 [0038] 1 1 [032..033)-> BB41 ( cond ) i
BB40 [0039] 1 0.50 [032..033)-> BB42 (always) i
BB41 [0040] 1 0.50 [032..033) i
BB42 [0041] 2 1 [032..033) i
BB43 [0042] 1 1 [???..???) internal newobj
BB44 [0043] 1 1 [032..033)-> BB46 ( cond ) i
BB45 [0044] 1 0.50 [032..033)-> BB47 (always) i
BB46 [0045] 1 0.50 [032..033) i
BB47 [0046] 2 1 [032..033) i
BB48 [0047] 1 1 [???..???) internal newobj
BB49 [0048] 1 1 [032..033)-> BB51 ( cond ) i
BB50 [0049] 1 0.50 [032..033)-> BB52 (always) i
BB51 [0050] 1 0.50 [032..033) i
BB52 [0051] 2 1 [032..033) i
BB53 [0052] 1 1 [???..???) (return) internal newobj
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
Renumber BB14 to BB02
Renumber BB15 to BB03
Renumber BB16 to BB04
Renumber BB17 to BB05
Renumber BB18 to BB06
Renumber BB19 to BB07
Renumber BB20 to BB08
Renumber BB21 to BB09
Renumber BB22 to BB10
Renumber BB23 to BB11
Renumber BB24 to BB12
Renumber BB25 to BB13
Renumber BB26 to BB14
Renumber BB27 to BB15
Renumber BB28 to BB16
Renumber BB39 to BB17
Renumber BB40 to BB18
Renumber BB41 to BB19
Renumber BB42 to BB20
Renumber BB43 to BB21
Renumber BB44 to BB22
Renumber BB45 to BB23
Renumber BB46 to BB24
Renumber BB47 to BB25
Renumber BB48 to BB26
Renumber BB49 to BB27
Renumber BB50 to BB28
Renumber BB51 to BB29
Renumber BB52 to BB30
Renumber BB53 to BB31
*************** After renumbering the basic blocks
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..040) i gcsafe newobj
BB02 [0013] 1 1 [020..021)-> BB04 ( cond ) i
BB03 [0014] 1 0.50 [020..021)-> BB05 (always) i
BB04 [0015] 1 0.50 [020..021) i
BB05 [0016] 2 1 [020..021) i
BB06 [0017] 1 1 [???..???) internal newobj
BB07 [0018] 1 1 [020..021)-> BB09 ( cond ) i
BB08 [0019] 1 0.50 [020..021)-> BB10 (always) i
BB09 [0020] 1 0.50 [020..021) i
BB10 [0021] 2 1 [020..021) i
BB11 [0022] 1 1 [???..???) internal newobj
BB12 [0023] 1 1 [020..021)-> BB14 ( cond ) i
BB13 [0024] 1 0.50 [020..021)-> BB15 (always) i
BB14 [0025] 1 0.50 [020..021) i
BB15 [0026] 2 1 [020..021) i
BB16 [0027] 1 1 [???..???) i internal newobj
BB17 [0038] 1 1 [032..033)-> BB19 ( cond ) i
BB18 [0039] 1 0.50 [032..033)-> BB20 (always) i
BB19 [0040] 1 0.50 [032..033) i
BB20 [0041] 2 1 [032..033) i
BB21 [0042] 1 1 [???..???) internal newobj
BB22 [0043] 1 1 [032..033)-> BB24 ( cond ) i
BB23 [0044] 1 0.50 [032..033)-> BB25 (always) i
BB24 [0045] 1 0.50 [032..033) i
BB25 [0046] 2 1 [032..033) i
BB26 [0047] 1 1 [???..???) internal newobj
BB27 [0048] 1 1 [032..033)-> BB29 ( cond ) i
BB28 [0049] 1 0.50 [032..033)-> BB30 (always) i
BB29 [0050] 1 0.50 [032..033) i
BB30 [0051] 2 1 [032..033) i
BB31 [0052] 1 1 [???..???) (return) internal newobj
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
New BlockSet epoch 2, # of blocks (including unused BB00): 32, 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..040) i gcsafe newobj
BB02 [0013] 1 1 [020..021)-> BB04 ( cond ) i
BB03 [0014] 1 0.50 [020..021)-> BB05 (always) i
BB04 [0015] 1 0.50 [020..021) i
BB05 [0016] 2 1 [020..021) i
BB06 [0017] 1 1 [???..???) internal newobj
BB07 [0018] 1 1 [020..021)-> BB09 ( cond ) i
BB08 [0019] 1 0.50 [020..021)-> BB10 (always) i
BB09 [0020] 1 0.50 [020..021) i
BB10 [0021] 2 1 [020..021) i
BB11 [0022] 1 1 [???..???) internal newobj
BB12 [0023] 1 1 [020..021)-> BB14 ( cond ) i
BB13 [0024] 1 0.50 [020..021)-> BB15 (always) i
BB14 [0025] 1 0.50 [020..021) i
BB15 [0026] 2 1 [020..021) i
BB16 [0027] 1 1 [???..???) i internal newobj
BB17 [0038] 1 1 [032..033)-> BB19 ( cond ) i
BB18 [0039] 1 0.50 [032..033)-> BB20 (always) i
BB19 [0040] 1 0.50 [032..033) i
BB20 [0041] 2 1 [032..033) i
BB21 [0042] 1 1 [???..???) internal newobj
BB22 [0043] 1 1 [032..033)-> BB24 ( cond ) i
BB23 [0044] 1 0.50 [032..033)-> BB25 (always) i
BB24 [0045] 1 0.50 [032..033) i
BB25 [0046] 2 1 [032..033) i
BB26 [0047] 1 1 [???..???) internal newobj
BB27 [0048] 1 1 [032..033)-> BB29 ( cond ) i
BB28 [0049] 1 0.50 [032..033)-> BB30 (always) i
BB29 [0050] 1 0.50 [032..033) i
BB30 [0051] 2 1 [032..033) i
BB31 [0052] 1 1 [???..???) (return) internal newobj
-----------------------------------------------------------------------------------------------------------------------------------------
*************** After fgComputePreds()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..040) i label target gcsafe newobj
BB02 [0013] 1 BB01 1 [020..021)-> BB04 ( cond ) i
BB03 [0014] 1 BB02 0.50 [020..021)-> BB05 (always) i
BB04 [0015] 1 BB02 0.50 [020..021) i label target
BB05 [0016] 2 BB03,BB04 1 [020..021) i label target
BB06 [0017] 1 BB05 1 [???..???) internal newobj
BB07 [0018] 1 BB06 1 [020..021)-> BB09 ( cond ) i
BB08 [0019] 1 BB07 0.50 [020..021)-> BB10 (always) i
BB09 [0020] 1 BB07 0.50 [020..021) i label target
BB10 [0021] 2 BB08,BB09 1 [020..021) i label target
BB11 [0022] 1 BB10 1 [???..???) internal newobj
BB12 [0023] 1 BB11 1 [020..021)-> BB14 ( cond ) i
BB13 [0024] 1 BB12 0.50 [020..021)-> BB15 (always) i
BB14 [0025] 1 BB12 0.50 [020..021) i label target
BB15 [0026] 2 BB13,BB14 1 [020..021) i label target
BB16 [0027] 1 BB15 1 [???..???) i internal newobj
BB17 [0038] 1 BB16 1 [032..033)-> BB19 ( cond ) i
BB18 [0039] 1 BB17 0.50 [032..033)-> BB20 (always) i
BB19 [0040] 1 BB17 0.50 [032..033) i label target
BB20 [0041] 2 BB18,BB19 1 [032..033) i label target
BB21 [0042] 1 BB20 1 [???..???) internal newobj
BB22 [0043] 1 BB21 1 [032..033)-> BB24 ( cond ) i
BB23 [0044] 1 BB22 0.50 [032..033)-> BB25 (always) i
BB24 [0045] 1 BB22 0.50 [032..033) i label target
BB25 [0046] 2 BB23,BB24 1 [032..033) i label target
BB26 [0047] 1 BB25 1 [???..???) internal newobj
BB27 [0048] 1 BB26 1 [032..033)-> BB29 ( cond ) i
BB28 [0049] 1 BB27 0.50 [032..033)-> BB30 (always) i
BB29 [0050] 1 BB27 0.50 [032..033) i label target
BB30 [0051] 2 BB28,BB29 1 [032..033) i label target
BB31 [0052] 1 BB30 1 [???..???) (return) internal newobj
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In fgComputeBlockAndEdgeWeights()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..040) i label target gcsafe newobj
BB02 [0013] 1 BB01 1 [020..021)-> BB04 ( cond ) i
BB03 [0014] 1 BB02 0.50 [020..021)-> BB05 (always) i
BB04 [0015] 1 BB02 0.50 [020..021) i label target
BB05 [0016] 2 BB03,BB04 1 [020..021) i label target
BB06 [0017] 1 BB05 1 [???..???) internal newobj
BB07 [0018] 1 BB06 1 [020..021)-> BB09 ( cond ) i
BB08 [0019] 1 BB07 0.50 [020..021)-> BB10 (always) i
BB09 [0020] 1 BB07 0.50 [020..021) i label target
BB10 [0021] 2 BB08,BB09 1 [020..021) i label target
BB11 [0022] 1 BB10 1 [???..???) internal newobj
BB12 [0023] 1 BB11 1 [020..021)-> BB14 ( cond ) i
BB13 [0024] 1 BB12 0.50 [020..021)-> BB15 (always) i
BB14 [0025] 1 BB12 0.50 [020..021) i label target
BB15 [0026] 2 BB13,BB14 1 [020..021) i label target
BB16 [0027] 1 BB15 1 [???..???) i internal newobj
BB17 [0038] 1 BB16 1 [032..033)-> BB19 ( cond ) i
BB18 [0039] 1 BB17 0.50 [032..033)-> BB20 (always) i
BB19 [0040] 1 BB17 0.50 [032..033) i label target
BB20 [0041] 2 BB18,BB19 1 [032..033) i label target
BB21 [0042] 1 BB20 1 [???..???) internal newobj
BB22 [0043] 1 BB21 1 [032..033)-> BB24 ( cond ) i
BB23 [0044] 1 BB22 0.50 [032..033)-> BB25 (always) i
BB24 [0045] 1 BB22 0.50 [032..033) i label target
BB25 [0046] 2 BB23,BB24 1 [032..033) i label target
BB26 [0047] 1 BB25 1 [???..???) internal newobj
BB27 [0048] 1 BB26 1 [032..033)-> BB29 ( cond ) i
BB28 [0049] 1 BB27 0.50 [032..033)-> BB30 (always) i
BB29 [0050] 1 BB27 0.50 [032..033) i label target
BB30 [0051] 2 BB28,BB29 1 [032..033) i label target
BB31 [0052] 1 BB30 1 [???..???) (return) internal newobj
-----------------------------------------------------------------------------------------------------------------------------------------
-- no profile data, so using default called count
fgComputeEdgeWeights() was able to compute exact edge weights for all of the 36 edges, using 1 passes.
Edge weights into BB02 :BB01 (100)
Edge weights into BB03 :BB02 (50)
Edge weights into BB04 :BB02 (50)
Edge weights into BB05 :BB03 (50), BB04 (50)
Edge weights into BB06 :BB05 (100)
Edge weights into BB07 :BB06 (100)
Edge weights into BB08 :BB07 (50)
Edge weights into BB09 :BB07 (50)
Edge weights into BB10 :BB08 (50), BB09 (50)
Edge weights into BB11 :BB10 (100)
Edge weights into BB12 :BB11 (100)
Edge weights into BB13 :BB12 (50)
Edge weights into BB14 :BB12 (50)
Edge weights into BB15 :BB13 (50), BB14 (50)
Edge weights into BB16 :BB15 (100)
Edge weights into BB17 :BB16 (100)
Edge weights into BB18 :BB17 (50)
Edge weights into BB19 :BB17 (50)
Edge weights into BB20 :BB18 (50), BB19 (50)
Edge weights into BB21 :BB20 (100)
Edge weights into BB22 :BB21 (100)
Edge weights into BB23 :BB22 (50)
Edge weights into BB24 :BB22 (50)
Edge weights into BB25 :BB23 (50), BB24 (50)
Edge weights into BB26 :BB25 (100)
Edge weights into BB27 :BB26 (100)
Edge weights into BB28 :BB27 (50)
Edge weights into BB29 :BB27 (50)
Edge weights into BB30 :BB28 (50), BB29 (50)
Edge weights into BB31 :BB30 (100)
*************** In fgCreateFunclets()
After fgCreateFunclets()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..040) i label target gcsafe newobj
BB02 [0013] 1 BB01 1 [020..021)-> BB04 ( cond ) i
BB03 [0014] 1 BB02 0.50 [020..021)-> BB05 (always) i
BB04 [0015] 1 BB02 0.50 [020..021) i label target
BB05 [0016] 2 BB03,BB04 1 [020..021) i label target
BB06 [0017] 1 BB05 1 [???..???) internal newobj
BB07 [0018] 1 BB06 1 [020..021)-> BB09 ( cond ) i
BB08 [0019] 1 BB07 0.50 [020..021)-> BB10 (always) i
BB09 [0020] 1 BB07 0.50 [020..021) i label target
BB10 [0021] 2 BB08,BB09 1 [020..021) i label target
BB11 [0022] 1 BB10 1 [???..???) internal newobj
BB12 [0023] 1 BB11 1 [020..021)-> BB14 ( cond ) i
BB13 [0024] 1 BB12 0.50 [020..021)-> BB15 (always) i
BB14 [0025] 1 BB12 0.50 [020..021) i label target
BB15 [0026] 2 BB13,BB14 1 [020..021) i label target
BB16 [0027] 1 BB15 1 [???..???) i internal newobj
BB17 [0038] 1 BB16 1 [032..033)-> BB19 ( cond ) i
BB18 [0039] 1 BB17 0.50 [032..033)-> BB20 (always) i
BB19 [0040] 1 BB17 0.50 [032..033) i label target
BB20 [0041] 2 BB18,BB19 1 [032..033) i label target
BB21 [0042] 1 BB20 1 [???..???) internal newobj
BB22 [0043] 1 BB21 1 [032..033)-> BB24 ( cond ) i
BB23 [0044] 1 BB22 0.50 [032..033)-> BB25 (always) i
BB24 [0045] 1 BB22 0.50 [032..033) i label target
BB25 [0046] 2 BB23,BB24 1 [032..033) i label target
BB26 [0047] 1 BB25 1 [???..???) internal newobj
BB27 [0048] 1 BB26 1 [032..033)-> BB29 ( cond ) i
BB28 [0049] 1 BB27 0.50 [032..033)-> BB30 (always) i
BB29 [0050] 1 BB27 0.50 [032..033) i label target
BB30 [0051] 2 BB28,BB29 1 [032..033) i label target
BB31 [0052] 1 BB30 1 [???..???) (return) internal 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..040) i label target gcsafe newobj
BB02 [0013] 1 BB01 1 [020..021)-> BB04 ( cond ) i
BB03 [0014] 1 BB02 0.50 [020..021)-> BB05 (always) i
BB04 [0015] 1 BB02 0.50 [020..021) i label target
BB05 [0016] 2 BB03,BB04 1 [020..021) i label target
BB06 [0017] 1 BB05 1 [???..???) internal newobj
BB07 [0018] 1 BB06 1 [020..021)-> BB09 ( cond ) i
BB08 [0019] 1 BB07 0.50 [020..021)-> BB10 (always) i
BB09 [0020] 1 BB07 0.50 [020..021) i label target
BB10 [0021] 2 BB08,BB09 1 [020..021) i label target
BB11 [0022] 1 BB10 1 [???..???) internal newobj
BB12 [0023] 1 BB11 1 [020..021)-> BB14 ( cond ) i
BB13 [0024] 1 BB12 0.50 [020..021)-> BB15 (always) i
BB14 [0025] 1 BB12 0.50 [020..021) i label target
BB15 [0026] 2 BB13,BB14 1 [020..021) i label target
BB16 [0027] 1 BB15 1 [???..???) i internal newobj
BB17 [0038] 1 BB16 1 [032..033)-> BB19 ( cond ) i
BB18 [0039] 1 BB17 0.50 [032..033)-> BB20 (always) i
BB19 [0040] 1 BB17 0.50 [032..033) i label target
BB20 [0041] 2 BB18,BB19 1 [032..033) i label target
BB21 [0042] 1 BB20 1 [???..???) internal newobj
BB22 [0043] 1 BB21 1 [032..033)-> BB24 ( cond ) i
BB23 [0044] 1 BB22 0.50 [032..033)-> BB25 (always) i
BB24 [0045] 1 BB22 0.50 [032..033) i label target
BB25 [0046] 2 BB23,BB24 1 [032..033) i label target
BB26 [0047] 1 BB25 1 [???..???) internal newobj
BB27 [0048] 1 BB26 1 [032..033)-> BB29 ( cond ) i
BB28 [0049] 1 BB27 0.50 [032..033)-> BB30 (always) i
BB29 [0050] 1 BB27 0.50 [032..033) i label target
BB30 [0051] 2 BB28,BB29 1 [032..033) i label target
BB31 [0052] 1 BB30 1 [???..???) (return) internal newobj
-----------------------------------------------------------------------------------------------------------------------------------------
Compacting blocks BB01 and BB02:
*************** In fgDebugCheckBBlist
Compacting blocks BB05 and BB06:
*************** In fgDebugCheckBBlist
Compacting blocks BB05 and BB07:
*************** In fgDebugCheckBBlist
Compacting blocks BB10 and BB11:
*************** In fgDebugCheckBBlist
Compacting blocks BB10 and BB12:
*************** In fgDebugCheckBBlist
Compacting blocks BB15 and BB16:
*************** In fgDebugCheckBBlist
Compacting blocks BB15 and BB17:
*************** In fgDebugCheckBBlist
Compacting blocks BB20 and BB21:
*************** In fgDebugCheckBBlist
Compacting blocks BB20 and BB22:
*************** In fgDebugCheckBBlist
Compacting blocks BB25 and BB26:
*************** In fgDebugCheckBBlist
Compacting blocks BB25 and BB27:
*************** In fgDebugCheckBBlist
Compacting blocks BB30 and BB31:
*************** In fgDebugCheckBBlist
After updating the flow graph:
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..040)-> BB04 ( cond ) i label target gcsafe newobj
BB03 [0014] 1 BB01 0.50 [020..021)-> BB05 (always) i
BB04 [0015] 1 BB01 0.50 [020..021) i label target
BB05 [0016] 2 BB03,BB04 1 [020..021)-> BB09 ( cond ) i label target newobj
BB08 [0019] 1 BB05 0.50 [020..021)-> BB10 (always) i
BB09 [0020] 1 BB05 0.50 [020..021) i label target
BB10 [0021] 2 BB08,BB09 1 [020..021)-> BB14 ( cond ) i label target newobj
BB13 [0024] 1 BB10 0.50 [020..021)-> BB15 (always) i
BB14 [0025] 1 BB10 0.50 [020..021) i label target
BB15 [0026] 2 BB13,BB14 1 [020..033)-> BB19 ( cond ) i label target newobj
BB18 [0039] 1 BB15 0.50 [032..033)-> BB20 (always) i
BB19 [0040] 1 BB15 0.50 [032..033) i label target
BB20 [0041] 2 BB18,BB19 1 [032..033)-> BB24 ( cond ) i label target newobj
BB23 [0044] 1 BB20 0.50 [032..033)-> BB25 (always) i
BB24 [0045] 1 BB20 0.50 [032..033) i label target
BB25 [0046] 2 BB23,BB24 1 [032..033)-> BB29 ( cond ) i label target newobj
BB28 [0049] 1 BB25 0.50 [032..033)-> BB30 (always) i
BB29 [0050] 1 BB25 0.50 [032..033) i label target
BB30 [0051] 2 BB28,BB29 1 [032..033) (return) i label target newobj
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
*************** In fgDebugCheckBBlist
*************** In fgExpandRarelyRunBlocks()
*************** In fgReorderBlocks()
Initial BasicBlocks
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..040)-> BB04 ( cond ) i label target gcsafe newobj
BB03 [0014] 1 BB01 0.50 [020..021)-> BB05 (always) i
BB04 [0015] 1 BB01 0.50 [020..021) i label target
BB05 [0016] 2 BB03,BB04 1 [020..021)-> BB09 ( cond ) i label target newobj
BB08 [0019] 1 BB05 0.50 [020..021)-> BB10 (always) i
BB09 [0020] 1 BB05 0.50 [020..021) i label target
BB10 [0021] 2 BB08,BB09 1 [020..021)-> BB14 ( cond ) i label target newobj
BB13 [0024] 1 BB10 0.50 [020..021)-> BB15 (always) i
BB14 [0025] 1 BB10 0.50 [020..021) i label target
BB15 [0026] 2 BB13,BB14 1 [020..033)-> BB19 ( cond ) i label target newobj
BB18 [0039] 1 BB15 0.50 [032..033)-> BB20 (always) i
BB19 [0040] 1 BB15 0.50 [032..033) i label target
BB20 [0041] 2 BB18,BB19 1 [032..033)-> BB24 ( cond ) i label target newobj
BB23 [0044] 1 BB20 0.50 [032..033)-> BB25 (always) i
BB24 [0045] 1 BB20 0.50 [032..033) i label target
BB25 [0046] 2 BB23,BB24 1 [032..033)-> BB29 ( cond ) i label target newobj
BB28 [0049] 1 BB25 0.50 [032..033)-> BB30 (always) i
BB29 [0050] 1 BB25 0.50 [032..033) i label target
BB30 [0051] 2 BB28,BB29 1 [032..033) (return) i label target newobj
-----------------------------------------------------------------------------------------------------------------------------------------
*************** 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..040)-> BB04 ( cond ) i label target gcsafe newobj
BB03 [0014] 1 BB01 0.50 [020..021)-> BB05 (always) i
BB04 [0015] 1 BB01 0.50 [020..021) i label target
BB05 [0016] 2 BB03,BB04 1 [020..021)-> BB09 ( cond ) i label target newobj
BB08 [0019] 1 BB05 0.50 [020..021)-> BB10 (always) i
BB09 [0020] 1 BB05 0.50 [020..021) i label target
BB10 [0021] 2 BB08,BB09 1 [020..021)-> BB14 ( cond ) i label target newobj
BB13 [0024] 1 BB10 0.50 [020..021)-> BB15 (always) i
BB14 [0025] 1 BB10 0.50 [020..021) i label target
BB15 [0026] 2 BB13,BB14 1 [020..033)-> BB19 ( cond ) i label target newobj
BB18 [0039] 1 BB15 0.50 [032..033)-> BB20 (always) i
BB19 [0040] 1 BB15 0.50 [032..033) i label target
BB20 [0041] 2 BB18,BB19 1 [032..033)-> BB24 ( cond ) i label target newobj
BB23 [0044] 1 BB20 0.50 [032..033)-> BB25 (always) i
BB24 [0045] 1 BB20 0.50 [032..033) i label target
BB25 [0046] 2 BB23,BB24 1 [032..033)-> BB29 ( cond ) i label target newobj
BB28 [0049] 1 BB25 0.50 [032..033)-> BB30 (always) i
BB29 [0050] 1 BB25 0.50 [032..033) i label target
BB30 [0051] 2 BB28,BB29 1 [032..033) (return) i label target 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..040)-> BB04 ( cond ) i label target gcsafe newobj
BB03 [0014] 1 BB01 0.50 [020..021)-> BB05 (always) i
BB04 [0015] 1 BB01 0.50 [020..021) i label target
BB05 [0016] 2 BB03,BB04 1 [020..021)-> BB09 ( cond ) i label target newobj
BB08 [0019] 1 BB05 0.50 [020..021)-> BB10 (always) i
BB09 [0020] 1 BB05 0.50 [020..021) i label target
BB10 [0021] 2 BB08,BB09 1 [020..021)-> BB14 ( cond ) i label target newobj
BB13 [0024] 1 BB10 0.50 [020..021)-> BB15 (always) i
BB14 [0025] 1 BB10 0.50 [020..021) i label target
BB15 [0026] 2 BB13,BB14 1 [020..033)-> BB19 ( cond ) i label target newobj
BB18 [0039] 1 BB15 0.50 [032..033)-> BB20 (always) i
BB19 [0040] 1 BB15 0.50 [032..033) i label target
BB20 [0041] 2 BB18,BB19 1 [032..033)-> BB24 ( cond ) i label target newobj
BB23 [0044] 1 BB20 0.50 [032..033)-> BB25 (always) i
BB24 [0045] 1 BB20 0.50 [032..033) i label target
BB25 [0046] 2 BB23,BB24 1 [032..033)-> BB29 ( cond ) i label target newobj
BB28 [0049] 1 BB25 0.50 [032..033)-> BB30 (always) i
BB29 [0050] 1 BB25 0.50 [032..033) i label target
BB30 [0051] 2 BB28,BB29 1 [032..033) (return) i label target newobj
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
Renumber BB03 to BB02
Renumber BB04 to BB03
Renumber BB05 to BB04
Renumber BB08 to BB05
Renumber BB09 to BB06
Renumber BB10 to BB07
Renumber BB13 to BB08
Renumber BB14 to BB09
Renumber BB15 to BB10
Renumber BB18 to BB11
Renumber BB19 to BB12
Renumber BB20 to BB13
Renumber BB23 to BB14
Renumber BB24 to BB15
Renumber BB25 to BB16
Renumber BB28 to BB17
Renumber BB29 to BB18
Renumber BB30 to BB19
*************** After renumbering the basic blocks
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..040)-> BB03 ( cond ) i label target gcsafe newobj
BB02 [0014] 1 BB01 0.50 [020..021)-> BB04 (always) i
BB03 [0015] 1 BB01 0.50 [020..021) i label target
BB04 [0016] 2 BB02,BB03 1 [020..021)-> BB06 ( cond ) i label target newobj
BB05 [0019] 1 BB04 0.50 [020..021)-> BB07 (always) i
BB06 [0020] 1 BB04 0.50 [020..021) i label target
BB07 [0021] 2 BB05,BB06 1 [020..021)-> BB09 ( cond ) i label target newobj
BB08 [0024] 1 BB07 0.50 [020..021)-> BB10 (always) i
BB09 [0025] 1 BB07 0.50 [020..021) i label target
BB10 [0026] 2 BB08,BB09 1 [020..033)-> BB12 ( cond ) i label target newobj
BB11 [0039] 1 BB10 0.50 [032..033)-> BB13 (always) i
BB12 [0040] 1 BB10 0.50 [032..033) i label target
BB13 [0041] 2 BB11,BB12 1 [032..033)-> BB15 ( cond ) i label target newobj
BB14 [0044] 1 BB13 0.50 [032..033)-> BB16 (always) i
BB15 [0045] 1 BB13 0.50 [032..033) i label target
BB16 [0046] 2 BB14,BB15 1 [032..033)-> BB18 ( cond ) i label target newobj
BB17 [0049] 1 BB16 0.50 [032..033)-> BB19 (always) i
BB18 [0050] 1 BB16 0.50 [032..033) i label target
BB19 [0051] 2 BB17,BB18 1 [032..033) (return) i label target newobj
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
New BlockSet epoch 3, # of blocks (including unused BB00): 20, bitset array size: 1 (short)
Enter blocks: BB01
After computing reachability sets:
------------------------------------------------
BBnum Reachable by
------------------------------------------------
BB01 : BB01
BB02 : BB01 BB02
BB03 : BB01 BB03
BB04 : BB01 BB02 BB03 BB04
BB05 : BB01 BB02 BB03 BB04 BB05
BB06 : BB01 BB02 BB03 BB04 BB06
BB07 : BB01 BB02 BB03 BB04 BB05 BB06 BB07
BB08 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08
BB09 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB09
BB10 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB09 BB10
BB11 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB09 BB10 BB11
BB12 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB09 BB10 BB12
BB13 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB09 BB10 BB11 BB12 BB13
BB14 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB09 BB10 BB11 BB12 BB13 BB14
BB15 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB09 BB10 BB11 BB12 BB13 BB15
BB16 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB09 BB10 BB11 BB12 BB13 BB14 BB15 BB16
BB17 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB09 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17
BB18 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB09 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB18
BB19 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB09 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17 BB18 BB19
After computing reachability:
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..040)-> BB03 ( cond ) i label target gcsafe newobj
BB02 [0014] 1 BB01 0.50 [020..021)-> BB04 (always) i gcsafe
BB03 [0015] 1 BB01 0.50 [020..021) i label target gcsafe
BB04 [0016] 2 BB02,BB03 1 [020..021)-> BB06 ( cond ) i label target gcsafe newobj
BB05 [0019] 1 BB04 0.50 [020..021)-> BB07 (always) i gcsafe
BB06 [0020] 1 BB04 0.50 [020..021) i label target gcsafe
BB07 [0021] 2 BB05,BB06 1 [020..021)-> BB09 ( cond ) i label target gcsafe newobj
BB08 [0024] 1 BB07 0.50 [020..021)-> BB10 (always) i gcsafe
BB09 [0025] 1 BB07 0.50 [020..021) i label target gcsafe
BB10 [0026] 2 BB08,BB09 1 [020..033)-> BB12 ( cond ) i label target gcsafe newobj
BB11 [0039] 1 BB10 0.50 [032..033)-> BB13 (always) i gcsafe
BB12 [0040] 1 BB10 0.50 [032..033) i label target gcsafe
BB13 [0041] 2 BB11,BB12 1 [032..033)-> BB15 ( cond ) i label target gcsafe newobj
BB14 [0044] 1 BB13 0.50 [032..033)-> BB16 (always) i gcsafe
BB15 [0045] 1 BB13 0.50 [032..033) i label target gcsafe
BB16 [0046] 2 BB14,BB15 1 [032..033)-> BB18 ( cond ) i label target gcsafe newobj
BB17 [0049] 1 BB16 0.50 [032..033)-> BB19 (always) i gcsafe
BB18 [0050] 1 BB16 0.50 [032..033) i label target gcsafe
BB19 [0051] 2 BB17,BB18 1 [032..033) (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
BB02: BB02 BB01
BB03: BB03 BB01
BB04: BB04 BB01
BB05: BB05 BB04 BB01
BB06: BB06 BB04 BB01
BB07: BB07 BB04 BB01
BB08: BB08 BB07 BB04 BB01
BB09: BB09 BB07 BB04 BB01
BB10: BB10 BB07 BB04 BB01
BB11: BB11 BB10 BB07 BB04 BB01
BB12: BB12 BB10 BB07 BB04 BB01
BB13: BB13 BB10 BB07 BB04 BB01
BB14: BB14 BB13 BB10 BB07 BB04 BB01
BB15: BB15 BB13 BB10 BB07 BB04 BB01
BB16: BB16 BB13 BB10 BB07 BB04 BB01
BB17: BB17 BB16 BB13 BB10 BB07 BB04 BB01
BB18: BB18 BB16 BB13 BB10 BB07 BB04 BB01
BB19: BB19 BB16 BB13 BB10 BB07 BB04 BB01
Inside fgBuildDomTree
After computing the Dominance Tree:
BB01 : BB04 BB03 BB02
BB04 : BB07 BB06 BB05
BB07 : BB10 BB09 BB08
BB10 : BB13 BB12 BB11
BB13 : BB16 BB15 BB14
BB16 : BB19 BB18 BB17
*************** In optOptimizeLoops()
After optSetBlockWeights:
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..040)-> BB03 ( cond ) i label target gcsafe newobj
BB02 [0014] 1 BB01 0.25 [020..021)-> BB04 (always) i gcsafe
BB03 [0015] 1 BB01 0.25 [020..021) i label target gcsafe
BB04 [0016] 2 BB02,BB03 1 [020..021)-> BB06 ( cond ) i label target gcsafe newobj
BB05 [0019] 1 BB04 0.25 [020..021)-> BB07 (always) i gcsafe
BB06 [0020] 1 BB04 0.25 [020..021) i label target gcsafe
BB07 [0021] 2 BB05,BB06 1 [020..021)-> BB09 ( cond ) i label target gcsafe newobj
BB08 [0024] 1 BB07 0.25 [020..021)-> BB10 (always) i gcsafe
BB09 [0025] 1 BB07 0.25 [020..021) i label target gcsafe
BB10 [0026] 2 BB08,BB09 1 [020..033)-> BB12 ( cond ) i label target gcsafe newobj
BB11 [0039] 1 BB10 0.25 [032..033)-> BB13 (always) i gcsafe
BB12 [0040] 1 BB10 0.25 [032..033) i label target gcsafe
BB13 [0041] 2 BB11,BB12 1 [032..033)-> BB15 ( cond ) i label target gcsafe newobj
BB14 [0044] 1 BB13 0.25 [032..033)-> BB16 (always) i gcsafe
BB15 [0045] 1 BB13 0.25 [032..033) i label target gcsafe
BB16 [0046] 2 BB14,BB15 1 [032..033)-> BB18 ( cond ) i label target gcsafe newobj
BB17 [0049] 1 BB16 0.25 [032..033)-> BB19 (always) i gcsafe
BB18 [0050] 1 BB16 0.25 [032..033) i label target gcsafe
BB19 [0051] 2 BB17,BB18 1 [032..033) (return) i label target gcsafe newobj
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In optCloneLoops()
*************** In lvaMarkLocalVars()
*** lvaComputeRefCounts ***
*** lvaComputeRefCounts -- explicit counts ***
*** marking local variables in block BB01 (weight=1 )
[000003] -A---+------ * ASG byte
[000629] n------N---- +--* IND byte
[000628] ------------ | \--* ADDR byref
[000000] D----+-N---- | \--* LCL_VAR struct V06 loc0
[000002] -----+------ \--* CNS_INT int 0
New refCnts for V06: refCnt = 1, refCntWtd = 1
[000008] -AC--+------ * ASG ref
[000007] D----+-N---- +--* LCL_VAR ref V08 tmp1
[000006] --C--+------ \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
[000005] -----+------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e class
New refCnts for V08: refCnt = 1, refCntWtd = 2
[000013] -A-XG+------ * ASG byte
[000012] *--XG+-N---- +--* IND byte
[000011] -----+------ | \--* ADD byref
[000009] -----+------ | +--* LCL_VAR ref V08 tmp1
[000010] -----+------ | \--* CNS_INT long 8
[000632] n----------- \--* IND byte
[000631] ------------ \--* ADDR byref
[000004] -----+------ \--* LCL_VAR struct V06 loc0
New refCnts for V08: refCnt = 2, refCntWtd = 4
New refCnts for V06: refCnt = 2, refCntWtd = 2
[000635] -A---+------ * ASG long
[000633] D------N---- +--* LCL_VAR long V58 tmp51
[000634] -------N---- \--* LCL_VAR long V57 tmp50
New refCnts for V58: refCnt = 1, refCntWtd = 1
New refCnts for V57: refCnt = 1, refCntWtd = 1
[000060] --CXG+------ * CALL nullcheck void BlenderStruct`2.Blend
( 4, 4) [000638] ------------ arg4 out+20 +--* CAST int <- ubyte <- int
( 3, 2) [000019] ------------ | \--* LCL_VAR int V03 arg3
( 4, 4) [000639] ------------ arg5 out+28 +--* CAST int <- ubyte <- int
( 3, 2) [000020] ------------ | \--* LCL_VAR int V04 arg4
( 9, 6) [000015] ------------ this in rcx +--* BOX ref
( 3, 2) [000014] ------------ | \--* LCL_VAR ref V08 tmp1
( 4, 4) [000636] ------------ arg2 in r8 +--* CAST int <- ubyte <- int
( 3, 2) [000017] ------------ | \--* LCL_VAR int V01 arg1
( 4, 4) [000637] ------------ arg3 in r9 +--* CAST int <- ubyte <- int
( 3, 2) [000018] ------------ | \--* LCL_VAR int V02 arg2
[000059] -----+------ arg1 in rdx \--* LCL_VAR long V58 tmp51
New refCnts for V03: refCnt = 1, refCntWtd = 1
New refCnts for V04: refCnt = 1, refCntWtd = 1
New refCnts for V08: refCnt = 3, refCntWtd = 6
New refCnts for V01: refCnt = 1, refCntWtd = 1
New refCnts for V02: refCnt = 1, refCntWtd = 1
New refCnts for V58: refCnt = 2, refCntWtd = 2
[000028] -AC--+------ * ASG ref
[000027] D----+-N---- +--* LCL_VAR ref V09 tmp2
[000026] --C--+------ \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
[000025] -----+------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e token
New refCnts for V09: refCnt = 1, refCntWtd = 2
[000647] -A---+------ * ASG long
[000645] D------N---- +--* LCL_VAR long V59 tmp52
[000646] -------N---- \--* LCL_VAR long V57 tmp50
New refCnts for V59: refCnt = 1, refCntWtd = 1
New refCnts for V57: refCnt = 2, refCntWtd = 2
[000650] -A---+------ * ASG long
[000648] D------N---- +--* LCL_VAR long V60 tmp53
[000649] -------N---- \--* LCL_VAR long V59 tmp52
New refCnts for V60: refCnt = 1, refCntWtd = 1
New refCnts for V59: refCnt = 2, refCntWtd = 2
[000147] ---X-+------ * IND int
[000031] -----+------ \--* LCL_VAR ref V09 tmp2
New refCnts for V09: refCnt = 2, refCntWtd = 4
[000153] -A---+------ * ASG byref
[000152] D----+-N---- +--* LCL_VAR byref V17 tmp10
[000151] -----+------ \--* CNS_INT byref 0
New refCnts for V17: refCnt = 1, refCntWtd = 1
[000156] -A---+------ * ASG byref
[000155] D----+-N---- +--* LCL_VAR byref V18 tmp11
[000154] -----+------ \--* CNS_INT byref 0
New refCnts for V18: refCnt = 1, refCntWtd = 1
[000159] -A---+------ * ASG byref
[000158] D----+-N---- +--* LCL_VAR byref V19 tmp12
[000157] -----+------ \--* CNS_INT byref 0
New refCnts for V19: refCnt = 1, refCntWtd = 1
[000083] -A---+------ * ASG byte
[000652] n------N---- +--* IND byte
[000651] ------------ | \--* ADDR byref
[000080] D----+-N---- | \--* LCL_VAR struct V14 tmp7
[000082] -----+------ \--* CNS_INT int 0
New refCnts for V14: refCnt = 1, refCntWtd = 1
[000087] -A---+------ * ASG int
[000654] n------N---- +--* IND int
[000653] ------------ | \--* ADDR byref
[000084] D----+-N---- | \--* LCL_VAR struct V15 tmp8
[000086] -----+------ \--* CNS_INT int 0
New refCnts for V15: refCnt = 1, refCntWtd = 1
[000097] -A---+------ * ASG byref
[000096] D----+-N---- +--* LCL_VAR byref V17 tmp10
[000180] -----+------ \--* ADD long
[000174] -----+------ +--* LCL_VAR long V57 tmp50
[000179] -----+------ \--* CNS_INT long 2
New refCnts for V17: refCnt = 2, refCntWtd = 2
New refCnts for V57: refCnt = 3, refCntWtd = 3
[000107] -A---+------ * ASG byref
[000106] D----+-N---- +--* LCL_VAR byref V18 tmp11
[000192] -----+------ \--* ADD long
[000186] -----+------ +--* LCL_VAR long V57 tmp50
[000191] -----+------ \--* CNS_INT long 1
New refCnts for V18: refCnt = 2, refCntWtd = 2
New refCnts for V57: refCnt = 4, refCntWtd = 4
[000117] -A---+------ * ASG byref
[000116] D----+-N---- +--* LCL_VAR byref V19 tmp12
[000198] -----+------ \--* LCL_VAR long V57 tmp50
New refCnts for V19: refCnt = 2, refCntWtd = 2
New refCnts for V57: refCnt = 5, refCntWtd = 5
[000250] -A-XG+------ * ASG ubyte
[000249] D----+-N---- +--* LCL_VAR int V20 tmp13
[000122] *--XG+------ \--* IND ubyte
[000121] -----+------ \--* LCL_VAR byref V17 tmp10
New refCnts for V20: refCnt = 1, refCntWtd = 2
New refCnts for V17: refCnt = 3, refCntWtd = 3
[000253] -A---+------ * ASG int
[000252] D----+-N---- +--* LCL_VAR int V24 tmp17
[000251] -----+------ \--* CNS_INT int 0
New refCnts for V24: refCnt = 1, refCntWtd = 1
[000216] -A---+------ * ASG int
[000215] D----+-N---- +--* LCL_VAR int V21 tmp14
[000210] -----+------ \--* ADD int
[000208] -----+------ +--* MUL int
[000207] -----+------ | +--* SUB int
[000655] -----+------ | | +--* CAST int <- ubyte <- int
[000033] -----+------ | | | \--* LCL_VAR int V01 arg1
[000206] -----+------ | | \--* LCL_VAR int V20 tmp13
[000656] -----+------ | \--* CAST int <- ubyte <- int
[000036] -----+------ | \--* LCL_VAR int V04 arg4
[000209] -----+------ \--* CNS_INT int 128
New refCnts for V21: refCnt = 1, refCntWtd = 1
New refCnts for V01: refCnt = 2, refCntWtd = 2
New refCnts for V20: refCnt = 2, refCntWtd = 4
New refCnts for V04: refCnt = 2, refCntWtd = 2
[000214] -----+------ * JTRUE void
[000213] J----+-N---- \--* GT int
[000211] -----+------ +--* LCL_VAR int V20 tmp13
[000657] -----+------ \--* CAST int <- ubyte <- int
[000212] -----+------ \--* LCL_VAR int V01 arg1
New refCnts for V20: refCnt = 3, refCntWtd = 6
New refCnts for V01: refCnt = 3, refCntWtd = 3
*** marking local variables in block BB02 (weight=0.25)
[000244] -A---+------ * ASG int
[000243] D----+-N---- +--* LCL_VAR int V22 tmp15
[000218] -----+------ \--* LCL_VAR int V21 tmp14
New refCnts for V22: refCnt = 1, refCntWtd = 0.25
New refCnts for V21: refCnt = 2, refCntWtd = 1.25
[000247] -A---+------ * ASG int
[000246] D----+-N---- +--* LCL_VAR int V23 tmp16
[000242] -----+------ \--* CNS_INT int 0
New refCnts for V23: refCnt = 1, refCntWtd = 0.25
*** marking local variables in block BB03 (weight=0.25)
[000222] -A---+------ * ASG int
[000221] D----+-N---- +--* LCL_VAR int V22 tmp15
[000219] -----+------ \--* LCL_VAR int V21 tmp14
New refCnts for V22: refCnt = 2, refCntWtd = 0.50
New refCnts for V21: refCnt = 3, refCntWtd = 1.50
[000225] -A---+------ * ASG int
[000224] D----+-N---- +--* LCL_VAR int V23 tmp16
[000220] -----+------ \--* CNS_INT int 1
New refCnts for V23: refCnt = 2, refCntWtd = 0.50
*** marking local variables in block BB04 (weight=1 )
[000231] -A---+------ * ASG int
[000230] D----+-N---- +--* LCL_VAR int V24 tmp17
[000229] -----+------ \--* SUB int
[000227] -----+------ +--* LCL_VAR int V22 tmp15
[000228] -----+------ \--* LCL_VAR int V23 tmp16
New refCnts for V24: refCnt = 2, refCntWtd = 2
New refCnts for V22: refCnt = 3, refCntWtd = 1.50
New refCnts for V23: refCnt = 3, refCntWtd = 1.50
[000126] -A-XG+------ * ASG ubyte
[000125] *--X-+-N---- +--* IND ubyte
[000118] -----+------ | \--* LCL_VAR byref V17 tmp10
[000240] -----+------ \--* ADD int
[000232] -----+------ +--* LCL_VAR int V20 tmp13
[000239] -----+------ \--* RSH int
[000237] -----+------ +--* ADD int
[000235] -----+------ | +--* RSH int
[000233] -----+------ | | +--* LCL_VAR int V24 tmp17
[000234] -----+------ | | \--* CNS_INT int 8
[000236] -----+------ | \--* LCL_VAR int V24 tmp17
[000238] -----+------ \--* CNS_INT int 8
New refCnts for V17: refCnt = 4, refCntWtd = 4
New refCnts for V20: refCnt = 4, refCntWtd = 8
New refCnts for V24: refCnt = 3, refCntWtd = 3
New refCnts for V24: refCnt = 4, refCntWtd = 4
[000299] -A-XG+------ * ASG ubyte
[000298] D----+-N---- +--* LCL_VAR int V25 tmp18
[000131] *--XG+------ \--* IND ubyte
[000130] -----+------ \--* LCL_VAR byref V18 tmp11
New refCnts for V25: refCnt = 1, refCntWtd = 2
New refCnts for V18: refCnt = 3, refCntWtd = 3
[000302] -A---+------ * ASG int
[000301] D----+-N---- +--* LCL_VAR int V29 tmp22
[000300] -----+------ \--* CNS_INT int 0
New refCnts for V29: refCnt = 1, refCntWtd = 1
[000265] -A---+------ * ASG int
[000264] D----+-N---- +--* LCL_VAR int V26 tmp19
[000259] -----+------ \--* ADD int
[000257] -----+------ +--* MUL int
[000256] -----+------ | +--* SUB int
[000658] -----+------ | | +--* CAST int <- ubyte <- int
[000034] -----+------ | | | \--* LCL_VAR int V02 arg2
[000255] -----+------ | | \--* LCL_VAR int V25 tmp18
[000659] -----+------ | \--* CAST int <- ubyte <- int
[000132] -----+------ | \--* LCL_VAR int V04 arg4
[000258] -----+------ \--* CNS_INT int 128
New refCnts for V26: refCnt = 1, refCntWtd = 1
New refCnts for V02: refCnt = 2, refCntWtd = 2
New refCnts for V25: refCnt = 2, refCntWtd = 4
New refCnts for V04: refCnt = 3, refCntWtd = 3
[000263] -----+------ * JTRUE void
[000262] J----+-N---- \--* GT int
[000260] -----+------ +--* LCL_VAR int V25 tmp18
[000660] -----+------ \--* CAST int <- ubyte <- int
[000261] -----+------ \--* LCL_VAR int V02 arg2
New refCnts for V25: refCnt = 3, refCntWtd = 6
New refCnts for V02: refCnt = 3, refCntWtd = 3
*** marking local variables in block BB05 (weight=0.25)
[000293] -A---+------ * ASG int
[000292] D----+-N---- +--* LCL_VAR int V27 tmp20
[000267] -----+------ \--* LCL_VAR int V26 tmp19
New refCnts for V27: refCnt = 1, refCntWtd = 0.25
New refCnts for V26: refCnt = 2, refCntWtd = 1.25
[000296] -A---+------ * ASG int
[000295] D----+-N---- +--* LCL_VAR int V28 tmp21
[000291] -----+------ \--* CNS_INT int 0
New refCnts for V28: refCnt = 1, refCntWtd = 0.25
*** marking local variables in block BB06 (weight=0.25)
[000271] -A---+------ * ASG int
[000270] D----+-N---- +--* LCL_VAR int V27 tmp20
[000268] -----+------ \--* LCL_VAR int V26 tmp19
New refCnts for V27: refCnt = 2, refCntWtd = 0.50
New refCnts for V26: refCnt = 3, refCntWtd = 1.50
[000274] -A---+------ * ASG int
[000273] D----+-N---- +--* LCL_VAR int V28 tmp21
[000269] -----+------ \--* CNS_INT int 1
New refCnts for V28: refCnt = 2, refCntWtd = 0.50
*** marking local variables in block BB07 (weight=1 )
[000280] -A---+------ * ASG int
[000279] D----+-N---- +--* LCL_VAR int V29 tmp22
[000278] -----+------ \--* SUB int
[000276] -----+------ +--* LCL_VAR int V27 tmp20
[000277] -----+------ \--* LCL_VAR int V28 tmp21
New refCnts for V29: refCnt = 2, refCntWtd = 2
New refCnts for V27: refCnt = 3, refCntWtd = 1.50
New refCnts for V28: refCnt = 3, refCntWtd = 1.50
[000136] -A-XG+------ * ASG ubyte
[000135] *--X-+-N---- +--* IND ubyte
[000127] -----+------ | \--* LCL_VAR byref V18 tmp11
[000289] -----+------ \--* ADD int
[000281] -----+------ +--* LCL_VAR int V25 tmp18
[000288] -----+------ \--* RSH int
[000286] -----+------ +--* ADD int
[000284] -----+------ | +--* RSH int
[000282] -----+------ | | +--* LCL_VAR int V29 tmp22
[000283] -----+------ | | \--* CNS_INT int 8
[000285] -----+------ | \--* LCL_VAR int V29 tmp22
[000287] -----+------ \--* CNS_INT int 8
New refCnts for V18: refCnt = 4, refCntWtd = 4
New refCnts for V25: refCnt = 4, refCntWtd = 8
New refCnts for V29: refCnt = 3, refCntWtd = 3
New refCnts for V29: refCnt = 4, refCntWtd = 4
[000348] -A-XG+------ * ASG ubyte
[000347] D----+-N---- +--* LCL_VAR int V30 tmp23
[000141] *--XG+------ \--* IND ubyte
[000140] -----+------ \--* LCL_VAR byref V19 tmp12
New refCnts for V30: refCnt = 1, refCntWtd = 2
New refCnts for V19: refCnt = 3, refCntWtd = 3
[000351] -A---+------ * ASG int
[000350] D----+-N---- +--* LCL_VAR int V34 tmp27
[000349] -----+------ \--* CNS_INT int 0
New refCnts for V34: refCnt = 1, refCntWtd = 1
[000314] -A---+------ * ASG int
[000313] D----+-N---- +--* LCL_VAR int V31 tmp24
[000308] -----+------ \--* ADD int
[000306] -----+------ +--* MUL int
[000305] -----+------ | +--* SUB int
[000661] -----+------ | | +--* CAST int <- ubyte <- int
[000035] -----+------ | | | \--* LCL_VAR int V03 arg3
[000304] -----+------ | | \--* LCL_VAR int V30 tmp23
[000662] -----+------ | \--* CAST int <- ubyte <- int
[000142] -----+------ | \--* LCL_VAR int V04 arg4
[000307] -----+------ \--* CNS_INT int 128
New refCnts for V31: refCnt = 1, refCntWtd = 1
New refCnts for V03: refCnt = 2, refCntWtd = 2
New refCnts for V30: refCnt = 2, refCntWtd = 4
New refCnts for V04: refCnt = 4, refCntWtd = 4
[000312] -----+------ * JTRUE void
[000311] J----+-N---- \--* GT int
[000309] -----+------ +--* LCL_VAR int V30 tmp23
[000663] -----+------ \--* CAST int <- ubyte <- int
[000310] -----+------ \--* LCL_VAR int V03 arg3
New refCnts for V30: refCnt = 3, refCntWtd = 6
New refCnts for V03: refCnt = 3, refCntWtd = 3
*** marking local variables in block BB08 (weight=0.25)
[000342] -A---+------ * ASG int
[000341] D----+-N---- +--* LCL_VAR int V32 tmp25
[000316] -----+------ \--* LCL_VAR int V31 tmp24
New refCnts for V32: refCnt = 1, refCntWtd = 0.25
New refCnts for V31: refCnt = 2, refCntWtd = 1.25
[000345] -A---+------ * ASG int
[000344] D----+-N---- +--* LCL_VAR int V33 tmp26
[000340] -----+------ \--* CNS_INT int 0
New refCnts for V33: refCnt = 1, refCntWtd = 0.25
*** marking local variables in block BB09 (weight=0.25)
[000320] -A---+------ * ASG int
[000319] D----+-N---- +--* LCL_VAR int V32 tmp25
[000317] -----+------ \--* LCL_VAR int V31 tmp24
New refCnts for V32: refCnt = 2, refCntWtd = 0.50
New refCnts for V31: refCnt = 3, refCntWtd = 1.50
[000323] -A---+------ * ASG int
[000322] D----+-N---- +--* LCL_VAR int V33 tmp26
[000318] -----+------ \--* CNS_INT int 1
New refCnts for V33: refCnt = 2, refCntWtd = 0.50
*** marking local variables in block BB10 (weight=1 )
[000329] -A---+------ * ASG int
[000328] D----+-N---- +--* LCL_VAR int V34 tmp27
[000327] -----+------ \--* SUB int
[000325] -----+------ +--* LCL_VAR int V32 tmp25
[000326] -----+------ \--* LCL_VAR int V33 tmp26
New refCnts for V34: refCnt = 2, refCntWtd = 2
New refCnts for V32: refCnt = 3, refCntWtd = 1.50
New refCnts for V33: refCnt = 3, refCntWtd = 1.50
[000146] -A-XG+------ * ASG ubyte
[000145] *--X-+-N---- +--* IND ubyte
[000137] -----+------ | \--* LCL_VAR byref V19 tmp12
[000338] -----+------ \--* ADD int
[000330] -----+------ +--* LCL_VAR int V30 tmp23
[000337] -----+------ \--* RSH int
[000335] -----+------ +--* ADD int
[000333] -----+------ | +--* RSH int
[000331] -----+------ | | +--* LCL_VAR int V34 tmp27
[000332] -----+------ | | \--* CNS_INT int 8
[000334] -----+------ | \--* LCL_VAR int V34 tmp27
[000336] -----+------ \--* CNS_INT int 8
New refCnts for V19: refCnt = 4, refCntWtd = 4
New refCnts for V30: refCnt = 4, refCntWtd = 8
New refCnts for V34: refCnt = 3, refCntWtd = 3
New refCnts for V34: refCnt = 4, refCntWtd = 4
[000162] -A---+------ * ASG byref
[000161] D----+-N---- +--* LCL_VAR byref V17 tmp10
[000160] -----+------ \--* CNS_INT byref 0
New refCnts for V17: refCnt = 5, refCntWtd = 5
[000165] -A---+------ * ASG byref
[000164] D----+-N---- +--* LCL_VAR byref V18 tmp11
[000163] -----+------ \--* CNS_INT byref 0
New refCnts for V18: refCnt = 5, refCntWtd = 5
[000168] -A---+------ * ASG byref
[000167] D----+-N---- +--* LCL_VAR byref V19 tmp12
[000166] -----+------ \--* CNS_INT byref 0
New refCnts for V19: refCnt = 5, refCntWtd = 5
[000044] -AC--+------ * ASG ref
[000043] D----+-N---- +--* LCL_VAR ref V10 tmp3
[000042] --C--+------ \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
[000041] -----+------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e token
New refCnts for V10: refCnt = 1, refCntWtd = 2
[000667] -A---+------ * ASG long
[000665] D------N---- +--* LCL_VAR long V61 tmp54
[000666] -------N---- \--* LCL_VAR long V57 tmp50
New refCnts for V61: refCnt = 1, refCntWtd = 1
New refCnts for V57: refCnt = 6, refCntWtd = 6
[000670] -A---+------ * ASG long
[000668] D------N---- +--* LCL_VAR long V62 tmp55
[000669] -------N---- \--* LCL_VAR long V61 tmp54
New refCnts for V62: refCnt = 1, refCntWtd = 1
New refCnts for V61: refCnt = 2, refCntWtd = 2
[000431] ---X-+------ * IND int
[000047] -----+------ \--* LCL_VAR ref V10 tmp3
New refCnts for V10: refCnt = 2, refCntWtd = 4
[000437] -A---+------ * ASG byref
[000436] D----+-N---- +--* LCL_VAR byref V39 tmp32
[000435] -----+------ \--* CNS_INT byref 0
New refCnts for V39: refCnt = 1, refCntWtd = 1
[000440] -A---+------ * ASG byref
[000439] D----+-N---- +--* LCL_VAR byref V40 tmp33
[000438] -----+------ \--* CNS_INT byref 0
New refCnts for V40: refCnt = 1, refCntWtd = 1
[000443] -A---+------ * ASG byref
[000442] D----+-N---- +--* LCL_VAR byref V41 tmp34
[000441] -----+------ \--* CNS_INT byref 0
New refCnts for V41: refCnt = 1, refCntWtd = 1
[000367] -A---+------ * ASG byte
[000672] n------N---- +--* IND byte
[000671] ------------ | \--* ADDR byref
[000364] D----+-N---- | \--* LCL_VAR struct V36 tmp29
[000366] -----+------ \--* CNS_INT int 0
New refCnts for V36: refCnt = 1, refCntWtd = 1
[000371] -A---+------ * ASG int
[000674] n------N---- +--* IND int
[000673] ------------ | \--* ADDR byref
[000368] D----+-N---- | \--* LCL_VAR struct V37 tmp30
[000370] -----+------ \--* CNS_INT int 0
New refCnts for V37: refCnt = 1, refCntWtd = 1
[000381] -A---+------ * ASG byref
[000380] D----+-N---- +--* LCL_VAR byref V39 tmp32
[000455] -----+------ \--* ADD long
[000449] -----+------ +--* LCL_VAR long V57 tmp50
[000454] -----+------ \--* CNS_INT long 2
New refCnts for V39: refCnt = 2, refCntWtd = 2
New refCnts for V57: refCnt = 7, refCntWtd = 7
[000391] -A---+------ * ASG byref
[000390] D----+-N---- +--* LCL_VAR byref V40 tmp33
[000467] -----+------ \--* ADD long
[000461] -----+------ +--* LCL_VAR long V57 tmp50
[000466] -----+------ \--* CNS_INT long 1
New refCnts for V40: refCnt = 2, refCntWtd = 2
New refCnts for V57: refCnt = 8, refCntWtd = 8
[000401] -A---+------ * ASG byref
[000400] D----+-N---- +--* LCL_VAR byref V41 tmp34
[000473] -----+------ \--* LCL_VAR long V57 tmp50
New refCnts for V41: refCnt = 2, refCntWtd = 2
New refCnts for V57: refCnt = 9, refCntWtd = 9
[000525] -A-XG+------ * ASG ubyte
[000524] D----+-N---- +--* LCL_VAR int V42 tmp35
[000406] *--XG+------ \--* IND ubyte
[000405] -----+------ \--* LCL_VAR byref V39 tmp32
New refCnts for V42: refCnt = 1, refCntWtd = 2
New refCnts for V39: refCnt = 3, refCntWtd = 3
[000528] -A---+------ * ASG int
[000527] D----+-N---- +--* LCL_VAR int V46 tmp39
[000526] -----+------ \--* CNS_INT int 0
New refCnts for V46: refCnt = 1, refCntWtd = 1
[000491] -A---+------ * ASG int
[000490] D----+-N---- +--* LCL_VAR int V43 tmp36
[000485] -----+------ \--* ADD int
[000483] -----+------ +--* MUL int
[000482] -----+------ | +--* SUB int
[000675] -----+------ | | +--* CAST int <- ubyte <- int
[000049] -----+------ | | | \--* LCL_VAR int V01 arg1
[000481] -----+------ | | \--* LCL_VAR int V42 tmp35
[000676] -----+------ | \--* CAST int <- ubyte <- int
[000052] -----+------ | \--* LCL_VAR int V04 arg4
[000484] -----+------ \--* CNS_INT int 128
New refCnts for V43: refCnt = 1, refCntWtd = 1
New refCnts for V01: refCnt = 4, refCntWtd = 4
New refCnts for V42: refCnt = 2, refCntWtd = 4
New refCnts for V04: refCnt = 5, refCntWtd = 5
[000489] -----+------ * JTRUE void
[000488] J----+-N---- \--* GT int
[000486] -----+------ +--* LCL_VAR int V42 tmp35
[000677] -----+------ \--* CAST int <- ubyte <- int
[000487] -----+------ \--* LCL_VAR int V01 arg1
New refCnts for V42: refCnt = 3, refCntWtd = 6
New refCnts for V01: refCnt = 5, refCntWtd = 5
*** marking local variables in block BB11 (weight=0.25)
[000519] -A---+------ * ASG int
[000518] D----+-N---- +--* LCL_VAR int V44 tmp37
[000493] -----+------ \--* LCL_VAR int V43 tmp36
New refCnts for V44: refCnt = 1, refCntWtd = 0.25
New refCnts for V43: refCnt = 2, refCntWtd = 1.25
[000522] -A---+------ * ASG int
[000521] D----+-N---- +--* LCL_VAR int V45 tmp38
[000517] -----+------ \--* CNS_INT int 0
New refCnts for V45: refCnt = 1, refCntWtd = 0.25
*** marking local variables in block BB12 (weight=0.25)
[000497] -A---+------ * ASG int
[000496] D----+-N---- +--* LCL_VAR int V44 tmp37
[000494] -----+------ \--* LCL_VAR int V43 tmp36
New refCnts for V44: refCnt = 2, refCntWtd = 0.50
New refCnts for V43: refCnt = 3, refCntWtd = 1.50
[000500] -A---+------ * ASG int
[000499] D----+-N---- +--* LCL_VAR int V45 tmp38
[000495] -----+------ \--* CNS_INT int 1
New refCnts for V45: refCnt = 2, refCntWtd = 0.50
*** marking local variables in block BB13 (weight=1 )
[000506] -A---+------ * ASG int
[000505] D----+-N---- +--* LCL_VAR int V46 tmp39
[000504] -----+------ \--* SUB int
[000502] -----+------ +--* LCL_VAR int V44 tmp37
[000503] -----+------ \--* LCL_VAR int V45 tmp38
New refCnts for V46: refCnt = 2, refCntWtd = 2
New refCnts for V44: refCnt = 3, refCntWtd = 1.50
New refCnts for V45: refCnt = 3, refCntWtd = 1.50
[000410] -A-XG+------ * ASG ubyte
[000409] *--X-+-N---- +--* IND ubyte
[000402] -----+------ | \--* LCL_VAR byref V39 tmp32
[000515] -----+------ \--* ADD int
[000507] -----+------ +--* LCL_VAR int V42 tmp35
[000514] -----+------ \--* RSH int
[000512] -----+------ +--* ADD int
[000510] -----+------ | +--* RSH int
[000508] -----+------ | | +--* LCL_VAR int V46 tmp39
[000509] -----+------ | | \--* CNS_INT int 8
[000511] -----+------ | \--* LCL_VAR int V46 tmp39
[000513] -----+------ \--* CNS_INT int 8
New refCnts for V39: refCnt = 4, refCntWtd = 4
New refCnts for V42: refCnt = 4, refCntWtd = 8
New refCnts for V46: refCnt = 3, refCntWtd = 3
New refCnts for V46: refCnt = 4, refCntWtd = 4
[000574] -A-XG+------ * ASG ubyte
[000573] D----+-N---- +--* LCL_VAR int V47 tmp40
[000415] *--XG+------ \--* IND ubyte
[000414] -----+------ \--* LCL_VAR byref V40 tmp33
New refCnts for V47: refCnt = 1, refCntWtd = 2
New refCnts for V40: refCnt = 3, refCntWtd = 3
[000577] -A---+------ * ASG int
[000576] D----+-N---- +--* LCL_VAR int V51 tmp44
[000575] -----+------ \--* CNS_INT int 0
New refCnts for V51: refCnt = 1, refCntWtd = 1
[000540] -A---+------ * ASG int
[000539] D----+-N---- +--* LCL_VAR int V48 tmp41
[000534] -----+------ \--* ADD int
[000532] -----+------ +--* MUL int
[000531] -----+------ | +--* SUB int
[000678] -----+------ | | +--* CAST int <- ubyte <- int
[000050] -----+------ | | | \--* LCL_VAR int V02 arg2
[000530] -----+------ | | \--* LCL_VAR int V47 tmp40
[000679] -----+------ | \--* CAST int <- ubyte <- int
[000416] -----+------ | \--* LCL_VAR int V04 arg4
[000533] -----+------ \--* CNS_INT int 128
New refCnts for V48: refCnt = 1, refCntWtd = 1
New refCnts for V02: refCnt = 4, refCntWtd = 4
New refCnts for V47: refCnt = 2, refCntWtd = 4
New refCnts for V04: refCnt = 6, refCntWtd = 6
[000538] -----+------ * JTRUE void
[000537] J----+-N---- \--* GT int
[000535] -----+------ +--* LCL_VAR int V47 tmp40
[000680] -----+------ \--* CAST int <- ubyte <- int
[000536] -----+------ \--* LCL_VAR int V02 arg2
New refCnts for V47: refCnt = 3, refCntWtd = 6
New refCnts for V02: refCnt = 5, refCntWtd = 5
*** marking local variables in block BB14 (weight=0.25)
[000568] -A---+------ * ASG int
[000567] D----+-N---- +--* LCL_VAR int V49 tmp42
[000542] -----+------ \--* LCL_VAR int V48 tmp41
New refCnts for V49: refCnt = 1, refCntWtd = 0.25
New refCnts for V48: refCnt = 2, refCntWtd = 1.25
[000571] -A---+------ * ASG int
[000570] D----+-N---- +--* LCL_VAR int V50 tmp43
[000566] -----+------ \--* CNS_INT int 0
New refCnts for V50: refCnt = 1, refCntWtd = 0.25
*** marking local variables in block BB15 (weight=0.25)
[000546] -A---+------ * ASG int
[000545] D----+-N---- +--* LCL_VAR int V49 tmp42
[000543] -----+------ \--* LCL_VAR int V48 tmp41
New refCnts for V49: refCnt = 2, refCntWtd = 0.50
New refCnts for V48: refCnt = 3, refCntWtd = 1.50
[000549] -A---+------ * ASG int
[000548] D----+-N---- +--* LCL_VAR int V50 tmp43
[000544] -----+------ \--* CNS_INT int 1
New refCnts for V50: refCnt = 2, refCntWtd = 0.50
*** marking local variables in block BB16 (weight=1 )
[000555] -A---+------ * ASG int
[000554] D----+-N---- +--* LCL_VAR int V51 tmp44
[000553] -----+------ \--* SUB int
[000551] -----+------ +--* LCL_VAR int V49 tmp42
[000552] -----+------ \--* LCL_VAR int V50 tmp43
New refCnts for V51: refCnt = 2, refCntWtd = 2
New refCnts for V49: refCnt = 3, refCntWtd = 1.50
New refCnts for V50: refCnt = 3, refCntWtd = 1.50
[000420] -A-XG+------ * ASG ubyte
[000419] *--X-+-N---- +--* IND ubyte
[000411] -----+------ | \--* LCL_VAR byref V40 tmp33
[000564] -----+------ \--* ADD int
[000556] -----+------ +--* LCL_VAR int V47 tmp40
[000563] -----+------ \--* RSH int
[000561] -----+------ +--* ADD int
[000559] -----+------ | +--* RSH int
[000557] -----+------ | | +--* LCL_VAR int V51 tmp44
[000558] -----+------ | | \--* CNS_INT int 8
[000560] -----+------ | \--* LCL_VAR int V51 tmp44
[000562] -----+------ \--* CNS_INT int 8
New refCnts for V40: refCnt = 4, refCntWtd = 4
New refCnts for V47: refCnt = 4, refCntWtd = 8
New refCnts for V51: refCnt = 3, refCntWtd = 3
New refCnts for V51: refCnt = 4, refCntWtd = 4
[000623] -A-XG+------ * ASG ubyte
[000622] D----+-N---- +--* LCL_VAR int V52 tmp45
[000425] *--XG+------ \--* IND ubyte
[000424] -----+------ \--* LCL_VAR byref V41 tmp34
New refCnts for V52: refCnt = 1, refCntWtd = 2
New refCnts for V41: refCnt = 3, refCntWtd = 3
[000626] -A---+------ * ASG int
[000625] D----+-N---- +--* LCL_VAR int V56 tmp49
[000624] -----+------ \--* CNS_INT int 0
New refCnts for V56: refCnt = 1, refCntWtd = 1
[000589] -A---+------ * ASG int
[000588] D----+-N---- +--* LCL_VAR int V53 tmp46
[000583] -----+------ \--* ADD int
[000581] -----+------ +--* MUL int
[000580] -----+------ | +--* SUB int
[000681] -----+------ | | +--* CAST int <- ubyte <- int
[000051] -----+------ | | | \--* LCL_VAR int V03 arg3
[000579] -----+------ | | \--* LCL_VAR int V52 tmp45
[000682] -----+------ | \--* CAST int <- ubyte <- int
[000426] -----+------ | \--* LCL_VAR int V04 arg4
[000582] -----+------ \--* CNS_INT int 128
New refCnts for V53: refCnt = 1, refCntWtd = 1
New refCnts for V03: refCnt = 4, refCntWtd = 4
New refCnts for V52: refCnt = 2, refCntWtd = 4
New refCnts for V04: refCnt = 7, refCntWtd = 7
[000587] -----+------ * JTRUE void
[000586] J----+-N---- \--* GT int
[000584] -----+------ +--* LCL_VAR int V52 tmp45
[000683] -----+------ \--* CAST int <- ubyte <- int
[000585] -----+------ \--* LCL_VAR int V03 arg3
New refCnts for V52: refCnt = 3, refCntWtd = 6
New refCnts for V03: refCnt = 5, refCntWtd = 5
*** marking local variables in block BB17 (weight=0.25)
[000617] -A---+------ * ASG int
[000616] D----+-N---- +--* LCL_VAR int V54 tmp47
[000591] -----+------ \--* LCL_VAR int V53 tmp46
New refCnts for V54: refCnt = 1, refCntWtd = 0.25
New refCnts for V53: refCnt = 2, refCntWtd = 1.25
[000620] -A---+------ * ASG int
[000619] D----+-N---- +--* LCL_VAR int V55 tmp48
[000615] -----+------ \--* CNS_INT int 0
New refCnts for V55: refCnt = 1, refCntWtd = 0.25
*** marking local variables in block BB18 (weight=0.25)
[000595] -A---+------ * ASG int
[000594] D----+-N---- +--* LCL_VAR int V54 tmp47
[000592] -----+------ \--* LCL_VAR int V53 tmp46
New refCnts for V54: refCnt = 2, refCntWtd = 0.50
New refCnts for V53: refCnt = 3, refCntWtd = 1.50
[000598] -A---+------ * ASG int
[000597] D----+-N---- +--* LCL_VAR int V55 tmp48
[000593] -----+------ \--* CNS_INT int 1
New refCnts for V55: refCnt = 2, refCntWtd = 0.50
*** marking local variables in block BB19 (weight=1 )
[000604] -A---+------ * ASG int
[000603] D----+-N---- +--* LCL_VAR int V56 tmp49
[000602] -----+------ \--* SUB int
[000600] -----+------ +--* LCL_VAR int V54 tmp47
[000601] -----+------ \--* LCL_VAR int V55 tmp48
New refCnts for V56: refCnt = 2, refCntWtd = 2
New refCnts for V54: refCnt = 3, refCntWtd = 1.50
New refCnts for V55: refCnt = 3, refCntWtd = 1.50
[000430] -A-XG+------ * ASG ubyte
[000429] *--X-+-N---- +--* IND ubyte
[000421] -----+------ | \--* LCL_VAR byref V41 tmp34
[000613] -----+------ \--* ADD int
[000605] -----+------ +--* LCL_VAR int V52 tmp45
[000612] -----+------ \--* RSH int
[000610] -----+------ +--* ADD int
[000608] -----+------ | +--* RSH int
[000606] -----+------ | | +--* LCL_VAR int V56 tmp49
[000607] -----+------ | | \--* CNS_INT int 8
[000609] -----+------ | \--* LCL_VAR int V56 tmp49
[000611] -----+------ \--* CNS_INT int 8
New refCnts for V41: refCnt = 4, refCntWtd = 4
New refCnts for V52: refCnt = 4, refCntWtd = 8
New refCnts for V56: refCnt = 3, refCntWtd = 3
New refCnts for V56: refCnt = 4, refCntWtd = 4
[000057] -----+------ * RETURN void
*** lvaComputeRefCounts -- implicit counts ***
New refCnts for V01: refCnt = 6, refCntWtd = 6
New refCnts for V01: refCnt = 7, refCntWtd = 7
New refCnts for V02: refCnt = 6, refCntWtd = 6
New refCnts for V02: refCnt = 7, refCntWtd = 7
New refCnts for V03: refCnt = 6, refCntWtd = 6
New refCnts for V03: refCnt = 7, refCntWtd = 7
New refCnts for V57: refCnt = 10, refCntWtd = 10
*************** In optAddCopies()
*************** In optOptimizeBools()
*************** In fgDebugCheckBBlist
*************** In fgFindOperOrder()
*************** In fgSetBlockOrder()
The biggest BB has 16 tree nodes
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..040)-> BB03 ( cond ) i label target gcsafe newobj
BB02 [0014] 1 BB01 0.25 [020..021)-> BB04 (always) i gcsafe
BB03 [0015] 1 BB01 0.25 [020..021) i label target gcsafe
BB04 [0016] 2 BB02,BB03 1 [020..021)-> BB06 ( cond ) i label target gcsafe newobj
BB05 [0019] 1 BB04 0.25 [020..021)-> BB07 (always) i gcsafe
BB06 [0020] 1 BB04 0.25 [020..021) i label target gcsafe
BB07 [0021] 2 BB05,BB06 1 [020..021)-> BB09 ( cond ) i label target gcsafe newobj
BB08 [0024] 1 BB07 0.25 [020..021)-> BB10 (always) i gcsafe
BB09 [0025] 1 BB07 0.25 [020..021) i label target gcsafe
BB10 [0026] 2 BB08,BB09 1 [020..033)-> BB12 ( cond ) i label target gcsafe newobj
BB11 [0039] 1 BB10 0.25 [032..033)-> BB13 (always) i gcsafe
BB12 [0040] 1 BB10 0.25 [032..033) i label target gcsafe
BB13 [0041] 2 BB11,BB12 1 [032..033)-> BB15 ( cond ) i label target gcsafe newobj
BB14 [0044] 1 BB13 0.25 [032..033)-> BB16 (always) i gcsafe
BB15 [0045] 1 BB13 0.25 [032..033) i label target gcsafe
BB16 [0046] 2 BB14,BB15 1 [032..033)-> BB18 ( cond ) i label target gcsafe newobj
BB17 [0049] 1 BB16 0.25 [032..033)-> BB19 (always) i gcsafe
BB18 [0050] 1 BB16 0.25 [032..033) i label target gcsafe
BB19 [0051] 2 BB17,BB18 1 [032..033) (return) i label target gcsafe newobj
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..040) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
N005 ( 9, 8) [000003] -A------R--- * ASG byte
N004 ( 7, 6) [000629] n------N---- +--* IND byte
N003 ( 3, 3) [000628] ------------ | \--* ADDR byref
N002 ( 3, 2) [000000] D------N---- | \--* LCL_VAR struct V06 loc0
N001 ( 1, 1) [000002] ------------ \--* CNS_INT int 0
***** BB01, stmt 2
N005 ( 17, 16) [000008] -AC-----R--- * ASG ref
N004 ( 1, 1) [000007] D------N---- +--* LCL_VAR ref V08 tmp1
N003 ( 17, 16) [000006] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
N002 ( 3, 10) [000005] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e class
***** BB01, stmt 3
N008 ( 13, 12) [000013] -A-XG---R--- * ASG byte
N007 ( 5, 5) [000012] *--XG--N---- +--* IND byte
N006 ( 2, 2) [000011] -------N---- | \--* ADD byref
N004 ( 1, 1) [000009] ------------ | +--* LCL_VAR ref V08 tmp1
N005 ( 1, 1) [000010] ------------ | \--* CNS_INT long 8
N003 ( 7, 6) [000632] n----------- \--* IND byte
N002 ( 3, 3) [000631] ------------ \--* ADDR byref
N001 ( 3, 2) [000004] ------------ \--* LCL_VAR struct V06 loc0
***** BB01, stmt 4
N003 ( 5, 4) [000635] -A------R--- * ASG long
N002 ( 3, 2) [000633] D------N---- +--* LCL_VAR long V58 tmp51
N001 ( 1, 1) [000634] -------N---- \--* LCL_VAR long V57 tmp50
***** BB01, stmt 5
N016 ( 42, 33) [000060] --CXG------- * CALL nullcheck void BlenderStruct`2.Blend
N006 ( 3, 4) [000638] ------------ arg4 out+20 +--* CAST int <- ubyte <- int
N005 ( 2, 2) [000019] ------------ | \--* LCL_VAR int V03 arg3
N008 ( 3, 4) [000639] ------------ arg5 out+28 +--* CAST int <- ubyte <- int
N007 ( 2, 2) [000020] ------------ | \--* LCL_VAR int V04 arg4
N010 ( 7, 5) [000015] ------------ this in rcx +--* BOX ref
N009 ( 1, 1) [000014] ------------ | \--* LCL_VAR ref V08 tmp1
N012 ( 3, 4) [000636] ------------ arg2 in r8 +--* CAST int <- ubyte <- int
N011 ( 2, 2) [000017] ------------ | \--* LCL_VAR int V01 arg1
N014 ( 3, 4) [000637] ------------ arg3 in r9 +--* CAST int <- ubyte <- int
N013 ( 2, 2) [000018] ------------ | \--* LCL_VAR int V02 arg2
N015 ( 3, 2) [000059] ------------ arg1 in rdx \--* LCL_VAR long V58 tmp51
***** BB01, stmt 6
N005 ( 17, 16) [000028] -AC-----R--- * ASG ref
N004 ( 1, 1) [000027] D------N---- +--* LCL_VAR ref V09 tmp2
N003 ( 17, 16) [000026] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
N002 ( 3, 10) [000025] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e token
***** BB01, stmt 7
N003 ( 5, 4) [000647] -A------R--- * ASG long
N002 ( 3, 2) [000645] D------N---- +--* LCL_VAR long V59 tmp52
N001 ( 1, 1) [000646] -------N---- \--* LCL_VAR long V57 tmp50
***** BB01, stmt 8
N003 ( 7, 5) [000650] -A------R--- * ASG long
N002 ( 3, 2) [000648] D------N---- +--* LCL_VAR long V60 tmp53
N001 ( 3, 2) [000649] -------N---- \--* LCL_VAR long V59 tmp52
***** BB01, stmt 9
N002 ( 3, 2) [000147] ---X-------- * IND int
N001 ( 1, 1) [000031] ------------ \--* LCL_VAR ref V09 tmp2
***** BB01, stmt 10
N003 ( 1, 3) [000153] -A------R--- * ASG byref
N002 ( 1, 1) [000152] D------N---- +--* LCL_VAR byref V17 tmp10
N001 ( 1, 1) [000151] ------------ \--* CNS_INT byref 0
***** BB01, stmt 11
N003 ( 1, 3) [000156] -A------R--- * ASG byref
N002 ( 1, 1) [000155] D------N---- +--* LCL_VAR byref V18 tmp11
N001 ( 1, 1) [000154] ------------ \--* CNS_INT byref 0
***** BB01, stmt 12
N003 ( 1, 3) [000159] -A------R--- * ASG byref
N002 ( 1, 1) [000158] D------N---- +--* LCL_VAR byref V19 tmp12
N001 ( 1, 1) [000157] ------------ \--* CNS_INT byref 0
***** BB01, stmt 13
N005 ( 9, 8) [000083] -A------R--- * ASG byte
N004 ( 7, 6) [000652] n------N---- +--* IND byte
N003 ( 3, 3) [000651] ------------ | \--* ADDR byref
N002 ( 3, 2) [000080] D------N---- | \--* LCL_VAR struct V14 tmp7
N001 ( 1, 1) [000082] ------------ \--* CNS_INT int 0
***** BB01, stmt 14
N005 ( 8, 7) [000087] -A------R--- * ASG int
N004 ( 6, 5) [000654] n------N---- +--* IND int
N003 ( 3, 3) [000653] ------------ | \--* ADDR byref
N002 ( 3, 2) [000084] D------N---- | \--* LCL_VAR struct V15 tmp8
N001 ( 1, 1) [000086] ------------ \--* CNS_INT int 0
***** BB01, stmt 15
N005 ( 3, 3) [000097] -A------R--- * ASG byref
N004 ( 1, 1) [000096] D------N---- +--* LCL_VAR byref V17 tmp10
N003 ( 3, 3) [000180] ------------ \--* ADD long
N001 ( 1, 1) [000174] ------------ +--* LCL_VAR long V57 tmp50
N002 ( 1, 1) [000179] ------------ \--* CNS_INT long 2
***** BB01, stmt 16
N005 ( 3, 3) [000107] -A------R--- * ASG byref
N004 ( 1, 1) [000106] D------N---- +--* LCL_VAR byref V18 tmp11
N003 ( 3, 3) [000192] ------------ \--* ADD long
N001 ( 1, 1) [000186] ------------ +--* LCL_VAR long V57 tmp50
N002 ( 1, 1) [000191] ------------ \--* CNS_INT long 1
***** BB01, stmt 17
N003 ( 1, 3) [000117] -A------R--- * ASG byref
N002 ( 1, 1) [000116] D------N---- +--* LCL_VAR byref V19 tmp12
N001 ( 1, 1) [000198] ------------ \--* LCL_VAR long V57 tmp50
***** BB01, stmt 18
N004 ( 4, 3) [000250] -A-XG---R--- * ASG ubyte
N003 ( 1, 1) [000249] D------N---- +--* LCL_VAR int V20 tmp13
N002 ( 4, 3) [000122] *--XG------- \--* IND ubyte
N001 ( 1, 1) [000121] ------------ \--* LCL_VAR byref V17 tmp10
***** BB01, stmt 19
N003 ( 1, 3) [000253] -A------R--- * ASG int
N002 ( 1, 1) [000252] D------N---- +--* LCL_VAR int V24 tmp17
N001 ( 1, 1) [000251] ------------ \--* CNS_INT int 0
***** BB01, stmt 20
N011 ( 18, 21) [000216] -A------R--- * ASG int
N010 ( 3, 2) [000215] D------N---- +--* LCL_VAR int V21 tmp14
N009 ( 14, 18) [000210] ------------ \--* ADD int
N007 ( 12, 13) [000208] ------------ +--* MUL int
N004 ( 5, 6) [000207] ------------ | +--* SUB int
N002 ( 3, 4) [000655] ------------ | | +--* CAST int <- ubyte <- int
N001 ( 2, 2) [000033] ------------ | | | \--* LCL_VAR int V01 arg1
N003 ( 1, 1) [000206] ------------ | | \--* LCL_VAR int V20 tmp13
N006 ( 3, 4) [000656] ------------ | \--* CAST int <- ubyte <- int
N005 ( 2, 2) [000036] ------------ | \--* LCL_VAR int V04 arg4
N008 ( 1, 4) [000209] ------------ \--* CNS_INT int 128
***** BB01, stmt 21
N005 ( 7, 8) [000214] ------------ * JTRUE void
N004 ( 5, 6) [000213] J------N---- \--* GT int
N001 ( 1, 1) [000211] ------------ +--* LCL_VAR int V20 tmp13
N003 ( 3, 4) [000657] ------------ \--* CAST int <- ubyte <- int
N002 ( 2, 2) [000212] ------------ \--* LCL_VAR int V01 arg1
------------ BB02 [020..021) -> BB04 (always), preds={BB01} succs={BB04}
***** BB02, stmt 22
N003 ( 7, 5) [000244] -A------R--- * ASG int
N002 ( 3, 2) [000243] D------N---- +--* LCL_VAR int V22 tmp15
N001 ( 3, 2) [000218] ------------ \--* LCL_VAR int V21 tmp14
***** BB02, stmt 23
N003 ( 5, 4) [000247] -A------R--- * ASG int
N002 ( 3, 2) [000246] D------N---- +--* LCL_VAR int V23 tmp16
N001 ( 1, 1) [000242] ------------ \--* CNS_INT int 0
------------ BB03 [020..021), preds={BB01} succs={BB04}
***** BB03, stmt 24
N003 ( 7, 5) [000222] -A------R--- * ASG int
N002 ( 3, 2) [000221] D------N---- +--* LCL_VAR int V22 tmp15
N001 ( 3, 2) [000219] ------------ \--* LCL_VAR int V21 tmp14
***** BB03, stmt 25
N003 ( 5, 4) [000225] -A------R--- * ASG int
N002 ( 3, 2) [000224] D------N---- +--* LCL_VAR int V23 tmp16
N001 ( 1, 1) [000220] ------------ \--* CNS_INT int 1
------------ BB04 [020..021) -> BB06 (cond), preds={BB02,BB03} succs={BB05,BB06}
***** BB04, stmt 26
N005 ( 7, 5) [000231] -A------R--- * ASG int
N004 ( 1, 1) [000230] D------N---- +--* LCL_VAR int V24 tmp17
N003 ( 7, 5) [000229] ------------ \--* SUB int
N001 ( 3, 2) [000227] ------------ +--* LCL_VAR int V22 tmp15
N002 ( 3, 2) [000228] ------------ \--* LCL_VAR int V23 tmp16
***** BB04, stmt 27
N012 ( 14, 13) [000126] -A-XG---R--- * ASG ubyte
N011 ( 4, 3) [000125] *--X---N---- +--* IND ubyte
N010 ( 1, 1) [000118] ------------ | \--* LCL_VAR byref V17 tmp10
N009 ( 9, 9) [000240] ------------ \--* ADD int
N007 ( 7, 7) [000239] ------------ +--* RSH int
N005 ( 5, 5) [000237] ------------ | +--* ADD int
N003 ( 3, 3) [000235] ------------ | | +--* RSH int
N001 ( 1, 1) [000233] ------------ | | | +--* LCL_VAR int V24 tmp17
N002 ( 1, 1) [000234] ------------ | | | \--* CNS_INT int 8
N004 ( 1, 1) [000236] ------------ | | \--* LCL_VAR int V24 tmp17
N006 ( 1, 1) [000238] ------------ | \--* CNS_INT int 8
N008 ( 1, 1) [000232] ------------ \--* LCL_VAR int V20 tmp13
***** BB04, stmt 28
N004 ( 4, 3) [000299] -A-XG---R--- * ASG ubyte
N003 ( 1, 1) [000298] D------N---- +--* LCL_VAR int V25 tmp18
N002 ( 4, 3) [000131] *--XG------- \--* IND ubyte
N001 ( 1, 1) [000130] ------------ \--* LCL_VAR byref V18 tmp11
***** BB04, stmt 29
N003 ( 1, 3) [000302] -A------R--- * ASG int
N002 ( 1, 1) [000301] D------N---- +--* LCL_VAR int V29 tmp22
N001 ( 1, 1) [000300] ------------ \--* CNS_INT int 0
***** BB04, stmt 30
N011 ( 18, 21) [000265] -A------R--- * ASG int
N010 ( 3, 2) [000264] D------N---- +--* LCL_VAR int V26 tmp19
N009 ( 14, 18) [000259] ------------ \--* ADD int
N007 ( 12, 13) [000257] ------------ +--* MUL int
N004 ( 5, 6) [000256] ------------ | +--* SUB int
N002 ( 3, 4) [000658] ------------ | | +--* CAST int <- ubyte <- int
N001 ( 2, 2) [000034] ------------ | | | \--* LCL_VAR int V02 arg2
N003 ( 1, 1) [000255] ------------ | | \--* LCL_VAR int V25 tmp18
N006 ( 3, 4) [000659] ------------ | \--* CAST int <- ubyte <- int
N005 ( 2, 2) [000132] ------------ | \--* LCL_VAR int V04 arg4
N008 ( 1, 4) [000258] ------------ \--* CNS_INT int 128
***** BB04, stmt 31
N005 ( 7, 8) [000263] ------------ * JTRUE void
N004 ( 5, 6) [000262] J------N---- \--* GT int
N001 ( 1, 1) [000260] ------------ +--* LCL_VAR int V25 tmp18
N003 ( 3, 4) [000660] ------------ \--* CAST int <- ubyte <- int
N002 ( 2, 2) [000261] ------------ \--* LCL_VAR int V02 arg2
------------ BB05 [020..021) -> BB07 (always), preds={BB04} succs={BB07}
***** BB05, stmt 32
N003 ( 7, 5) [000293] -A------R--- * ASG int
N002 ( 3, 2) [000292] D------N---- +--* LCL_VAR int V27 tmp20
N001 ( 3, 2) [000267] ------------ \--* LCL_VAR int V26 tmp19
***** BB05, stmt 33
N003 ( 5, 4) [000296] -A------R--- * ASG int
N002 ( 3, 2) [000295] D------N---- +--* LCL_VAR int V28 tmp21
N001 ( 1, 1) [000291] ------------ \--* CNS_INT int 0
------------ BB06 [020..021), preds={BB04} succs={BB07}
***** BB06, stmt 34
N003 ( 7, 5) [000271] -A------R--- * ASG int
N002 ( 3, 2) [000270] D------N---- +--* LCL_VAR int V27 tmp20
N001 ( 3, 2) [000268] ------------ \--* LCL_VAR int V26 tmp19
***** BB06, stmt 35
N003 ( 5, 4) [000274] -A------R--- * ASG int
N002 ( 3, 2) [000273] D------N---- +--* LCL_VAR int V28 tmp21
N001 ( 1, 1) [000269] ------------ \--* CNS_INT int 1
------------ BB07 [020..021) -> BB09 (cond), preds={BB05,BB06} succs={BB08,BB09}
***** BB07, stmt 36
N005 ( 7, 5) [000280] -A------R--- * ASG int
N004 ( 1, 1) [000279] D------N---- +--* LCL_VAR int V29 tmp22
N003 ( 7, 5) [000278] ------------ \--* SUB int
N001 ( 3, 2) [000276] ------------ +--* LCL_VAR int V27 tmp20
N002 ( 3, 2) [000277] ------------ \--* LCL_VAR int V28 tmp21
***** BB07, stmt 37
N012 ( 14, 13) [000136] -A-XG---R--- * ASG ubyte
N011 ( 4, 3) [000135] *--X---N---- +--* IND ubyte
N010 ( 1, 1) [000127] ------------ | \--* LCL_VAR byref V18 tmp11
N009 ( 9, 9) [000289] ------------ \--* ADD int
N007 ( 7, 7) [000288] ------------ +--* RSH int
N005 ( 5, 5) [000286] ------------ | +--* ADD int
N003 ( 3, 3) [000284] ------------ | | +--* RSH int
N001 ( 1, 1) [000282] ------------ | | | +--* LCL_VAR int V29 tmp22
N002 ( 1, 1) [000283] ------------ | | | \--* CNS_INT int 8
N004 ( 1, 1) [000285] ------------ | | \--* LCL_VAR int V29 tmp22
N006 ( 1, 1) [000287] ------------ | \--* CNS_INT int 8
N008 ( 1, 1) [000281] ------------ \--* LCL_VAR int V25 tmp18
***** BB07, stmt 38
N004 ( 4, 3) [000348] -A-XG---R--- * ASG ubyte
N003 ( 1, 1) [000347] D------N---- +--* LCL_VAR int V30 tmp23
N002 ( 4, 3) [000141] *--XG------- \--* IND ubyte
N001 ( 1, 1) [000140] ------------ \--* LCL_VAR byref V19 tmp12
***** BB07, stmt 39
N003 ( 1, 3) [000351] -A------R--- * ASG int
N002 ( 1, 1) [000350] D------N---- +--* LCL_VAR int V34 tmp27
N001 ( 1, 1) [000349] ------------ \--* CNS_INT int 0
***** BB07, stmt 40
N011 ( 18, 21) [000314] -A------R--- * ASG int
N010 ( 3, 2) [000313] D------N---- +--* LCL_VAR int V31 tmp24
N009 ( 14, 18) [000308] ------------ \--* ADD int
N007 ( 12, 13) [000306] ------------ +--* MUL int
N004 ( 5, 6) [000305] ------------ | +--* SUB int
N002 ( 3, 4) [000661] ------------ | | +--* CAST int <- ubyte <- int
N001 ( 2, 2) [000035] ------------ | | | \--* LCL_VAR int V03 arg3
N003 ( 1, 1) [000304] ------------ | | \--* LCL_VAR int V30 tmp23
N006 ( 3, 4) [000662] ------------ | \--* CAST int <- ubyte <- int
N005 ( 2, 2) [000142] ------------ | \--* LCL_VAR int V04 arg4
N008 ( 1, 4) [000307] ------------ \--* CNS_INT int 128
***** BB07, stmt 41
N005 ( 7, 8) [000312] ------------ * JTRUE void
N004 ( 5, 6) [000311] J------N---- \--* GT int
N001 ( 1, 1) [000309] ------------ +--* LCL_VAR int V30 tmp23
N003 ( 3, 4) [000663] ------------ \--* CAST int <- ubyte <- int
N002 ( 2, 2) [000310] ------------ \--* LCL_VAR int V03 arg3
------------ BB08 [020..021) -> BB10 (always), preds={BB07} succs={BB10}
***** BB08, stmt 42
N003 ( 7, 5) [000342] -A------R--- * ASG int
N002 ( 3, 2) [000341] D------N---- +--* LCL_VAR int V32 tmp25
N001 ( 3, 2) [000316] ------------ \--* LCL_VAR int V31 tmp24
***** BB08, stmt 43
N003 ( 5, 4) [000345] -A------R--- * ASG int
N002 ( 3, 2) [000344] D------N---- +--* LCL_VAR int V33 tmp26
N001 ( 1, 1) [000340] ------------ \--* CNS_INT int 0
------------ BB09 [020..021), preds={BB07} succs={BB10}
***** BB09, stmt 44
N003 ( 7, 5) [000320] -A------R--- * ASG int
N002 ( 3, 2) [000319] D------N---- +--* LCL_VAR int V32 tmp25
N001 ( 3, 2) [000317] ------------ \--* LCL_VAR int V31 tmp24
***** BB09, stmt 45
N003 ( 5, 4) [000323] -A------R--- * ASG int
N002 ( 3, 2) [000322] D------N---- +--* LCL_VAR int V33 tmp26
N001 ( 1, 1) [000318] ------------ \--* CNS_INT int 1
------------ BB10 [020..033) -> BB12 (cond), preds={BB08,BB09} succs={BB11,BB12}
***** BB10, stmt 46
N005 ( 7, 5) [000329] -A------R--- * ASG int
N004 ( 1, 1) [000328] D------N---- +--* LCL_VAR int V34 tmp27
N003 ( 7, 5) [000327] ------------ \--* SUB int
N001 ( 3, 2) [000325] ------------ +--* LCL_VAR int V32 tmp25
N002 ( 3, 2) [000326] ------------ \--* LCL_VAR int V33 tmp26
***** BB10, stmt 47
N012 ( 14, 13) [000146] -A-XG---R--- * ASG ubyte
N011 ( 4, 3) [000145] *--X---N---- +--* IND ubyte
N010 ( 1, 1) [000137] ------------ | \--* LCL_VAR byref V19 tmp12
N009 ( 9, 9) [000338] ------------ \--* ADD int
N007 ( 7, 7) [000337] ------------ +--* RSH int
N005 ( 5, 5) [000335] ------------ | +--* ADD int
N003 ( 3, 3) [000333] ------------ | | +--* RSH int
N001 ( 1, 1) [000331] ------------ | | | +--* LCL_VAR int V34 tmp27
N002 ( 1, 1) [000332] ------------ | | | \--* CNS_INT int 8
N004 ( 1, 1) [000334] ------------ | | \--* LCL_VAR int V34 tmp27
N006 ( 1, 1) [000336] ------------ | \--* CNS_INT int 8
N008 ( 1, 1) [000330] ------------ \--* LCL_VAR int V30 tmp23
***** BB10, stmt 48
N003 ( 1, 3) [000162] -A------R--- * ASG byref
N002 ( 1, 1) [000161] D------N---- +--* LCL_VAR byref V17 tmp10
N001 ( 1, 1) [000160] ------------ \--* CNS_INT byref 0
***** BB10, stmt 49
N003 ( 1, 3) [000165] -A------R--- * ASG byref
N002 ( 1, 1) [000164] D------N---- +--* LCL_VAR byref V18 tmp11
N001 ( 1, 1) [000163] ------------ \--* CNS_INT byref 0
***** BB10, stmt 50
N003 ( 1, 3) [000168] -A------R--- * ASG byref
N002 ( 1, 1) [000167] D------N---- +--* LCL_VAR byref V19 tmp12
N001 ( 1, 1) [000166] ------------ \--* CNS_INT byref 0
***** BB10, stmt 51
N005 ( 17, 16) [000044] -AC-----R--- * ASG ref
N004 ( 1, 1) [000043] D------N---- +--* LCL_VAR ref V10 tmp3
N003 ( 17, 16) [000042] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
N002 ( 3, 10) [000041] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e token
***** BB10, stmt 52
N003 ( 5, 4) [000667] -A------R--- * ASG long
N002 ( 3, 2) [000665] D------N---- +--* LCL_VAR long V61 tmp54
N001 ( 1, 1) [000666] -------N---- \--* LCL_VAR long V57 tmp50
***** BB10, stmt 53
N003 ( 7, 5) [000670] -A------R--- * ASG long
N002 ( 3, 2) [000668] D------N---- +--* LCL_VAR long V62 tmp55
N001 ( 3, 2) [000669] -------N---- \--* LCL_VAR long V61 tmp54
***** BB10, stmt 54
N002 ( 3, 2) [000431] ---X-------- * IND int
N001 ( 1, 1) [000047] ------------ \--* LCL_VAR ref V10 tmp3
***** BB10, stmt 55
N003 ( 1, 3) [000437] -A------R--- * ASG byref
N002 ( 1, 1) [000436] D------N---- +--* LCL_VAR byref V39 tmp32
N001 ( 1, 1) [000435] ------------ \--* CNS_INT byref 0
***** BB10, stmt 56
N003 ( 1, 3) [000440] -A------R--- * ASG byref
N002 ( 1, 1) [000439] D------N---- +--* LCL_VAR byref V40 tmp33
N001 ( 1, 1) [000438] ------------ \--* CNS_INT byref 0
***** BB10, stmt 57
N003 ( 1, 3) [000443] -A------R--- * ASG byref
N002 ( 1, 1) [000442] D------N---- +--* LCL_VAR byref V41 tmp34
N001 ( 1, 1) [000441] ------------ \--* CNS_INT byref 0
***** BB10, stmt 58
N005 ( 9, 8) [000367] -A------R--- * ASG byte
N004 ( 7, 6) [000672] n------N---- +--* IND byte
N003 ( 3, 3) [000671] ------------ | \--* ADDR byref
N002 ( 3, 2) [000364] D------N---- | \--* LCL_VAR struct V36 tmp29
N001 ( 1, 1) [000366] ------------ \--* CNS_INT int 0
***** BB10, stmt 59
N005 ( 8, 7) [000371] -A------R--- * ASG int
N004 ( 6, 5) [000674] n------N---- +--* IND int
N003 ( 3, 3) [000673] ------------ | \--* ADDR byref
N002 ( 3, 2) [000368] D------N---- | \--* LCL_VAR struct V37 tmp30
N001 ( 1, 1) [000370] ------------ \--* CNS_INT int 0
***** BB10, stmt 60
N005 ( 3, 3) [000381] -A------R--- * ASG byref
N004 ( 1, 1) [000380] D------N---- +--* LCL_VAR byref V39 tmp32
N003 ( 3, 3) [000455] ------------ \--* ADD long
N001 ( 1, 1) [000449] ------------ +--* LCL_VAR long V57 tmp50
N002 ( 1, 1) [000454] ------------ \--* CNS_INT long 2
***** BB10, stmt 61
N005 ( 3, 3) [000391] -A------R--- * ASG byref
N004 ( 1, 1) [000390] D------N---- +--* LCL_VAR byref V40 tmp33
N003 ( 3, 3) [000467] ------------ \--* ADD long
N001 ( 1, 1) [000461] ------------ +--* LCL_VAR long V57 tmp50
N002 ( 1, 1) [000466] ------------ \--* CNS_INT long 1
***** BB10, stmt 62
N003 ( 1, 3) [000401] -A------R--- * ASG byref
N002 ( 1, 1) [000400] D------N---- +--* LCL_VAR byref V41 tmp34
N001 ( 1, 1) [000473] ------------ \--* LCL_VAR long V57 tmp50
***** BB10, stmt 63
N004 ( 4, 3) [000525] -A-XG---R--- * ASG ubyte
N003 ( 1, 1) [000524] D------N---- +--* LCL_VAR int V42 tmp35
N002 ( 4, 3) [000406] *--XG------- \--* IND ubyte
N001 ( 1, 1) [000405] ------------ \--* LCL_VAR byref V39 tmp32
***** BB10, stmt 64
N003 ( 1, 3) [000528] -A------R--- * ASG int
N002 ( 1, 1) [000527] D------N---- +--* LCL_VAR int V46 tmp39
N001 ( 1, 1) [000526] ------------ \--* CNS_INT int 0
***** BB10, stmt 65
N011 ( 18, 21) [000491] -A------R--- * ASG int
N010 ( 3, 2) [000490] D------N---- +--* LCL_VAR int V43 tmp36
N009 ( 14, 18) [000485] ------------ \--* ADD int
N007 ( 12, 13) [000483] ------------ +--* MUL int
N004 ( 5, 6) [000482] ------------ | +--* SUB int
N002 ( 3, 4) [000675] ------------ | | +--* CAST int <- ubyte <- int
N001 ( 2, 2) [000049] ------------ | | | \--* LCL_VAR int V01 arg1
N003 ( 1, 1) [000481] ------------ | | \--* LCL_VAR int V42 tmp35
N006 ( 3, 4) [000676] ------------ | \--* CAST int <- ubyte <- int
N005 ( 2, 2) [000052] ------------ | \--* LCL_VAR int V04 arg4
N008 ( 1, 4) [000484] ------------ \--* CNS_INT int 128
***** BB10, stmt 66
N005 ( 7, 8) [000489] ------------ * JTRUE void
N004 ( 5, 6) [000488] J------N---- \--* GT int
N001 ( 1, 1) [000486] ------------ +--* LCL_VAR int V42 tmp35
N003 ( 3, 4) [000677] ------------ \--* CAST int <- ubyte <- int
N002 ( 2, 2) [000487] ------------ \--* LCL_VAR int V01 arg1
------------ BB11 [032..033) -> BB13 (always), preds={BB10} succs={BB13}
***** BB11, stmt 67
N003 ( 7, 5) [000519] -A------R--- * ASG int
N002 ( 3, 2) [000518] D------N---- +--* LCL_VAR int V44 tmp37
N001 ( 3, 2) [000493] ------------ \--* LCL_VAR int V43 tmp36
***** BB11, stmt 68
N003 ( 5, 4) [000522] -A------R--- * ASG int
N002 ( 3, 2) [000521] D------N---- +--* LCL_VAR int V45 tmp38
N001 ( 1, 1) [000517] ------------ \--* CNS_INT int 0
------------ BB12 [032..033), preds={BB10} succs={BB13}
***** BB12, stmt 69
N003 ( 7, 5) [000497] -A------R--- * ASG int
N002 ( 3, 2) [000496] D------N---- +--* LCL_VAR int V44 tmp37
N001 ( 3, 2) [000494] ------------ \--* LCL_VAR int V43 tmp36
***** BB12, stmt 70
N003 ( 5, 4) [000500] -A------R--- * ASG int
N002 ( 3, 2) [000499] D------N---- +--* LCL_VAR int V45 tmp38
N001 ( 1, 1) [000495] ------------ \--* CNS_INT int 1
------------ BB13 [032..033) -> BB15 (cond), preds={BB11,BB12} succs={BB14,BB15}
***** BB13, stmt 71
N005 ( 7, 5) [000506] -A------R--- * ASG int
N004 ( 1, 1) [000505] D------N---- +--* LCL_VAR int V46 tmp39
N003 ( 7, 5) [000504] ------------ \--* SUB int
N001 ( 3, 2) [000502] ------------ +--* LCL_VAR int V44 tmp37
N002 ( 3, 2) [000503] ------------ \--* LCL_VAR int V45 tmp38
***** BB13, stmt 72
N012 ( 14, 13) [000410] -A-XG---R--- * ASG ubyte
N011 ( 4, 3) [000409] *--X---N---- +--* IND ubyte
N010 ( 1, 1) [000402] ------------ | \--* LCL_VAR byref V39 tmp32
N009 ( 9, 9) [000515] ------------ \--* ADD int
N007 ( 7, 7) [000514] ------------ +--* RSH int
N005 ( 5, 5) [000512] ------------ | +--* ADD int
N003 ( 3, 3) [000510] ------------ | | +--* RSH int
N001 ( 1, 1) [000508] ------------ | | | +--* LCL_VAR int V46 tmp39
N002 ( 1, 1) [000509] ------------ | | | \--* CNS_INT int 8
N004 ( 1, 1) [000511] ------------ | | \--* LCL_VAR int V46 tmp39
N006 ( 1, 1) [000513] ------------ | \--* CNS_INT int 8
N008 ( 1, 1) [000507] ------------ \--* LCL_VAR int V42 tmp35
***** BB13, stmt 73
N004 ( 4, 3) [000574] -A-XG---R--- * ASG ubyte
N003 ( 1, 1) [000573] D------N---- +--* LCL_VAR int V47 tmp40
N002 ( 4, 3) [000415] *--XG------- \--* IND ubyte
N001 ( 1, 1) [000414] ------------ \--* LCL_VAR byref V40 tmp33
***** BB13, stmt 74
N003 ( 1, 3) [000577] -A------R--- * ASG int
N002 ( 1, 1) [000576] D------N---- +--* LCL_VAR int V51 tmp44
N001 ( 1, 1) [000575] ------------ \--* CNS_INT int 0
***** BB13, stmt 75
N011 ( 18, 21) [000540] -A------R--- * ASG int
N010 ( 3, 2) [000539] D------N---- +--* LCL_VAR int V48 tmp41
N009 ( 14, 18) [000534] ------------ \--* ADD int
N007 ( 12, 13) [000532] ------------ +--* MUL int
N004 ( 5, 6) [000531] ------------ | +--* SUB int
N002 ( 3, 4) [000678] ------------ | | +--* CAST int <- ubyte <- int
N001 ( 2, 2) [000050] ------------ | | | \--* LCL_VAR int V02 arg2
N003 ( 1, 1) [000530] ------------ | | \--* LCL_VAR int V47 tmp40
N006 ( 3, 4) [000679] ------------ | \--* CAST int <- ubyte <- int
N005 ( 2, 2) [000416] ------------ | \--* LCL_VAR int V04 arg4
N008 ( 1, 4) [000533] ------------ \--* CNS_INT int 128
***** BB13, stmt 76
N005 ( 7, 8) [000538] ------------ * JTRUE void
N004 ( 5, 6) [000537] J------N---- \--* GT int
N001 ( 1, 1) [000535] ------------ +--* LCL_VAR int V47 tmp40
N003 ( 3, 4) [000680] ------------ \--* CAST int <- ubyte <- int
N002 ( 2, 2) [000536] ------------ \--* LCL_VAR int V02 arg2
------------ BB14 [032..033) -> BB16 (always), preds={BB13} succs={BB16}
***** BB14, stmt 77
N003 ( 7, 5) [000568] -A------R--- * ASG int
N002 ( 3, 2) [000567] D------N---- +--* LCL_VAR int V49 tmp42
N001 ( 3, 2) [000542] ------------ \--* LCL_VAR int V48 tmp41
***** BB14, stmt 78
N003 ( 5, 4) [000571] -A------R--- * ASG int
N002 ( 3, 2) [000570] D------N---- +--* LCL_VAR int V50 tmp43
N001 ( 1, 1) [000566] ------------ \--* CNS_INT int 0
------------ BB15 [032..033), preds={BB13} succs={BB16}
***** BB15, stmt 79
N003 ( 7, 5) [000546] -A------R--- * ASG int
N002 ( 3, 2) [000545] D------N---- +--* LCL_VAR int V49 tmp42
N001 ( 3, 2) [000543] ------------ \--* LCL_VAR int V48 tmp41
***** BB15, stmt 80
N003 ( 5, 4) [000549] -A------R--- * ASG int
N002 ( 3, 2) [000548] D------N---- +--* LCL_VAR int V50 tmp43
N001 ( 1, 1) [000544] ------------ \--* CNS_INT int 1
------------ BB16 [032..033) -> BB18 (cond), preds={BB14,BB15} succs={BB17,BB18}
***** BB16, stmt 81
N005 ( 7, 5) [000555] -A------R--- * ASG int
N004 ( 1, 1) [000554] D------N---- +--* LCL_VAR int V51 tmp44
N003 ( 7, 5) [000553] ------------ \--* SUB int
N001 ( 3, 2) [000551] ------------ +--* LCL_VAR int V49 tmp42
N002 ( 3, 2) [000552] ------------ \--* LCL_VAR int V50 tmp43
***** BB16, stmt 82
N012 ( 14, 13) [000420] -A-XG---R--- * ASG ubyte
N011 ( 4, 3) [000419] *--X---N---- +--* IND ubyte
N010 ( 1, 1) [000411] ------------ | \--* LCL_VAR byref V40 tmp33
N009 ( 9, 9) [000564] ------------ \--* ADD int
N007 ( 7, 7) [000563] ------------ +--* RSH int
N005 ( 5, 5) [000561] ------------ | +--* ADD int
N003 ( 3, 3) [000559] ------------ | | +--* RSH int
N001 ( 1, 1) [000557] ------------ | | | +--* LCL_VAR int V51 tmp44
N002 ( 1, 1) [000558] ------------ | | | \--* CNS_INT int 8
N004 ( 1, 1) [000560] ------------ | | \--* LCL_VAR int V51 tmp44
N006 ( 1, 1) [000562] ------------ | \--* CNS_INT int 8
N008 ( 1, 1) [000556] ------------ \--* LCL_VAR int V47 tmp40
***** BB16, stmt 83
N004 ( 4, 3) [000623] -A-XG---R--- * ASG ubyte
N003 ( 1, 1) [000622] D------N---- +--* LCL_VAR int V52 tmp45
N002 ( 4, 3) [000425] *--XG------- \--* IND ubyte
N001 ( 1, 1) [000424] ------------ \--* LCL_VAR byref V41 tmp34
***** BB16, stmt 84
N003 ( 1, 3) [000626] -A------R--- * ASG int
N002 ( 1, 1) [000625] D------N---- +--* LCL_VAR int V56 tmp49
N001 ( 1, 1) [000624] ------------ \--* CNS_INT int 0
***** BB16, stmt 85
N011 ( 18, 21) [000589] -A------R--- * ASG int
N010 ( 3, 2) [000588] D------N---- +--* LCL_VAR int V53 tmp46
N009 ( 14, 18) [000583] ------------ \--* ADD int
N007 ( 12, 13) [000581] ------------ +--* MUL int
N004 ( 5, 6) [000580] ------------ | +--* SUB int
N002 ( 3, 4) [000681] ------------ | | +--* CAST int <- ubyte <- int
N001 ( 2, 2) [000051] ------------ | | | \--* LCL_VAR int V03 arg3
N003 ( 1, 1) [000579] ------------ | | \--* LCL_VAR int V52 tmp45
N006 ( 3, 4) [000682] ------------ | \--* CAST int <- ubyte <- int
N005 ( 2, 2) [000426] ------------ | \--* LCL_VAR int V04 arg4
N008 ( 1, 4) [000582] ------------ \--* CNS_INT int 128
***** BB16, stmt 86
N005 ( 7, 8) [000587] ------------ * JTRUE void
N004 ( 5, 6) [000586] J------N---- \--* GT int
N001 ( 1, 1) [000584] ------------ +--* LCL_VAR int V52 tmp45
N003 ( 3, 4) [000683] ------------ \--* CAST int <- ubyte <- int
N002 ( 2, 2) [000585] ------------ \--* LCL_VAR int V03 arg3
------------ BB17 [032..033) -> BB19 (always), preds={BB16} succs={BB19}
***** BB17, stmt 87
N003 ( 7, 5) [000617] -A------R--- * ASG int
N002 ( 3, 2) [000616] D------N---- +--* LCL_VAR int V54 tmp47
N001 ( 3, 2) [000591] ------------ \--* LCL_VAR int V53 tmp46
***** BB17, stmt 88
N003 ( 5, 4) [000620] -A------R--- * ASG int
N002 ( 3, 2) [000619] D------N---- +--* LCL_VAR int V55 tmp48
N001 ( 1, 1) [000615] ------------ \--* CNS_INT int 0
------------ BB18 [032..033), preds={BB16} succs={BB19}
***** BB18, stmt 89
N003 ( 7, 5) [000595] -A------R--- * ASG int
N002 ( 3, 2) [000594] D------N---- +--* LCL_VAR int V54 tmp47
N001 ( 3, 2) [000592] ------------ \--* LCL_VAR int V53 tmp46
***** BB18, stmt 90
N003 ( 5, 4) [000598] -A------R--- * ASG int
N002 ( 3, 2) [000597] D------N---- +--* LCL_VAR int V55 tmp48
N001 ( 1, 1) [000593] ------------ \--* CNS_INT int 1
------------ BB19 [032..033) (return), preds={BB17,BB18} succs={}
***** BB19, stmt 91
N005 ( 7, 5) [000604] -A------R--- * ASG int
N004 ( 1, 1) [000603] D------N---- +--* LCL_VAR int V56 tmp49
N003 ( 7, 5) [000602] ------------ \--* SUB int
N001 ( 3, 2) [000600] ------------ +--* LCL_VAR int V54 tmp47
N002 ( 3, 2) [000601] ------------ \--* LCL_VAR int V55 tmp48
***** BB19, stmt 92
N012 ( 14, 13) [000430] -A-XG---R--- * ASG ubyte
N011 ( 4, 3) [000429] *--X---N---- +--* IND ubyte
N010 ( 1, 1) [000421] ------------ | \--* LCL_VAR byref V41 tmp34
N009 ( 9, 9) [000613] ------------ \--* ADD int
N007 ( 7, 7) [000612] ------------ +--* RSH int
N005 ( 5, 5) [000610] ------------ | +--* ADD int
N003 ( 3, 3) [000608] ------------ | | +--* RSH int
N001 ( 1, 1) [000606] ------------ | | | +--* LCL_VAR int V56 tmp49
N002 ( 1, 1) [000607] ------------ | | | \--* CNS_INT int 8
N004 ( 1, 1) [000609] ------------ | | \--* LCL_VAR int V56 tmp49
N006 ( 1, 1) [000611] ------------ | \--* CNS_INT int 8
N008 ( 1, 1) [000605] ------------ \--* LCL_VAR int V52 tmp45
***** BB19, stmt 93
N001 ( 0, 0) [000057] ------------ * RETURN void
-------------------------------------------------------------------------------------------------------------------
*************** In SsaBuilder::Build()
[SsaBuilder] Max block count is 20.
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..040)-> BB03 ( cond ) i label target gcsafe newobj
BB02 [0014] 1 BB01 0.25 [020..021)-> BB04 (always) i gcsafe
BB03 [0015] 1 BB01 0.25 [020..021) i label target gcsafe
BB04 [0016] 2 BB02,BB03 1 [020..021)-> BB06 ( cond ) i label target gcsafe newobj
BB05 [0019] 1 BB04 0.25 [020..021)-> BB07 (always) i gcsafe
BB06 [0020] 1 BB04 0.25 [020..021) i label target gcsafe
BB07 [0021] 2 BB05,BB06 1 [020..021)-> BB09 ( cond ) i label target gcsafe newobj
BB08 [0024] 1 BB07 0.25 [020..021)-> BB10 (always) i gcsafe
BB09 [0025] 1 BB07 0.25 [020..021) i label target gcsafe
BB10 [0026] 2 BB08,BB09 1 [020..033)-> BB12 ( cond ) i label target gcsafe newobj
BB11 [0039] 1 BB10 0.25 [032..033)-> BB13 (always) i gcsafe
BB12 [0040] 1 BB10 0.25 [032..033) i label target gcsafe
BB13 [0041] 2 BB11,BB12 1 [032..033)-> BB15 ( cond ) i label target gcsafe newobj
BB14 [0044] 1 BB13 0.25 [032..033)-> BB16 (always) i gcsafe
BB15 [0045] 1 BB13 0.25 [032..033) i label target gcsafe
BB16 [0046] 2 BB14,BB15 1 [032..033)-> BB18 ( cond ) i label target gcsafe newobj
BB17 [0049] 1 BB16 0.25 [032..033)-> BB19 (always) i gcsafe
BB18 [0050] 1 BB16 0.25 [032..033) i label target gcsafe
BB19 [0051] 2 BB17,BB18 1 [032..033) (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 V06 should not be enregistered because: it is a struct
Local V14 should not be enregistered because: it is a struct
Local V15 should not be enregistered because: it is a struct
Local V36 should not be enregistered because: it is a struct
Local V37 should not be enregistered because: it is a struct
Tracked variable (54 out of 63) table:
V57 tmp50 [ long]: refCnt = 10, refCntWtd = 10
V01 arg1 [ ubyte]: refCnt = 7, refCntWtd = 7
V02 arg2 [ ubyte]: refCnt = 7, refCntWtd = 7
V03 arg3 [ ubyte]: refCnt = 7, refCntWtd = 7
V20 tmp13 [ ubyte]: refCnt = 4, refCntWtd = 8
V25 tmp18 [ ubyte]: refCnt = 4, refCntWtd = 8
V30 tmp23 [ ubyte]: refCnt = 4, refCntWtd = 8
V42 tmp35 [ ubyte]: refCnt = 4, refCntWtd = 8
V47 tmp40 [ ubyte]: refCnt = 4, refCntWtd = 8
V52 tmp45 [ ubyte]: refCnt = 4, refCntWtd = 8
V04 arg4 [ ubyte]: refCnt = 7, refCntWtd = 7
V08 tmp1 [ ref]: refCnt = 3, refCntWtd = 6
V17 tmp10 [ byref]: refCnt = 5, refCntWtd = 5
V18 tmp11 [ byref]: refCnt = 5, refCntWtd = 5
V19 tmp12 [ byref]: refCnt = 5, refCntWtd = 5
V39 tmp32 [ byref]: refCnt = 4, refCntWtd = 4
V40 tmp33 [ byref]: refCnt = 4, refCntWtd = 4
V41 tmp34 [ byref]: refCnt = 4, refCntWtd = 4
V24 tmp17 [ int]: refCnt = 4, refCntWtd = 4
V29 tmp22 [ int]: refCnt = 4, refCntWtd = 4
V34 tmp27 [ int]: refCnt = 4, refCntWtd = 4
V46 tmp39 [ int]: refCnt = 4, refCntWtd = 4
V51 tmp44 [ int]: refCnt = 4, refCntWtd = 4
V56 tmp49 [ int]: refCnt = 4, refCntWtd = 4
V09 tmp2 [ ref]: refCnt = 2, refCntWtd = 4
V10 tmp3 [ ref]: refCnt = 2, refCntWtd = 4
V06 loc0 [struct]: refCnt = 2, refCntWtd = 2
V58 tmp51 [ long]: refCnt = 2, refCntWtd = 2
V59 tmp52 [ long]: refCnt = 2, refCntWtd = 2
V61 tmp54 [ long]: refCnt = 2, refCntWtd = 2
V21 tmp14 [ int]: refCnt = 3, refCntWtd = 1.50
V22 tmp15 [ int]: refCnt = 3, refCntWtd = 1.50
V23 tmp16 [ int]: refCnt = 3, refCntWtd = 1.50
V26 tmp19 [ int]: refCnt = 3, refCntWtd = 1.50
V27 tmp20 [ int]: refCnt = 3, refCntWtd = 1.50
V28 tmp21 [ int]: refCnt = 3, refCntWtd = 1.50
V31 tmp24 [ int]: refCnt = 3, refCntWtd = 1.50
V32 tmp25 [ int]: refCnt = 3, refCntWtd = 1.50
V33 tmp26 [ int]: refCnt = 3, refCntWtd = 1.50
V43 tmp36 [ int]: refCnt = 3, refCntWtd = 1.50
V44 tmp37 [ int]: refCnt = 3, refCntWtd = 1.50
V45 tmp38 [ int]: refCnt = 3, refCntWtd = 1.50
V48 tmp41 [ int]: refCnt = 3, refCntWtd = 1.50
V49 tmp42 [ int]: refCnt = 3, refCntWtd = 1.50
V50 tmp43 [ int]: refCnt = 3, refCntWtd = 1.50
V53 tmp46 [ int]: refCnt = 3, refCntWtd = 1.50
V54 tmp47 [ int]: refCnt = 3, refCntWtd = 1.50
V55 tmp48 [ int]: refCnt = 3, refCntWtd = 1.50
V14 tmp7 [struct]: refCnt = 1, refCntWtd = 1
V15 tmp8 [struct]: refCnt = 1, refCntWtd = 1
V36 tmp29 [struct]: refCnt = 1, refCntWtd = 1
V37 tmp30 [struct]: refCnt = 1, refCntWtd = 1
V60 tmp53 [ long]: refCnt = 1, refCntWtd = 1
V62 tmp55 [ long]: refCnt = 1, refCntWtd = 1
*************** In fgPerBlockLocalVarLiveness()
BB01 USE(5)={V57 V01 V02 V03 V04 } + ByrefExposed + GcHeap
DEF(14)={ V20 V08 V17 V18 V19 V24 V09 V06 V58 V59 V21 V14 V15 V60} + ByrefExposed* + GcHeap*
BB02 USE(1)={V21 }
DEF(2)={ V22 V23}
BB03 USE(1)={V21 }
DEF(2)={ V22 V23}
BB04 USE(7)={V02 V20 V04 V17 V18 V22 V23 } + ByrefExposed + GcHeap
DEF(4)={ V25 V24 V29 V26} + ByrefExposed + GcHeap
BB05 USE(1)={V26 }
DEF(2)={ V27 V28}
BB06 USE(1)={V26 }
DEF(2)={ V27 V28}
BB07 USE(7)={V03 V25 V04 V18 V19 V27 V28 } + ByrefExposed + GcHeap
DEF(4)={ V30 V29 V34 V31} + ByrefExposed + GcHeap
BB08 USE(1)={V31 }
DEF(2)={ V32 V33}
BB09 USE(1)={V31 }
DEF(2)={ V32 V33}
BB10 USE(7)={V57 V01 V30 V04 V19 V32 V33 } + ByrefExposed + GcHeap
DEF(15)={ V42 V17 V18 V19 V39 V40 V41 V34 V46 V10 V61 V43 V36 V37 V62} + ByrefExposed + GcHeap
BB11 USE(1)={V43 }
DEF(2)={ V44 V45}
BB12 USE(1)={V43 }
DEF(2)={ V44 V45}
BB13 USE(7)={V02 V42 V04 V39 V40 V44 V45 } + ByrefExposed + GcHeap
DEF(4)={ V47 V46 V51 V48} + ByrefExposed + GcHeap
BB14 USE(1)={V48 }
DEF(2)={ V49 V50}
BB15 USE(1)={V48 }
DEF(2)={ V49 V50}
BB16 USE(7)={V03 V47 V04 V40 V41 V49 V50 } + ByrefExposed + GcHeap
DEF(4)={ V52 V51 V56 V53} + ByrefExposed + GcHeap
BB17 USE(1)={V53 }
DEF(2)={ V54 V55}
BB18 USE(1)={V53 }
DEF(2)={ V54 V55}
BB19 USE(4)={V52 V41 V54 V55} + ByrefExposed + GcHeap
DEF(1)={ V56 } + ByrefExposed + GcHeap
** Memory liveness computed, GcHeap states and ByrefExposed states match
*************** In fgInterBlockLocalVarLiveness()
BB liveness after fgLiveVarAnalysis():
BB01 IN (5)={V57 V01 V02 V03 V04 } + ByrefExposed + GcHeap
OUT(10)={V57 V01 V02 V03 V20 V04 V17 V18 V19 V21} + ByrefExposed + GcHeap
BB02 IN (10)={V57 V01 V02 V03 V20 V04 V17 V18 V19 V21 } + ByrefExposed + GcHeap
OUT(11)={V57 V01 V02 V03 V20 V04 V17 V18 V19 V22 V23} + ByrefExposed + GcHeap
BB03 IN (10)={V57 V01 V02 V03 V20 V04 V17 V18 V19 V21 } + ByrefExposed + GcHeap
OUT(11)={V57 V01 V02 V03 V20 V04 V17 V18 V19 V22 V23} + ByrefExposed + GcHeap
BB04 IN (11)={V57 V01 V02 V03 V20 V04 V17 V18 V19 V22 V23 } + ByrefExposed + GcHeap
OUT(9)={V57 V01 V02 V03 V25 V04 V18 V19 V26} + ByrefExposed + GcHeap
BB05 IN (9)={V57 V01 V02 V03 V25 V04 V18 V19 V26 } + ByrefExposed + GcHeap
OUT(10)={V57 V01 V02 V03 V25 V04 V18 V19 V27 V28} + ByrefExposed + GcHeap
BB06 IN (9)={V57 V01 V02 V03 V25 V04 V18 V19 V26 } + ByrefExposed + GcHeap
OUT(10)={V57 V01 V02 V03 V25 V04 V18 V19 V27 V28} + ByrefExposed + GcHeap
BB07 IN (10)={V57 V01 V02 V03 V25 V04 V18 V19 V27 V28 } + ByrefExposed + GcHeap
OUT(8)={V57 V01 V02 V03 V30 V04 V19 V31} + ByrefExposed + GcHeap
BB08 IN (8)={V57 V01 V02 V03 V30 V04 V19 V31 } + ByrefExposed + GcHeap
OUT(9)={V57 V01 V02 V03 V30 V04 V19 V32 V33} + ByrefExposed + GcHeap
BB09 IN (8)={V57 V01 V02 V03 V30 V04 V19 V31 } + ByrefExposed + GcHeap
OUT(9)={V57 V01 V02 V03 V30 V04 V19 V32 V33} + ByrefExposed + GcHeap
BB10 IN (9)={V57 V01 V02 V03 V30 V04 V19 V32 V33 } + ByrefExposed + GcHeap
OUT(8)={ V02 V03 V42 V04 V39 V40 V41 V43} + ByrefExposed + GcHeap
BB11 IN (8)={V02 V03 V42 V04 V39 V40 V41 V43 } + ByrefExposed + GcHeap
OUT(9)={V02 V03 V42 V04 V39 V40 V41 V44 V45} + ByrefExposed + GcHeap
BB12 IN (8)={V02 V03 V42 V04 V39 V40 V41 V43 } + ByrefExposed + GcHeap
OUT(9)={V02 V03 V42 V04 V39 V40 V41 V44 V45} + ByrefExposed + GcHeap
BB13 IN (9)={V02 V03 V42 V04 V39 V40 V41 V44 V45 } + ByrefExposed + GcHeap
OUT(6)={ V03 V47 V04 V40 V41 V48} + ByrefExposed + GcHeap
BB14 IN (6)={V03 V47 V04 V40 V41 V48 } + ByrefExposed + GcHeap
OUT(7)={V03 V47 V04 V40 V41 V49 V50} + ByrefExposed + GcHeap
BB15 IN (6)={V03 V47 V04 V40 V41 V48 } + ByrefExposed + GcHeap
OUT(7)={V03 V47 V04 V40 V41 V49 V50} + ByrefExposed + GcHeap
BB16 IN (7)={V03 V47 V04 V40 V41 V49 V50 } + ByrefExposed + GcHeap
OUT(3)={ V52 V41 V53} + ByrefExposed + GcHeap
BB17 IN (3)={V52 V41 V53 } + ByrefExposed + GcHeap
OUT(4)={V52 V41 V54 V55} + ByrefExposed + GcHeap
BB18 IN (3)={V52 V41 V53 } + ByrefExposed + GcHeap
OUT(4)={V52 V41 V54 V55} + ByrefExposed + GcHeap
BB19 IN (4)={V52 V41 V54 V55} + ByrefExposed + GcHeap
OUT(0)={ }
top level assign
removing stmt with no side effects
Removing statement N003 ( 1, 3) [000253] -A------R--- * ASG int
N002 ( 1, 1) [000252] D------N---- +--* LCL_VAR int V24 tmp17
N001 ( 1, 1) [000251] ------------ \--* CNS_INT int 0
in BB01 as useless:
top level assign
removing stmt with no side effects
Removing statement N005 ( 8, 7) [000087] -A------R--- * ASG int
N004 ( 6, 5) [000654] n------N---- +--* IND int
N003 ( 3, 3) [000653] ------------ | \--* ADDR byref
N002 ( 3, 2) [000084] D------N---- | \--* LCL_VAR struct V15 tmp8
N001 ( 1, 1) [000086] ------------ \--* CNS_INT int 0
in BB01 as useless:
top level assign
removing stmt with no side effects
Removing statement N005 ( 9, 8) [000083] -A------R--- * ASG byte
N004 ( 7, 6) [000652] n------N---- +--* IND byte
N003 ( 3, 3) [000651] ------------ | \--* ADDR byref
N002 ( 3, 2) [000080] D------N---- | \--* LCL_VAR struct V14 tmp7
N001 ( 1, 1) [000082] ------------ \--* CNS_INT int 0
in BB01 as useless:
top level assign
removing stmt with no side effects
Removing statement N003 ( 1, 3) [000159] -A------R--- * ASG byref
N002 ( 1, 1) [000158] D------N---- +--* LCL_VAR byref V19 tmp12
N001 ( 1, 1) [000157] ------------ \--* CNS_INT byref 0
in BB01 as useless:
top level assign
removing stmt with no side effects
Removing statement N003 ( 1, 3) [000156] -A------R--- * ASG byref
N002 ( 1, 1) [000155] D------N---- +--* LCL_VAR byref V18 tmp11
N001 ( 1, 1) [000154] ------------ \--* CNS_INT byref 0
in BB01 as useless:
top level assign
removing stmt with no side effects
Removing statement N003 ( 1, 3) [000153] -A------R--- * ASG byref
N002 ( 1, 1) [000152] D------N---- +--* LCL_VAR byref V17 tmp10
N001 ( 1, 1) [000151] ------------ \--* CNS_INT byref 0
in BB01 as useless:
top level assign
removing stmt with no side effects
Removing statement N003 ( 7, 5) [000650] -A------R--- * ASG long
N002 ( 3, 2) [000648] D------N---- +--* LCL_VAR long V60 tmp53
N001 ( 3, 2) [000649] -------N---- \--* LCL_VAR long V59 tmp52
in BB01 as useless:
top level assign
removing stmt with no side effects
Removing statement N003 ( 5, 4) [000647] -A------R--- * ASG long
N002 ( 3, 2) [000645] D------N---- +--* LCL_VAR long V59 tmp52
N001 ( 1, 1) [000646] -------N---- \--* LCL_VAR long V57 tmp50
in BB01 as useless:
top level assign
removing stmt with no side effects
Removing statement N003 ( 1, 3) [000302] -A------R--- * ASG int
N002 ( 1, 1) [000301] D------N---- +--* LCL_VAR int V29 tmp22
N001 ( 1, 1) [000300] ------------ \--* CNS_INT int 0
in BB04 as useless:
top level assign
removing stmt with no side effects
Removing statement N003 ( 1, 3) [000351] -A------R--- * ASG int
N002 ( 1, 1) [000350] D------N---- +--* LCL_VAR int V34 tmp27
N001 ( 1, 1) [000349] ------------ \--* CNS_INT int 0
in BB07 as useless:
top level assign
removing stmt with no side effects
Removing statement N003 ( 1, 3) [000528] -A------R--- * ASG int
N002 ( 1, 1) [000527] D------N---- +--* LCL_VAR int V46 tmp39
N001 ( 1, 1) [000526] ------------ \--* CNS_INT int 0
in BB10 as useless:
top level assign
removing stmt with no side effects
Removing statement N005 ( 8, 7) [000371] -A------R--- * ASG int
N004 ( 6, 5) [000674] n------N---- +--* IND int
N003 ( 3, 3) [000673] ------------ | \--* ADDR byref
N002 ( 3, 2) [000368] D------N---- | \--* LCL_VAR struct V37 tmp30
N001 ( 1, 1) [000370] ------------ \--* CNS_INT int 0
in BB10 as useless:
top level assign
removing stmt with no side effects
Removing statement N005 ( 9, 8) [000367] -A------R--- * ASG byte
N004 ( 7, 6) [000672] n------N---- +--* IND byte
N003 ( 3, 3) [000671] ------------ | \--* ADDR byref
N002 ( 3, 2) [000364] D------N---- | \--* LCL_VAR struct V36 tmp29
N001 ( 1, 1) [000366] ------------ \--* CNS_INT int 0
in BB10 as useless:
top level assign
removing stmt with no side effects
Removing statement N003 ( 1, 3) [000443] -A------R--- * ASG byref
N002 ( 1, 1) [000442] D------N---- +--* LCL_VAR byref V41 tmp34
N001 ( 1, 1) [000441] ------------ \--* CNS_INT byref 0
in BB10 as useless:
top level assign
removing stmt with no side effects
Removing statement N003 ( 1, 3) [000440] -A------R--- * ASG byref
N002 ( 1, 1) [000439] D------N---- +--* LCL_VAR byref V40 tmp33
N001 ( 1, 1) [000438] ------------ \--* CNS_INT byref 0
in BB10 as useless:
top level assign
removing stmt with no side effects
Removing statement N003 ( 1, 3) [000437] -A------R--- * ASG byref
N002 ( 1, 1) [000436] D------N---- +--* LCL_VAR byref V39 tmp32
N001 ( 1, 1) [000435] ------------ \--* CNS_INT byref 0
in BB10 as useless:
top level assign
removing stmt with no side effects
Removing statement N003 ( 7, 5) [000670] -A------R--- * ASG long
N002 ( 3, 2) [000668] D------N---- +--* LCL_VAR long V62 tmp55
N001 ( 3, 2) [000669] -------N---- \--* LCL_VAR long V61 tmp54
in BB10 as useless:
top level assign
removing stmt with no side effects
Removing statement N003 ( 5, 4) [000667] -A------R--- * ASG long
N002 ( 3, 2) [000665] D------N---- +--* LCL_VAR long V61 tmp54
N001 ( 1, 1) [000666] -------N---- \--* LCL_VAR long V57 tmp50
in BB10 as useless:
top level assign
removing stmt with no side effects
Removing statement N003 ( 1, 3) [000168] -A------R--- * ASG byref
N002 ( 1, 1) [000167] D------N---- +--* LCL_VAR byref V19 tmp12
N001 ( 1, 1) [000166] ------------ \--* CNS_INT byref 0
in BB10 as useless:
top level assign
removing stmt with no side effects
Removing statement N003 ( 1, 3) [000165] -A------R--- * ASG byref
N002 ( 1, 1) [000164] D------N---- +--* LCL_VAR byref V18 tmp11
N001 ( 1, 1) [000163] ------------ \--* CNS_INT byref 0
in BB10 as useless:
top level assign
removing stmt with no side effects
Removing statement N003 ( 1, 3) [000162] -A------R--- * ASG byref
N002 ( 1, 1) [000161] D------N---- +--* LCL_VAR byref V17 tmp10
N001 ( 1, 1) [000160] ------------ \--* CNS_INT byref 0
in BB10 as useless:
top level assign
removing stmt with no side effects
Removing statement N003 ( 1, 3) [000577] -A------R--- * ASG int
N002 ( 1, 1) [000576] D------N---- +--* LCL_VAR int V51 tmp44
N001 ( 1, 1) [000575] ------------ \--* CNS_INT int 0
in BB13 as useless:
top level assign
removing stmt with no side effects
Removing statement N003 ( 1, 3) [000626] -A------R--- * ASG int
N002 ( 1, 1) [000625] D------N---- +--* LCL_VAR int V56 tmp49
N001 ( 1, 1) [000624] ------------ \--* CNS_INT int 0
in BB16 as useless:
*************** In SsaBuilder::InsertPhiFunctions()
Inserting phi functions:
Added PHI definition for V54 at start of BB19.
Added PHI definition for V55 at start of BB19.
Added PHI definition for V49 at start of BB16.
Added PHI definition for V50 at start of BB16.
Added PHI definition for V44 at start of BB13.
Added PHI definition for V45 at start of BB13.
Added PHI definition for V32 at start of BB10.
Added PHI definition for V33 at start of BB10.
Added PHI definition for V27 at start of BB07.
Added PHI definition for V28 at start of BB07.
Added PHI definition for V22 at start of BB04.
Added PHI definition for V23 at start of BB04.
*************** In SsaBuilder::RenameVariables()
After fgSsaBuild:
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..040)-> BB03 ( cond ) i label target gcsafe newobj
BB02 [0014] 1 BB01 0.25 [020..021)-> BB04 (always) i gcsafe
BB03 [0015] 1 BB01 0.25 [020..021) i label target gcsafe
BB04 [0016] 2 BB02,BB03 1 [020..021)-> BB06 ( cond ) i label target gcsafe newobj
BB05 [0019] 1 BB04 0.25 [020..021)-> BB07 (always) i gcsafe
BB06 [0020] 1 BB04 0.25 [020..021) i label target gcsafe
BB07 [0021] 2 BB05,BB06 1 [020..021)-> BB09 ( cond ) i label target gcsafe newobj
BB08 [0024] 1 BB07 0.25 [020..021)-> BB10 (always) i gcsafe
BB09 [0025] 1 BB07 0.25 [020..021) i label target gcsafe
BB10 [0026] 2 BB08,BB09 1 [020..033)-> BB12 ( cond ) i label target gcsafe newobj
BB11 [0039] 1 BB10 0.25 [032..033)-> BB13 (always) i gcsafe
BB12 [0040] 1 BB10 0.25 [032..033) i label target gcsafe
BB13 [0041] 2 BB11,BB12 1 [032..033)-> BB15 ( cond ) i label target gcsafe newobj
BB14 [0044] 1 BB13 0.25 [032..033)-> BB16 (always) i gcsafe
BB15 [0045] 1 BB13 0.25 [032..033) i label target gcsafe
BB16 [0046] 2 BB14,BB15 1 [032..033)-> BB18 ( cond ) i label target gcsafe newobj
BB17 [0049] 1 BB16 0.25 [032..033)-> BB19 (always) i gcsafe
BB18 [0050] 1 BB16 0.25 [032..033) i label target gcsafe
BB19 [0051] 2 BB17,BB18 1 [032..033) (return) i label target gcsafe newobj
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..040) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
N005 ( 9, 8) [000003] -A------R--- * ASG byte
N004 ( 7, 6) [000629] n------N---- +--* IND byte
N003 ( 3, 3) [000628] ------------ | \--* ADDR byref
N002 ( 3, 2) [000000] D------N---- | \--* LCL_VAR struct V06 loc0 d:2
N001 ( 1, 1) [000002] ------------ \--* CNS_INT int 0
***** BB01, stmt 2
N005 ( 17, 16) [000008] -AC-----R--- * ASG ref
N004 ( 1, 1) [000007] D------N---- +--* LCL_VAR ref V08 tmp1 d:2
N003 ( 17, 16) [000006] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
N002 ( 3, 10) [000005] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e class
***** BB01, stmt 3
N008 ( 13, 12) [000013] -A-XG---R--- * ASG byte
N007 ( 5, 5) [000012] *--XG--N---- +--* IND byte
N006 ( 2, 2) [000011] -------N---- | \--* ADD byref
N004 ( 1, 1) [000009] ------------ | +--* LCL_VAR ref V08 tmp1 u:2
N005 ( 1, 1) [000010] ------------ | \--* CNS_INT long 8
N003 ( 7, 6) [000632] n----------- \--* IND byte
N002 ( 3, 3) [000631] ------------ \--* ADDR byref
N001 ( 3, 2) [000004] ------------ \--* LCL_VAR struct V06 loc0 u:2 (last use)
***** BB01, stmt 4
N003 ( 5, 4) [000635] -A------R--- * ASG long
N002 ( 3, 2) [000633] D------N---- +--* LCL_VAR long V58 tmp51 d:2
N001 ( 1, 1) [000634] -------N---- \--* LCL_VAR long V57 tmp50 u:1
***** BB01, stmt 5
N016 ( 42, 33) [000060] --CXG------- * CALL nullcheck void BlenderStruct`2.Blend
N006 ( 3, 4) [000638] ------------ arg4 out+20 +--* CAST int <- ubyte <- int
N005 ( 2, 2) [000019] ------------ | \--* LCL_VAR int V03 arg3 u:1
N008 ( 3, 4) [000639] ------------ arg5 out+28 +--* CAST int <- ubyte <- int
N007 ( 2, 2) [000020] ------------ | \--* LCL_VAR int V04 arg4 u:1
N010 ( 7, 5) [000015] ------------ this in rcx +--* BOX ref
N009 ( 1, 1) [000014] ------------ | \--* LCL_VAR ref V08 tmp1 u:2 (last use)
N012 ( 3, 4) [000636] ------------ arg2 in r8 +--* CAST int <- ubyte <- int
N011 ( 2, 2) [000017] ------------ | \--* LCL_VAR int V01 arg1 u:1
N014 ( 3, 4) [000637] ------------ arg3 in r9 +--* CAST int <- ubyte <- int
N013 ( 2, 2) [000018] ------------ | \--* LCL_VAR int V02 arg2 u:1
N015 ( 3, 2) [000059] ------------ arg1 in rdx \--* LCL_VAR long V58 tmp51 u:2 (last use)
***** BB01, stmt 6
N005 ( 17, 16) [000028] -AC-----R--- * ASG ref
N004 ( 1, 1) [000027] D------N---- +--* LCL_VAR ref V09 tmp2 d:2
N003 ( 17, 16) [000026] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
N002 ( 3, 10) [000025] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e token
***** BB01, stmt 7
N002 ( 3, 2) [000147] ---X-------- * IND int
N001 ( 1, 1) [000031] ------------ \--* LCL_VAR ref V09 tmp2 u:2 (last use)
***** BB01, stmt 8
N005 ( 3, 3) [000097] -A------R--- * ASG byref
N004 ( 1, 1) [000096] D------N---- +--* LCL_VAR byref V17 tmp10 d:2
N003 ( 3, 3) [000180] ------------ \--* ADD long
N001 ( 1, 1) [000174] ------------ +--* LCL_VAR long V57 tmp50 u:1
N002 ( 1, 1) [000179] ------------ \--* CNS_INT long 2
***** BB01, stmt 9
N005 ( 3, 3) [000107] -A------R--- * ASG byref
N004 ( 1, 1) [000106] D------N---- +--* LCL_VAR byref V18 tmp11 d:2
N003 ( 3, 3) [000192] ------------ \--* ADD long
N001 ( 1, 1) [000186] ------------ +--* LCL_VAR long V57 tmp50 u:1
N002 ( 1, 1) [000191] ------------ \--* CNS_INT long 1
***** BB01, stmt 10
N003 ( 1, 3) [000117] -A------R--- * ASG byref
N002 ( 1, 1) [000116] D------N---- +--* LCL_VAR byref V19 tmp12 d:2
N001 ( 1, 1) [000198] ------------ \--* LCL_VAR long V57 tmp50 u:1
***** BB01, stmt 11
N004 ( 4, 3) [000250] -A-XG---R--- * ASG ubyte
N003 ( 1, 1) [000249] D------N---- +--* LCL_VAR int V20 tmp13 d:2
N002 ( 4, 3) [000122] *--XG------- \--* IND ubyte
N001 ( 1, 1) [000121] ------------ \--* LCL_VAR byref V17 tmp10 u:2
***** BB01, stmt 12
N011 ( 18, 21) [000216] -A------R--- * ASG int
N010 ( 3, 2) [000215] D------N---- +--* LCL_VAR int V21 tmp14 d:2
N009 ( 14, 18) [000210] ------------ \--* ADD int
N007 ( 12, 13) [000208] ------------ +--* MUL int
N004 ( 5, 6) [000207] ------------ | +--* SUB int
N002 ( 3, 4) [000655] ------------ | | +--* CAST int <- ubyte <- int
N001 ( 2, 2) [000033] ------------ | | | \--* LCL_VAR int V01 arg1 u:1
N003 ( 1, 1) [000206] ------------ | | \--* LCL_VAR int V20 tmp13 u:2
N006 ( 3, 4) [000656] ------------ | \--* CAST int <- ubyte <- int
N005 ( 2, 2) [000036] ------------ | \--* LCL_VAR int V04 arg4 u:1
N008 ( 1, 4) [000209] ------------ \--* CNS_INT int 128
***** BB01, stmt 13
N005 ( 7, 8) [000214] ------------ * JTRUE void
N004 ( 5, 6) [000213] J------N---- \--* GT int
N001 ( 1, 1) [000211] ------------ +--* LCL_VAR int V20 tmp13 u:2
N003 ( 3, 4) [000657] ------------ \--* CAST int <- ubyte <- int
N002 ( 2, 2) [000212] ------------ \--* LCL_VAR int V01 arg1 u:1
------------ BB02 [020..021) -> BB04 (always), preds={BB01} succs={BB04}
***** BB02, stmt 14
N003 ( 7, 5) [000244] -A------R--- * ASG int
N002 ( 3, 2) [000243] D------N---- +--* LCL_VAR int V22 tmp15 d:3
N001 ( 3, 2) [000218] ------------ \--* LCL_VAR int V21 tmp14 u:2 (last use)
***** BB02, stmt 15
N003 ( 5, 4) [000247] -A------R--- * ASG int
N002 ( 3, 2) [000246] D------N---- +--* LCL_VAR int V23 tmp16 d:3
N001 ( 1, 1) [000242] ------------ \--* CNS_INT int 0
------------ BB03 [020..021), preds={BB01} succs={BB04}
***** BB03, stmt 16
N003 ( 7, 5) [000222] -A------R--- * ASG int
N002 ( 3, 2) [000221] D------N---- +--* LCL_VAR int V22 tmp15 d:2
N001 ( 3, 2) [000219] ------------ \--* LCL_VAR int V21 tmp14 u:2 (last use)
***** BB03, stmt 17
N003 ( 5, 4) [000225] -A------R--- * ASG int
N002 ( 3, 2) [000224] D------N---- +--* LCL_VAR int V23 tmp16 d:2
N001 ( 1, 1) [000220] ------------ \--* CNS_INT int 1
------------ BB04 [020..021) -> BB06 (cond), preds={BB02,BB03} succs={BB05,BB06}
***** BB04, stmt 18
N005 ( 0, 0) [000719] -A------R--- * ASG int
N004 ( 0, 0) [000717] D------N---- +--* LCL_VAR int V23 tmp16 d:4
N003 ( 0, 0) [000718] ------------ \--* PHI int
N001 ( 0, 0) [000722] ------------ pred BB02 +--* PHI_ARG int V23 tmp16 u:3
N002 ( 0, 0) [000720] ------------ pred BB03 \--* PHI_ARG int V23 tmp16 u:2
***** BB04, stmt 19
N005 ( 0, 0) [000716] -A------R--- * ASG int
N004 ( 0, 0) [000714] D------N---- +--* LCL_VAR int V22 tmp15 d:4
N003 ( 0, 0) [000715] ------------ \--* PHI int
N001 ( 0, 0) [000723] ------------ pred BB02 +--* PHI_ARG int V22 tmp15 u:3
N002 ( 0, 0) [000721] ------------ pred BB03 \--* PHI_ARG int V22 tmp15 u:2
***** BB04, stmt 20
N005 ( 7, 5) [000231] -A------R--- * ASG int
N004 ( 1, 1) [000230] D------N---- +--* LCL_VAR int V24 tmp17 d:2
N003 ( 7, 5) [000229] ------------ \--* SUB int
N001 ( 3, 2) [000227] ------------ +--* LCL_VAR int V22 tmp15 u:4 (last use)
N002 ( 3, 2) [000228] ------------ \--* LCL_VAR int V23 tmp16 u:4 (last use)
***** BB04, stmt 21
N012 ( 14, 13) [000126] -A-XG---R--- * ASG ubyte
N011 ( 4, 3) [000125] *--X---N---- +--* IND ubyte
N010 ( 1, 1) [000118] ------------ | \--* LCL_VAR byref V17 tmp10 u:2 (last use)
N009 ( 9, 9) [000240] ------------ \--* ADD int
N007 ( 7, 7) [000239] ------------ +--* RSH int
N005 ( 5, 5) [000237] ------------ | +--* ADD int
N003 ( 3, 3) [000235] ------------ | | +--* RSH int
N001 ( 1, 1) [000233] ------------ | | | +--* LCL_VAR int V24 tmp17 u:2
N002 ( 1, 1) [000234] ------------ | | | \--* CNS_INT int 8
N004 ( 1, 1) [000236] ------------ | | \--* LCL_VAR int V24 tmp17 u:2 (last use)
N006 ( 1, 1) [000238] ------------ | \--* CNS_INT int 8
N008 ( 1, 1) [000232] ------------ \--* LCL_VAR int V20 tmp13 u:2 (last use)
***** BB04, stmt 22
N004 ( 4, 3) [000299] -A-XG---R--- * ASG ubyte
N003 ( 1, 1) [000298] D------N---- +--* LCL_VAR int V25 tmp18 d:2
N002 ( 4, 3) [000131] *--XG------- \--* IND ubyte
N001 ( 1, 1) [000130] ------------ \--* LCL_VAR byref V18 tmp11 u:2
***** BB04, stmt 23
N011 ( 18, 21) [000265] -A------R--- * ASG int
N010 ( 3, 2) [000264] D------N---- +--* LCL_VAR int V26 tmp19 d:2
N009 ( 14, 18) [000259] ------------ \--* ADD int
N007 ( 12, 13) [000257] ------------ +--* MUL int
N004 ( 5, 6) [000256] ------------ | +--* SUB int
N002 ( 3, 4) [000658] ------------ | | +--* CAST int <- ubyte <- int
N001 ( 2, 2) [000034] ------------ | | | \--* LCL_VAR int V02 arg2 u:1
N003 ( 1, 1) [000255] ------------ | | \--* LCL_VAR int V25 tmp18 u:2
N006 ( 3, 4) [000659] ------------ | \--* CAST int <- ubyte <- int
N005 ( 2, 2) [000132] ------------ | \--* LCL_VAR int V04 arg4 u:1
N008 ( 1, 4) [000258] ------------ \--* CNS_INT int 128
***** BB04, stmt 24
N005 ( 7, 8) [000263] ------------ * JTRUE void
N004 ( 5, 6) [000262] J------N---- \--* GT int
N001 ( 1, 1) [000260] ------------ +--* LCL_VAR int V25 tmp18 u:2
N003 ( 3, 4) [000660] ------------ \--* CAST int <- ubyte <- int
N002 ( 2, 2) [000261] ------------ \--* LCL_VAR int V02 arg2 u:1
------------ BB05 [020..021) -> BB07 (always), preds={BB04} succs={BB07}
***** BB05, stmt 25
N003 ( 7, 5) [000293] -A------R--- * ASG int
N002 ( 3, 2) [000292] D------N---- +--* LCL_VAR int V27 tmp20 d:3
N001 ( 3, 2) [000267] ------------ \--* LCL_VAR int V26 tmp19 u:2 (last use)
***** BB05, stmt 26
N003 ( 5, 4) [000296] -A------R--- * ASG int
N002 ( 3, 2) [000295] D------N---- +--* LCL_VAR int V28 tmp21 d:3
N001 ( 1, 1) [000291] ------------ \--* CNS_INT int 0
------------ BB06 [020..021), preds={BB04} succs={BB07}
***** BB06, stmt 27
N003 ( 7, 5) [000271] -A------R--- * ASG int
N002 ( 3, 2) [000270] D------N---- +--* LCL_VAR int V27 tmp20 d:2
N001 ( 3, 2) [000268] ------------ \--* LCL_VAR int V26 tmp19 u:2 (last use)
***** BB06, stmt 28
N003 ( 5, 4) [000274] -A------R--- * ASG int
N002 ( 3, 2) [000273] D------N---- +--* LCL_VAR int V28 tmp21 d:2
N001 ( 1, 1) [000269] ------------ \--* CNS_INT int 1
------------ BB07 [020..021) -> BB09 (cond), preds={BB05,BB06} succs={BB08,BB09}
***** BB07, stmt 29
N005 ( 0, 0) [000713] -A------R--- * ASG int
N004 ( 0, 0) [000711] D------N---- +--* LCL_VAR int V28 tmp21 d:4
N003 ( 0, 0) [000712] ------------ \--* PHI int
N001 ( 0, 0) [000726] ------------ pred BB05 +--* PHI_ARG int V28 tmp21 u:3
N002 ( 0, 0) [000724] ------------ pred BB06 \--* PHI_ARG int V28 tmp21 u:2
***** BB07, stmt 30
N005 ( 0, 0) [000710] -A------R--- * ASG int
N004 ( 0, 0) [000708] D------N---- +--* LCL_VAR int V27 tmp20 d:4
N003 ( 0, 0) [000709] ------------ \--* PHI int
N001 ( 0, 0) [000727] ------------ pred BB05 +--* PHI_ARG int V27 tmp20 u:3
N002 ( 0, 0) [000725] ------------ pred BB06 \--* PHI_ARG int V27 tmp20 u:2
***** BB07, stmt 31
N005 ( 7, 5) [000280] -A------R--- * ASG int
N004 ( 1, 1) [000279] D------N---- +--* LCL_VAR int V29 tmp22 d:2
N003 ( 7, 5) [000278] ------------ \--* SUB int
N001 ( 3, 2) [000276] ------------ +--* LCL_VAR int V27 tmp20 u:4 (last use)
N002 ( 3, 2) [000277] ------------ \--* LCL_VAR int V28 tmp21 u:4 (last use)
***** BB07, stmt 32
N012 ( 14, 13) [000136] -A-XG---R--- * ASG ubyte
N011 ( 4, 3) [000135] *--X---N---- +--* IND ubyte
N010 ( 1, 1) [000127] ------------ | \--* LCL_VAR byref V18 tmp11 u:2 (last use)
N009 ( 9, 9) [000289] ------------ \--* ADD int
N007 ( 7, 7) [000288] ------------ +--* RSH int
N005 ( 5, 5) [000286] ------------ | +--* ADD int
N003 ( 3, 3) [000284] ------------ | | +--* RSH int
N001 ( 1, 1) [000282] ------------ | | | +--* LCL_VAR int V29 tmp22 u:2
N002 ( 1, 1) [000283] ------------ | | | \--* CNS_INT int 8
N004 ( 1, 1) [000285] ------------ | | \--* LCL_VAR int V29 tmp22 u:2 (last use)
N006 ( 1, 1) [000287] ------------ | \--* CNS_INT int 8
N008 ( 1, 1) [000281] ------------ \--* LCL_VAR int V25 tmp18 u:2 (last use)
***** BB07, stmt 33
N004 ( 4, 3) [000348] -A-XG---R--- * ASG ubyte
N003 ( 1, 1) [000347] D------N---- +--* LCL_VAR int V30 tmp23 d:2
N002 ( 4, 3) [000141] *--XG------- \--* IND ubyte
N001 ( 1, 1) [000140] ------------ \--* LCL_VAR byref V19 tmp12 u:2
***** BB07, stmt 34
N011 ( 18, 21) [000314] -A------R--- * ASG int
N010 ( 3, 2) [000313] D------N---- +--* LCL_VAR int V31 tmp24 d:2
N009 ( 14, 18) [000308] ------------ \--* ADD int
N007 ( 12, 13) [000306] ------------ +--* MUL int
N004 ( 5, 6) [000305] ------------ | +--* SUB int
N002 ( 3, 4) [000661] ------------ | | +--* CAST int <- ubyte <- int
N001 ( 2, 2) [000035] ------------ | | | \--* LCL_VAR int V03 arg3 u:1
N003 ( 1, 1) [000304] ------------ | | \--* LCL_VAR int V30 tmp23 u:2
N006 ( 3, 4) [000662] ------------ | \--* CAST int <- ubyte <- int
N005 ( 2, 2) [000142] ------------ | \--* LCL_VAR int V04 arg4 u:1
N008 ( 1, 4) [000307] ------------ \--* CNS_INT int 128
***** BB07, stmt 35
N005 ( 7, 8) [000312] ------------ * JTRUE void
N004 ( 5, 6) [000311] J------N---- \--* GT int
N001 ( 1, 1) [000309] ------------ +--* LCL_VAR int V30 tmp23 u:2
N003 ( 3, 4) [000663] ------------ \--* CAST int <- ubyte <- int
N002 ( 2, 2) [000310] ------------ \--* LCL_VAR int V03 arg3 u:1
------------ BB08 [020..021) -> BB10 (always), preds={BB07} succs={BB10}
***** BB08, stmt 36
N003 ( 7, 5) [000342] -A------R--- * ASG int
N002 ( 3, 2) [000341] D------N---- +--* LCL_VAR int V32 tmp25 d:3
N001 ( 3, 2) [000316] ------------ \--* LCL_VAR int V31 tmp24 u:2 (last use)
***** BB08, stmt 37
N003 ( 5, 4) [000345] -A------R--- * ASG int
N002 ( 3, 2) [000344] D------N---- +--* LCL_VAR int V33 tmp26 d:3
N001 ( 1, 1) [000340] ------------ \--* CNS_INT int 0
------------ BB09 [020..021), preds={BB07} succs={BB10}
***** BB09, stmt 38
N003 ( 7, 5) [000320] -A------R--- * ASG int
N002 ( 3, 2) [000319] D------N---- +--* LCL_VAR int V32 tmp25 d:2
N001 ( 3, 2) [000317] ------------ \--* LCL_VAR int V31 tmp24 u:2 (last use)
***** BB09, stmt 39
N003 ( 5, 4) [000323] -A------R--- * ASG int
N002 ( 3, 2) [000322] D------N---- +--* LCL_VAR int V33 tmp26 d:2
N001 ( 1, 1) [000318] ------------ \--* CNS_INT int 1
------------ BB10 [020..033) -> BB12 (cond), preds={BB08,BB09} succs={BB11,BB12}
***** BB10, stmt 40
N005 ( 0, 0) [000707] -A------R--- * ASG int
N004 ( 0, 0) [000705] D------N---- +--* LCL_VAR int V33 tmp26 d:4
N003 ( 0, 0) [000706] ------------ \--* PHI int
N001 ( 0, 0) [000730] ------------ pred BB08 +--* PHI_ARG int V33 tmp26 u:3
N002 ( 0, 0) [000728] ------------ pred BB09 \--* PHI_ARG int V33 tmp26 u:2
***** BB10, stmt 41
N005 ( 0, 0) [000704] -A------R--- * ASG int
N004 ( 0, 0) [000702] D------N---- +--* LCL_VAR int V32 tmp25 d:4
N003 ( 0, 0) [000703] ------------ \--* PHI int
N001 ( 0, 0) [000731] ------------ pred BB08 +--* PHI_ARG int V32 tmp25 u:3
N002 ( 0, 0) [000729] ------------ pred BB09 \--* PHI_ARG int V32 tmp25 u:2
***** BB10, stmt 42
N005 ( 7, 5) [000329] -A------R--- * ASG int
N004 ( 1, 1) [000328] D------N---- +--* LCL_VAR int V34 tmp27 d:2
N003 ( 7, 5) [000327] ------------ \--* SUB int
N001 ( 3, 2) [000325] ------------ +--* LCL_VAR int V32 tmp25 u:4 (last use)
N002 ( 3, 2) [000326] ------------ \--* LCL_VAR int V33 tmp26 u:4 (last use)
***** BB10, stmt 43
N012 ( 14, 13) [000146] -A-XG---R--- * ASG ubyte
N011 ( 4, 3) [000145] *--X---N---- +--* IND ubyte
N010 ( 1, 1) [000137] ------------ | \--* LCL_VAR byref V19 tmp12 u:2 (last use)
N009 ( 9, 9) [000338] ------------ \--* ADD int
N007 ( 7, 7) [000337] ------------ +--* RSH int
N005 ( 5, 5) [000335] ------------ | +--* ADD int
N003 ( 3, 3) [000333] ------------ | | +--* RSH int
N001 ( 1, 1) [000331] ------------ | | | +--* LCL_VAR int V34 tmp27 u:2
N002 ( 1, 1) [000332] ------------ | | | \--* CNS_INT int 8
N004 ( 1, 1) [000334] ------------ | | \--* LCL_VAR int V34 tmp27 u:2 (last use)
N006 ( 1, 1) [000336] ------------ | \--* CNS_INT int 8
N008 ( 1, 1) [000330] ------------ \--* LCL_VAR int V30 tmp23 u:2 (last use)
***** BB10, stmt 44
N005 ( 17, 16) [000044] -AC-----R--- * ASG ref
N004 ( 1, 1) [000043] D------N---- +--* LCL_VAR ref V10 tmp3 d:2
N003 ( 17, 16) [000042] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
N002 ( 3, 10) [000041] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e token
***** BB10, stmt 45
N002 ( 3, 2) [000431] ---X-------- * IND int
N001 ( 1, 1) [000047] ------------ \--* LCL_VAR ref V10 tmp3 u:2 (last use)
***** BB10, stmt 46
N005 ( 3, 3) [000381] -A------R--- * ASG byref
N004 ( 1, 1) [000380] D------N---- +--* LCL_VAR byref V39 tmp32 d:2
N003 ( 3, 3) [000455] ------------ \--* ADD long
N001 ( 1, 1) [000449] ------------ +--* LCL_VAR long V57 tmp50 u:1
N002 ( 1, 1) [000454] ------------ \--* CNS_INT long 2
***** BB10, stmt 47
N005 ( 3, 3) [000391] -A------R--- * ASG byref
N004 ( 1, 1) [000390] D------N---- +--* LCL_VAR byref V40 tmp33 d:2
N003 ( 3, 3) [000467] ------------ \--* ADD long
N001 ( 1, 1) [000461] ------------ +--* LCL_VAR long V57 tmp50 u:1
N002 ( 1, 1) [000466] ------------ \--* CNS_INT long 1
***** BB10, stmt 48
N003 ( 1, 3) [000401] -A------R--- * ASG byref
N002 ( 1, 1) [000400] D------N---- +--* LCL_VAR byref V41 tmp34 d:2
N001 ( 1, 1) [000473] ------------ \--* LCL_VAR long V57 tmp50 u:1 (last use)
***** BB10, stmt 49
N004 ( 4, 3) [000525] -A-XG---R--- * ASG ubyte
N003 ( 1, 1) [000524] D------N---- +--* LCL_VAR int V42 tmp35 d:2
N002 ( 4, 3) [000406] *--XG------- \--* IND ubyte
N001 ( 1, 1) [000405] ------------ \--* LCL_VAR byref V39 tmp32 u:2
***** BB10, stmt 50
N011 ( 18, 21) [000491] -A------R--- * ASG int
N010 ( 3, 2) [000490] D------N---- +--* LCL_VAR int V43 tmp36 d:2
N009 ( 14, 18) [000485] ------------ \--* ADD int
N007 ( 12, 13) [000483] ------------ +--* MUL int
N004 ( 5, 6) [000482] ------------ | +--* SUB int
N002 ( 3, 4) [000675] ------------ | | +--* CAST int <- ubyte <- int
N001 ( 2, 2) [000049] ------------ | | | \--* LCL_VAR int V01 arg1 u:1
N003 ( 1, 1) [000481] ------------ | | \--* LCL_VAR int V42 tmp35 u:2
N006 ( 3, 4) [000676] ------------ | \--* CAST int <- ubyte <- int
N005 ( 2, 2) [000052] ------------ | \--* LCL_VAR int V04 arg4 u:1
N008 ( 1, 4) [000484] ------------ \--* CNS_INT int 128
***** BB10, stmt 51
N005 ( 7, 8) [000489] ------------ * JTRUE void
N004 ( 5, 6) [000488] J------N---- \--* GT int
N001 ( 1, 1) [000486] ------------ +--* LCL_VAR int V42 tmp35 u:2
N003 ( 3, 4) [000677] ------------ \--* CAST int <- ubyte <- int
N002 ( 2, 2) [000487] ------------ \--* LCL_VAR int V01 arg1 u:1 (last use)
------------ BB11 [032..033) -> BB13 (always), preds={BB10} succs={BB13}
***** BB11, stmt 52
N003 ( 7, 5) [000519] -A------R--- * ASG int
N002 ( 3, 2) [000518] D------N---- +--* LCL_VAR int V44 tmp37 d:3
N001 ( 3, 2) [000493] ------------ \--* LCL_VAR int V43 tmp36 u:2 (last use)
***** BB11, stmt 53
N003 ( 5, 4) [000522] -A------R--- * ASG int
N002 ( 3, 2) [000521] D------N---- +--* LCL_VAR int V45 tmp38 d:3
N001 ( 1, 1) [000517] ------------ \--* CNS_INT int 0
------------ BB12 [032..033), preds={BB10} succs={BB13}
***** BB12, stmt 54
N003 ( 7, 5) [000497] -A------R--- * ASG int
N002 ( 3, 2) [000496] D------N---- +--* LCL_VAR int V44 tmp37 d:2
N001 ( 3, 2) [000494] ------------ \--* LCL_VAR int V43 tmp36 u:2 (last use)
***** BB12, stmt 55
N003 ( 5, 4) [000500] -A------R--- * ASG int
N002 ( 3, 2) [000499] D------N---- +--* LCL_VAR int V45 tmp38 d:2
N001 ( 1, 1) [000495] ------------ \--* CNS_INT int 1
------------ BB13 [032..033) -> BB15 (cond), preds={BB11,BB12} succs={BB14,BB15}
***** BB13, stmt 56
N005 ( 0, 0) [000701] -A------R--- * ASG int
N004 ( 0, 0) [000699] D------N---- +--* LCL_VAR int V45 tmp38 d:4
N003 ( 0, 0) [000700] ------------ \--* PHI int
N001 ( 0, 0) [000734] ------------ pred BB11 +--* PHI_ARG int V45 tmp38 u:3
N002 ( 0, 0) [000732] ------------ pred BB12 \--* PHI_ARG int V45 tmp38 u:2
***** BB13, stmt 57
N005 ( 0, 0) [000698] -A------R--- * ASG int
N004 ( 0, 0) [000696] D------N---- +--* LCL_VAR int V44 tmp37 d:4
N003 ( 0, 0) [000697] ------------ \--* PHI int
N001 ( 0, 0) [000735] ------------ pred BB11 +--* PHI_ARG int V44 tmp37 u:3
N002 ( 0, 0) [000733] ------------ pred BB12 \--* PHI_ARG int V44 tmp37 u:2
***** BB13, stmt 58
N005 ( 7, 5) [000506] -A------R--- * ASG int
N004 ( 1, 1) [000505] D------N---- +--* LCL_VAR int V46 tmp39 d:2
N003 ( 7, 5) [000504] ------------ \--* SUB int
N001 ( 3, 2) [000502] ------------ +--* LCL_VAR int V44 tmp37 u:4 (last use)
N002 ( 3, 2) [000503] ------------ \--* LCL_VAR int V45 tmp38 u:4 (last use)
***** BB13, stmt 59
N012 ( 14, 13) [000410] -A-XG---R--- * ASG ubyte
N011 ( 4, 3) [000409] *--X---N---- +--* IND ubyte
N010 ( 1, 1) [000402] ------------ | \--* LCL_VAR byref V39 tmp32 u:2 (last use)
N009 ( 9, 9) [000515] ------------ \--* ADD int
N007 ( 7, 7) [000514] ------------ +--* RSH int
N005 ( 5, 5) [000512] ------------ | +--* ADD int
N003 ( 3, 3) [000510] ------------ | | +--* RSH int
N001 ( 1, 1) [000508] ------------ | | | +--* LCL_VAR int V46 tmp39 u:2
N002 ( 1, 1) [000509] ------------ | | | \--* CNS_INT int 8
N004 ( 1, 1) [000511] ------------ | | \--* LCL_VAR int V46 tmp39 u:2 (last use)
N006 ( 1, 1) [000513] ------------ | \--* CNS_INT int 8
N008 ( 1, 1) [000507] ------------ \--* LCL_VAR int V42 tmp35 u:2 (last use)
***** BB13, stmt 60
N004 ( 4, 3) [000574] -A-XG---R--- * ASG ubyte
N003 ( 1, 1) [000573] D------N---- +--* LCL_VAR int V47 tmp40 d:2
N002 ( 4, 3) [000415] *--XG------- \--* IND ubyte
N001 ( 1, 1) [000414] ------------ \--* LCL_VAR byref V40 tmp33 u:2
***** BB13, stmt 61
N011 ( 18, 21) [000540] -A------R--- * ASG int
N010 ( 3, 2) [000539] D------N---- +--* LCL_VAR int V48 tmp41 d:2
N009 ( 14, 18) [000534] ------------ \--* ADD int
N007 ( 12, 13) [000532] ------------ +--* MUL int
N004 ( 5, 6) [000531] ------------ | +--* SUB int
N002 ( 3, 4) [000678] ------------ | | +--* CAST int <- ubyte <- int
N001 ( 2, 2) [000050] ------------ | | | \--* LCL_VAR int V02 arg2 u:1
N003 ( 1, 1) [000530] ------------ | | \--* LCL_VAR int V47 tmp40 u:2
N006 ( 3, 4) [000679] ------------ | \--* CAST int <- ubyte <- int
N005 ( 2, 2) [000416] ------------ | \--* LCL_VAR int V04 arg4 u:1
N008 ( 1, 4) [000533] ------------ \--* CNS_INT int 128
***** BB13, stmt 62
N005 ( 7, 8) [000538] ------------ * JTRUE void
N004 ( 5, 6) [000537] J------N---- \--* GT int
N001 ( 1, 1) [000535] ------------ +--* LCL_VAR int V47 tmp40 u:2
N003 ( 3, 4) [000680] ------------ \--* CAST int <- ubyte <- int
N002 ( 2, 2) [000536] ------------ \--* LCL_VAR int V02 arg2 u:1 (last use)
------------ BB14 [032..033) -> BB16 (always), preds={BB13} succs={BB16}
***** BB14, stmt 63
N003 ( 7, 5) [000568] -A------R--- * ASG int
N002 ( 3, 2) [000567] D------N---- +--* LCL_VAR int V49 tmp42 d:3
N001 ( 3, 2) [000542] ------------ \--* LCL_VAR int V48 tmp41 u:2 (last use)
***** BB14, stmt 64
N003 ( 5, 4) [000571] -A------R--- * ASG int
N002 ( 3, 2) [000570] D------N---- +--* LCL_VAR int V50 tmp43 d:3
N001 ( 1, 1) [000566] ------------ \--* CNS_INT int 0
------------ BB15 [032..033), preds={BB13} succs={BB16}
***** BB15, stmt 65
N003 ( 7, 5) [000546] -A------R--- * ASG int
N002 ( 3, 2) [000545] D------N---- +--* LCL_VAR int V49 tmp42 d:2
N001 ( 3, 2) [000543] ------------ \--* LCL_VAR int V48 tmp41 u:2 (last use)
***** BB15, stmt 66
N003 ( 5, 4) [000549] -A------R--- * ASG int
N002 ( 3, 2) [000548] D------N---- +--* LCL_VAR int V50 tmp43 d:2
N001 ( 1, 1) [000544] ------------ \--* CNS_INT int 1
------------ BB16 [032..033) -> BB18 (cond), preds={BB14,BB15} succs={BB17,BB18}
***** BB16, stmt 67
N005 ( 0, 0) [000695] -A------R--- * ASG int
N004 ( 0, 0) [000693] D------N---- +--* LCL_VAR int V50 tmp43 d:4
N003 ( 0, 0) [000694] ------------ \--* PHI int
N001 ( 0, 0) [000738] ------------ pred BB14 +--* PHI_ARG int V50 tmp43 u:3
N002 ( 0, 0) [000736] ------------ pred BB15 \--* PHI_ARG int V50 tmp43 u:2
***** BB16, stmt 68
N005 ( 0, 0) [000692] -A------R--- * ASG int
N004 ( 0, 0) [000690] D------N---- +--* LCL_VAR int V49 tmp42 d:4
N003 ( 0, 0) [000691] ------------ \--* PHI int
N001 ( 0, 0) [000739] ------------ pred BB14 +--* PHI_ARG int V49 tmp42 u:3
N002 ( 0, 0) [000737] ------------ pred BB15 \--* PHI_ARG int V49 tmp42 u:2
***** BB16, stmt 69
N005 ( 7, 5) [000555] -A------R--- * ASG int
N004 ( 1, 1) [000554] D------N---- +--* LCL_VAR int V51 tmp44 d:2
N003 ( 7, 5) [000553] ------------ \--* SUB int
N001 ( 3, 2) [000551] ------------ +--* LCL_VAR int V49 tmp42 u:4 (last use)
N002 ( 3, 2) [000552] ------------ \--* LCL_VAR int V50 tmp43 u:4 (last use)
***** BB16, stmt 70
N012 ( 14, 13) [000420] -A-XG---R--- * ASG ubyte
N011 ( 4, 3) [000419] *--X---N---- +--* IND ubyte
N010 ( 1, 1) [000411] ------------ | \--* LCL_VAR byref V40 tmp33 u:2 (last use)
N009 ( 9, 9) [000564] ------------ \--* ADD int
N007 ( 7, 7) [000563] ------------ +--* RSH int
N005 ( 5, 5) [000561] ------------ | +--* ADD int
N003 ( 3, 3) [000559] ------------ | | +--* RSH int
N001 ( 1, 1) [000557] ------------ | | | +--* LCL_VAR int V51 tmp44 u:2
N002 ( 1, 1) [000558] ------------ | | | \--* CNS_INT int 8
N004 ( 1, 1) [000560] ------------ | | \--* LCL_VAR int V51 tmp44 u:2 (last use)
N006 ( 1, 1) [000562] ------------ | \--* CNS_INT int 8
N008 ( 1, 1) [000556] ------------ \--* LCL_VAR int V47 tmp40 u:2 (last use)
***** BB16, stmt 71
N004 ( 4, 3) [000623] -A-XG---R--- * ASG ubyte
N003 ( 1, 1) [000622] D------N---- +--* LCL_VAR int V52 tmp45 d:2
N002 ( 4, 3) [000425] *--XG------- \--* IND ubyte
N001 ( 1, 1) [000424] ------------ \--* LCL_VAR byref V41 tmp34 u:2
***** BB16, stmt 72
N011 ( 18, 21) [000589] -A------R--- * ASG int
N010 ( 3, 2) [000588] D------N---- +--* LCL_VAR int V53 tmp46 d:2
N009 ( 14, 18) [000583] ------------ \--* ADD int
N007 ( 12, 13) [000581] ------------ +--* MUL int
N004 ( 5, 6) [000580] ------------ | +--* SUB int
N002 ( 3, 4) [000681] ------------ | | +--* CAST int <- ubyte <- int
N001 ( 2, 2) [000051] ------------ | | | \--* LCL_VAR int V03 arg3 u:1
N003 ( 1, 1) [000579] ------------ | | \--* LCL_VAR int V52 tmp45 u:2
N006 ( 3, 4) [000682] ------------ | \--* CAST int <- ubyte <- int
N005 ( 2, 2) [000426] ------------ | \--* LCL_VAR int V04 arg4 u:1 (last use)
N008 ( 1, 4) [000582] ------------ \--* CNS_INT int 128
***** BB16, stmt 73
N005 ( 7, 8) [000587] ------------ * JTRUE void
N004 ( 5, 6) [000586] J------N---- \--* GT int
N001 ( 1, 1) [000584] ------------ +--* LCL_VAR int V52 tmp45 u:2
N003 ( 3, 4) [000683] ------------ \--* CAST int <- ubyte <- int
N002 ( 2, 2) [000585] ------------ \--* LCL_VAR int V03 arg3 u:1 (last use)
------------ BB17 [032..033) -> BB19 (always), preds={BB16} succs={BB19}
***** BB17, stmt 74
N003 ( 7, 5) [000617] -A------R--- * ASG int
N002 ( 3, 2) [000616] D------N---- +--* LCL_VAR int V54 tmp47 d:3
N001 ( 3, 2) [000591] ------------ \--* LCL_VAR int V53 tmp46 u:2 (last use)
***** BB17, stmt 75
N003 ( 5, 4) [000620] -A------R--- * ASG int
N002 ( 3, 2) [000619] D------N---- +--* LCL_VAR int V55 tmp48 d:3
N001 ( 1, 1) [000615] ------------ \--* CNS_INT int 0
------------ BB18 [032..033), preds={BB16} succs={BB19}
***** BB18, stmt 76
N003 ( 7, 5) [000595] -A------R--- * ASG int
N002 ( 3, 2) [000594] D------N---- +--* LCL_VAR int V54 tmp47 d:2
N001 ( 3, 2) [000592] ------------ \--* LCL_VAR int V53 tmp46 u:2 (last use)
***** BB18, stmt 77
N003 ( 5, 4) [000598] -A------R--- * ASG int
N002 ( 3, 2) [000597] D------N---- +--* LCL_VAR int V55 tmp48 d:2
N001 ( 1, 1) [000593] ------------ \--* CNS_INT int 1
------------ BB19 [032..033) (return), preds={BB17,BB18} succs={}
***** BB19, stmt 78
N005 ( 0, 0) [000689] -A------R--- * ASG int
N004 ( 0, 0) [000687] D------N---- +--* LCL_VAR int V55 tmp48 d:4
N003 ( 0, 0) [000688] ------------ \--* PHI int
N001 ( 0, 0) [000742] ------------ pred BB17 +--* PHI_ARG int V55 tmp48 u:3
N002 ( 0, 0) [000740] ------------ pred BB18 \--* PHI_ARG int V55 tmp48 u:2
***** BB19, stmt 79
N005 ( 0, 0) [000686] -A------R--- * ASG int
N004 ( 0, 0) [000684] D------N---- +--* LCL_VAR int V54 tmp47 d:4
N003 ( 0, 0) [000685] ------------ \--* PHI int
N001 ( 0, 0) [000743] ------------ pred BB17 +--* PHI_ARG int V54 tmp47 u:3
N002 ( 0, 0) [000741] ------------ pred BB18 \--* PHI_ARG int V54 tmp47 u:2
***** BB19, stmt 80
N005 ( 7, 5) [000604] -A------R--- * ASG int
N004 ( 1, 1) [000603] D------N---- +--* LCL_VAR int V56 tmp49 d:2
N003 ( 7, 5) [000602] ------------ \--* SUB int
N001 ( 3, 2) [000600] ------------ +--* LCL_VAR int V54 tmp47 u:4 (last use)
N002 ( 3, 2) [000601] ------------ \--* LCL_VAR int V55 tmp48 u:4 (last use)
***** BB19, stmt 81
N012 ( 14, 13) [000430] -A-XG---R--- * ASG ubyte
N011 ( 4, 3) [000429] *--X---N---- +--* IND ubyte
N010 ( 1, 1) [000421] ------------ | \--* LCL_VAR byref V41 tmp34 u:2 (last use)
N009 ( 9, 9) [000613] ------------ \--* ADD int
N007 ( 7, 7) [000612] ------------ +--* RSH int
N005 ( 5, 5) [000610] ------------ | +--* ADD int
N003 ( 3, 3) [000608] ------------ | | +--* RSH int
N001 ( 1, 1) [000606] ------------ | | | +--* LCL_VAR int V56 tmp49 u:2
N002 ( 1, 1) [000607] ------------ | | | \--* CNS_INT int 8
N004 ( 1, 1) [000609] ------------ | | \--* LCL_VAR int V56 tmp49 u:2 (last use)
N006 ( 1, 1) [000611] ------------ | \--* CNS_INT int 8
N008 ( 1, 1) [000605] ------------ \--* LCL_VAR int V52 tmp45 u:2 (last use)
***** BB19, stmt 82
N001 ( 0, 0) [000057] ------------ * RETURN void
-------------------------------------------------------------------------------------------------------------------
*************** In optEarlyProp()
*************** In fgValueNumber()
Memory Initial Value in BB01 is: $180
The SSA definition for ByrefExposed (#1) at start of BB01 is $180 {InitVal($46)}
The SSA definition for GcHeap (#1) at start of BB01 is $180 {InitVal($46)}
***** BB01, stmt 1 (before)
N005 ( 9, 8) [000003] -A------R--- * ASG byte
N004 ( 7, 6) [000629] n------N---- +--* IND byte
N003 ( 3, 3) [000628] ------------ | \--* ADDR byref
N002 ( 3, 2) [000000] D------N---- | \--* LCL_VAR struct V06 loc0 d:2
N001 ( 1, 1) [000002] ------------ \--* CNS_INT int 0
N001 [000002] CNS_INT 0 => $44 {IntCns 0}
N003 [000628] ADDR => $200 {PtrToLoc($47, $0)}
VNForCastOper(byte) is $47
Tree [000003] assigned VN to local var V06/2: VN $44 {IntCns 0}
N005 [000003] ASG => $VN.Void
***** BB01, stmt 1 (after)
N005 ( 9, 8) [000003] -A------R--- * ASG byte $VN.Void
N004 ( 7, 6) [000629] n------N---- +--* IND byte $44
N003 ( 3, 3) [000628] ------------ | \--* ADDR byref $200
N002 ( 3, 2) [000000] D------N---- | \--* LCL_VAR struct V06 loc0 d:2
N001 ( 1, 1) [000002] ------------ \--* CNS_INT int 0 $44
---------
***** BB01, stmt 2 (before)
N005 ( 17, 16) [000008] -AC-----R--- * ASG ref
N004 ( 1, 1) [000007] D------N---- +--* LCL_VAR ref V08 tmp1 d:2
N003 ( 17, 16) [000006] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
N002 ( 3, 10) [000005] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e class
N001 [000630] ARGPLACE => $240 {240}
N002 [000005] CNS_INT(h) 0xd1ffab1e class => $280 {Hnd const: 0x00000000D1FFAB1E}
VN of ARGPLACE tree [000630] updated to $280 {Hnd const: 0x00000000D1FFAB1E}
N003 [000006] CALL help => $300 {JitNew($280, $2c0)}
N004 [000007] LCL_VAR V08 tmp1 d:2 => $300 {JitNew($280, $2c0)}
N005 [000008] ASG => $300 {JitNew($280, $2c0)}
***** BB01, stmt 2 (after)
N005 ( 17, 16) [000008] -AC-----R--- * ASG ref $300
N004 ( 1, 1) [000007] D------N---- +--* LCL_VAR ref V08 tmp1 d:2 $300
N003 ( 17, 16) [000006] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $300
N002 ( 3, 10) [000005] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e class $280
---------
***** BB01, stmt 3 (before)
N008 ( 13, 12) [000013] -A-XG---R--- * ASG byte
N007 ( 5, 5) [000012] *--XG--N---- +--* IND byte
N006 ( 2, 2) [000011] -------N---- | \--* ADD byref
N004 ( 1, 1) [000009] ------------ | +--* LCL_VAR ref V08 tmp1 u:2
N005 ( 1, 1) [000010] ------------ | \--* CNS_INT long 8
N003 ( 7, 6) [000632] n----------- \--* IND byte
N002 ( 3, 3) [000631] ------------ \--* ADDR byref
N001 ( 3, 2) [000004] ------------ \--* LCL_VAR struct V06 loc0 u:2 (last use)
N001 [000004] LCL_VAR V06 loc0 u:2 (last use) => $44 {IntCns 0}
N002 [000631] ADDR => $200 {PtrToLoc($47, $0)}
N003 [000632] IND => $340 {340}
N004 [000009] LCL_VAR V08 tmp1 u:2 => $300 {JitNew($280, $2c0)}
N005 [000010] CNS_INT 8 => $141 {LngCns: 8}
N006 [000011] ADD => $201 {ADD($141, $300)}
fgCurMemoryVN[GcHeap] assigned for assign-of-IND at [000013] to VN: $2c2.
N008 [000013] ASG => $VN.Void
***** BB01, stmt 3 (after)
N008 ( 13, 12) [000013] -A-XG---R--- * ASG byte $VN.Void
N007 ( 5, 5) [000012] *--XG--N---- +--* IND byte $340
N006 ( 2, 2) [000011] -------N---- | \--* ADD byref $201
N004 ( 1, 1) [000009] ------------ | +--* LCL_VAR ref V08 tmp1 u:2 $300
N005 ( 1, 1) [000010] ------------ | \--* CNS_INT long 8 $141
N003 ( 7, 6) [000632] n----------- \--* IND byte $340
N002 ( 3, 3) [000631] ------------ \--* ADDR byref $200
N001 ( 3, 2) [000004] ------------ \--* LCL_VAR struct V06 loc0 u:2 (last use) $44
---------
***** BB01, stmt 4 (before)
N003 ( 5, 4) [000635] -A------R--- * ASG long
N002 ( 3, 2) [000633] D------N---- +--* LCL_VAR long V58 tmp51 d:2
N001 ( 1, 1) [000634] -------N---- \--* LCL_VAR long V57 tmp50 u:1
N001 [000634] LCL_VAR V57 tmp50 u:1 => $100 {InitVal($45)}
N002 [000633] LCL_VAR V58 tmp51 d:2 => $100 {InitVal($45)}
N003 [000635] ASG => $100 {InitVal($45)}
***** BB01, stmt 4 (after)
N003 ( 5, 4) [000635] -A------R--- * ASG long $100
N002 ( 3, 2) [000633] D------N---- +--* LCL_VAR long V58 tmp51 d:2 $100
N001 ( 1, 1) [000634] -------N---- \--* LCL_VAR long V57 tmp50 u:1 $100
---------
***** BB01, stmt 5 (before)
N016 ( 42, 33) [000060] --CXG------- * CALL nullcheck void BlenderStruct`2.Blend
N006 ( 3, 4) [000638] ------------ arg4 out+20 +--* CAST int <- ubyte <- int
N005 ( 2, 2) [000019] ------------ | \--* LCL_VAR int V03 arg3 u:1
N008 ( 3, 4) [000639] ------------ arg5 out+28 +--* CAST int <- ubyte <- int
N007 ( 2, 2) [000020] ------------ | \--* LCL_VAR int V04 arg4 u:1
N010 ( 7, 5) [000015] ------------ this in rcx +--* BOX ref
N009 ( 1, 1) [000014] ------------ | \--* LCL_VAR ref V08 tmp1 u:2 (last use)
N012 ( 3, 4) [000636] ------------ arg2 in r8 +--* CAST int <- ubyte <- int
N011 ( 2, 2) [000017] ------------ | \--* LCL_VAR int V01 arg1 u:1
N014 ( 3, 4) [000637] ------------ arg3 in r9 +--* CAST int <- ubyte <- int
N013 ( 2, 2) [000018] ------------ | \--* LCL_VAR int V02 arg2 u:1
N015 ( 3, 2) [000059] ------------ arg1 in rdx \--* LCL_VAR long V58 tmp51 u:2 (last use)
N001 [000640] ARGPLACE => $2c3 {2c3}
N002 [000643] ARGPLACE => $242 {242}
N003 [000641] ARGPLACE => $380 {380}
N004 [000642] ARGPLACE => $381 {381}
N005 [000019] LCL_VAR V03 arg3 u:1 => $82 {InitVal($42)}
VNForCastOper(ubyte) is $48
N006 [000638] CAST => $3c0 {Cast($82, $48)}
N007 [000020] LCL_VAR V04 arg4 u:1 => $83 {InitVal($43)}
VNForCastOper(ubyte) is $48
N008 [000639] CAST => $3c1 {Cast($83, $48)}
N009 [000014] LCL_VAR V08 tmp1 u:2 (last use) => $300 {JitNew($280, $2c0)}
N010 [000015] BOX => $300 {JitNew($280, $2c0)}
N011 [000017] LCL_VAR V01 arg1 u:1 => $80 {InitVal($40)}
VNForCastOper(ubyte) is $48
N012 [000636] CAST => $3c2 {Cast($80, $48)}
N013 [000018] LCL_VAR V02 arg2 u:1 => $81 {InitVal($41)}
VNForCastOper(ubyte) is $48
N014 [000637] CAST => $3c3 {Cast($81, $48)}
N015 [000059] LCL_VAR V58 tmp51 u:2 (last use) => $100 {InitVal($45)}
VN of ARGPLACE tree [000643] updated to $300 {JitNew($280, $2c0)}
VN of ARGPLACE tree [000641] updated to $100 {InitVal($45)}
VN of ARGPLACE tree [000642] updated to $3c2 {Cast($80, $48)}
fgCurMemoryVN[GcHeap] assigned for CALL at [000060] to VN: $2c4.
N016 [000060] CALL nullcheck => $VN.Void
***** BB01, stmt 5 (after)
N016 ( 42, 33) [000060] --CXG------- * CALL nullcheck void BlenderStruct`2.Blend $VN.Void
N006 ( 3, 4) [000638] ------------ arg4 out+20 +--* CAST int <- ubyte <- int $3c0
N005 ( 2, 2) [000019] ------------ | \--* LCL_VAR int V03 arg3 u:1 $82
N008 ( 3, 4) [000639] ------------ arg5 out+28 +--* CAST int <- ubyte <- int $3c1
N007 ( 2, 2) [000020] ------------ | \--* LCL_VAR int V04 arg4 u:1 $83
N010 ( 7, 5) [000015] ------------ this in rcx +--* BOX ref $300
N009 ( 1, 1) [000014] ------------ | \--* LCL_VAR ref V08 tmp1 u:2 (last use) $300
N012 ( 3, 4) [000636] ------------ arg2 in r8 +--* CAST int <- ubyte <- int $3c2
N011 ( 2, 2) [000017] ------------ | \--* LCL_VAR int V01 arg1 u:1 $80
N014 ( 3, 4) [000637] ------------ arg3 in r9 +--* CAST int <- ubyte <- int $3c3
N013 ( 2, 2) [000018] ------------ | \--* LCL_VAR int V02 arg2 u:1 $81
N015 ( 3, 2) [000059] ------------ arg1 in rdx \--* LCL_VAR long V58 tmp51 u:2 (last use) $100
---------
***** BB01, stmt 6 (before)
N005 ( 17, 16) [000028] -AC-----R--- * ASG ref
N004 ( 1, 1) [000027] D------N---- +--* LCL_VAR ref V09 tmp2 d:2
N003 ( 17, 16) [000026] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
N002 ( 3, 10) [000025] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e token
N001 [000644] ARGPLACE => $243 {243}
N002 [000025] CNS_INT(h) 0xd1ffab1e token => $281 {Hnd const: 0x00000000D1FFAB1E}
VN of ARGPLACE tree [000644] updated to $281 {Hnd const: 0x00000000D1FFAB1E}
N003 [000026] CALL help => $301 {JitNew($281, $2c5)}
N004 [000027] LCL_VAR V09 tmp2 d:2 => $301 {JitNew($281, $2c5)}
N005 [000028] ASG => $301 {JitNew($281, $2c5)}
***** BB01, stmt 6 (after)
N005 ( 17, 16) [000028] -AC-----R--- * ASG ref $301
N004 ( 1, 1) [000027] D------N---- +--* LCL_VAR ref V09 tmp2 d:2 $301
N003 ( 17, 16) [000026] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $301
N002 ( 3, 10) [000025] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e token $281
---------
***** BB01, stmt 7 (before)
N002 ( 3, 2) [000147] ---X-------- * IND int
N001 ( 1, 1) [000031] ------------ \--* LCL_VAR ref V09 tmp2 u:2 (last use)
N001 [000031] LCL_VAR V09 tmp2 u:2 (last use) => $301 {JitNew($281, $2c5)}
N002 [000147] IND => $3c4 {norm=$382 {382}, exc=$302 {NullPtrExc($301)}}
***** BB01, stmt 7 (after)
N002 ( 3, 2) [000147] ---X-------- * IND int $3c4
N001 ( 1, 1) [000031] ------------ \--* LCL_VAR ref V09 tmp2 u:2 (last use) $301
---------
***** BB01, stmt 8 (before)
N005 ( 3, 3) [000097] -A------R--- * ASG byref
N004 ( 1, 1) [000096] D------N---- +--* LCL_VAR byref V17 tmp10 d:2
N003 ( 3, 3) [000180] ------------ \--* ADD long
N001 ( 1, 1) [000174] ------------ +--* LCL_VAR long V57 tmp50 u:1
N002 ( 1, 1) [000179] ------------ \--* CNS_INT long 2
N001 [000174] LCL_VAR V57 tmp50 u:1 => $100 {InitVal($45)}
N002 [000179] CNS_INT 2 => $142 {LngCns: 2}
N003 [000180] ADD => $400 {ADD($100, $142)}
VNForCastOper(byref) is $49
N004 [000096] LCL_VAR V17 tmp10 d:2 => $202 {Cast($400, $49)}
N005 [000097] ASG => $202 {Cast($400, $49)}
***** BB01, stmt 8 (after)
N005 ( 3, 3) [000097] -A------R--- * ASG byref $202
N004 ( 1, 1) [000096] D------N---- +--* LCL_VAR byref V17 tmp10 d:2 $202
N003 ( 3, 3) [000180] ------------ \--* ADD long $400
N001 ( 1, 1) [000174] ------------ +--* LCL_VAR long V57 tmp50 u:1 $100
N002 ( 1, 1) [000179] ------------ \--* CNS_INT long 2 $142
---------
***** BB01, stmt 9 (before)
N005 ( 3, 3) [000107] -A------R--- * ASG byref
N004 ( 1, 1) [000106] D------N---- +--* LCL_VAR byref V18 tmp11 d:2
N003 ( 3, 3) [000192] ------------ \--* ADD long
N001 ( 1, 1) [000186] ------------ +--* LCL_VAR long V57 tmp50 u:1
N002 ( 1, 1) [000191] ------------ \--* CNS_INT long 1
N001 [000186] LCL_VAR V57 tmp50 u:1 => $100 {InitVal($45)}
N002 [000191] CNS_INT 1 => $143 {LngCns: 1}
N003 [000192] ADD => $401 {ADD($100, $143)}
VNForCastOper(byref) is $49
N004 [000106] LCL_VAR V18 tmp11 d:2 => $203 {Cast($401, $49)}
N005 [000107] ASG => $203 {Cast($401, $49)}
***** BB01, stmt 9 (after)
N005 ( 3, 3) [000107] -A------R--- * ASG byref $203
N004 ( 1, 1) [000106] D------N---- +--* LCL_VAR byref V18 tmp11 d:2 $203
N003 ( 3, 3) [000192] ------------ \--* ADD long $401
N001 ( 1, 1) [000186] ------------ +--* LCL_VAR long V57 tmp50 u:1 $100
N002 ( 1, 1) [000191] ------------ \--* CNS_INT long 1 $143
---------
***** BB01, stmt 10 (before)
N003 ( 1, 3) [000117] -A------R--- * ASG byref
N002 ( 1, 1) [000116] D------N---- +--* LCL_VAR byref V19 tmp12 d:2
N001 ( 1, 1) [000198] ------------ \--* LCL_VAR long V57 tmp50 u:1
N001 [000198] LCL_VAR V57 tmp50 u:1 => $100 {InitVal($45)}
VNForCastOper(byref) is $49
N002 [000116] LCL_VAR V19 tmp12 d:2 => $204 {Cast($100, $49)}
N003 [000117] ASG => $204 {Cast($100, $49)}
***** BB01, stmt 10 (after)
N003 ( 1, 3) [000117] -A------R--- * ASG byref $204
N002 ( 1, 1) [000116] D------N---- +--* LCL_VAR byref V19 tmp12 d:2 $204
N001 ( 1, 1) [000198] ------------ \--* LCL_VAR long V57 tmp50 u:1 $100
---------
***** BB01, stmt 11 (before)
N004 ( 4, 3) [000250] -A-XG---R--- * ASG ubyte
N003 ( 1, 1) [000249] D------N---- +--* LCL_VAR int V20 tmp13 d:2
N002 ( 4, 3) [000122] *--XG------- \--* IND ubyte
N001 ( 1, 1) [000121] ------------ \--* LCL_VAR byref V17 tmp10 u:2
N001 [000121] LCL_VAR V17 tmp10 u:2 => $202 {Cast($400, $49)}
N002 [000122] IND => <l:$501 {norm=$480 {ByrefExposedLoad($43, $202, $2c4)}, exc=$303 {NullPtrExc($202)}}, c:$500 {norm=$4c0 {4c0}, exc=$303 {NullPtrExc($202)}}>
VNForCastOper(int, unsignedSrc) is $4a
N003 [000249] LCL_VAR V20 tmp13 d:2 => <l:$3c6 {Cast($480, $4a)}, c:$3c5 {Cast($4c0, $4a)}>
N004 [000250] ASG => <l:$3c8 {norm=$3c6 {Cast($480, $4a)}, exc=$303 {NullPtrExc($202)}}, c:$3c7 {norm=$3c5 {Cast($4c0, $4a)}, exc=$303 {NullPtrExc($202)}}>
***** BB01, stmt 11 (after)
N004 ( 4, 3) [000250] -A-XG---R--- * ASG ubyte <l:$3c8, c:$3c7>
N003 ( 1, 1) [000249] D------N---- +--* LCL_VAR int V20 tmp13 d:2 <l:$3c6, c:$3c5>
N002 ( 4, 3) [000122] *--XG------- \--* IND ubyte <l:$501, c:$500>
N001 ( 1, 1) [000121] ------------ \--* LCL_VAR byref V17 tmp10 u:2 $202
---------
***** BB01, stmt 12 (before)
N011 ( 18, 21) [000216] -A------R--- * ASG int
N010 ( 3, 2) [000215] D------N---- +--* LCL_VAR int V21 tmp14 d:2
N009 ( 14, 18) [000210] ------------ \--* ADD int
N007 ( 12, 13) [000208] ------------ +--* MUL int
N004 ( 5, 6) [000207] ------------ | +--* SUB int
N002 ( 3, 4) [000655] ------------ | | +--* CAST int <- ubyte <- int
N001 ( 2, 2) [000033] ------------ | | | \--* LCL_VAR int V01 arg1 u:1
N003 ( 1, 1) [000206] ------------ | | \--* LCL_VAR int V20 tmp13 u:2
N006 ( 3, 4) [000656] ------------ | \--* CAST int <- ubyte <- int
N005 ( 2, 2) [000036] ------------ | \--* LCL_VAR int V04 arg4 u:1
N008 ( 1, 4) [000209] ------------ \--* CNS_INT int 128
N001 [000033] LCL_VAR V01 arg1 u:1 => $80 {InitVal($40)}
VNForCastOper(ubyte) is $48
N002 [000655] CAST => $3c2 {Cast($80, $48)}
N003 [000206] LCL_VAR V20 tmp13 u:2 => <l:$3c6 {Cast($480, $4a)}, c:$3c5 {Cast($4c0, $4a)}>
N004 [000207] SUB => <l:$3ca {SUB($3c2, $3c6)}, c:$3c9 {SUB($3c2, $3c5)}>
N005 [000036] LCL_VAR V04 arg4 u:1 => $83 {InitVal($43)}
VNForCastOper(ubyte) is $48
N006 [000656] CAST => $3c1 {Cast($83, $48)}
N007 [000208] MUL => <l:$3cc {MUL($3c1, $3ca)}, c:$3cb {MUL($3c1, $3c9)}>
N008 [000209] CNS_INT 128 => $4b {IntCns 128}
N009 [000210] ADD => <l:$3ce {ADD($4b, $3cc)}, c:$3cd {ADD($4b, $3cb)}>
N010 [000215] LCL_VAR V21 tmp14 d:2 => <l:$3ce {ADD($4b, $3cc)}, c:$3cd {ADD($4b, $3cb)}>
N011 [000216] ASG => <l:$3ce {ADD($4b, $3cc)}, c:$3cd {ADD($4b, $3cb)}>
***** BB01, stmt 12 (after)
N011 ( 18, 21) [000216] -A------R--- * ASG int <l:$3ce, c:$3cd>
N010 ( 3, 2) [000215] D------N---- +--* LCL_VAR int V21 tmp14 d:2 <l:$3ce, c:$3cd>
N009 ( 14, 18) [000210] ------------ \--* ADD int <l:$3ce, c:$3cd>
N007 ( 12, 13) [000208] ------------ +--* MUL int <l:$3cc, c:$3cb>
N004 ( 5, 6) [000207] ------------ | +--* SUB int <l:$3ca, c:$3c9>
N002 ( 3, 4) [000655] ------------ | | +--* CAST int <- ubyte <- int $3c2
N001 ( 2, 2) [000033] ------------ | | | \--* LCL_VAR int V01 arg1 u:1 $80
N003 ( 1, 1) [000206] ------------ | | \--* LCL_VAR int V20 tmp13 u:2 <l:$3c6, c:$3c5>
N006 ( 3, 4) [000656] ------------ | \--* CAST int <- ubyte <- int $3c1
N005 ( 2, 2) [000036] ------------ | \--* LCL_VAR int V04 arg4 u:1 $83
N008 ( 1, 4) [000209] ------------ \--* CNS_INT int 128 $4b
---------
***** BB01, stmt 13 (before)
N005 ( 7, 8) [000214] ------------ * JTRUE void
N004 ( 5, 6) [000213] J------N---- \--* GT int
N001 ( 1, 1) [000211] ------------ +--* LCL_VAR int V20 tmp13 u:2
N003 ( 3, 4) [000657] ------------ \--* CAST int <- ubyte <- int
N002 ( 2, 2) [000212] ------------ \--* LCL_VAR int V01 arg1 u:1
N001 [000211] LCL_VAR V20 tmp13 u:2 => <l:$3c6 {Cast($480, $4a)}, c:$3c5 {Cast($4c0, $4a)}>
N002 [000212] LCL_VAR V01 arg1 u:1 => $80 {InitVal($40)}
VNForCastOper(ubyte) is $48
N003 [000657] CAST => $3c2 {Cast($80, $48)}
N004 [000213] GT => <l:$3d0 {GT($3c6, $3c2)}, c:$3cf {GT($3c5, $3c2)}>
***** BB01, stmt 13 (after)
N005 ( 7, 8) [000214] ------------ * JTRUE void
N004 ( 5, 6) [000213] J------N---- \--* GT int <l:$3d0, c:$3cf>
N001 ( 1, 1) [000211] ------------ +--* LCL_VAR int V20 tmp13 u:2 <l:$3c6, c:$3c5>
N003 ( 3, 4) [000657] ------------ \--* CAST int <- ubyte <- int $3c2
N002 ( 2, 2) [000212] ------------ \--* LCL_VAR int V01 arg1 u:1 $80
finish(BB01).
Succ(BB02).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB03).
Not yet completed.
All preds complete, adding to allDone.
The SSA definition for ByrefExposed (#2) at start of BB03 is $2c4 {2c4}
The SSA definition for GcHeap (#2) at start of BB03 is $2c4 {2c4}
***** BB03, stmt 16 (before)
N003 ( 7, 5) [000222] -A------R--- * ASG int
N002 ( 3, 2) [000221] D------N---- +--* LCL_VAR int V22 tmp15 d:2
N001 ( 3, 2) [000219] ------------ \--* LCL_VAR int V21 tmp14 u:2 (last use)
N001 [000219] LCL_VAR V21 tmp14 u:2 (last use) => <l:$3ce {ADD($4b, $3cc)}, c:$3cd {ADD($4b, $3cb)}>
N002 [000221] LCL_VAR V22 tmp15 d:2 => <l:$3ce {ADD($4b, $3cc)}, c:$3cd {ADD($4b, $3cb)}>
N003 [000222] ASG => <l:$3ce {ADD($4b, $3cc)}, c:$3cd {ADD($4b, $3cb)}>
***** BB03, stmt 16 (after)
N003 ( 7, 5) [000222] -A------R--- * ASG int <l:$3ce, c:$3cd>
N002 ( 3, 2) [000221] D------N---- +--* LCL_VAR int V22 tmp15 d:2 <l:$3ce, c:$3cd>
N001 ( 3, 2) [000219] ------------ \--* LCL_VAR int V21 tmp14 u:2 (last use) <l:$3ce, c:$3cd>
---------
***** BB03, stmt 17 (before)
N003 ( 5, 4) [000225] -A------R--- * ASG int
N002 ( 3, 2) [000224] D------N---- +--* LCL_VAR int V23 tmp16 d:2
N001 ( 1, 1) [000220] ------------ \--* CNS_INT int 1
N001 [000220] CNS_INT 1 => $40 {IntCns 1}
N002 [000224] LCL_VAR V23 tmp16 d:2 => $40 {IntCns 1}
N003 [000225] ASG => $40 {IntCns 1}
***** BB03, stmt 17 (after)
N003 ( 5, 4) [000225] -A------R--- * ASG int $40
N002 ( 3, 2) [000224] D------N---- +--* LCL_VAR int V23 tmp16 d:2 $40
N001 ( 1, 1) [000220] ------------ \--* CNS_INT int 1 $40
finish(BB03).
Succ(BB04).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
Was necessary.
The SSA definition for ByrefExposed (#2) at start of BB02 is $2c4 {2c4}
The SSA definition for GcHeap (#2) at start of BB02 is $2c4 {2c4}
***** BB02, stmt 14 (before)
N003 ( 7, 5) [000244] -A------R--- * ASG int
N002 ( 3, 2) [000243] D------N---- +--* LCL_VAR int V22 tmp15 d:3
N001 ( 3, 2) [000218] ------------ \--* LCL_VAR int V21 tmp14 u:2 (last use)
N001 [000218] LCL_VAR V21 tmp14 u:2 (last use) => <l:$3ce {ADD($4b, $3cc)}, c:$3cd {ADD($4b, $3cb)}>
N002 [000243] LCL_VAR V22 tmp15 d:3 => <l:$3ce {ADD($4b, $3cc)}, c:$3cd {ADD($4b, $3cb)}>
N003 [000244] ASG => <l:$3ce {ADD($4b, $3cc)}, c:$3cd {ADD($4b, $3cb)}>
***** BB02, stmt 14 (after)
N003 ( 7, 5) [000244] -A------R--- * ASG int <l:$3ce, c:$3cd>
N002 ( 3, 2) [000243] D------N---- +--* LCL_VAR int V22 tmp15 d:3 <l:$3ce, c:$3cd>
N001 ( 3, 2) [000218] ------------ \--* LCL_VAR int V21 tmp14 u:2 (last use) <l:$3ce, c:$3cd>
---------
***** BB02, stmt 15 (before)
N003 ( 5, 4) [000247] -A------R--- * ASG int
N002 ( 3, 2) [000246] D------N---- +--* LCL_VAR int V23 tmp16 d:3
N001 ( 1, 1) [000242] ------------ \--* CNS_INT int 0
N001 [000242] CNS_INT 0 => $44 {IntCns 0}
N002 [000246] LCL_VAR V23 tmp16 d:3 => $44 {IntCns 0}
N003 [000247] ASG => $44 {IntCns 0}
***** BB02, stmt 15 (after)
N003 ( 5, 4) [000247] -A------R--- * ASG int $44
N002 ( 3, 2) [000246] D------N---- +--* LCL_VAR int V23 tmp16 d:3 $44
N001 ( 1, 1) [000242] ------------ \--* CNS_INT int 0 $44
finish(BB02).
Succ(BB04).
Not yet completed.
All preds complete, adding to allDone.
SSA PHI definition: set VN of local 23/4 to $540 {PhiDef($17, $4, $3d1)} .
SSA PHI definition: set VN of local 22/4 to <l:$3ce {ADD($4b, $3cc)}, c:$3cd {ADD($4b, $3cb)}> (all same).
The SSA definition for ByrefExposed (#2) at start of BB04 is $2c4 {2c4}
The SSA definition for GcHeap (#2) at start of BB04 is $2c4 {2c4}
***** BB04, stmt 18 (before)
N005 ( 7, 5) [000231] -A------R--- * ASG int
N004 ( 1, 1) [000230] D------N---- +--* LCL_VAR int V24 tmp17 d:2
N003 ( 7, 5) [000229] ------------ \--* SUB int
N001 ( 3, 2) [000227] ------------ +--* LCL_VAR int V22 tmp15 u:4 (last use)
N002 ( 3, 2) [000228] ------------ \--* LCL_VAR int V23 tmp16 u:4 (last use)
N001 [000227] LCL_VAR V22 tmp15 u:4 (last use) => <l:$3ce {ADD($4b, $3cc)}, c:$3cd {ADD($4b, $3cb)}>
N002 [000228] LCL_VAR V23 tmp16 u:4 (last use) => $540 {PhiDef($17, $4, $3d1)}
N003 [000229] SUB => <l:$3d3 {SUB($3ce, $540)}, c:$3d2 {SUB($3cd, $540)}>
N004 [000230] LCL_VAR V24 tmp17 d:2 => <l:$3d3 {SUB($3ce, $540)}, c:$3d2 {SUB($3cd, $540)}>
N005 [000231] ASG => <l:$3d3 {SUB($3ce, $540)}, c:$3d2 {SUB($3cd, $540)}>
***** BB04, stmt 18 (after)
N005 ( 7, 5) [000231] -A------R--- * ASG int <l:$3d3, c:$3d2>
N004 ( 1, 1) [000230] D------N---- +--* LCL_VAR int V24 tmp17 d:2 <l:$3d3, c:$3d2>
N003 ( 7, 5) [000229] ------------ \--* SUB int <l:$3d3, c:$3d2>
N001 ( 3, 2) [000227] ------------ +--* LCL_VAR int V22 tmp15 u:4 (last use) <l:$3ce, c:$3cd>
N002 ( 3, 2) [000228] ------------ \--* LCL_VAR int V23 tmp16 u:4 (last use) $540
---------
***** BB04, stmt 19 (before)
N012 ( 14, 13) [000126] -A-XG---R--- * ASG ubyte
N011 ( 4, 3) [000125] *--X---N---- +--* IND ubyte
N010 ( 1, 1) [000118] ------------ | \--* LCL_VAR byref V17 tmp10 u:2 (last use)
N009 ( 9, 9) [000240] ------------ \--* ADD int
N007 ( 7, 7) [000239] ------------ +--* RSH int
N005 ( 5, 5) [000237] ------------ | +--* ADD int
N003 ( 3, 3) [000235] ------------ | | +--* RSH int
N001 ( 1, 1) [000233] ------------ | | | +--* LCL_VAR int V24 tmp17 u:2
N002 ( 1, 1) [000234] ------------ | | | \--* CNS_INT int 8
N004 ( 1, 1) [000236] ------------ | | \--* LCL_VAR int V24 tmp17 u:2 (last use)
N006 ( 1, 1) [000238] ------------ | \--* CNS_INT int 8
N008 ( 1, 1) [000232] ------------ \--* LCL_VAR int V20 tmp13 u:2 (last use)
N001 [000233] LCL_VAR V24 tmp17 u:2 => <l:$3d3 {SUB($3ce, $540)}, c:$3d2 {SUB($3cd, $540)}>
N002 [000234] CNS_INT 8 => $48 {IntCns 8}
N003 [000235] RSH => <l:$3d5 {RSH($3d3, $48)}, c:$3d4 {RSH($3d2, $48)}>
N004 [000236] LCL_VAR V24 tmp17 u:2 (last use) => <l:$3d3 {SUB($3ce, $540)}, c:$3d2 {SUB($3cd, $540)}>
N005 [000237] ADD => <l:$3d7 {ADD($3d3, $3d5)}, c:$3d6 {ADD($3d2, $3d4)}>
N006 [000238] CNS_INT 8 => $48 {IntCns 8}
N007 [000239] RSH => <l:$3d9 {RSH($3d7, $48)}, c:$3d8 {RSH($3d6, $48)}>
N008 [000232] LCL_VAR V20 tmp13 u:2 (last use) => <l:$3c6 {Cast($480, $4a)}, c:$3c5 {Cast($4c0, $4a)}>
N009 [000240] ADD => <l:$3db {ADD($3c6, $3d9)}, c:$3da {ADD($3c5, $3d8)}>
N010 [000118] LCL_VAR V17 tmp10 u:2 (last use) => $202 {Cast($400, $49)}
VNForCastOper(ubyte) is $48
fgCurMemoryVN[GcHeap] assigned for assign-of-IND at [000126] to VN: $2c7.
N012 [000126] ASG => $VN.Void
***** BB04, stmt 19 (after)
N012 ( 14, 13) [000126] -A-XG---R--- * ASG ubyte $VN.Void
N011 ( 4, 3) [000125] *--X---N---- +--* IND ubyte <l:$3dd, c:$3dc>
N010 ( 1, 1) [000118] ------------ | \--* LCL_VAR byref V17 tmp10 u:2 (last use) $202
N009 ( 9, 9) [000240] ------------ \--* ADD int <l:$3db, c:$3da>
N007 ( 7, 7) [000239] ------------ +--* RSH int <l:$3d9, c:$3d8>
N005 ( 5, 5) [000237] ------------ | +--* ADD int <l:$3d7, c:$3d6>
N003 ( 3, 3) [000235] ------------ | | +--* RSH int <l:$3d5, c:$3d4>
N001 ( 1, 1) [000233] ------------ | | | +--* LCL_VAR int V24 tmp17 u:2 <l:$3d3, c:$3d2>
N002 ( 1, 1) [000234] ------------ | | | \--* CNS_INT int 8 $48
N004 ( 1, 1) [000236] ------------ | | \--* LCL_VAR int V24 tmp17 u:2 (last use) <l:$3d3, c:$3d2>
N006 ( 1, 1) [000238] ------------ | \--* CNS_INT int 8 $48
N008 ( 1, 1) [000232] ------------ \--* LCL_VAR int V20 tmp13 u:2 (last use) <l:$3c6, c:$3c5>
---------
***** BB04, stmt 20 (before)
N004 ( 4, 3) [000299] -A-XG---R--- * ASG ubyte
N003 ( 1, 1) [000298] D------N---- +--* LCL_VAR int V25 tmp18 d:2
N002 ( 4, 3) [000131] *--XG------- \--* IND ubyte
N001 ( 1, 1) [000130] ------------ \--* LCL_VAR byref V18 tmp11 u:2
N001 [000130] LCL_VAR V18 tmp11 u:2 => $203 {Cast($401, $49)}
N002 [000131] IND => <l:$503 {norm=$481 {ByrefExposedLoad($43, $203, $2c7)}, exc=$304 {NullPtrExc($203)}}, c:$502 {norm=$4c1 {4c1}, exc=$304 {NullPtrExc($203)}}>
VNForCastOper(int, unsignedSrc) is $4a
N003 [000298] LCL_VAR V25 tmp18 d:2 => <l:$3df {Cast($481, $4a)}, c:$3de {Cast($4c1, $4a)}>
N004 [000299] ASG => <l:$3e1 {norm=$3df {Cast($481, $4a)}, exc=$304 {NullPtrExc($203)}}, c:$3e0 {norm=$3de {Cast($4c1, $4a)}, exc=$304 {NullPtrExc($203)}}>
***** BB04, stmt 20 (after)
N004 ( 4, 3) [000299] -A-XG---R--- * ASG ubyte <l:$3e1, c:$3e0>
N003 ( 1, 1) [000298] D------N---- +--* LCL_VAR int V25 tmp18 d:2 <l:$3df, c:$3de>
N002 ( 4, 3) [000131] *--XG------- \--* IND ubyte <l:$503, c:$502>
N001 ( 1, 1) [000130] ------------ \--* LCL_VAR byref V18 tmp11 u:2 $203
---------
***** BB04, stmt 21 (before)
N011 ( 18, 21) [000265] -A------R--- * ASG int
N010 ( 3, 2) [000264] D------N---- +--* LCL_VAR int V26 tmp19 d:2
N009 ( 14, 18) [000259] ------------ \--* ADD int
N007 ( 12, 13) [000257] ------------ +--* MUL int
N004 ( 5, 6) [000256] ------------ | +--* SUB int
N002 ( 3, 4) [000658] ------------ | | +--* CAST int <- ubyte <- int
N001 ( 2, 2) [000034] ------------ | | | \--* LCL_VAR int V02 arg2 u:1
N003 ( 1, 1) [000255] ------------ | | \--* LCL_VAR int V25 tmp18 u:2
N006 ( 3, 4) [000659] ------------ | \--* CAST int <- ubyte <- int
N005 ( 2, 2) [000132] ------------ | \--* LCL_VAR int V04 arg4 u:1
N008 ( 1, 4) [000258] ------------ \--* CNS_INT int 128
N001 [000034] LCL_VAR V02 arg2 u:1 => $81 {InitVal($41)}
VNForCastOper(ubyte) is $48
N002 [000658] CAST => $3c3 {Cast($81, $48)}
N003 [000255] LCL_VAR V25 tmp18 u:2 => <l:$3df {Cast($481, $4a)}, c:$3de {Cast($4c1, $4a)}>
N004 [000256] SUB => <l:$3e3 {SUB($3c3, $3df)}, c:$3e2 {SUB($3c3, $3de)}>
N005 [000132] LCL_VAR V04 arg4 u:1 => $83 {InitVal($43)}
VNForCastOper(ubyte) is $48
N006 [000659] CAST => $3c1 {Cast($83, $48)}
N007 [000257] MUL => <l:$3e5 {MUL($3c1, $3e3)}, c:$3e4 {MUL($3c1, $3e2)}>
N008 [000258] CNS_INT 128 => $4b {IntCns 128}
N009 [000259] ADD => <l:$3e7 {ADD($4b, $3e5)}, c:$3e6 {ADD($4b, $3e4)}>
N010 [000264] LCL_VAR V26 tmp19 d:2 => <l:$3e7 {ADD($4b, $3e5)}, c:$3e6 {ADD($4b, $3e4)}>
N011 [000265] ASG => <l:$3e7 {ADD($4b, $3e5)}, c:$3e6 {ADD($4b, $3e4)}>
***** BB04, stmt 21 (after)
N011 ( 18, 21) [000265] -A------R--- * ASG int <l:$3e7, c:$3e6>
N010 ( 3, 2) [000264] D------N---- +--* LCL_VAR int V26 tmp19 d:2 <l:$3e7, c:$3e6>
N009 ( 14, 18) [000259] ------------ \--* ADD int <l:$3e7, c:$3e6>
N007 ( 12, 13) [000257] ------------ +--* MUL int <l:$3e5, c:$3e4>
N004 ( 5, 6) [000256] ------------ | +--* SUB int <l:$3e3, c:$3e2>
N002 ( 3, 4) [000658] ------------ | | +--* CAST int <- ubyte <- int $3c3
N001 ( 2, 2) [000034] ------------ | | | \--* LCL_VAR int V02 arg2 u:1 $81
N003 ( 1, 1) [000255] ------------ | | \--* LCL_VAR int V25 tmp18 u:2 <l:$3df, c:$3de>
N006 ( 3, 4) [000659] ------------ | \--* CAST int <- ubyte <- int $3c1
N005 ( 2, 2) [000132] ------------ | \--* LCL_VAR int V04 arg4 u:1 $83
N008 ( 1, 4) [000258] ------------ \--* CNS_INT int 128 $4b
---------
***** BB04, stmt 22 (before)
N005 ( 7, 8) [000263] ------------ * JTRUE void
N004 ( 5, 6) [000262] J------N---- \--* GT int
N001 ( 1, 1) [000260] ------------ +--* LCL_VAR int V25 tmp18 u:2
N003 ( 3, 4) [000660] ------------ \--* CAST int <- ubyte <- int
N002 ( 2, 2) [000261] ------------ \--* LCL_VAR int V02 arg2 u:1
N001 [000260] LCL_VAR V25 tmp18 u:2 => <l:$3df {Cast($481, $4a)}, c:$3de {Cast($4c1, $4a)}>
N002 [000261] LCL_VAR V02 arg2 u:1 => $81 {InitVal($41)}
VNForCastOper(ubyte) is $48
N003 [000660] CAST => $3c3 {Cast($81, $48)}
N004 [000262] GT => <l:$3e9 {GT($3df, $3c3)}, c:$3e8 {GT($3de, $3c3)}>
***** BB04, stmt 22 (after)
N005 ( 7, 8) [000263] ------------ * JTRUE void
N004 ( 5, 6) [000262] J------N---- \--* GT int <l:$3e9, c:$3e8>
N001 ( 1, 1) [000260] ------------ +--* LCL_VAR int V25 tmp18 u:2 <l:$3df, c:$3de>
N003 ( 3, 4) [000660] ------------ \--* CAST int <- ubyte <- int $3c3
N002 ( 2, 2) [000261] ------------ \--* LCL_VAR int V02 arg2 u:1 $81
finish(BB04).
Succ(BB05).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB06).
Not yet completed.
All preds complete, adding to allDone.
The SSA definition for ByrefExposed (#3) at start of BB06 is $2c7 {2c7}
The SSA definition for GcHeap (#3) at start of BB06 is $2c7 {2c7}
***** BB06, stmt 27 (before)
N003 ( 7, 5) [000271] -A------R--- * ASG int
N002 ( 3, 2) [000270] D------N---- +--* LCL_VAR int V27 tmp20 d:2
N001 ( 3, 2) [000268] ------------ \--* LCL_VAR int V26 tmp19 u:2 (last use)
N001 [000268] LCL_VAR V26 tmp19 u:2 (last use) => <l:$3e7 {ADD($4b, $3e5)}, c:$3e6 {ADD($4b, $3e4)}>
N002 [000270] LCL_VAR V27 tmp20 d:2 => <l:$3e7 {ADD($4b, $3e5)}, c:$3e6 {ADD($4b, $3e4)}>
N003 [000271] ASG => <l:$3e7 {ADD($4b, $3e5)}, c:$3e6 {ADD($4b, $3e4)}>
***** BB06, stmt 27 (after)
N003 ( 7, 5) [000271] -A------R--- * ASG int <l:$3e7, c:$3e6>
N002 ( 3, 2) [000270] D------N---- +--* LCL_VAR int V27 tmp20 d:2 <l:$3e7, c:$3e6>
N001 ( 3, 2) [000268] ------------ \--* LCL_VAR int V26 tmp19 u:2 (last use) <l:$3e7, c:$3e6>
---------
***** BB06, stmt 28 (before)
N003 ( 5, 4) [000274] -A------R--- * ASG int
N002 ( 3, 2) [000273] D------N---- +--* LCL_VAR int V28 tmp21 d:2
N001 ( 1, 1) [000269] ------------ \--* CNS_INT int 1
N001 [000269] CNS_INT 1 => $40 {IntCns 1}
N002 [000273] LCL_VAR V28 tmp21 d:2 => $40 {IntCns 1}
N003 [000274] ASG => $40 {IntCns 1}
***** BB06, stmt 28 (after)
N003 ( 5, 4) [000274] -A------R--- * ASG int $40
N002 ( 3, 2) [000273] D------N---- +--* LCL_VAR int V28 tmp21 d:2 $40
N001 ( 1, 1) [000269] ------------ \--* CNS_INT int 1 $40
finish(BB06).
Succ(BB07).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
Was necessary.
The SSA definition for ByrefExposed (#3) at start of BB05 is $2c7 {2c7}
The SSA definition for GcHeap (#3) at start of BB05 is $2c7 {2c7}
***** BB05, stmt 25 (before)
N003 ( 7, 5) [000293] -A------R--- * ASG int
N002 ( 3, 2) [000292] D------N---- +--* LCL_VAR int V27 tmp20 d:3
N001 ( 3, 2) [000267] ------------ \--* LCL_VAR int V26 tmp19 u:2 (last use)
N001 [000267] LCL_VAR V26 tmp19 u:2 (last use) => <l:$3e7 {ADD($4b, $3e5)}, c:$3e6 {ADD($4b, $3e4)}>
N002 [000292] LCL_VAR V27 tmp20 d:3 => <l:$3e7 {ADD($4b, $3e5)}, c:$3e6 {ADD($4b, $3e4)}>
N003 [000293] ASG => <l:$3e7 {ADD($4b, $3e5)}, c:$3e6 {ADD($4b, $3e4)}>
***** BB05, stmt 25 (after)
N003 ( 7, 5) [000293] -A------R--- * ASG int <l:$3e7, c:$3e6>
N002 ( 3, 2) [000292] D------N---- +--* LCL_VAR int V27 tmp20 d:3 <l:$3e7, c:$3e6>
N001 ( 3, 2) [000267] ------------ \--* LCL_VAR int V26 tmp19 u:2 (last use) <l:$3e7, c:$3e6>
---------
***** BB05, stmt 26 (before)
N003 ( 5, 4) [000296] -A------R--- * ASG int
N002 ( 3, 2) [000295] D------N---- +--* LCL_VAR int V28 tmp21 d:3
N001 ( 1, 1) [000291] ------------ \--* CNS_INT int 0
N001 [000291] CNS_INT 0 => $44 {IntCns 0}
N002 [000295] LCL_VAR V28 tmp21 d:3 => $44 {IntCns 0}
N003 [000296] ASG => $44 {IntCns 0}
***** BB05, stmt 26 (after)
N003 ( 5, 4) [000296] -A------R--- * ASG int $44
N002 ( 3, 2) [000295] D------N---- +--* LCL_VAR int V28 tmp21 d:3 $44
N001 ( 1, 1) [000291] ------------ \--* CNS_INT int 0 $44
finish(BB05).
Succ(BB07).
Not yet completed.
All preds complete, adding to allDone.
SSA PHI definition: set VN of local 28/4 to $541 {PhiDef($1c, $4, $3d1)} .
SSA PHI definition: set VN of local 27/4 to <l:$3e7 {ADD($4b, $3e5)}, c:$3e6 {ADD($4b, $3e4)}> (all same).
The SSA definition for ByrefExposed (#3) at start of BB07 is $2c7 {2c7}
The SSA definition for GcHeap (#3) at start of BB07 is $2c7 {2c7}
***** BB07, stmt 29 (before)
N005 ( 7, 5) [000280] -A------R--- * ASG int
N004 ( 1, 1) [000279] D------N---- +--* LCL_VAR int V29 tmp22 d:2
N003 ( 7, 5) [000278] ------------ \--* SUB int
N001 ( 3, 2) [000276] ------------ +--* LCL_VAR int V27 tmp20 u:4 (last use)
N002 ( 3, 2) [000277] ------------ \--* LCL_VAR int V28 tmp21 u:4 (last use)
N001 [000276] LCL_VAR V27 tmp20 u:4 (last use) => <l:$3e7 {ADD($4b, $3e5)}, c:$3e6 {ADD($4b, $3e4)}>
N002 [000277] LCL_VAR V28 tmp21 u:4 (last use) => $541 {PhiDef($1c, $4, $3d1)}
N003 [000278] SUB => <l:$3eb {SUB($3e7, $541)}, c:$3ea {SUB($3e6, $541)}>
N004 [000279] LCL_VAR V29 tmp22 d:2 => <l:$3eb {SUB($3e7, $541)}, c:$3ea {SUB($3e6, $541)}>
N005 [000280] ASG => <l:$3eb {SUB($3e7, $541)}, c:$3ea {SUB($3e6, $541)}>
***** BB07, stmt 29 (after)
N005 ( 7, 5) [000280] -A------R--- * ASG int <l:$3eb, c:$3ea>
N004 ( 1, 1) [000279] D------N---- +--* LCL_VAR int V29 tmp22 d:2 <l:$3eb, c:$3ea>
N003 ( 7, 5) [000278] ------------ \--* SUB int <l:$3eb, c:$3ea>
N001 ( 3, 2) [000276] ------------ +--* LCL_VAR int V27 tmp20 u:4 (last use) <l:$3e7, c:$3e6>
N002 ( 3, 2) [000277] ------------ \--* LCL_VAR int V28 tmp21 u:4 (last use) $541
---------
***** BB07, stmt 30 (before)
N012 ( 14, 13) [000136] -A-XG---R--- * ASG ubyte
N011 ( 4, 3) [000135] *--X---N---- +--* IND ubyte
N010 ( 1, 1) [000127] ------------ | \--* LCL_VAR byref V18 tmp11 u:2 (last use)
N009 ( 9, 9) [000289] ------------ \--* ADD int
N007 ( 7, 7) [000288] ------------ +--* RSH int
N005 ( 5, 5) [000286] ------------ | +--* ADD int
N003 ( 3, 3) [000284] ------------ | | +--* RSH int
N001 ( 1, 1) [000282] ------------ | | | +--* LCL_VAR int V29 tmp22 u:2
N002 ( 1, 1) [000283] ------------ | | | \--* CNS_INT int 8
N004 ( 1, 1) [000285] ------------ | | \--* LCL_VAR int V29 tmp22 u:2 (last use)
N006 ( 1, 1) [000287] ------------ | \--* CNS_INT int 8
N008 ( 1, 1) [000281] ------------ \--* LCL_VAR int V25 tmp18 u:2 (last use)
N001 [000282] LCL_VAR V29 tmp22 u:2 => <l:$3eb {SUB($3e7, $541)}, c:$3ea {SUB($3e6, $541)}>
N002 [000283] CNS_INT 8 => $48 {IntCns 8}
N003 [000284] RSH => <l:$3ed {RSH($3eb, $48)}, c:$3ec {RSH($3ea, $48)}>
N004 [000285] LCL_VAR V29 tmp22 u:2 (last use) => <l:$3eb {SUB($3e7, $541)}, c:$3ea {SUB($3e6, $541)}>
N005 [000286] ADD => <l:$3ef {ADD($3eb, $3ed)}, c:$3ee {ADD($3ea, $3ec)}>
N006 [000287] CNS_INT 8 => $48 {IntCns 8}
N007 [000288] RSH => <l:$3f1 {RSH($3ef, $48)}, c:$3f0 {RSH($3ee, $48)}>
N008 [000281] LCL_VAR V25 tmp18 u:2 (last use) => <l:$3df {Cast($481, $4a)}, c:$3de {Cast($4c1, $4a)}>
N009 [000289] ADD => <l:$3f3 {ADD($3df, $3f1)}, c:$3f2 {ADD($3de, $3f0)}>
N010 [000127] LCL_VAR V18 tmp11 u:2 (last use) => $203 {Cast($401, $49)}
VNForCastOper(ubyte) is $48
fgCurMemoryVN[GcHeap] assigned for assign-of-IND at [000136] to VN: $2c8.
N012 [000136] ASG => $VN.Void
***** BB07, stmt 30 (after)
N012 ( 14, 13) [000136] -A-XG---R--- * ASG ubyte $VN.Void
N011 ( 4, 3) [000135] *--X---N---- +--* IND ubyte <l:$3f5, c:$3f4>
N010 ( 1, 1) [000127] ------------ | \--* LCL_VAR byref V18 tmp11 u:2 (last use) $203
N009 ( 9, 9) [000289] ------------ \--* ADD int <l:$3f3, c:$3f2>
N007 ( 7, 7) [000288] ------------ +--* RSH int <l:$3f1, c:$3f0>
N005 ( 5, 5) [000286] ------------ | +--* ADD int <l:$3ef, c:$3ee>
N003 ( 3, 3) [000284] ------------ | | +--* RSH int <l:$3ed, c:$3ec>
N001 ( 1, 1) [000282] ------------ | | | +--* LCL_VAR int V29 tmp22 u:2 <l:$3eb, c:$3ea>
N002 ( 1, 1) [000283] ------------ | | | \--* CNS_INT int 8 $48
N004 ( 1, 1) [000285] ------------ | | \--* LCL_VAR int V29 tmp22 u:2 (last use) <l:$3eb, c:$3ea>
N006 ( 1, 1) [000287] ------------ | \--* CNS_INT int 8 $48
N008 ( 1, 1) [000281] ------------ \--* LCL_VAR int V25 tmp18 u:2 (last use) <l:$3df, c:$3de>
---------
***** BB07, stmt 31 (before)
N004 ( 4, 3) [000348] -A-XG---R--- * ASG ubyte
N003 ( 1, 1) [000347] D------N---- +--* LCL_VAR int V30 tmp23 d:2
N002 ( 4, 3) [000141] *--XG------- \--* IND ubyte
N001 ( 1, 1) [000140] ------------ \--* LCL_VAR byref V19 tmp12 u:2
N001 [000140] LCL_VAR V19 tmp12 u:2 => $204 {Cast($100, $49)}
N002 [000141] IND => <l:$505 {norm=$482 {ByrefExposedLoad($43, $204, $2c8)}, exc=$305 {NullPtrExc($204)}}, c:$504 {norm=$4c2 {4c2}, exc=$305 {NullPtrExc($204)}}>
VNForCastOper(int, unsignedSrc) is $4a
N003 [000347] LCL_VAR V30 tmp23 d:2 => <l:$3f7 {Cast($482, $4a)}, c:$3f6 {Cast($4c2, $4a)}>
N004 [000348] ASG => <l:$3f9 {norm=$3f7 {Cast($482, $4a)}, exc=$305 {NullPtrExc($204)}}, c:$3f8 {norm=$3f6 {Cast($4c2, $4a)}, exc=$305 {NullPtrExc($204)}}>
***** BB07, stmt 31 (after)
N004 ( 4, 3) [000348] -A-XG---R--- * ASG ubyte <l:$3f9, c:$3f8>
N003 ( 1, 1) [000347] D------N---- +--* LCL_VAR int V30 tmp23 d:2 <l:$3f7, c:$3f6>
N002 ( 4, 3) [000141] *--XG------- \--* IND ubyte <l:$505, c:$504>
N001 ( 1, 1) [000140] ------------ \--* LCL_VAR byref V19 tmp12 u:2 $204
---------
***** BB07, stmt 32 (before)
N011 ( 18, 21) [000314] -A------R--- * ASG int
N010 ( 3, 2) [000313] D------N---- +--* LCL_VAR int V31 tmp24 d:2
N009 ( 14, 18) [000308] ------------ \--* ADD int
N007 ( 12, 13) [000306] ------------ +--* MUL int
N004 ( 5, 6) [000305] ------------ | +--* SUB int
N002 ( 3, 4) [000661] ------------ | | +--* CAST int <- ubyte <- int
N001 ( 2, 2) [000035] ------------ | | | \--* LCL_VAR int V03 arg3 u:1
N003 ( 1, 1) [000304] ------------ | | \--* LCL_VAR int V30 tmp23 u:2
N006 ( 3, 4) [000662] ------------ | \--* CAST int <- ubyte <- int
N005 ( 2, 2) [000142] ------------ | \--* LCL_VAR int V04 arg4 u:1
N008 ( 1, 4) [000307] ------------ \--* CNS_INT int 128
N001 [000035] LCL_VAR V03 arg3 u:1 => $82 {InitVal($42)}
VNForCastOper(ubyte) is $48
N002 [000661] CAST => $3c0 {Cast($82, $48)}
N003 [000304] LCL_VAR V30 tmp23 u:2 => <l:$3f7 {Cast($482, $4a)}, c:$3f6 {Cast($4c2, $4a)}>
N004 [000305] SUB => <l:$3fb {SUB($3c0, $3f7)}, c:$3fa {SUB($3c0, $3f6)}>
N005 [000142] LCL_VAR V04 arg4 u:1 => $83 {InitVal($43)}
VNForCastOper(ubyte) is $48
N006 [000662] CAST => $3c1 {Cast($83, $48)}
N007 [000306] MUL => <l:$3fd {MUL($3c1, $3fb)}, c:$3fc {MUL($3c1, $3fa)}>
N008 [000307] CNS_INT 128 => $4b {IntCns 128}
N009 [000308] ADD => <l:$3ff {ADD($4b, $3fd)}, c:$3fe {ADD($4b, $3fc)}>
N010 [000313] LCL_VAR V31 tmp24 d:2 => <l:$3ff {ADD($4b, $3fd)}, c:$3fe {ADD($4b, $3fc)}>
N011 [000314] ASG => <l:$3ff {ADD($4b, $3fd)}, c:$3fe {ADD($4b, $3fc)}>
***** BB07, stmt 32 (after)
N011 ( 18, 21) [000314] -A------R--- * ASG int <l:$3ff, c:$3fe>
N010 ( 3, 2) [000313] D------N---- +--* LCL_VAR int V31 tmp24 d:2 <l:$3ff, c:$3fe>
N009 ( 14, 18) [000308] ------------ \--* ADD int <l:$3ff, c:$3fe>
N007 ( 12, 13) [000306] ------------ +--* MUL int <l:$3fd, c:$3fc>
N004 ( 5, 6) [000305] ------------ | +--* SUB int <l:$3fb, c:$3fa>
N002 ( 3, 4) [000661] ------------ | | +--* CAST int <- ubyte <- int $3c0
N001 ( 2, 2) [000035] ------------ | | | \--* LCL_VAR int V03 arg3 u:1 $82
N003 ( 1, 1) [000304] ------------ | | \--* LCL_VAR int V30 tmp23 u:2 <l:$3f7, c:$3f6>
N006 ( 3, 4) [000662] ------------ | \--* CAST int <- ubyte <- int $3c1
N005 ( 2, 2) [000142] ------------ | \--* LCL_VAR int V04 arg4 u:1 $83
N008 ( 1, 4) [000307] ------------ \--* CNS_INT int 128 $4b
---------
***** BB07, stmt 33 (before)
N005 ( 7, 8) [000312] ------------ * JTRUE void
N004 ( 5, 6) [000311] J------N---- \--* GT int
N001 ( 1, 1) [000309] ------------ +--* LCL_VAR int V30 tmp23 u:2
N003 ( 3, 4) [000663] ------------ \--* CAST int <- ubyte <- int
N002 ( 2, 2) [000310] ------------ \--* LCL_VAR int V03 arg3 u:1
N001 [000309] LCL_VAR V30 tmp23 u:2 => <l:$3f7 {Cast($482, $4a)}, c:$3f6 {Cast($4c2, $4a)}>
N002 [000310] LCL_VAR V03 arg3 u:1 => $82 {InitVal($42)}
VNForCastOper(ubyte) is $48
N003 [000663] CAST => $3c0 {Cast($82, $48)}
N004 [000311] GT => <l:$581 {GT($3f7, $3c0)}, c:$580 {GT($3f6, $3c0)}>
***** BB07, stmt 33 (after)
N005 ( 7, 8) [000312] ------------ * JTRUE void
N004 ( 5, 6) [000311] J------N---- \--* GT int <l:$581, c:$580>
N001 ( 1, 1) [000309] ------------ +--* LCL_VAR int V30 tmp23 u:2 <l:$3f7, c:$3f6>
N003 ( 3, 4) [000663] ------------ \--* CAST int <- ubyte <- int $3c0
N002 ( 2, 2) [000310] ------------ \--* LCL_VAR int V03 arg3 u:1 $82
finish(BB07).
Succ(BB08).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB09).
Not yet completed.
All preds complete, adding to allDone.
The SSA definition for ByrefExposed (#4) at start of BB09 is $2c8 {2c8}
The SSA definition for GcHeap (#4) at start of BB09 is $2c8 {2c8}
***** BB09, stmt 38 (before)
N003 ( 7, 5) [000320] -A------R--- * ASG int
N002 ( 3, 2) [000319] D------N---- +--* LCL_VAR int V32 tmp25 d:2
N001 ( 3, 2) [000317] ------------ \--* LCL_VAR int V31 tmp24 u:2 (last use)
N001 [000317] LCL_VAR V31 tmp24 u:2 (last use) => <l:$3ff {ADD($4b, $3fd)}, c:$3fe {ADD($4b, $3fc)}>
N002 [000319] LCL_VAR V32 tmp25 d:2 => <l:$3ff {ADD($4b, $3fd)}, c:$3fe {ADD($4b, $3fc)}>
N003 [000320] ASG => <l:$3ff {ADD($4b, $3fd)}, c:$3fe {ADD($4b, $3fc)}>
***** BB09, stmt 38 (after)
N003 ( 7, 5) [000320] -A------R--- * ASG int <l:$3ff, c:$3fe>
N002 ( 3, 2) [000319] D------N---- +--* LCL_VAR int V32 tmp25 d:2 <l:$3ff, c:$3fe>
N001 ( 3, 2) [000317] ------------ \--* LCL_VAR int V31 tmp24 u:2 (last use) <l:$3ff, c:$3fe>
---------
***** BB09, stmt 39 (before)
N003 ( 5, 4) [000323] -A------R--- * ASG int
N002 ( 3, 2) [000322] D------N---- +--* LCL_VAR int V33 tmp26 d:2
N001 ( 1, 1) [000318] ------------ \--* CNS_INT int 1
N001 [000318] CNS_INT 1 => $40 {IntCns 1}
N002 [000322] LCL_VAR V33 tmp26 d:2 => $40 {IntCns 1}
N003 [000323] ASG => $40 {IntCns 1}
***** BB09, stmt 39 (after)
N003 ( 5, 4) [000323] -A------R--- * ASG int $40
N002 ( 3, 2) [000322] D------N---- +--* LCL_VAR int V33 tmp26 d:2 $40
N001 ( 1, 1) [000318] ------------ \--* CNS_INT int 1 $40
finish(BB09).
Succ(BB10).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
Was necessary.
The SSA definition for ByrefExposed (#4) at start of BB08 is $2c8 {2c8}
The SSA definition for GcHeap (#4) at start of BB08 is $2c8 {2c8}
***** BB08, stmt 36 (before)
N003 ( 7, 5) [000342] -A------R--- * ASG int
N002 ( 3, 2) [000341] D------N---- +--* LCL_VAR int V32 tmp25 d:3
N001 ( 3, 2) [000316] ------------ \--* LCL_VAR int V31 tmp24 u:2 (last use)
N001 [000316] LCL_VAR V31 tmp24 u:2 (last use) => <l:$3ff {ADD($4b, $3fd)}, c:$3fe {ADD($4b, $3fc)}>
N002 [000341] LCL_VAR V32 tmp25 d:3 => <l:$3ff {ADD($4b, $3fd)}, c:$3fe {ADD($4b, $3fc)}>
N003 [000342] ASG => <l:$3ff {ADD($4b, $3fd)}, c:$3fe {ADD($4b, $3fc)}>
***** BB08, stmt 36 (after)
N003 ( 7, 5) [000342] -A------R--- * ASG int <l:$3ff, c:$3fe>
N002 ( 3, 2) [000341] D------N---- +--* LCL_VAR int V32 tmp25 d:3 <l:$3ff, c:$3fe>
N001 ( 3, 2) [000316] ------------ \--* LCL_VAR int V31 tmp24 u:2 (last use) <l:$3ff, c:$3fe>
---------
***** BB08, stmt 37 (before)
N003 ( 5, 4) [000345] -A------R--- * ASG int
N002 ( 3, 2) [000344] D------N---- +--* LCL_VAR int V33 tmp26 d:3
N001 ( 1, 1) [000340] ------------ \--* CNS_INT int 0
N001 [000340] CNS_INT 0 => $44 {IntCns 0}
N002 [000344] LCL_VAR V33 tmp26 d:3 => $44 {IntCns 0}
N003 [000345] ASG => $44 {IntCns 0}
***** BB08, stmt 37 (after)
N003 ( 5, 4) [000345] -A------R--- * ASG int $44
N002 ( 3, 2) [000344] D------N---- +--* LCL_VAR int V33 tmp26 d:3 $44
N001 ( 1, 1) [000340] ------------ \--* CNS_INT int 0 $44
finish(BB08).
Succ(BB10).
Not yet completed.
All preds complete, adding to allDone.
SSA PHI definition: set VN of local 33/4 to $542 {PhiDef($21, $4, $3d1)} .
SSA PHI definition: set VN of local 32/4 to <l:$3ff {ADD($4b, $3fd)}, c:$3fe {ADD($4b, $3fc)}> (all same).
The SSA definition for ByrefExposed (#4) at start of BB10 is $2c8 {2c8}
The SSA definition for GcHeap (#4) at start of BB10 is $2c8 {2c8}
***** BB10, stmt 40 (before)
N005 ( 7, 5) [000329] -A------R--- * ASG int
N004 ( 1, 1) [000328] D------N---- +--* LCL_VAR int V34 tmp27 d:2
N003 ( 7, 5) [000327] ------------ \--* SUB int
N001 ( 3, 2) [000325] ------------ +--* LCL_VAR int V32 tmp25 u:4 (last use)
N002 ( 3, 2) [000326] ------------ \--* LCL_VAR int V33 tmp26 u:4 (last use)
N001 [000325] LCL_VAR V32 tmp25 u:4 (last use) => <l:$3ff {ADD($4b, $3fd)}, c:$3fe {ADD($4b, $3fc)}>
N002 [000326] LCL_VAR V33 tmp26 u:4 (last use) => $542 {PhiDef($21, $4, $3d1)}
N003 [000327] SUB => <l:$583 {SUB($3ff, $542)}, c:$582 {SUB($3fe, $542)}>
N004 [000328] LCL_VAR V34 tmp27 d:2 => <l:$583 {SUB($3ff, $542)}, c:$582 {SUB($3fe, $542)}>
N005 [000329] ASG => <l:$583 {SUB($3ff, $542)}, c:$582 {SUB($3fe, $542)}>
***** BB10, stmt 40 (after)
N005 ( 7, 5) [000329] -A------R--- * ASG int <l:$583, c:$582>
N004 ( 1, 1) [000328] D------N---- +--* LCL_VAR int V34 tmp27 d:2 <l:$583, c:$582>
N003 ( 7, 5) [000327] ------------ \--* SUB int <l:$583, c:$582>
N001 ( 3, 2) [000325] ------------ +--* LCL_VAR int V32 tmp25 u:4 (last use) <l:$3ff, c:$3fe>
N002 ( 3, 2) [000326] ------------ \--* LCL_VAR int V33 tmp26 u:4 (last use) $542
---------
***** BB10, stmt 41 (before)
N012 ( 14, 13) [000146] -A-XG---R--- * ASG ubyte
N011 ( 4, 3) [000145] *--X---N---- +--* IND ubyte
N010 ( 1, 1) [000137] ------------ | \--* LCL_VAR byref V19 tmp12 u:2 (last use)
N009 ( 9, 9) [000338] ------------ \--* ADD int
N007 ( 7, 7) [000337] ------------ +--* RSH int
N005 ( 5, 5) [000335] ------------ | +--* ADD int
N003 ( 3, 3) [000333] ------------ | | +--* RSH int
N001 ( 1, 1) [000331] ------------ | | | +--* LCL_VAR int V34 tmp27 u:2
N002 ( 1, 1) [000332] ------------ | | | \--* CNS_INT int 8
N004 ( 1, 1) [000334] ------------ | | \--* LCL_VAR int V34 tmp27 u:2 (last use)
N006 ( 1, 1) [000336] ------------ | \--* CNS_INT int 8
N008 ( 1, 1) [000330] ------------ \--* LCL_VAR int V30 tmp23 u:2 (last use)
N001 [000331] LCL_VAR V34 tmp27 u:2 => <l:$583 {SUB($3ff, $542)}, c:$582 {SUB($3fe, $542)}>
N002 [000332] CNS_INT 8 => $48 {IntCns 8}
N003 [000333] RSH => <l:$585 {RSH($583, $48)}, c:$584 {RSH($582, $48)}>
N004 [000334] LCL_VAR V34 tmp27 u:2 (last use) => <l:$583 {SUB($3ff, $542)}, c:$582 {SUB($3fe, $542)}>
N005 [000335] ADD => <l:$587 {ADD($583, $585)}, c:$586 {ADD($582, $584)}>
N006 [000336] CNS_INT 8 => $48 {IntCns 8}
N007 [000337] RSH => <l:$589 {RSH($587, $48)}, c:$588 {RSH($586, $48)}>
N008 [000330] LCL_VAR V30 tmp23 u:2 (last use) => <l:$3f7 {Cast($482, $4a)}, c:$3f6 {Cast($4c2, $4a)}>
N009 [000338] ADD => <l:$58b {ADD($3f7, $589)}, c:$58a {ADD($3f6, $588)}>
N010 [000137] LCL_VAR V19 tmp12 u:2 (last use) => $204 {Cast($100, $49)}
VNForCastOper(ubyte) is $48
fgCurMemoryVN[GcHeap] assigned for assign-of-IND at [000146] to VN: $2c9.
N012 [000146] ASG => $VN.Void
***** BB10, stmt 41 (after)
N012 ( 14, 13) [000146] -A-XG---R--- * ASG ubyte $VN.Void
N011 ( 4, 3) [000145] *--X---N---- +--* IND ubyte <l:$58d, c:$58c>
N010 ( 1, 1) [000137] ------------ | \--* LCL_VAR byref V19 tmp12 u:2 (last use) $204
N009 ( 9, 9) [000338] ------------ \--* ADD int <l:$58b, c:$58a>
N007 ( 7, 7) [000337] ------------ +--* RSH int <l:$589, c:$588>
N005 ( 5, 5) [000335] ------------ | +--* ADD int <l:$587, c:$586>
N003 ( 3, 3) [000333] ------------ | | +--* RSH int <l:$585, c:$584>
N001 ( 1, 1) [000331] ------------ | | | +--* LCL_VAR int V34 tmp27 u:2 <l:$583, c:$582>
N002 ( 1, 1) [000332] ------------ | | | \--* CNS_INT int 8 $48
N004 ( 1, 1) [000334] ------------ | | \--* LCL_VAR int V34 tmp27 u:2 (last use) <l:$583, c:$582>
N006 ( 1, 1) [000336] ------------ | \--* CNS_INT int 8 $48
N008 ( 1, 1) [000330] ------------ \--* LCL_VAR int V30 tmp23 u:2 (last use) <l:$3f7, c:$3f6>
---------
***** BB10, stmt 42 (before)
N005 ( 17, 16) [000044] -AC-----R--- * ASG ref
N004 ( 1, 1) [000043] D------N---- +--* LCL_VAR ref V10 tmp3 d:2
N003 ( 17, 16) [000042] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
N002 ( 3, 10) [000041] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e token
N001 [000664] ARGPLACE => $244 {244}
N002 [000041] CNS_INT(h) 0xd1ffab1e token => $282 {Hnd const: 0x00000000D1FFAB1E}
VN of ARGPLACE tree [000664] updated to $282 {Hnd const: 0x00000000D1FFAB1E}
N003 [000042] CALL help => $306 {JitNew($282, $2ca)}
N004 [000043] LCL_VAR V10 tmp3 d:2 => $306 {JitNew($282, $2ca)}
N005 [000044] ASG => $306 {JitNew($282, $2ca)}
***** BB10, stmt 42 (after)
N005 ( 17, 16) [000044] -AC-----R--- * ASG ref $306
N004 ( 1, 1) [000043] D------N---- +--* LCL_VAR ref V10 tmp3 d:2 $306
N003 ( 17, 16) [000042] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $306
N002 ( 3, 10) [000041] ------------ arg0 in rcx \--* CNS_INT(h) long 0xd1ffab1e token $282
---------
***** BB10, stmt 43 (before)
N002 ( 3, 2) [000431] ---X-------- * IND int
N001 ( 1, 1) [000047] ------------ \--* LCL_VAR ref V10 tmp3 u:2 (last use)
N001 [000047] LCL_VAR V10 tmp3 u:2 (last use) => $306 {JitNew($282, $2ca)}
N002 [000431] IND => $58e {norm=$398 {398}, exc=$307 {NullPtrExc($306)}}
***** BB10, stmt 43 (after)
N002 ( 3, 2) [000431] ---X-------- * IND int $58e
N001 ( 1, 1) [000047] ------------ \--* LCL_VAR ref V10 tmp3 u:2 (last use) $306
---------
***** BB10, stmt 44 (before)
N005 ( 3, 3) [000381] -A------R--- * ASG byref
N004 ( 1, 1) [000380] D------N---- +--* LCL_VAR byref V39 tmp32 d:2
N003 ( 3, 3) [000455] ------------ \--* ADD long
N001 ( 1, 1) [000449] ------------ +--* LCL_VAR long V57 tmp50 u:1
N002 ( 1, 1) [000454] ------------ \--* CNS_INT long 2
N001 [000449] LCL_VAR V57 tmp50 u:1 => $100 {InitVal($45)}
N002 [000454] CNS_INT 2 => $142 {LngCns: 2}
N003 [000455] ADD => $400 {ADD($100, $142)}
VNForCastOper(byref) is $49
N004 [000380] LCL_VAR V39 tmp32 d:2 => $202 {Cast($400, $49)}
N005 [000381] ASG => $202 {Cast($400, $49)}
***** BB10, stmt 44 (after)
N005 ( 3, 3) [000381] -A------R--- * ASG byref $202
N004 ( 1, 1) [000380] D------N---- +--* LCL_VAR byref V39 tmp32 d:2 $202
N003 ( 3, 3) [000455] ------------ \--* ADD long $400
N001 ( 1, 1) [000449] ------------ +--* LCL_VAR long V57 tmp50 u:1 $100
N002 ( 1, 1) [000454] ------------ \--* CNS_INT long 2 $142
---------
***** BB10, stmt 45 (before)
N005 ( 3, 3) [000391] -A------R--- * ASG byref
N004 ( 1, 1) [000390] D------N---- +--* LCL_VAR byref V40 tmp33 d:2
N003 ( 3, 3) [000467] ------------ \--* ADD long
N001 ( 1, 1) [000461] ------------ +--* LCL_VAR long V57 tmp50 u:1
N002 ( 1, 1) [000466] ------------ \--* CNS_INT long 1
N001 [000461] LCL_VAR V57 tmp50 u:1 => $100 {InitVal($45)}
N002 [000466] CNS_INT 1 => $143 {LngCns: 1}
N003 [000467] ADD => $401 {ADD($100, $143)}
VNForCastOper(byref) is $49
N004 [000390] LCL_VAR V40 tmp33 d:2 => $203 {Cast($401, $49)}
N005 [000391] ASG => $203 {Cast($401, $49)}
***** BB10, stmt 45 (after)
N005 ( 3, 3) [000391] -A------R--- * ASG byref $203
N004 ( 1, 1) [000390] D------N---- +--* LCL_VAR byref V40 tmp33 d:2 $203
N003 ( 3, 3) [000467] ------------ \--* ADD long $401
N001 ( 1, 1) [000461] ------------ +--* LCL_VAR long V57 tmp50 u:1 $100
N002 ( 1, 1) [000466] ------------ \--* CNS_INT long 1 $143
---------
***** BB10, stmt 46 (before)
N003 ( 1, 3) [000401] -A------R--- * ASG byref
N002 ( 1, 1) [000400] D------N---- +--* LCL_VAR byref V41 tmp34 d:2
N001 ( 1, 1) [000473] ------------ \--* LCL_VAR long V57 tmp50 u:1 (last use)
N001 [000473] LCL_VAR V57 tmp50 u:1 (last use) => $100 {InitVal($45)}
VNForCastOper(byref) is $49
N002 [000400] LCL_VAR V41 tmp34 d:2 => $204 {Cast($100, $49)}
N003 [000401] ASG => $204 {Cast($100, $49)}
***** BB10, stmt 46 (after)
N003 ( 1, 3) [000401] -A------R--- * ASG byref $204
N002 ( 1, 1) [000400] D------N---- +--* LCL_VAR byref V41 tmp34 d:2 $204
N001 ( 1, 1) [000473] ------------ \--* LCL_VAR long V57 tmp50 u:1 (last use) $100
---------
***** BB10, stmt 47 (before)
N004 ( 4, 3) [000525] -A-XG---R--- * ASG ubyte
N003 ( 1, 1) [000524] D------N---- +--* LCL_VAR int V42 tmp35 d:2
N002 ( 4, 3) [000406] *--XG------- \--* IND ubyte
N001 ( 1, 1) [000405] ------------ \--* LCL_VAR byref V39 tmp32 u:2
N001 [000405] LCL_VAR V39 tmp32 u:2 => $202 {Cast($400, $49)}
N002 [000406] IND => <l:$507 {norm=$483 {ByrefExposedLoad($43, $202, $2c9)}, exc=$303 {NullPtrExc($202)}}, c:$506 {norm=$4c3 {4c3}, exc=$303 {NullPtrExc($202)}}>
VNForCastOper(int, unsignedSrc) is $4a
N003 [000524] LCL_VAR V42 tmp35 d:2 => <l:$590 {Cast($483, $4a)}, c:$58f {Cast($4c3, $4a)}>
N004 [000525] ASG => <l:$592 {norm=$590 {Cast($483, $4a)}, exc=$303 {NullPtrExc($202)}}, c:$591 {norm=$58f {Cast($4c3, $4a)}, exc=$303 {NullPtrExc($202)}}>
***** BB10, stmt 47 (after)
N004 ( 4, 3) [000525] -A-XG---R--- * ASG ubyte <l:$592, c:$591>
N003 ( 1, 1) [000524] D------N---- +--* LCL_VAR int V42 tmp35 d:2 <l:$590, c:$58f>
N002 ( 4, 3) [000406] *--XG------- \--* IND ubyte <l:$507, c:$506>
N001 ( 1, 1) [000405] ------------ \--* LCL_VAR byref V39 tmp32 u:2 $202
---------
***** BB10, stmt 48 (before)
N011 ( 18, 21) [000491] -A------R--- * ASG int
N010 ( 3, 2) [000490] D------N---- +--* LCL_VAR int V43 tmp36 d:2
N009 ( 14, 18) [000485] ------------ \--* ADD int
N007 ( 12, 13) [000483] ------------ +--* MUL int
N004 ( 5, 6) [000482] ------------ | +--* SUB int
N002 ( 3, 4) [000675] ------------ | | +--* CAST int <- ubyte <- int
N001 ( 2, 2) [000049] ------------ | | | \--* LCL_VAR int V01 arg1 u:1
N003 ( 1, 1) [000481] ------------ | | \--* LCL_VAR int V42 tmp35 u:2
N006 ( 3, 4) [000676] ------------ | \--* CAST int <- ubyte <- int
N005 ( 2, 2) [000052] ------------ | \--* LCL_VAR int V04 arg4 u:1
N008 ( 1, 4) [000484] ------------ \--* CNS_INT int 128
N001 [000049] LCL_VAR V01 arg1 u:1 => $80 {InitVal($40)}
VNForCastOper(ubyte) is $48
N002 [000675] CAST => $3c2 {Cast($80, $48)}
N003 [000481] LCL_VAR V42 tmp35 u:2 => <l:$590 {Cast($483, $4a)}, c:$58f {Cast($4c3, $4a)}>
N004 [000482] SUB => <l:$594 {SUB($3c2, $590)}, c:$593 {SUB($3c2, $58f)}>
N005 [000052] LCL_VAR V04 arg4 u:1 => $83 {InitVal($43)}
VNForCastOper(ubyte) is $48
N006 [000676] CAST => $3c1 {Cast($83, $48)}
N007 [000483] MUL => <l:$596 {MUL($3c1, $594)}, c:$595 {MUL($3c1, $593)}>
N008 [000484] CNS_INT 128 => $4b {IntCns 128}
N009 [000485] ADD => <l:$598 {ADD($4b, $596)}, c:$597 {ADD($4b, $595)}>
N010 [000490] LCL_VAR V43 tmp36 d:2 => <l:$598 {ADD($4b, $596)}, c:$597 {ADD($4b, $595)}>
N011 [000491] ASG => <l:$598 {ADD($4b, $596)}, c:$597 {ADD($4b, $595)}>
***** BB10, stmt 48 (after)
N011 ( 18, 21) [000491] -A------R--- * ASG int <l:$598, c:$597>
N010 ( 3, 2) [000490] D------N---- +--* LCL_VAR int V43 tmp36 d:2 <l:$598, c:$597>
N009 ( 14, 18) [000485] ------------ \--* ADD int <l:$598, c:$597>
N007 ( 12, 13) [000483] ------------ +--* MUL int <l:$596, c:$595>
N004 ( 5, 6) [000482] ------------ | +--* SUB int <l:$594, c:$593>
N002 ( 3, 4) [000675] ------------ | | +--* CAST int <- ubyte <- int $3c2
N001 ( 2, 2) [000049] ------------ | | | \--* LCL_VAR int V01 arg1 u:1 $80
N003 ( 1, 1) [000481] ------------ | | \--* LCL_VAR int V42 tmp35 u:2 <l:$590, c:$58f>
N006 ( 3, 4) [000676] ------------ | \--* CAST int <- ubyte <- int $3c1
N005 ( 2, 2) [000052] ------------ | \--* LCL_VAR int V04 arg4 u:1 $83
N008 ( 1, 4) [000484] ------------ \--* CNS_INT int 128 $4b
---------
***** BB10, stmt 49 (before)
N005 ( 7, 8) [000489] ------------ * JTRUE void
N004 ( 5, 6) [000488] J------N---- \--* GT int
N001 ( 1, 1) [000486] ------------ +--* LCL_VAR int V42 tmp35 u:2
N003 ( 3, 4) [000677] ------------ \--* CAST int <- ubyte <- int
N002 ( 2, 2) [000487] ------------ \--* LCL_VAR int V01 arg1 u:1 (last use)
N001 [000486] LCL_VAR V42 tmp35 u:2 => <l:$590 {Cast($483, $4a)}, c:$58f {Cast($4c3, $4a)}>
N002 [000487] LCL_VAR V01 arg1 u:1 (last use) => $80 {InitVal($40)}
VNForCastOper(ubyte) is $48
N003 [000677] CAST => $3c2 {Cast($80, $48)}
N004 [000488] GT => <l:$59a {GT($590, $3c2)}, c:$599 {GT($58f, $3c2)}>
***** BB10, stmt 49 (after)
N005 ( 7, 8) [000489] ------------ * JTRUE void
N004 ( 5, 6) [000488] J------N---- \--* GT int <l:$59a, c:$599>
N001 ( 1, 1) [000486] ------------ +--* LCL_VAR int V42 tmp35 u:2 <l:$590, c:$58f>
N003 ( 3, 4) [000677] ------------ \--* CAST int <- ubyte <- int $3c2
N002 ( 2, 2) [000487] ------------ \--* LCL_VAR int V01 arg1 u:1 (last use) $80
finish(BB10).
Succ(BB11).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB12).
Not yet completed.
All preds complete, adding to allDone.
The SSA definition for ByrefExposed (#5) at start of BB12 is $2c9 {2c9}
The SSA definition for GcHeap (#5) at start of BB12 is $2c9 {2c9}
***** BB12, stmt 54 (before)
N003 ( 7, 5) [000497] -A------R--- * ASG int
N002 ( 3, 2) [000496] D------N---- +--* LCL_VAR int V44 tmp37 d:2
N001 ( 3, 2) [000494] ------------ \--* LCL_VAR int V43 tmp36 u:2 (last use)
N001 [000494] LCL_VAR V43 tmp36 u:2 (last use) => <l:$598 {ADD($4b, $596)}, c:$597 {ADD($4b, $595)}>
N002 [000496] LCL_VAR V44 tmp37 d:2 => <l:$598 {ADD($4b, $596)}, c:$597 {ADD($4b, $595)}>
N003 [000497] ASG => <l:$598 {ADD($4b, $596)}, c:$597 {ADD($4b, $595)}>
***** BB12, stmt 54 (after)
N003 ( 7, 5) [000497] -A------R--- * ASG int <l:$598, c:$597>
N002 ( 3, 2) [000496] D------N---- +--* LCL_VAR int V44 tmp37 d:2 <l:$598, c:$597>
N001 ( 3, 2) [000494] ------------ \--* LCL_VAR int V43 tmp36 u:2 (last use) <l:$598, c:$597>
---------
***** BB12, stmt 55 (before)
N003 ( 5, 4) [000500] -A------R--- * ASG int
N002 ( 3, 2) [000499] D------N---- +--* LCL_VAR int V45 tmp38 d:2
N001 ( 1, 1) [000495] ------------ \--* CNS_INT int 1
N001 [000495] CNS_INT 1 => $40 {IntCns 1}
N002 [000499] LCL_VAR V45 tmp38 d:2 => $40 {IntCns 1}
N003 [000500] ASG => $40 {IntCns 1}
***** BB12, stmt 55 (after)
N003 ( 5, 4) [000500] -A------R--- * ASG int $40
N002 ( 3, 2) [000499] D------N---- +--* LCL_VAR int V45 tmp38 d:2 $40
N001 ( 1, 1) [000495] ------------ \--* CNS_INT int 1 $40
finish(BB12).
Succ(BB13).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
Was necessary.
The SSA definition for ByrefExposed (#5) at start of BB11 is $2c9 {2c9}
The SSA definition for GcHeap (#5) at start of BB11 is $2c9 {2c9}
***** BB11, stmt 52 (before)
N003 ( 7, 5) [000519] -A------R--- * ASG int
N002 ( 3, 2) [000518] D------N---- +--* LCL_VAR int V44 tmp37 d:3
N001 ( 3, 2) [000493] ------------ \--* LCL_VAR int V43 tmp36 u:2 (last use)
N001 [000493] LCL_VAR V43 tmp36 u:2 (last use) => <l:$598 {ADD($4b, $596)}, c:$597 {ADD($4b, $595)}>
N002 [000518] LCL_VAR V44 tmp37 d:3 => <l:$598 {ADD($4b, $596)}, c:$597 {ADD($4b, $595)}>
N003 [000519] ASG => <l:$598 {ADD($4b, $596)}, c:$597 {ADD($4b, $595)}>
***** BB11, stmt 52 (after)
N003 ( 7, 5) [000519] -A------R--- * ASG int <l:$598, c:$597>
N002 ( 3, 2) [000518] D------N---- +--* LCL_VAR int V44 tmp37 d:3 <l:$598, c:$597>
N001 ( 3, 2) [000493] ------------ \--* LCL_VAR int V43 tmp36 u:2 (last use) <l:$598, c:$597>
---------
***** BB11, stmt 53 (before)
N003 ( 5, 4) [000522] -A------R--- * ASG int
N002 ( 3, 2) [000521] D------N---- +--* LCL_VAR int V45 tmp38 d:3
N001 ( 1, 1) [000517] ------------ \--* CNS_INT int 0
N001 [000517] CNS_INT 0 => $44 {IntCns 0}
N002 [000521] LCL_VAR V45 tmp38 d:3 => $44 {IntCns 0}
N003 [000522] ASG => $44 {IntCns 0}
***** BB11, stmt 53 (after)
N003 ( 5, 4) [000522] -A------R--- * ASG int $44
N002 ( 3, 2) [000521] D------N---- +--* LCL_VAR int V45 tmp38 d:3 $44
N001 ( 1, 1) [000517] ------------ \--* CNS_INT int 0 $44
finish(BB11).
Succ(BB13).
Not yet completed.
All preds complete, adding to allDone.
SSA PHI definition: set VN of local 45/4 to $543 {PhiDef($2d, $4, $3d1)} .
SSA PHI definition: set VN of local 44/4 to <l:$598 {ADD($4b, $596)}, c:$597 {ADD($4b, $595)}> (all same).
The SSA definition for ByrefExposed (#5) at start of BB13 is $2c9 {2c9}
The SSA definition for GcHeap (#5) at start of BB13 is $2c9 {2c9}
***** BB13, stmt 56 (before)
N005 ( 7, 5) [000506] -A------R--- * ASG int
N004 ( 1, 1) [000505] D------N---- +--* LCL_VAR int V46 tmp39 d:2
N003 ( 7, 5) [000504] ------------ \--* SUB int
N001 ( 3, 2) [000502] ------------ +--* LCL_VAR int V44 tmp37 u:4 (last use)
N002 ( 3, 2) [000503] ------------ \--* LCL_VAR int V45 tmp38 u:4 (last use)
N001 [000502] LCL_VAR V44 tmp37 u:4 (last use) => <l:$598 {ADD($4b, $596)}, c:$597 {ADD($4b, $595)}>
N002 [000503] LCL_VAR V45 tmp38 u:4 (last use) => $543 {PhiDef($2d, $4, $3d1)}
N003 [000504] SUB => <l:$59c {SUB($598, $543)}, c:$59b {SUB($597, $543)}>
N004 [000505] LCL_VAR V46 tmp39 d:2 => <l:$59c {SUB($598, $543)}, c:$59b {SUB($597, $543)}>
N005 [000506] ASG => <l:$59c {SUB($598, $543)}, c:$59b {SUB($597, $543)}>
***** BB13, stmt 56 (after)
N005 ( 7, 5) [000506] -A------R--- * ASG int <l:$59c, c:$59b>
N004 ( 1, 1) [000505] D------N---- +--* LCL_VAR int V46 tmp39 d:2 <l:$59c, c:$59b>
N003 ( 7, 5) [000504] ------------ \--* SUB int <l:$59c, c:$59b>
N001 ( 3, 2) [000502] ------------ +--* LCL_VAR int V44 tmp37 u:4 (last use) <l:$598, c:$597>
N002 ( 3, 2) [000503] ------------ \--* LCL_VAR int V45 tmp38 u:4 (last use) $543
---------
***** BB13, stmt 57 (before)
N012 ( 14, 13) [000410] -A-XG---R--- * ASG ubyte
N011 ( 4, 3) [000409] *--X---N---- +--* IND ubyte
N010 ( 1, 1) [000402] ------------ | \--* LCL_VAR byref V39 tmp32 u:2 (last use)
N009 ( 9, 9) [000515] ------------ \--* ADD int
N007 ( 7, 7) [000514] ------------ +--* RSH int
N005 ( 5, 5) [000512] ------------ | +--* ADD int
N003 ( 3, 3) [000510] ------------ | | +--* RSH int
N001 ( 1, 1) [000508] ------------ | | | +--* LCL_VAR int V46 tmp39 u:2
N002 ( 1, 1) [000509] ------------ | | | \--* CNS_INT int 8
N004 ( 1, 1) [000511] ------------ | | \--* LCL_VAR int V46 tmp39 u:2 (last use)
N006 ( 1, 1) [000513] ------------ | \--* CNS_INT int 8
N008 ( 1, 1) [000507] ------------ \--* LCL_VAR int V42 tmp35 u:2 (last use)
N001 [000508] LCL_VAR V46 tmp39 u:2 => <l:$59c {SUB($598, $543)}, c:$59b {SUB($597, $543)}>
N002 [000509] CNS_INT 8 => $48 {IntCns 8}
N003 [000510] RSH => <l:$59e {RSH($59c, $48)}, c:$59d {RSH($59b, $48)}>
N004 [000511] LCL_VAR V46 tmp39 u:2 (last use) => <l:$59c {SUB($598, $543)}, c:$59b {SUB($597, $543)}>
N005 [000512] ADD => <l:$5a0 {ADD($59c, $59e)}, c:$59f {ADD($59b, $59d)}>
N006 [000513] CNS_INT 8 => $48 {IntCns 8}
N007 [000514] RSH => <l:$5a2 {RSH($5a0, $48)}, c:$5a1 {RSH($59f, $48)}>
N008 [000507] LCL_VAR V42 tmp35 u:2 (last use) => <l:$590 {Cast($483, $4a)}, c:$58f {Cast($4c3, $4a)}>
N009 [000515] ADD => <l:$5a4 {ADD($590, $5a2)}, c:$5a3 {ADD($58f, $5a1)}>
N010 [000402] LCL_VAR V39 tmp32 u:2 (last use) => $202 {Cast($400, $49)}
VNForCastOper(ubyte) is $48
fgCurMemoryVN[GcHeap] assigned for assign-of-IND at [000410] to VN: $2cc.
N012 [000410] ASG => $VN.Void
***** BB13, stmt 57 (after)
N012 ( 14, 13) [000410] -A-XG---R--- * ASG ubyte $VN.Void
N011 ( 4, 3) [000409] *--X---N---- +--* IND ubyte <l:$5a6, c:$5a5>
N010 ( 1, 1) [000402] ------------ | \--* LCL_VAR byref V39 tmp32 u:2 (last use) $202
N009 ( 9, 9) [000515] ------------ \--* ADD int <l:$5a4, c:$5a3>
N007 ( 7, 7) [000514] ------------ +--* RSH int <l:$5a2, c:$5a1>
N005 ( 5, 5) [000512] ------------ | +--* ADD int <l:$5a0, c:$59f>
N003 ( 3, 3) [000510] ------------ | | +--* RSH int <l:$59e, c:$59d>
N001 ( 1, 1) [000508] ------------ | | | +--* LCL_VAR int V46 tmp39 u:2 <l:$59c, c:$59b>
N002 ( 1, 1) [000509] ------------ | | | \--* CNS_INT int 8 $48
N004 ( 1, 1) [000511] ------------ | | \--* LCL_VAR int V46 tmp39 u:2 (last use) <l:$59c, c:$59b>
N006 ( 1, 1) [000513] ------------ | \--* CNS_INT int 8 $48
N008 ( 1, 1) [000507] ------------ \--* LCL_VAR int V42 tmp35 u:2 (last use) <l:$590, c:$58f>
---------
***** BB13, stmt 58 (before)
N004 ( 4, 3) [000574] -A-XG---R--- * ASG ubyte
N003 ( 1, 1) [000573] D------N---- +--* LCL_VAR int V47 tmp40 d:2
N002 ( 4, 3) [000415] *--XG------- \--* IND ubyte
N001 ( 1, 1) [000414] ------------ \--* LCL_VAR byref V40 tmp33 u:2
N001 [000414] LCL_VAR V40 tmp33 u:2 => $203 {Cast($401, $49)}
N002 [000415] IND => <l:$509 {norm=$484 {ByrefExposedLoad($43, $203, $2cc)}, exc=$304 {NullPtrExc($203)}}, c:$508 {norm=$4c4 {4c4}, exc=$304 {NullPtrExc($203)}}>
VNForCastOper(int, unsignedSrc) is $4a
N003 [000573] LCL_VAR V47 tmp40 d:2 => <l:$5a8 {Cast($484, $4a)}, c:$5a7 {Cast($4c4, $4a)}>
N004 [000574] ASG => <l:$5aa {norm=$5a8 {Cast($484, $4a)}, exc=$304 {NullPtrExc($203)}}, c:$5a9 {norm=$5a7 {Cast($4c4, $4a)}, exc=$304 {NullPtrExc($203)}}>
***** BB13, stmt 58 (after)
N004 ( 4, 3) [000574] -A-XG---R--- * ASG ubyte <l:$5aa, c:$5a9>
N003 ( 1, 1) [000573] D------N---- +--* LCL_VAR int V47 tmp40 d:2 <l:$5a8, c:$5a7>
N002 ( 4, 3) [000415] *--XG------- \--* IND ubyte <l:$509, c:$508>
N001 ( 1, 1) [000414] ------------ \--* LCL_VAR byref V40 tmp33 u:2 $203
---------
***** BB13, stmt 59 (before)
N011 ( 18, 21) [000540] -A------R--- * ASG int
N010 ( 3, 2) [000539] D------N---- +--* LCL_VAR int V48 tmp41 d:2
N009 ( 14, 18) [000534] ------------ \--* ADD int
N007 ( 12, 13) [000532] ------------ +--* MUL int
N004 ( 5, 6) [000531] ------------ | +--* SUB int
N002 ( 3, 4) [000678] ------------ | | +--* CAST int <- ubyte <- int
N001 ( 2, 2) [000050] ------------ | | | \--* LCL_VAR int V02 arg2 u:1
N003 ( 1, 1) [000530] ------------ | | \--* LCL_VAR int V47 tmp40 u:2
N006 ( 3, 4) [000679] ------------ | \--* CAST int <- ubyte <- int
N005 ( 2, 2) [000416] ------------ | \--* LCL_VAR int V04 arg4 u:1
N008 ( 1, 4) [000533] ------------ \--* CNS_INT int 128
N001 [000050] LCL_VAR V02 arg2 u:1 => $81 {InitVal($41)}
VNForCastOper(ubyte) is $48
N002 [000678] CAST => $3c3 {Cast($81, $48)}
N003 [000530] LCL_VAR V47 tmp40 u:2 => <l:$5a8 {Cast($484, $4a)}, c:$5a7 {Cast($4c4, $4a)}>
N004 [000531] SUB => <l:$5ac {SUB($3c3, $5a8)}, c:$5ab {SUB($3c3, $5a7)}>
N005 [000416] LCL_VAR V04 arg4 u:1 => $83 {InitVal($43)}
VNForCastOper(ubyte) is $48
N006 [000679] CAST => $3c1 {Cast($83, $48)}
N007 [000532] MUL => <l:$5ae {MUL($3c1, $5ac)}, c:$5ad {MUL($3c1, $5ab)}>
N008 [000533] CNS_INT 128 => $4b {IntCns 128}
N009 [000534] ADD => <l:$5b0 {ADD($4b, $5ae)}, c:$5af {ADD($4b, $5ad)}>
N010 [000539] LCL_VAR V48 tmp41 d:2 => <l:$5b0 {ADD($4b, $5ae)}, c:$5af {ADD($4b, $5ad)}>
N011 [000540] ASG => <l:$5b0 {ADD($4b, $5ae)}, c:$5af {ADD($4b, $5ad)}>
***** BB13, stmt 59 (after)
N011 ( 18, 21) [000540] -A------R--- * ASG int <l:$5b0, c:$5af>
N010 ( 3, 2) [000539] D------N---- +--* LCL_VAR int V48 tmp41 d:2 <l:$5b0, c:$5af>
N009 ( 14, 18) [000534] ------------ \--* ADD int <l:$5b0, c:$5af>
N007 ( 12, 13) [000532] ------------ +--* MUL int <l:$5ae, c:$5ad>
N004 ( 5, 6) [000531] ------------ | +--* SUB int <l:$5ac, c:$5ab>
N002 ( 3, 4) [000678] ------------ | | +--* CAST int <- ubyte <- int $3c3
N001 ( 2, 2) [000050] ------------ | | | \--* LCL_VAR int V02 arg2 u:1 $81
N003 ( 1, 1) [000530] ------------ | | \--* LCL_VAR int V47 tmp40 u:2 <l:$5a8, c:$5a7>
N006 ( 3, 4) [000679] ------------ | \--* CAST int <- ubyte <- int $3c1
N005 ( 2, 2) [000416] ------------ | \--* LCL_VAR int V04 arg4 u:1 $83
N008 ( 1, 4) [000533] ------------ \--* CNS_INT int 128 $4b
---------
***** BB13, stmt 60 (before)
N005 ( 7, 8) [000538] ------------ * JTRUE void
N004 ( 5, 6) [000537] J------N---- \--* GT int
N001 ( 1, 1) [000535] ------------ +--* LCL_VAR int V47 tmp40 u:2
N003 ( 3, 4) [000680] ------------ \--* CAST int <- ubyte <- int
N002 ( 2, 2) [000536] ------------ \--* LCL_VAR int V02 arg2 u:1 (last use)
N001 [000535] LCL_VAR V47 tmp40 u:2 => <l:$5a8 {Cast($484, $4a)}, c:$5a7 {Cast($4c4, $4a)}>
N002 [000536] LCL_VAR V02 arg2 u:1 (last use) => $81 {InitVal($41)}
VNForCastOper(ubyte) is $48
N003 [000680] CAST => $3c3 {Cast($81, $48)}
N004 [000537] GT => <l:$5b2 {GT($5a8, $3c3)}, c:$5b1 {GT($5a7, $3c3)}>
***** BB13, stmt 60 (after)
N005 ( 7, 8) [000538] ------------ * JTRUE void
N004 ( 5, 6) [000537] J------N---- \--* GT int <l:$5b2, c:$5b1>
N001 ( 1, 1) [000535] ------------ +--* LCL_VAR int V47 tmp40 u:2 <l:$5a8, c:$5a7>
N003 ( 3, 4) [000680] ------------ \--* CAST int <- ubyte <- int $3c3
N002 ( 2, 2) [000536] ------------ \--* LCL_VAR int V02 arg2 u:1 (last use) $81
finish(BB13).
Succ(BB14).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB15).
Not yet completed.
All preds complete, adding to allDone.
The SSA definition for ByrefExposed (#6) at start of BB15 is $2cc {2cc}
The SSA definition for GcHeap (#6) at start of BB15 is $2cc {2cc}
***** BB15, stmt 65 (before)
N003 ( 7, 5) [000546] -A------R--- * ASG int
N002 ( 3, 2) [000545] D------N---- +--* LCL_VAR int V49 tmp42 d:2
N001 ( 3, 2) [000543] ------------ \--* LCL_VAR int V48 tmp41 u:2 (last use)
N001 [000543] LCL_VAR V48 tmp41 u:2 (last use) => <l:$5b0 {ADD($4b, $5ae)}, c:$5af {ADD($4b, $5ad)}>
N002 [000545] LCL_VAR V49 tmp42 d:2 => <l:$5b0 {ADD($4b, $5ae)}, c:$5af {ADD($4b, $5ad)}>
N003 [000546] ASG => <l:$5b0 {ADD($4b, $5ae)}, c:$5af {ADD($4b, $5ad)}>
***** BB15, stmt 65 (after)
N003 ( 7, 5) [000546] -A------R--- * ASG int <l:$5b0, c:$5af>
N002 ( 3, 2) [000545] D------N---- +--* LCL_VAR int V49 tmp42 d:2 <l:$5b0, c:$5af>
N001 ( 3, 2) [000543] ------------ \--* LCL_VAR int V48 tmp41 u:2 (last use) <l:$5b0, c:$5af>
---------
***** BB15, stmt 66 (before)
N003 ( 5, 4) [000549] -A------R--- * ASG int
N002 ( 3, 2) [000548] D------N---- +--* LCL_VAR int V50 tmp43 d:2
N001 ( 1, 1) [000544] ------------ \--* CNS_INT int 1
N001 [000544] CNS_INT 1 => $40 {IntCns 1}
N002 [000548] LCL_VAR V50 tmp43 d:2 => $40 {IntCns 1}
N003 [000549] ASG => $40 {IntCns 1}
***** BB15, stmt 66 (after)
N003 ( 5, 4) [000549] -A------R--- * ASG int $40
N002 ( 3, 2) [000548] D------N---- +--* LCL_VAR int V50 tmp43 d:2 $40
N001 ( 1, 1) [000544] ------------ \--* CNS_INT int 1 $40
finish(BB15).
Succ(BB16).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
Was necessary.
The SSA definition for ByrefExposed (#6) at start of BB14 is $2cc {2cc}
The SSA definition for GcHeap (#6) at start of BB14 is $2cc {2cc}
***** BB14, stmt 63 (before)
N003 ( 7, 5) [000568] -A------R--- * ASG int
N002 ( 3, 2) [000567] D------N---- +--* LCL_VAR int V49 tmp42 d:3
N001 ( 3, 2) [000542] ------------ \--* LCL_VAR int V48 tmp41 u:2 (last use)
N001 [000542] LCL_VAR V48 tmp41 u:2 (last use) => <l:$5b0 {ADD($4b, $5ae)}, c:$5af {ADD($4b, $5ad)}>
N002 [000567] LCL_VAR V49 tmp42 d:3 => <l:$5b0 {ADD($4b, $5ae)}, c:$5af {ADD($4b, $5ad)}>
N003 [000568] ASG => <l:$5b0 {ADD($4b, $5ae)}, c:$5af {ADD($4b, $5ad)}>
***** BB14, stmt 63 (after)
N003 ( 7, 5) [000568] -A------R--- * ASG int <l:$5b0, c:$5af>
N002 ( 3, 2) [000567] D------N---- +--* LCL_VAR int V49 tmp42 d:3 <l:$5b0, c:$5af>
N001 ( 3, 2) [000542] ------------ \--* LCL_VAR int V48 tmp41 u:2 (last use) <l:$5b0, c:$5af>
---------
***** BB14, stmt 64 (before)
N003 ( 5, 4) [000571] -A------R--- * ASG int
N002 ( 3, 2) [000570] D------N---- +--* LCL_VAR int V50 tmp43 d:3
N001 ( 1, 1) [000566] ------------ \--* CNS_INT int 0
N001 [000566] CNS_INT 0 => $44 {IntCns 0}
N002 [000570] LCL_VAR V50 tmp43 d:3 => $44 {IntCns 0}
N003 [000571] ASG => $44 {IntCns 0}
***** BB14, stmt 64 (after)
N003 ( 5, 4) [000571] -A------R--- * ASG int $44
N002 ( 3, 2) [000570] D------N---- +--* LCL_VAR int V50 tmp43 d:3 $44
N001 ( 1, 1) [000566] ------------ \--* CNS_INT int 0 $44
finish(BB14).
Succ(BB16).
Not yet completed.
All preds complete, adding to allDone.
SSA PHI definition: set VN of local 50/4 to $544 {PhiDef($32, $4, $3d1)} .
SSA PHI definition: set VN of local 49/4 to <l:$5b0 {ADD($4b, $5ae)}, c:$5af {ADD($4b, $5ad)}> (all same).
The SSA definition for ByrefExposed (#6) at start of BB16 is $2cc {2cc}
The SSA definition for GcHeap (#6) at start of BB16 is $2cc {2cc}
***** BB16, stmt 67 (before)
N005 ( 7, 5) [000555] -A------R--- * ASG int
N004 ( 1, 1) [000554] D------N---- +--* LCL_VAR int V51 tmp44 d:2
N003 ( 7, 5) [000553] ------------ \--* SUB int
N001 ( 3, 2) [000551] ------------ +--* LCL_VAR int V49 tmp42 u:4 (last use)
N002 ( 3, 2) [000552] ------------ \--* LCL_VAR int V50 tmp43 u:4 (last use)
N001 [000551] LCL_VAR V49 tmp42 u:4 (last use) => <l:$5b0 {ADD($4b, $5ae)}, c:$5af {ADD($4b, $5ad)}>
N002 [000552] LCL_VAR V50 tmp43 u:4 (last use) => $544 {PhiDef($32, $4, $3d1)}
N003 [000553] SUB => <l:$5b4 {SUB($5b0, $544)}, c:$5b3 {SUB($5af, $544)}>
N004 [000554] LCL_VAR V51 tmp44 d:2 => <l:$5b4 {SUB($5b0, $544)}, c:$5b3 {SUB($5af, $544)}>
N005 [000555] ASG => <l:$5b4 {SUB($5b0, $544)}, c:$5b3 {SUB($5af, $544)}>
***** BB16, stmt 67 (after)
N005 ( 7, 5) [000555] -A------R--- * ASG int <l:$5b4, c:$5b3>
N004 ( 1, 1) [000554] D------N---- +--* LCL_VAR int V51 tmp44 d:2 <l:$5b4, c:$5b3>
N003 ( 7, 5) [000553] ------------ \--* SUB int <l:$5b4, c:$5b3>
N001 ( 3, 2) [000551] ------------ +--* LCL_VAR int V49 tmp42 u:4 (last use) <l:$5b0, c:$5af>
N002 ( 3, 2) [000552] ------------ \--* LCL_VAR int V50 tmp43 u:4 (last use) $544
---------
***** BB16, stmt 68 (before)
N012 ( 14, 13) [000420] -A-XG---R--- * ASG ubyte
N011 ( 4, 3) [000419] *--X---N---- +--* IND ubyte
N010 ( 1, 1) [000411] ------------ | \--* LCL_VAR byref V40 tmp33 u:2 (last use)
N009 ( 9, 9) [000564] ------------ \--* ADD int
N007 ( 7, 7) [000563] ------------ +--* RSH int
N005 ( 5, 5) [000561] ------------ | +--* ADD int
N003 ( 3, 3) [000559] ------------ | | +--* RSH int
N001 ( 1, 1) [000557] ------------ | | | +--* LCL_VAR int V51 tmp44 u:2
N002 ( 1, 1) [000558] ------------ | | | \--* CNS_INT int 8
N004 ( 1, 1) [000560] ------------ | | \--* LCL_VAR int V51 tmp44 u:2 (last use)
N006 ( 1, 1) [000562] ------------ | \--* CNS_INT int 8
N008 ( 1, 1) [000556] ------------ \--* LCL_VAR int V47 tmp40 u:2 (last use)
N001 [000557] LCL_VAR V51 tmp44 u:2 => <l:$5b4 {SUB($5b0, $544)}, c:$5b3 {SUB($5af, $544)}>
N002 [000558] CNS_INT 8 => $48 {IntCns 8}
N003 [000559] RSH => <l:$5b6 {RSH($5b4, $48)}, c:$5b5 {RSH($5b3, $48)}>
N004 [000560] LCL_VAR V51 tmp44 u:2 (last use) => <l:$5b4 {SUB($5b0, $544)}, c:$5b3 {SUB($5af, $544)}>
N005 [000561] ADD => <l:$5b8 {ADD($5b4, $5b6)}, c:$5b7 {ADD($5b3, $5b5)}>
N006 [000562] CNS_INT 8 => $48 {IntCns 8}
N007 [000563] RSH => <l:$5ba {RSH($5b8, $48)}, c:$5b9 {RSH($5b7, $48)}>
N008 [000556] LCL_VAR V47 tmp40 u:2 (last use) => <l:$5a8 {Cast($484, $4a)}, c:$5a7 {Cast($4c4, $4a)}>
N009 [000564] ADD => <l:$5bc {ADD($5a8, $5ba)}, c:$5bb {ADD($5a7, $5b9)}>
N010 [000411] LCL_VAR V40 tmp33 u:2 (last use) => $203 {Cast($401, $49)}
VNForCastOper(ubyte) is $48
fgCurMemoryVN[GcHeap] assigned for assign-of-IND at [000420] to VN: $2cd.
N012 [000420] ASG => $VN.Void
***** BB16, stmt 68 (after)
N012 ( 14, 13) [000420] -A-XG---R--- * ASG ubyte $VN.Void
N011 ( 4, 3) [000419] *--X---N---- +--* IND ubyte <l:$5be, c:$5bd>
N010 ( 1, 1) [000411] ------------ | \--* LCL_VAR byref V40 tmp33 u:2 (last use) $203
N009 ( 9, 9) [000564] ------------ \--* ADD int <l:$5bc, c:$5bb>
N007 ( 7, 7) [000563] ------------ +--* RSH int <l:$5ba, c:$5b9>
N005 ( 5, 5) [000561] ------------ | +--* ADD int <l:$5b8, c:$5b7>
N003 ( 3, 3) [000559] ------------ | | +--* RSH int <l:$5b6, c:$5b5>
N001 ( 1, 1) [000557] ------------ | | | +--* LCL_VAR int V51 tmp44 u:2 <l:$5b4, c:$5b3>
N002 ( 1, 1) [000558] ------------ | | | \--* CNS_INT int 8 $48
N004 ( 1, 1) [000560] ------------ | | \--* LCL_VAR int V51 tmp44 u:2 (last use) <l:$5b4, c:$5b3>
N006 ( 1, 1) [000562] ------------ | \--* CNS_INT int 8 $48
N008 ( 1, 1) [000556] ------------ \--* LCL_VAR int V47 tmp40 u:2 (last use) <l:$5a8, c:$5a7>
---------
***** BB16, stmt 69 (before)
N004 ( 4, 3) [000623] -A-XG---R--- * ASG ubyte
N003 ( 1, 1) [000622] D------N---- +--* LCL_VAR int V52 tmp45 d:2
N002 ( 4, 3) [000425] *--XG------- \--* IND ubyte
N001 ( 1, 1) [000424] ------------ \--* LCL_VAR byref V41 tmp34 u:2
N001 [000424] LCL_VAR V41 tmp34 u:2 => $204 {Cast($100, $49)}
N002 [000425] IND => <l:$50b {norm=$485 {ByrefExposedLoad($43, $204, $2cd)}, exc=$305 {NullPtrExc($204)}}, c:$50a {norm=$4c5 {4c5}, exc=$305 {NullPtrExc($204)}}>
VNForCastOper(int, unsignedSrc) is $4a
N003 [000622] LCL_VAR V52 tmp45 d:2 => <l:$5c0 {Cast($485, $4a)}, c:$5bf {Cast($4c5, $4a)}>
N004 [000623] ASG => <l:$5c2 {norm=$5c0 {Cast($485, $4a)}, exc=$305 {NullPtrExc($204)}}, c:$5c1 {norm=$5bf {Cast($4c5, $4a)}, exc=$305 {NullPtrExc($204)}}>
***** BB16, stmt 69 (after)
N004 ( 4, 3) [000623] -A-XG---R--- * ASG ubyte <l:$5c2, c:$5c1>
N003 ( 1, 1) [000622] D------N---- +--* LCL_VAR int V52 tmp45 d:2 <l:$5c0, c:$5bf>
N002 ( 4, 3) [000425] *--XG------- \--* IND ubyte <l:$50b, c:$50a>
N001 ( 1, 1) [000424] ------------ \--* LCL_VAR byref V41 tmp34 u:2 $204
---------
***** BB16, stmt 70 (before)
N011 ( 18, 21) [000589] -A------R--- * ASG int
N010 ( 3, 2) [000588] D------N---- +--* LCL_VAR int V53 tmp46 d:2
N009 ( 14, 18) [000583] ------------ \--* ADD int
N007 ( 12, 13) [000581] ------------ +--* MUL int
N004 ( 5, 6) [000580] ------------ | +--* SUB int
N002 ( 3, 4) [000681] ------------ | | +--* CAST int <- ubyte <- int
N001 ( 2, 2) [000051] ------------ | | | \--* LCL_VAR int V03 arg3 u:1
N003 ( 1, 1) [000579] ------------ | | \--* LCL_VAR int V52 tmp45 u:2
N006 ( 3, 4) [000682] ------------ | \--* CAST int <- ubyte <- int
N005 ( 2, 2) [000426] ------------ | \--* LCL_VAR int V04 arg4 u:1 (last use)
N008 ( 1, 4) [000582] ------------ \--* CNS_INT int 128
N001 [000051] LCL_VAR V03 arg3 u:1 => $82 {InitVal($42)}
VNForCastOper(ubyte) is $48
N002 [000681] CAST => $3c0 {Cast($82, $48)}
N003 [000579] LCL_VAR V52 tmp45 u:2 => <l:$5c0 {Cast($485, $4a)}, c:$5bf {Cast($4c5, $4a)}>
N004 [000580] SUB => <l:$5c4 {SUB($3c0, $5c0)}, c:$5c3 {SUB($3c0, $5bf)}>
N005 [000426] LCL_VAR V04 arg4 u:1 (last use) => $83 {InitVal($43)}
VNForCastOper(ubyte) is $48
N006 [000682] CAST => $3c1 {Cast($83, $48)}
N007 [000581] MUL => <l:$5c6 {MUL($3c1, $5c4)}, c:$5c5 {MUL($3c1, $5c3)}>
N008 [000582] CNS_INT 128 => $4b {IntCns 128}
N009 [000583] ADD => <l:$5c8 {ADD($4b, $5c6)}, c:$5c7 {ADD($4b, $5c5)}>
N010 [000588] LCL_VAR V53 tmp46 d:2 => <l:$5c8 {ADD($4b, $5c6)}, c:$5c7 {ADD($4b, $5c5)}>
N011 [000589] ASG => <l:$5c8 {ADD($4b, $5c6)}, c:$5c7 {ADD($4b, $5c5)}>
***** BB16, stmt 70 (after)
N011 ( 18, 21) [000589] -A------R--- * ASG int <l:$5c8, c:$5c7>
N010 ( 3, 2) [000588] D------N---- +--* LCL_VAR int V53 tmp46 d:2 <l:$5c8, c:$5c7>
N009 ( 14, 18) [000583] ------------ \--* ADD int <l:$5c8, c:$5c7>
N007 ( 12, 13) [000581] ------------ +--* MUL int <l:$5c6, c:$5c5>
N004 ( 5, 6) [000580] ------------ | +--* SUB int <l:$5c4, c:$5c3>
N002 ( 3, 4) [000681] ------------ | | +--* CAST int <- ubyte <- int $3c0
N001 ( 2, 2) [000051] ------------ | | | \--* LCL_VAR int V03 arg3 u:1 $82
N003 ( 1, 1) [000579] ------------ | | \--* LCL_VAR int V52 tmp45 u:2 <l:$5c0, c:$5bf>
N006 ( 3, 4) [000682] ------------ | \--* CAST int <- ubyte <- int $3c1
N005 ( 2, 2) [000426] ------------ | \--* LCL_VAR int V04 arg4 u:1 (last use) $83
N008 ( 1, 4) [000582] ------------ \--* CNS_INT int 128 $4b
---------
***** BB16, stmt 71 (before)
N005 ( 7, 8) [000587] ------------ * JTRUE void
N004 ( 5, 6) [000586] J------N---- \--* GT int
N001 ( 1, 1) [000584] ------------ +--* LCL_VAR int V52 tmp45 u:2
N003 ( 3, 4) [000683] ------------ \--* CAST int <- ubyte <- int
N002 ( 2, 2) [000585] ------------ \--* LCL_VAR int V03 arg3 u:1 (last use)
N001 [000584] LCL_VAR V52 tmp45 u:2 => <l:$5c0 {Cast($485, $4a)}, c:$5bf {Cast($4c5, $4a)}>
N002 [000585] LCL_VAR V03 arg3 u:1 (last use) => $82 {InitVal($42)}
VNForCastOper(ubyte) is $48
N003 [000683] CAST => $3c0 {Cast($82, $48)}
N004 [000586] GT => <l:$5ca {GT($5c0, $3c0)}, c:$5c9 {GT($5bf, $3c0)}>
***** BB16, stmt 71 (after)
N005 ( 7, 8) [000587] ------------ * JTRUE void
N004 ( 5, 6) [000586] J------N---- \--* GT int <l:$5ca, c:$5c9>
N001 ( 1, 1) [000584] ------------ +--* LCL_VAR int V52 tmp45 u:2 <l:$5c0, c:$5bf>
N003 ( 3, 4) [000683] ------------ \--* CAST int <- ubyte <- int $3c0
N002 ( 2, 2) [000585] ------------ \--* LCL_VAR int V03 arg3 u:1 (last use) $82
finish(BB16).
Succ(BB17).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB18).
Not yet completed.
All preds complete, adding to allDone.
The SSA definition for ByrefExposed (#7) at start of BB18 is $2cd {2cd}
The SSA definition for GcHeap (#7) at start of BB18 is $2cd {2cd}
***** BB18, stmt 76 (before)
N003 ( 7, 5) [000595] -A------R--- * ASG int
N002 ( 3, 2) [000594] D------N---- +--* LCL_VAR int V54 tmp47 d:2
N001 ( 3, 2) [000592] ------------ \--* LCL_VAR int V53 tmp46 u:2 (last use)
N001 [000592] LCL_VAR V53 tmp46 u:2 (last use) => <l:$5c8 {ADD($4b, $5c6)}, c:$5c7 {ADD($4b, $5c5)}>
N002 [000594] LCL_VAR V54 tmp47 d:2 => <l:$5c8 {ADD($4b, $5c6)}, c:$5c7 {ADD($4b, $5c5)}>
N003 [000595] ASG => <l:$5c8 {ADD($4b, $5c6)}, c:$5c7 {ADD($4b, $5c5)}>
***** BB18, stmt 76 (after)
N003 ( 7, 5) [000595] -A------R--- * ASG int <l:$5c8, c:$5c7>
N002 ( 3, 2) [000594] D------N---- +--* LCL_VAR int V54 tmp47 d:2 <l:$5c8, c:$5c7>
N001 ( 3, 2) [000592] ------------ \--* LCL_VAR int V53 tmp46 u:2 (last use) <l:$5c8, c:$5c7>
---------
***** BB18, stmt 77 (before)
N003 ( 5, 4) [000598] -A------R--- * ASG int
N002 ( 3, 2) [000597] D------N---- +--* LCL_VAR int V55 tmp48 d:2
N001 ( 1, 1) [000593] ------------ \--* CNS_INT int 1
N001 [000593] CNS_INT 1 => $40 {IntCns 1}
N002 [000597] LCL_VAR V55 tmp48 d:2 => $40 {IntCns 1}
N003 [000598] ASG => $40 {IntCns 1}
***** BB18, stmt 77 (after)
N003 ( 5, 4) [000598] -A------R--- * ASG int $40
N002 ( 3, 2) [000597] D------N---- +--* LCL_VAR int V55 tmp48 d:2 $40
N001 ( 1, 1) [000593] ------------ \--* CNS_INT int 1 $40
finish(BB18).
Succ(BB19).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
Was necessary.
The SSA definition for ByrefExposed (#7) at start of BB17 is $2cd {2cd}
The SSA definition for GcHeap (#7) at start of BB17 is $2cd {2cd}
***** BB17, stmt 74 (before)
N003 ( 7, 5) [000617] -A------R--- * ASG int
N002 ( 3, 2) [000616] D------N---- +--* LCL_VAR int V54 tmp47 d:3
N001 ( 3, 2) [000591] ------------ \--* LCL_VAR int V53 tmp46 u:2 (last use)
N001 [000591] LCL_VAR V53 tmp46 u:2 (last use) => <l:$5c8 {ADD($4b, $5c6)}, c:$5c7 {ADD($4b, $5c5)}>
N002 [000616] LCL_VAR V54 tmp47 d:3 => <l:$5c8 {ADD($4b, $5c6)}, c:$5c7 {ADD($4b, $5c5)}>
N003 [000617] ASG => <l:$5c8 {ADD($4b, $5c6)}, c:$5c7 {ADD($4b, $5c5)}>
***** BB17, stmt 74 (after)
N003 ( 7, 5) [000617] -A------R--- * ASG int <l:$5c8, c:$5c7>
N002 ( 3, 2) [000616] D------N---- +--* LCL_VAR int V54 tmp47 d:3 <l:$5c8, c:$5c7>
N001 ( 3, 2) [000591] ------------ \--* LCL_VAR int V53 tmp46 u:2 (last use) <l:$5c8, c:$5c7>
---------
***** BB17, stmt 75 (before)
N003 ( 5, 4) [000620] -A------R--- * ASG int
N002 ( 3, 2) [000619] D------N---- +--* LCL_VAR int V55 tmp48 d:3
N001 ( 1, 1) [000615] ------------ \--* CNS_INT int 0
N001 [000615] CNS_INT 0 => $44 {IntCns 0}
N002 [000619] LCL_VAR V55 tmp48 d:3 => $44 {IntCns 0}
N003 [000620] ASG => $44 {IntCns 0}
***** BB17, stmt 75 (after)
N003 ( 5, 4) [000620] -A------R--- * ASG int $44
N002 ( 3, 2) [000619] D------N---- +--* LCL_VAR int V55 tmp48 d:3 $44
N001 ( 1, 1) [000615] ------------ \--* CNS_INT int 0 $44
finish(BB17).
Succ(BB19).
Not yet completed.
All preds complete, adding to allDone.
SSA PHI definition: set VN of local 55/4 to $545 {PhiDef($37, $4, $3d1)} .
SSA PHI definition: set VN of local 54/4 to <l:$5c8 {ADD($4b, $5c6)}, c:$5c7 {ADD($4b, $5c5)}> (all same).
The SSA definition for ByrefExposed (#7) at start of BB19 is $2cd {2cd}
The SSA definition for GcHeap (#7) at start of BB19 is $2cd {2cd}
***** BB19, stmt 78 (before)
N005 ( 7, 5) [000604] -A------R--- * ASG int
N004 ( 1, 1) [000603] D------N---- +--* LCL_VAR int V56 tmp49 d:2
N003 ( 7, 5) [000602] ------------ \--* SUB int
N001 ( 3, 2) [000600] ------------ +--* LCL_VAR int V54 tmp47 u:4 (last use)
N002 ( 3, 2) [000601] ------------ \--* LCL_VAR int V55 tmp48 u:4 (last use)
N001 [000600] LCL_VAR V54 tmp47 u:4 (last use) => <l:$5c8 {ADD($4b, $5c6)}, c:$5c7 {ADD($4b, $5c5)}>
N002 [000601] LCL_VAR V55 tmp48 u:4 (last use) => $545 {PhiDef($37, $4, $3d1)}
N003 [000602] SUB => <l:$5cc {SUB($5c8, $545)}, c:$5cb {SUB($5c7, $545)}>
N004 [000603] LCL_VAR V56 tmp49 d:2 => <l:$5cc {SUB($5c8, $545)}, c:$5cb {SUB($5c7, $545)}>
N005 [000604] ASG => <l:$5cc {SUB($5c8, $545)}, c:$5cb {SUB($5c7, $545)}>
***** BB19, stmt 78 (after)
N005 ( 7, 5) [000604] -A------R--- * ASG int <l:$5cc, c:$5cb>
N004 ( 1, 1) [000603] D------N---- +--* LCL_VAR int V56 tmp49 d:2 <l:$5cc, c:$5cb>
N003 ( 7, 5) [000602] ------------ \--* SUB int <l:$5cc, c:$5cb>
N001 ( 3, 2) [000600] ------------ +--* LCL_VAR int V54 tmp47 u:4 (last use) <l:$5c8, c:$5c7>
N002 ( 3, 2) [000601] ------------ \--* LCL_VAR int V55 tmp48 u:4 (last use) $545
---------
***** BB19, stmt 79 (before)
N012 ( 14, 13) [000430] -A-XG---R--- * ASG ubyte
N011 ( 4, 3) [000429] *--X---N---- +--* IND ubyte
N010 ( 1, 1) [000421] ------------ | \--* LCL_VAR byref V41 tmp34 u:2 (last use)
N009 ( 9, 9) [000613] ------------ \--* ADD int
N007 ( 7, 7) [000612] ------------ +--* RSH int
N005 ( 5, 5) [000610] ------------ | +--* ADD int
N003 ( 3, 3) [000608] ------------ | | +--* RSH int
N001 ( 1, 1) [000606] ------------ | | | +--* LCL_VAR int V56 tmp49 u:2
N002 ( 1, 1) [000607] ------------ | | | \--* CNS_INT int 8
N004 ( 1, 1) [000609] ------------ | | \--* LCL_VAR int V56 tmp49 u:2 (last use)
N006 ( 1, 1) [000611] ------------ | \--* CNS_INT int 8
N008 ( 1, 1) [000605] ------------ \--* LCL_VAR int V52 tmp45 u:2 (last use)
N001 [000606] LCL_VAR V56 tmp49 u:2 => <l:$5cc {SUB($5c8, $545)}, c:$5cb {SUB($5c7, $545)}>
N002 [000607] CNS_INT 8 => $48 {IntCns 8}
N003 [000608] RSH => <l:$5ce {RSH($5cc, $48)}, c:$5cd {RSH($5cb, $48)}>
N004 [000609] LCL_VAR V56 tmp49 u:2 (last use) => <l:$5cc {SUB($5c8, $545)}, c:$5cb {SUB($5c7, $545)}>
N005 [000610] ADD => <l:$5d0 {ADD($5cc, $5ce)}, c:$5cf {ADD($5cb, $5cd)}>
N006 [000611] CNS_INT 8 => $48 {IntCns 8}
N007 [000612] RSH => <l:$5d2 {RSH($5d0, $48)}, c:$5d1 {RSH($5cf, $48)}>
N008 [000605] LCL_VAR V52 tmp45 u:2 (last use) => <l:$5c0 {Cast($485, $4a)}, c:$5bf {Cast($4c5, $4a)}>
N009 [000613] ADD => <l:$5d4 {ADD($5c0, $5d2)}, c:$5d3 {ADD($5bf, $5d1)}>
N010 [000421] LCL_VAR V41 tmp34 u:2 (last use) => $204 {Cast($100, $49)}
VNForCastOper(ubyte) is $48
fgCurMemoryVN[GcHeap] assigned for assign-of-IND at [000430] to VN: $2ce.
N012 [000430] ASG => $VN.Void
***** BB19, stmt 79 (after)
N012 ( 14, 13) [000430] -A-XG---R--- * ASG ubyte $VN.Void
N011 ( 4, 3) [000429] *--X---N---- +--* IND ubyte <l:$5d6, c:$5d5>
N010 ( 1, 1) [000421] ------------ | \--* LCL_VAR byref V41 tmp34 u:2 (last use) $204
N009 ( 9, 9) [000613] ------------ \--* ADD int <l:$5d4, c:$5d3>
N007 ( 7, 7) [000612] ------------ +--* RSH int <l:$5d2, c:$5d1>
N005 ( 5, 5) [000610] ------------ | +--* ADD int <l:$5d0, c:$5cf>
N003 ( 3, 3) [000608] ------------ | | +--* RSH int <l:$5ce, c:$5cd>
N001 ( 1, 1) [000606] ------------ | | | +--* LCL_VAR int V56 tmp49 u:2 <l:$5cc, c:$5cb>
N002 ( 1, 1) [000607] ------------ | | | \--* CNS_INT int 8 $48
N004 ( 1, 1) [000609] ------------ | | \--* LCL_VAR int V56 tmp49 u:2 (last use) <l:$5cc, c:$5cb>
N006 ( 1, 1) [000611] ------------ | \--* CNS_INT int 8 $48
N008 ( 1, 1) [000605] ------------ \--* LCL_VAR int V52 tmp45 u:2 (last use) <l:$5c0, c:$5bf>
---------
***** BB19, stmt 80 (before)
N001 ( 0, 0) [000057] ------------ * RETURN void
N001 [000057] RETURN => $600 {600}
***** BB19, stmt 80 (after)
N001 ( 0, 0) [000057] ------------ * RETURN void $600
finish(BB19).
*************** In optVnCopyProp()
*************** In SsaBuilder::ComputeDominators(Compiler*, ...)
Copy Assertion for BB01
curSsaName stack: { }
Live vars: {V01 V02 V03 V04 V57} => {V01 V02 V03 V04 V06 V57}
Live vars: {V01 V02 V03 V04 V06 V57} => {V01 V02 V03 V04 V06 V08 V57}
Live vars: {V01 V02 V03 V04 V06 V08 V57} => {V01 V02 V03 V04 V08 V57}
Live vars: {V01 V02 V03 V04 V08 V57} => {V01 V02 V03 V04 V08 V57 V58}
Live vars: {V01 V02 V03 V04 V08 V57 V58} => {V01 V02 V03 V04 V57 V58}
Live vars: {V01 V02 V03 V04 V57 V58} => {V01 V02 V03 V04 V57}
VN based copy assertion for [000059] V58 @00000100 by [000634] V57 @00000100.
N015 ( 3, 2) [000059] ------------ * LCL_VAR long V58 tmp51 u:2 (last use) $100
copy propagated to:
N015 ( 3, 2) [000059] ------------ * LCL_VAR long V57 tmp50 u:1 (last use) $100
Live vars: {V01 V02 V03 V04 V57} => {V01 V02 V03 V04 V09 V57}
Live vars: {V01 V02 V03 V04 V09 V57} => {V01 V02 V03 V04 V57}
Live vars: {V01 V02 V03 V04 V57} => {V01 V02 V03 V04 V17 V57}
Live vars: {V01 V02 V03 V04 V17 V57} => {V01 V02 V03 V04 V17 V18 V57}
Live vars: {V01 V02 V03 V04 V17 V18 V57} => {V01 V02 V03 V04 V17 V18 V19 V57}
Live vars: {V01 V02 V03 V04 V17 V18 V19 V57} => {V01 V02 V03 V04 V17 V18 V19 V20 V57}
Live vars: {V01 V02 V03 V04 V17 V18 V19 V20 V57} => {V01 V02 V03 V04 V17 V18 V19 V20 V21 V57}
Copy Assertion for BB04
curSsaName stack: { 1-[000017]:V01 2-[000018]:V02 3-[000019]:V03 4-[000020]:V04 6-[000000]:V06 8-[000007]:V08 9-[000027]:V09 57-[000634]:V57 58-[000633]:V58 17-[000096]:V17 18-[000106]:V18 19-[000116]:V19 20-[000249]:V20 21-[000215]:V21 }
Live vars: {V01 V02 V03 V04 V17 V18 V19 V20 V22 V23 V57} => {V01 V02 V03 V04 V17 V18 V19 V20 V23 V57}
Live vars: {V01 V02 V03 V04 V17 V18 V19 V20 V23 V57} => {V01 V02 V03 V04 V17 V18 V19 V20 V57}
Live vars: {V01 V02 V03 V04 V17 V18 V19 V20 V57} => {V01 V02 V03 V04 V17 V18 V19 V20 V24 V57}
Live vars: {V01 V02 V03 V04 V17 V18 V19 V20 V24 V57} => {V01 V02 V03 V04 V17 V18 V19 V20 V57}
Live vars: {V01 V02 V03 V04 V17 V18 V19 V20 V57} => {V01 V02 V03 V04 V17 V18 V19 V57}
Live vars: {V01 V02 V03 V04 V17 V18 V19 V57} => {V01 V02 V03 V04 V18 V19 V57}
Live vars: {V01 V02 V03 V04 V18 V19 V57} => {V01 V02 V03 V04 V18 V19 V25 V57}
Live vars: {V01 V02 V03 V04 V18 V19 V25 V57} => {V01 V02 V03 V04 V18 V19 V25 V26 V57}
Copy Assertion for BB07
curSsaName stack: { 1-[000017]:V01 2-[000018]:V02 3-[000019]:V03 4-[000020]:V04 6-[000000]:V06 8-[000007]:V08 9-[000027]:V09 17-[000096]:V17 18-[000106]:V18 19-[000116]:V19 20-[000249]:V20 21-[000215]:V21 22-[000714]:V22 23-[000717]:V23 24-[000230]:V24 25-[000298]:V25 26-[000264]:V26 57-[000634]:V57 58-[000633]:V58 }
Live vars: {V01 V02 V03 V04 V18 V19 V25 V27 V28 V57} => {V01 V02 V03 V04 V18 V19 V25 V28 V57}
Live vars: {V01 V02 V03 V04 V18 V19 V25 V28 V57} => {V01 V02 V03 V04 V18 V19 V25 V57}
Live vars: {V01 V02 V03 V04 V18 V19 V25 V57} => {V01 V02 V03 V04 V18 V19 V25 V29 V57}
Live vars: {V01 V02 V03 V04 V18 V19 V25 V29 V57} => {V01 V02 V03 V04 V18 V19 V25 V57}
Live vars: {V01 V02 V03 V04 V18 V19 V25 V57} => {V01 V02 V03 V04 V18 V19 V57}
Live vars: {V01 V02 V03 V04 V18 V19 V57} => {V01 V02 V03 V04 V19 V57}
Live vars: {V01 V02 V03 V04 V19 V57} => {V01 V02 V03 V04 V19 V30 V57}
Live vars: {V01 V02 V03 V04 V19 V30 V57} => {V01 V02 V03 V04 V19 V30 V31 V57}
Copy Assertion for BB10
curSsaName stack: { 1-[000017]:V01 2-[000018]:V02 3-[000019]:V03 4-[000020]:V04 6-[000000]:V06 8-[000007]:V08 9-[000027]:V09 17-[000096]:V17 18-[000106]:V18 19-[000116]:V19 20-[000249]:V20 21-[000215]:V21 22-[000714]:V22 23-[000717]:V23 24-[000230]:V24 25-[000298]:V25 26-[000264]:V26 27-[000708]:V27 28-[000711]:V28 29-[000279]:V29 30-[000347]:V30 31-[000313]:V31 57-[000634]:V57 58-[000633]:V58 }
Live vars: {V01 V02 V03 V04 V19 V30 V32 V33 V57} => {V01 V02 V03 V04 V19 V30 V33 V57}
Live vars: {V01 V02 V03 V04 V19 V30 V33 V57} => {V01 V02 V03 V04 V19 V30 V57}
Live vars: {V01 V02 V03 V04 V19 V30 V57} => {V01 V02 V03 V04 V19 V30 V34 V57}
Live vars: {V01 V02 V03 V04 V19 V30 V34 V57} => {V01 V02 V03 V04 V19 V30 V57}
Live vars: {V01 V02 V03 V04 V19 V30 V57} => {V01 V02 V03 V04 V19 V57}
Live vars: {V01 V02 V03 V04 V19 V57} => {V01 V02 V03 V04 V57}
Live vars: {V01 V02 V03 V04 V57} => {V01 V02 V03 V04 V10 V57}
Live vars: {V01 V02 V03 V04 V10 V57} => {V01 V02 V03 V04 V57}
Live vars: {V01 V02 V03 V04 V57} => {V01 V02 V03 V04 V39 V57}
Live vars: {V01 V02 V03 V04 V39 V57} => {V01 V02 V03 V04 V39 V40 V57}
Live vars: {V01 V02 V03 V04 V39 V40 V57} => {V01 V02 V03 V04 V39 V40}
Live vars: {V01 V02 V03 V04 V39 V40} => {V01 V02 V03 V04 V39 V40 V41}
Live vars: {V01 V02 V03 V04 V39 V40 V41} => {V01 V02 V03 V04 V39 V40 V41 V42}
Live vars: {V01 V02 V03 V04 V39 V40 V41 V42} => {V01 V02 V03 V04 V39 V40 V41 V42 V43}
Live vars: {V01 V02 V03 V04 V39 V40 V41 V42 V43} => {V02 V03 V04 V39 V40 V41 V42 V43}
Copy Assertion for BB13
curSsaName stack: { 1-[000017]:V01 2-[000018]:V02 3-[000019]:V03 4-[000020]:V04 6-[000000]:V06 8-[000007]:V08 9-[000027]:V09 10-[000043]:V10 17-[000096]:V17 18-[000106]:V18 19-[000116]:V19 20-[000249]:V20 21-[000215]:V21 22-[000714]:V22 23-[000717]:V23 24-[000230]:V24 25-[000298]:V25 26-[000264]:V26 27-[000708]:V27 28-[000711]:V28 29-[000279]:V29 30-[000347]:V30 31-[000313]:V31 32-[000702]:V32 33-[000705]:V33 34-[000328]:V34 39-[000380]:V39 40-[000390]:V40 41-[000400]:V41 42-[000524]:V42 43-[000490]:V43 57-[000634]:V57 58-[000633]:V58 }
Live vars: {V02 V03 V04 V39 V40 V41 V42 V44 V45} => {V02 V03 V04 V39 V40 V41 V42 V45}
Live vars: {V02 V03 V04 V39 V40 V41 V42 V45} => {V02 V03 V04 V39 V40 V41 V42}
Live vars: {V02 V03 V04 V39 V40 V41 V42} => {V02 V03 V04 V39 V40 V41 V42 V46}
Live vars: {V02 V03 V04 V39 V40 V41 V42 V46} => {V02 V03 V04 V39 V40 V41 V42}
Live vars: {V02 V03 V04 V39 V40 V41 V42} => {V02 V03 V04 V39 V40 V41}
Live vars: {V02 V03 V04 V39 V40 V41} => {V02 V03 V04 V40 V41}
Live vars: {V02 V03 V04 V40 V41} => {V02 V03 V04 V40 V41 V47}
Live vars: {V02 V03 V04 V40 V41 V47} => {V02 V03 V04 V40 V41 V47 V48}
Live vars: {V02 V03 V04 V40 V41 V47 V48} => {V03 V04 V40 V41 V47 V48}
Copy Assertion for BB16
curSsaName stack: { 1-[000017]:V01 2-[000018]:V02 3-[000019]:V03 4-[000020]:V04 6-[000000]:V06 8-[000007]:V08 9-[000027]:V09 10-[000043]:V10 17-[000096]:V17 18-[000106]:V18 19-[000116]:V19 20-[000249]:V20 21-[000215]:V21 22-[000714]:V22 23-[000717]:V23 24-[000230]:V24 25-[000298]:V25 26-[000264]:V26 27-[000708]:V27 28-[000711]:V28 29-[000279]:V29 30-[000347]:V30 31-[000313]:V31 32-[000702]:V32 33-[000705]:V33 34-[000328]:V34 39-[000380]:V39 40-[000390]:V40 41-[000400]:V41 42-[000524]:V42 43-[000490]:V43 44-[000696]:V44 45-[000699]:V45 46-[000505]:V46 47-[000573]:V47 48-[000539]:V48 57-[000634]:V57 58-[000633]:V58 }
Live vars: {V03 V04 V40 V41 V47 V49 V50} => {V03 V04 V40 V41 V47 V50}
Live vars: {V03 V04 V40 V41 V47 V50} => {V03 V04 V40 V41 V47}
Live vars: {V03 V04 V40 V41 V47} => {V03 V04 V40 V41 V47 V51}
Live vars: {V03 V04 V40 V41 V47 V51} => {V03 V04 V40 V41 V47}
Live vars: {V03 V04 V40 V41 V47} => {V03 V04 V40 V41}
Live vars: {V03 V04 V40 V41} => {V03 V04 V41}
Live vars: {V03 V04 V41} => {V03 V04 V41 V52}
Live vars: {V03 V04 V41 V52} => {V03 V41 V52}
Live vars: {V03 V41 V52} => {V03 V41 V52 V53}
Live vars: {V03 V41 V52 V53} => {V41 V52 V53}
Copy Assertion for BB19
curSsaName stack: { 1-[000017]:V01 2-[000018]:V02 3-[000019]:V03 4-[000020]:V04 6-[000000]:V06 8-[000007]:V08 9-[000027]:V09 10-[000043]:V10 17-[000096]:V17 18-[000106]:V18 19-[000116]:V19 20-[000249]:V20 21-[000215]:V21 22-[000714]:V22 23-[000717]:V23 24-[000230]:V24 25-[000298]:V25 26-[000264]:V26 27-[000708]:V27 28-[000711]:V28 29-[000279]:V29 30-[000347]:V30 31-[000313]:V31 32-[000702]:V32 33-[000705]:V33 34-[000328]:V34 39-[000380]:V39 40-[000390]:V40 41-[000400]:V41 42-[000524]:V42 43-[000490]:V43 44-[000696]:V44 45-[000699]:V45 46-[000505]:V46 47-[000573]:V47 48-[000539]:V48 49-[000690]:V49 50-[000693]:V50 51-[000554]:V51 52-[000622]:V52 53-[000588]:V53 57-[000634]:V57 58-[000633]:V58 }
Live vars: {V41 V52 V54 V55} => {V41 V52 V55}
Live vars: {V41 V52 V55} => {V41 V52}
Live vars: {V41 V52} => {V41 V52 V56}
Live vars: {V41 V52 V56} => {V41 V52}
Live vars: {V41 V52} => {V41}
Live vars: {V41} => {}
Copy Assertion for BB18
curSsaName stack: { 1-[000017]:V01 2-[000018]:V02 3-[000019]:V03 4-[000020]:V04 6-[000000]:V06 8-[000007]:V08 9-[000027]:V09 10-[000043]:V10 17-[000096]:V17 18-[000106]:V18 19-[000116]:V19 20-[000249]:V20 21-[000215]:V21 22-[000714]:V22 23-[000717]:V23 24-[000230]:V24 25-[000298]:V25 26-[000264]:V26 27-[000708]:V27 28-[000711]:V28 29-[000279]:V29 30-[000347]:V30 31-[000313]:V31 32-[000702]:V32 33-[000705]:V33 34-[000328]:V34 39-[000380]:V39 40-[000390]:V40 41-[000400]:V41 42-[000524]:V42 43-[000490]:V43 44-[000696]:V44 45-[000699]:V45 46-[000505]:V46 47-[000573]:V47 48-[000539]:V48 49-[000690]:V49 50-[000693]:V50 51-[000554]:V51 52-[000622]:V52 53-[000588]:V53 57-[000634]:V57 58-[000633]:V58 }
Live vars: {V41 V52 V53} => {V41 V52}
Live vars: {V41 V52} => {V41 V52 V54}
Live vars: {V41 V52 V54} => {V41 V52 V54 V55}
Copy Assertion for BB17
curSsaName stack: { 1-[000017]:V01 2-[000018]:V02 3-[000019]:V03 4-[000020]:V04 6-[000000]:V06 8-[000007]:V08 9-[000027]:V09 10-[000043]:V10 17-[000096]:V17 18-[000106]:V18 19-[000116]:V19 20-[000249]:V20 21-[000215]:V21 22-[000714]:V22 23-[000717]:V23 24-[000230]:V24 25-[000298]:V25 26-[000264]:V26 27-[000708]:V27 28-[000711]:V28 29-[000279]:V29 30-[000347]:V30 31-[000313]:V31 32-[000702]:V32 33-[000705]:V33 34-[000328]:V34 39-[000380]:V39 40-[000390]:V40 41-[000400]:V41 42-[000524]:V42 43-[000490]:V43 44-[000696]:V44 45-[000699]:V45 46-[000505]:V46 47-[000573]:V47 48-[000539]:V48 49-[000690]:V49 50-[000693]:V50 51-[000554]:V51 52-[000622]:V52 53-[000588]:V53 57-[000634]:V57 58-[000633]:V58 }
Live vars: {V41 V52 V53} => {V41 V52}
Live vars: {V41 V52} => {V41 V52 V54}
Live vars: {V41 V52 V54} => {V41 V52 V54 V55}
Copy Assertion for BB15
curSsaName stack: { 1-[000017]:V01 2-[000018]:V02 3-[000019]:V03 4-[000020]:V04 6-[000000]:V06 8-[000007]:V08 9-[000027]:V09 10-[000043]:V10 17-[000096]:V17 18-[000106]:V18 19-[000116]:V19 20-[000249]:V20 21-[000215]:V21 22-[000714]:V22 23-[000717]:V23 24-[000230]:V24 25-[000298]:V25 26-[000264]:V26 27-[000708]:V27 28-[000711]:V28 29-[000279]:V29 30-[000347]:V30 31-[000313]:V31 32-[000702]:V32 33-[000705]:V33 34-[000328]:V34 39-[000380]:V39 40-[000390]:V40 41-[000400]:V41 42-[000524]:V42 43-[000490]:V43 44-[000696]:V44 45-[000699]:V45 46-[000505]:V46 47-[000573]:V47 48-[000539]:V48 57-[000634]:V57 58-[000633]:V58 }
Live vars: {V03 V04 V40 V41 V47 V48} => {V03 V04 V40 V41 V47}
Live vars: {V03 V04 V40 V41 V47} => {V03 V04 V40 V41 V47 V49}
Live vars: {V03 V04 V40 V41 V47 V49} => {V03 V04 V40 V41 V47 V49 V50}
Copy Assertion for BB14
curSsaName stack: { 1-[000017]:V01 2-[000018]:V02 3-[000019]:V03 4-[000020]:V04 6-[000000]:V06 8-[000007]:V08 9-[000027]:V09 10-[000043]:V10 17-[000096]:V17 18-[000106]:V18 19-[000116]:V19 20-[000249]:V20 21-[000215]:V21 22-[000714]:V22 23-[000717]:V23 24-[000230]:V24 25-[000298]:V25 26-[000264]:V26 27-[000708]:V27 28-[000711]:V28 29-[000279]:V29 30-[000347]:V30 31-[000313]:V31 32-[000702]:V32 33-[000705]:V33 34-[000328]:V34 39-[000380]:V39 40-[000390]:V40 41-[000400]:V41 42-[000524]:V42 43-[000490]:V43 44-[000696]:V44 45-[000699]:V45 46-[000505]:V46 47-[000573]:V47 48-[000539]:V48 57-[000634]:V57 58-[000633]:V58 }
Live vars: {V03 V04 V40 V41 V47 V48} => {V03 V04 V40 V41 V47}
Live vars: {V03 V04 V40 V41 V47} => {V03 V04 V40 V41 V47 V49}
Live vars: {V03 V04 V40 V41 V47 V49} => {V03 V04 V40 V41 V47 V49 V50}
Copy Assertion for BB12
curSsaName stack: { 1-[000017]:V01 2-[000018]:V02 3-[000019]:V03 4-[000020]:V04 6-[000000]:V06 8-[000007]:V08 9-[000027]:V09 10-[000043]:V10 17-[000096]:V17 18-[000106]:V18 19-[000116]:V19 20-[000249]:V20 21-[000215]:V21 22-[000714]:V22 23-[000717]:V23 24-[000230]:V24 25-[000298]:V25 26-[000264]:V26 27-[000708]:V27 28-[000711]:V28 29-[000279]:V29 30-[000347]:V30 31-[000313]:V31 32-[000702]:V32 33-[000705]:V33 34-[000328]:V34 39-[000380]:V39 40-[000390]:V40 41-[000400]:V41 42-[000524]:V42 43-[000490]:V43 57-[000634]:V57 58-[000633]:V58 }
Live vars: {V02 V03 V04 V39 V40 V41 V42 V43} => {V02 V03 V04 V39 V40 V41 V42}
Live vars: {V02 V03 V04 V39 V40 V41 V42} => {V02 V03 V04 V39 V40 V41 V42 V44}
Live vars: {V02 V03 V04 V39 V40 V41 V42 V44} => {V02 V03 V04 V39 V40 V41 V42 V44 V45}
Copy Assertion for BB11
curSsaName stack: { 1-[000017]:V01 2-[000018]:V02 3-[000019]:V03 4-[000020]:V04 6-[000000]:V06 8-[000007]:V08 9-[000027]:V09 10-[000043]:V10 17-[000096]:V17 18-[000106]:V18 19-[000116]:V19 20-[000249]:V20 21-[000215]:V21 22-[000714]:V22 23-[000717]:V23 24-[000230]:V24 25-[000298]:V25 26-[000264]:V26 27-[000708]:V27 28-[000711]:V28 29-[000279]:V29 30-[000347]:V30 31-[000313]:V31 32-[000702]:V32 33-[000705]:V33 34-[000328]:V34 39-[000380]:V39 40-[000390]:V40 41-[000400]:V41 42-[000524]:V42 43-[000490]:V43 57-[000634]:V57 58-[000633]:V58 }
Live vars: {V02 V03 V04 V39 V40 V41 V42 V43} => {V02 V03 V04 V39 V40 V41 V42}
Live vars: {V02 V03 V04 V39 V40 V41 V42} => {V02 V03 V04 V39 V40 V41 V42 V44}
Live vars: {V02 V03 V04 V39 V40 V41 V42 V44} => {V02 V03 V04 V39 V40 V41 V42 V44 V45}
Copy Assertion for BB09
curSsaName stack: { 1-[000017]:V01 2-[000018]:V02 3-[000019]:V03 4-[000020]:V04 6-[000000]:V06 8-[000007]:V08 9-[000027]:V09 17-[000096]:V17 18-[000106]:V18 19-[000116]:V19 20-[000249]:V20 21-[000215]:V21 22-[000714]:V22 23-[000717]:V23 24-[000230]:V24 25-[000298]:V25 26-[000264]:V26 27-[000708]:V27 28-[000711]:V28 29-[000279]:V29 30-[000347]:V30 31-[000313]:V31 57-[000634]:V57 58-[000633]:V58 }
Live vars: {V01 V02 V03 V04 V19 V30 V31 V57} => {V01 V02 V03 V04 V19 V30 V57}
Live vars: {V01 V02 V03 V04 V19 V30 V57} => {V01 V02 V03 V04 V19 V30 V32 V57}
Live vars: {V01 V02 V03 V04 V19 V30 V32 V57} => {V01 V02 V03 V04 V19 V30 V32 V33 V57}
Copy Assertion for BB08
curSsaName stack: { 1-[000017]:V01 2-[000018]:V02 3-[000019]:V03 4-[000020]:V04 6-[000000]:V06 8-[000007]:V08 9-[000027]:V09 17-[000096]:V17 18-[000106]:V18 19-[000116]:V19 20-[000249]:V20 21-[000215]:V21 22-[000714]:V22 23-[000717]:V23 24-[000230]:V24 25-[000298]:V25 26-[000264]:V26 27-[000708]:V27 28-[000711]:V28 29-[000279]:V29 30-[000347]:V30 31-[000313]:V31 57-[000634]:V57 58-[000633]:V58 }
Live vars: {V01 V02 V03 V04 V19 V30 V31 V57} => {V01 V02 V03 V04 V19 V30 V57}
Live vars: {V01 V02 V03 V04 V19 V30 V57} => {V01 V02 V03 V04 V19 V30 V32 V57}
Live vars: {V01 V02 V03 V04 V19 V30 V32 V57} => {V01 V02 V03 V04 V19 V30 V32 V33 V57}
Copy Assertion for BB06
curSsaName stack: { 1-[000017]:V01 2-[000018]:V02 3-[000019]:V03 4-[000020]:V04 6-[000000]:V06 8-[000007]:V08 9-[000027]:V09 17-[000096]:V17 18-[000106]:V18 19-[000116]:V19 20-[000249]:V20 21-[000215]:V21 22-[000714]:V22 23-[000717]:V23 24-[000230]:V24 25-[000298]:V25 26-[000264]:V26 57-[000634]:V57 58-[000633]:V58 }
Live vars: {V01 V02 V03 V04 V18 V19 V25 V26 V57} => {V01 V02 V03 V04 V18 V19 V25 V57}
Live vars: {V01 V02 V03 V04 V18 V19 V25 V57} => {V01 V02 V03 V04 V18 V19 V25 V27 V57}
Live vars: {V01 V02 V03 V04 V18 V19 V25 V27 V57} => {V01 V02 V03 V04 V18 V19 V25 V27 V28 V57}
Copy Assertion for BB05
curSsaName stack: { 1-[000017]:V01 2-[000018]:V02 3-[000019]:V03 4-[000020]:V04 6-[000000]:V06 8-[000007]:V08 9-[000027]:V09 17-[000096]:V17 18-[000106]:V18 19-[000116]:V19 20-[000249]:V20 21-[000215]:V21 22-[000714]:V22 23-[000717]:V23 24-[000230]:V24 25-[000298]:V25 26-[000264]:V26 57-[000634]:V57 58-[000633]:V58 }
Live vars: {V01 V02 V03 V04 V18 V19 V25 V26 V57} => {V01 V02 V03 V04 V18 V19 V25 V57}
Live vars: {V01 V02 V03 V04 V18 V19 V25 V57} => {V01 V02 V03 V04 V18 V19 V25 V27 V57}
Live vars: {V01 V02 V03 V04 V18 V19 V25 V27 V57} => {V01 V02 V03 V04 V18 V19 V25 V27 V28 V57}
Copy Assertion for BB03
curSsaName stack: { 1-[000017]:V01 2-[000018]:V02 3-[000019]:V03 4-[000020]:V04 6-[000000]:V06 8-[000007]:V08 9-[000027]:V09 17-[000096]:V17 18-[000106]:V18 19-[000116]:V19 20-[000249]:V20 21-[000215]:V21 57-[000634]:V57 58-[000633]:V58 }
Live vars: {V01 V02 V03 V04 V17 V18 V19 V20 V21 V57} => {V01 V02 V03 V04 V17 V18 V19 V20 V57}
Live vars: {V01 V02 V03 V04 V17 V18 V19 V20 V57} => {V01 V02 V03 V04 V17 V18 V19 V20 V22 V57}
Live vars: {V01 V02 V03 V04 V17 V18 V19 V20 V22 V57} => {V01 V02 V03 V04 V17 V18 V19 V20 V22 V23 V57}
Copy Assertion for BB02
curSsaName stack: { 1-[000017]:V01 2-[000018]:V02 3-[000019]:V03 4-[000020]:V04 6-[000000]:V06 8-[000007]:V08 9-[000027]:V09 17-[000096]:V17 18-[000106]:V18 19-[000116]:V19 20-[000249]:V20 21-[000215]:V21 57-[000634]:V57 58-[000633]:V58 }
Live vars: {V01 V02 V03 V04 V17 V18 V19 V20 V21 V57} => {V01 V02 V03 V04 V17 V18 V19 V20 V57}
Live vars: {V01 V02 V03 V04 V17 V18 V19 V20 V57} => {V01 V02 V03 V04 V17 V18 V19 V20 V22 V57}
Live vars: {V01 V02 V03 V04 V17 V18 V19 V20 V22 V57} => {V01 V02 V03 V04 V17 V18 V19 V20 V22 V23 V57}
*************** In optOptimizeCSEs()
Blocks/Trees at start of optOptimizeCSE phase
-------------------------------------------------------------------------------------------------------------------------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment