Created
September 23, 2019 11:40
-
-
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
****** START compiling 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