****** START compiling System.Numerics.Quaternion:get_IsIdentity():bool:this (MethodHash=46a9358e) Generating code for Windows x64 OPTIONS: compCodeOpt = BLENDED_CODE OPTIONS: compDbgCode = false OPTIONS: compDbgInfo = true OPTIONS: compDbgEnC = false OPTIONS: compProcedureSplitting = false OPTIONS: compProcedureSplittingEH = false OPTIONS: Jit invoked for ngen IL to import: IL_0000 02 ldarg.0 IL_0001 71 d7 01 00 02 ldobj 0x20001D7 IL_0006 28 d1 1c 00 06 call 0x6001CD1 IL_000b 28 d5 1c 00 06 call 0x6001CD5 IL_0010 2a ret SIMD Candidate Type System.Numerics.Quaternion Unknown SIMD Type 'this' passed in register rcx lvaGrabTemp returning 1 (V01 tmp0) (a long lifetime temp) called for OutgoingArgSpace. ; Initial local variable assignments ; ; V00 this byref this ; V01 OutArgs lclBlk "OutgoingArgSpace" *************** In compInitDebuggingInfo() for System.Numerics.Quaternion:get_IsIdentity():bool:this getVars() returned cVars = 0, extendOthers = true info.compVarScopesCount = 1 VarNum LVNum Name Beg End 0: 00h 00h V00 this 000h 011h info.compStmtOffsetsCount = 0 info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) *************** In fgFindBasicBlocks() for System.Numerics.Quaternion:get_IsIdentity():bool:this weight= 10 : state 3 [ ldarg.0 ] weight= 29 : state 101 [ ldobj ] weight= 79 : state 40 [ call ] weight= 79 : state 40 [ call ] weight= 19 : state 42 [ ret ] Jump targets: none New Basic Block BB01 [0000] created. BB01 [000..011) multiplier in methods of promotable struct increased to 3. Inline candidate looks like a wrapper method. Multiplier increased to 4. Inline candidate callsite is hot. Multiplier increased to 7. calleeNativeSizeEstimate=216 callsiteNativeSizeEstimate=85 benefit multiplier=7 threshold=595 Native estimate for function size is within threshold for inlining 21.6 <= 59.5 (multiplier = 7) IL Code Size,Instr 17, 5, Basic Block count 1, Local Variable Num,Ref count 2, 1 for method System.Numerics.Quaternion:get_IsIdentity():bool:this OPTIONS: opts.MinOpts() == false Basic block list for 'System.Numerics.Quaternion:get_IsIdentity():bool:this' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Pre-import *************** Finishing PHASE Pre-import *************** Starting PHASE Profile incorporation BBOPT not set *************** Finishing PHASE Profile incorporation [no changes] *************** Starting PHASE Importation *************** In impImport() for System.Numerics.Quaternion:get_IsIdentity():bool:this impImportBlockPending for BB01 Importing BB01 (PC=000) of 'System.Numerics.Quaternion:get_IsIdentity():bool:this' [ 0] 0 (0x000) ldarg.0 [ 1] 1 (0x001) ldobj 020001D7SIMD Candidate Type System.Numerics.Quaternion Unknown SIMD Type [ 1] 6 (0x006) call 06001CD1 In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 16 lvaGrabTemp returning 2 (V02 tmp1) called for impAppendStmt. SIMD Candidate Type System.Numerics.Quaternion Unknown SIMD Type SIMD Candidate Type System.Numerics.Quaternion Unknown SIMD Type STMT00001 (IL 0x000... ???) [000005] -A-XG------- * ASG struct (copy) [000003] D------N---- +--* LCL_VAR struct V02 tmp1 [000001] ---XG------- \--* OBJ struct [000000] ------------ \--* LCL_VAR byref V00 this STMT00000 (IL 0x000... ???) [000002] I-C-G------- * CALL r2r_ind struct System.Numerics.Quaternion.get_Identity (exactContextHnd=0x00000000D1FFAB1E) [ 2] 11 (0x00b) call 06001CD5 (Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT) In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Calling impNormStructVal on: [000007] --C--------- * RET_EXPR struct(inl return from call [000002]) SIMD Candidate Type System.Numerics.Quaternion Unknown SIMD Type lvaGrabTemp returning 3 (V03 tmp2) called for struct address for call/obj. SIMD Candidate Type System.Numerics.Quaternion Unknown SIMD Type STMT00002 (IL ???... ???) [000007] --C--------- * RET_EXPR void (inl return from call [000002]) SIMD Candidate Type System.Numerics.Quaternion Unknown SIMD Type resulting tree: [000013] n----------- * OBJ struct [000012] ------------ \--* ADDR byref [000011] -------N---- \--* LCL_VAR struct V03 tmp2 Calling impNormStructVal on: [000006] ------------ * LCL_VAR struct V02 tmp1 SIMD Candidate Type System.Numerics.Quaternion Unknown SIMD Type SIMD Candidate Type System.Numerics.Quaternion Unknown SIMD Type resulting tree: [000015] n----------- * OBJ struct [000014] ------------ \--* ADDR byref [000006] -------N---- \--* LCL_VAR struct V02 tmp1 info.compCompHnd->canTailCall returned false for call [000008] STMT00003 (IL ???... ???) [000008] I-C-G------- * CALL r2r_ind int System.Numerics.Quaternion.op_Equality (exactContextHnd=0x00000000D1FFAB1E) [000015] n----------- arg0 +--* OBJ struct [000014] ------------ | \--* ADDR byref [000006] -------N---- | \--* LCL_VAR struct V02 tmp1 [000013] n----------- arg1 \--* OBJ struct [000012] ------------ \--* ADDR byref [000011] -------N---- \--* LCL_VAR struct V03 tmp2 [ 1] 16 (0x010) ret STMT00004 (IL ???... ???) [000018] --C--------- * RETURN int [000017] --C--------- \--* CAST int <- bool <- int [000016] --C--------- \--* RET_EXPR int (inl return from call [000008]) *************** Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..011) (return), preds={} succs={} ***** BB01 STMT00001 (IL 0x000...0x010) [000005] -A-XG------- * ASG struct (copy) [000003] D------N---- +--* LCL_VAR struct V02 tmp1 [000001] ---XG------- \--* OBJ struct [000000] ------------ \--* LCL_VAR byref V00 this ***** BB01 STMT00000 (IL 0x000... ???) [000002] I-C-G------- * CALL r2r_ind void System.Numerics.Quaternion.get_Identity (exactContextHnd=0x00000000D1FFAB1E) [000010] ------------ arg0 \--* ADDR byref [000009] -------N---- \--* LCL_VAR struct V03 tmp2 ***** BB01 STMT00002 (IL ???... ???) [000007] --C--------- * RET_EXPR void (inl return from call [000002]) ***** BB01 STMT00003 (IL ???... ???) [000008] I-C-G------- * CALL r2r_ind int System.Numerics.Quaternion.op_Equality (exactContextHnd=0x00000000D1FFAB1E) [000015] n----------- arg0 +--* OBJ struct [000014] ------------ | \--* ADDR byref [000006] -------N---- | \--* LCL_VAR struct V02 tmp1 [000013] n----------- arg1 \--* OBJ struct [000012] ------------ \--* ADDR byref [000011] -------N---- \--* LCL_VAR struct V03 tmp2 ***** BB01 STMT00004 (IL ???... ???) [000018] --C--------- * RETURN int [000017] --C--------- \--* CAST int <- bool <- int [000016] --C--------- \--* RET_EXPR int (inl return from call [000008]) ------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Indirect call transform -- no candidates to transform *************** Finishing PHASE Indirect call transform [no changes] *************** Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Finishing PHASE Expand patchpoints [no changes] *************** Starting PHASE Post-import *************** Finishing PHASE Post-import *************** Starting PHASE Morph - Init New BlockSet epoch 1, # of blocks (including unused BB00): 2, bitset array size: 1 (short) *************** In fgRemoveEmptyBlocks *************** Finishing PHASE Morph - Init *************** In fgDebugCheckBBlist *************** Starting PHASE Morph - Inlining Expanding INLINE_CANDIDATE in statement STMT00000 in BB01: STMT00000 (IL 0x000... ???) [000002] I-C-G------- * CALL r2r_ind void System.Numerics.Quaternion.get_Identity (exactContextHnd=0x00000000D1FFAB1E) [000010] ------------ arg0 \--* ADDR byref [000009] -------N---- \--* LCL_VAR struct V03 tmp2 INLINER: inlineInfo.tokenLookupContextHandle for System.Numerics.Quaternion:get_Identity():System.Numerics.Quaternion set to 0x00000000D1FFAB1E: Invoking compiler for the inlinee method System.Numerics.Quaternion:get_Identity():System.Numerics.Quaternion : IL to import: IL_0000 22 00 00 00 00 ldc.r4 0.000000 IL_0005 22 00 00 00 00 ldc.r4 0.000000 IL_000a 22 00 00 00 00 ldc.r4 0.000000 IL_000f 22 00 00 80 3f ldc.r4 1.000000 IL_0014 73 cf 1c 00 06 newobj 0x6001CCF IL_0019 2a ret INLINER impTokenLookupContextHandle for System.Numerics.Quaternion:get_Identity():System.Numerics.Quaternion is 0x00000000D1FFAB1E. SIMD Candidate Type System.Numerics.Quaternion Unknown SIMD Type *************** In fgFindBasicBlocks() for System.Numerics.Quaternion:get_Identity():System.Numerics.Quaternion weight= 33 : state 35 [ ldc.r4 ] weight= 33 : state 35 [ ldc.r4 ] weight= 33 : state 35 [ ldc.r4 ] weight= 33 : state 35 [ ldc.r4 ] weight=227 : state 103 [ newobj ] weight= 19 : state 42 [ ret ] multiplier in methods of promotable struct increased to 3. Inline candidate has SIMD type args, locals or return value. Multiplier increased to 6. Inline candidate is mostly loads and stores. Multiplier increased to 9. Inline candidate callsite is boring. Multiplier increased to 10.3. calleeNativeSizeEstimate=378 callsiteNativeSizeEstimate=55 benefit multiplier=10.3 threshold=566 Native estimate for function size is within threshold for inlining 37.8 <= 56.6 (multiplier = 10.3) Jump targets: none New Basic Block BB02 [0001] created. BB02 [000..01A) Basic block list for 'System.Numerics.Quaternion:get_Identity():System.Numerics.Quaternion' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB02 [0001] 1 1 [000..01A) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000002] Starting PHASE Pre-import *************** Inline @[000002] Finishing PHASE Pre-import *************** Inline @[000002] Starting PHASE Profile incorporation BBOPT not set *************** Inline @[000002] Finishing PHASE Profile incorporation [no changes] *************** Inline @[000002] Starting PHASE Importation *************** In impImport() for System.Numerics.Quaternion:get_Identity():System.Numerics.Quaternion impImportBlockPending for BB02 Importing BB02 (PC=000) of 'System.Numerics.Quaternion:get_Identity():System.Numerics.Quaternion' [ 0] 0 (0x000) ldc.r4 0.00000000000000000 [ 1] 5 (0x005) ldc.r4 0.00000000000000000 [ 2] 10 (0x00a) ldc.r4 0.00000000000000000 [ 3] 15 (0x00f) ldc.r4 1.0000000000000000 [ 4] 20 (0x014) newobj lvaGrabTemp returning 4 (V04 tmp3) called for NewObj constructor temp. SIMD Candidate Type System.Numerics.Quaternion Unknown SIMD Type [000025] IA---------- * ASG struct (init) [000023] D------N---- +--* LCL_VAR struct V04 tmp3 [000024] ------------ \--* CNS_INT int 0 06001CCF In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0 [000028] I-C-G------- * CALL r2r_ind void System.Numerics.Quaternion..ctor (exactContextHnd=0x00000000D1FFAB1E) [000027] ------------ this in rcx +--* ADDR byref [000026] -------N---- | \--* LCL_VAR struct V04 tmp3 [000019] ------------ arg1 +--* CNS_DBL float 0.00000000000000000 [000020] ------------ arg2 +--* CNS_DBL float 0.00000000000000000 [000021] ------------ arg3 +--* CNS_DBL float 0.00000000000000000 [000022] ------------ arg4 \--* CNS_DBL float 1.0000000000000000 [ 1] 25 (0x019) ret Inlinee Return expression (before normalization) => [000029] ------------ * LCL_VAR struct V04 tmp3 *************** Inline @[000002] Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB02 [0001] 1 1 [000..01A) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB02 [000..01A) (return), preds={} succs={} ***** BB02 [000025] IA---------- * ASG struct (init) [000023] D------N---- +--* LCL_VAR struct V04 tmp3 [000024] ------------ \--* CNS_INT int 0 ***** BB02 [000028] I-C-G------- * CALL r2r_ind void System.Numerics.Quaternion..ctor (exactContextHnd=0x00000000D1FFAB1E) [000027] ------------ this in rcx +--* ADDR byref [000026] -------N---- | \--* LCL_VAR struct V04 tmp3 [000019] ------------ arg1 +--* CNS_DBL float 0.00000000000000000 [000020] ------------ arg2 +--* CNS_DBL float 0.00000000000000000 [000021] ------------ arg3 +--* CNS_DBL float 0.00000000000000000 [000022] ------------ arg4 \--* CNS_DBL float 1.0000000000000000 ------------------------------------------------------------------------------------------------------------------- *************** Inline @[000002] Starting PHASE Indirect call transform -- no candidates to transform *************** Inline @[000002] Finishing PHASE Indirect call transform [no changes] *************** Inline @[000002] Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Inline @[000002] Finishing PHASE Expand patchpoints [no changes] *************** Inline @[000002] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000002] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000002] ----------- Inlinee method body: STMT00005 (IL 0x000... ???) [000025] IA---------- * ASG struct (init) [000023] D------N---- +--* LCL_VAR struct V04 tmp3 [000024] ------------ \--* CNS_INT int 0 STMT00006 (IL 0x000... ???) [000028] I-C-G------- * CALL r2r_ind void System.Numerics.Quaternion..ctor (exactContextHnd=0x00000000D1FFAB1E) [000027] ------------ this in rcx +--* ADDR byref [000026] -------N---- | \--* LCL_VAR struct V04 tmp3 [000019] ------------ arg1 +--* CNS_DBL float 0.00000000000000000 [000020] ------------ arg2 +--* CNS_DBL float 0.00000000000000000 [000021] ------------ arg3 +--* CNS_DBL float 0.00000000000000000 [000022] ------------ arg4 \--* CNS_DBL float 1.0000000000000000 fgInlineAppendStatements: no gc ref inline locals. Return expression for call at [000002] is [000032] -A---------- * ASG struct (copy) [000031] D------N---- +--* LCL_VAR struct V03 tmp2 [000029] ------------ \--* LCL_VAR struct V04 tmp3 Successfully inlined System.Numerics.Quaternion:get_Identity():System.Numerics.Quaternion (26 IL bytes) (depth 1) [profitable inline] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'profitable inline' for 'System.Numerics.Quaternion:get_IsIdentity():bool:this' calling 'System.Numerics.Quaternion:get_Identity():System.Numerics.Quaternion' INLINER: during 'fgInline' result 'success' reason 'profitable inline' Expanding INLINE_CANDIDATE in statement STMT00006 in BB01: STMT00006 (IL 0x000... ???) [000028] I-C-G------- * CALL r2r_ind void System.Numerics.Quaternion..ctor (exactContextHnd=0x00000000D1FFAB1E) [000027] ------------ this in rcx +--* ADDR byref [000026] -------N---- | \--* LCL_VAR struct V04 tmp3 [000019] ------------ arg1 +--* CNS_DBL float 0.00000000000000000 [000020] ------------ arg2 +--* CNS_DBL float 0.00000000000000000 [000021] ------------ arg3 +--* CNS_DBL float 0.00000000000000000 [000022] ------------ arg4 \--* CNS_DBL float 1.0000000000000000 thisArg: is a constant is byref to a struct local [000027] ------------ * ADDR byref [000026] -------N---- \--* LCL_VAR struct V04 tmp3 Argument #1: is a constant [000019] ------------ * CNS_DBL float 0.00000000000000000 Argument #2: is a constant [000020] ------------ * CNS_DBL float 0.00000000000000000 Argument #3: is a constant [000021] ------------ * CNS_DBL float 0.00000000000000000 Argument #4: is a constant [000022] ------------ * CNS_DBL float 1.0000000000000000 INLINER: inlineInfo.tokenLookupContextHandle for System.Numerics.Quaternion:.ctor(float,float,float,float):this set to 0x00000000D1FFAB1E: Invoking compiler for the inlinee method System.Numerics.Quaternion:.ctor(float,float,float,float):this : IL to import: IL_0000 02 ldarg.0 IL_0001 03 ldarg.1 IL_0002 7d 45 06 00 04 stfld 0x4000645 IL_0007 02 ldarg.0 IL_0008 04 ldarg.2 IL_0009 7d 46 06 00 04 stfld 0x4000646 IL_000e 02 ldarg.0 IL_000f 05 ldarg.3 IL_0010 7d 47 06 00 04 stfld 0x4000647 IL_0015 02 ldarg.0 IL_0016 0e 04 ldarg.s 0x4 IL_0018 7d 48 06 00 04 stfld 0x4000648 IL_001d 2a ret INLINER impTokenLookupContextHandle for System.Numerics.Quaternion:.ctor(float,float,float,float):this is 0x00000000D1FFAB1E. *************** In fgFindBasicBlocks() for System.Numerics.Quaternion:.ctor(float,float,float,float):this weight= 69 : state 226 [ ldarg.0 -> ldarg.1 -> stfld ] weight= 98 : state 228 [ ldarg.0 -> ldarg.2 -> stfld ] weight= 97 : state 230 [ ldarg.0 -> ldarg.3 -> stfld ] weight= 10 : state 3 [ ldarg.0 ] weight= 32 : state 15 [ ldarg.s ] weight= 31 : state 111 [ stfld ] weight= 19 : state 42 [ ret ] multiplier in instance constructors increased to 1.5. multiplier in methods of promotable struct increased to 4.5. Inline candidate has SIMD type args, locals or return value. Multiplier increased to 7.5. Inline candidate is mostly loads and stores. Multiplier increased to 10.5. Inline candidate callsite is boring. Multiplier increased to 11.8. calleeNativeSizeEstimate=356 callsiteNativeSizeEstimate=205 benefit multiplier=11.8 threshold=2419 Native estimate for function size is within threshold for inlining 35.6 <= 241.9 (multiplier = 11.8) Jump targets: none New Basic Block BB03 [0002] created. BB03 [000..01E) Basic block list for 'System.Numerics.Quaternion:.ctor(float,float,float,float):this' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB03 [0002] 1 1 [000..01E) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000028] Starting PHASE Pre-import *************** Inline @[000028] Finishing PHASE Pre-import *************** Inline @[000028] Starting PHASE Profile incorporation BBOPT not set *************** Inline @[000028] Finishing PHASE Profile incorporation [no changes] *************** Inline @[000028] Starting PHASE Importation *************** In impImport() for System.Numerics.Quaternion:.ctor(float,float,float,float):this impImportBlockPending for BB03 Importing BB03 (PC=000) of 'System.Numerics.Quaternion:.ctor(float,float,float,float):this' [ 0] 0 (0x000) ldarg.0 [ 1] 1 (0x001) ldarg.1 [ 2] 2 (0x002) stfld 04000645 [000038] -A---------- * ASG float [000037] -------N---- +--* FIELD float X [000034] ------------ | \--* ADDR byref [000035] -------N---- | \--* LCL_VAR struct V04 tmp3 [000036] ------------ \--* CNS_DBL float 0.00000000000000000 [ 0] 7 (0x007) ldarg.0 [ 1] 8 (0x008) ldarg.2 [ 2] 9 (0x009) stfld 04000646 [000043] -A---------- * ASG float [000042] -------N---- +--* FIELD float Y [000039] ------------ | \--* ADDR byref [000040] -------N---- | \--* LCL_VAR struct V04 tmp3 [000041] ------------ \--* CNS_DBL float 0.00000000000000000 [ 0] 14 (0x00e) ldarg.0 [ 1] 15 (0x00f) ldarg.3 [ 2] 16 (0x010) stfld 04000647 [000048] -A---------- * ASG float [000047] -------N---- +--* FIELD float Z [000044] ------------ | \--* ADDR byref [000045] -------N---- | \--* LCL_VAR struct V04 tmp3 [000046] ------------ \--* CNS_DBL float 0.00000000000000000 [ 0] 21 (0x015) ldarg.0 [ 1] 22 (0x016) ldarg.s 4 [ 2] 24 (0x018) stfld 04000648 [000053] -A---------- * ASG float [000052] -------N---- +--* FIELD float W [000049] ------------ | \--* ADDR byref [000050] -------N---- | \--* LCL_VAR struct V04 tmp3 [000051] ------------ \--* CNS_DBL float 1.0000000000000000 [ 0] 29 (0x01d) ret *************** Inline @[000028] Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB03 [0002] 1 1 [000..01E) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB03 [000..01E) (return), preds={} succs={} ***** BB03 [000038] -A---------- * ASG float [000037] -------N---- +--* FIELD float X [000034] ------------ | \--* ADDR byref [000035] -------N---- | \--* LCL_VAR struct V04 tmp3 [000036] ------------ \--* CNS_DBL float 0.00000000000000000 ***** BB03 [000043] -A---------- * ASG float [000042] -------N---- +--* FIELD float Y [000039] ------------ | \--* ADDR byref [000040] -------N---- | \--* LCL_VAR struct V04 tmp3 [000041] ------------ \--* CNS_DBL float 0.00000000000000000 ***** BB03 [000048] -A---------- * ASG float [000047] -------N---- +--* FIELD float Z [000044] ------------ | \--* ADDR byref [000045] -------N---- | \--* LCL_VAR struct V04 tmp3 [000046] ------------ \--* CNS_DBL float 0.00000000000000000 ***** BB03 [000053] -A---------- * ASG float [000052] -------N---- +--* FIELD float W [000049] ------------ | \--* ADDR byref [000050] -------N---- | \--* LCL_VAR struct V04 tmp3 [000051] ------------ \--* CNS_DBL float 1.0000000000000000 ------------------------------------------------------------------------------------------------------------------- *************** Inline @[000028] Starting PHASE Indirect call transform -- no candidates to transform *************** Inline @[000028] Finishing PHASE Indirect call transform [no changes] *************** Inline @[000028] Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Inline @[000028] Finishing PHASE Expand patchpoints [no changes] *************** Inline @[000028] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000028] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000028] ----------- Arguments setup: Inlinee method body: STMT00007 (IL 0x000... ???) [000038] -A---------- * ASG float [000037] -------N---- +--* FIELD float X [000034] ------------ | \--* ADDR byref [000035] -------N---- | \--* LCL_VAR struct V04 tmp3 [000036] ------------ \--* CNS_DBL float 0.00000000000000000 STMT00008 (IL 0x000... ???) [000043] -A---------- * ASG float [000042] -------N---- +--* FIELD float Y [000039] ------------ | \--* ADDR byref [000040] -------N---- | \--* LCL_VAR struct V04 tmp3 [000041] ------------ \--* CNS_DBL float 0.00000000000000000 STMT00009 (IL 0x000... ???) [000048] -A---------- * ASG float [000047] -------N---- +--* FIELD float Z [000044] ------------ | \--* ADDR byref [000045] -------N---- | \--* LCL_VAR struct V04 tmp3 [000046] ------------ \--* CNS_DBL float 0.00000000000000000 STMT00010 (IL 0x000... ???) [000053] -A---------- * ASG float [000052] -------N---- +--* FIELD float W [000049] ------------ | \--* ADDR byref [000050] -------N---- | \--* LCL_VAR struct V04 tmp3 [000051] ------------ \--* CNS_DBL float 1.0000000000000000 fgInlineAppendStatements: no gc ref inline locals. Successfully inlined System.Numerics.Quaternion:.ctor(float,float,float,float):this (30 IL bytes) (depth 2) [profitable inline] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'profitable inline' for 'System.Numerics.Quaternion:get_IsIdentity():bool:this' calling 'System.Numerics.Quaternion:.ctor(float,float,float,float):this' INLINER: during 'fgInline' result 'success' reason 'profitable inline' Replacing the return expression placeholder [000007] with [000032] [000007] --C--------- * RET_EXPR void (inl return from call [000032]) Inserting the inline return expression [000032] -A---------- * ASG struct (copy) [000031] D------N---- +--* LCL_VAR struct V03 tmp2 [000029] ------------ \--* LCL_VAR struct V04 tmp3 Expanding INLINE_CANDIDATE in statement STMT00003 in BB01: STMT00003 (IL ???... ???) [000008] I-C-G------- * CALL r2r_ind int System.Numerics.Quaternion.op_Equality (exactContextHnd=0x00000000D1FFAB1E) [000015] n----------- arg0 +--* OBJ struct [000014] ------------ | \--* ADDR byref [000006] -------N---- | \--* LCL_VAR struct V02 tmp1 [000013] n----------- arg1 \--* OBJ struct [000012] ------------ \--* ADDR byref [000011] -------N---- \--* LCL_VAR struct V03 tmp2 Argument #0: [000015] n----------- * OBJ struct [000014] ------------ \--* ADDR byref [000006] -------N---- \--* LCL_VAR struct V02 tmp1 Argument #1: [000013] n----------- * OBJ struct [000012] ------------ \--* ADDR byref [000011] -------N---- \--* LCL_VAR struct V03 tmp2 SIMD Candidate Type System.Numerics.Quaternion Unknown SIMD Type SIMD Candidate Type System.Numerics.Quaternion Unknown SIMD Type INLINER: inlineInfo.tokenLookupContextHandle for System.Numerics.Quaternion:op_Equality(System.Numerics.Quaternion,System.Numerics.Quaternion):bool set to 0x00000000D1FFAB1E: Invoking compiler for the inlinee method System.Numerics.Quaternion:op_Equality(System.Numerics.Quaternion,System.Numerics.Quaternion):bool : IL to import: IL_0000 02 ldarg.0 IL_0001 7b 45 06 00 04 ldfld 0x4000645 IL_0006 03 ldarg.1 IL_0007 7b 45 06 00 04 ldfld 0x4000645 IL_000c 33 2b bne.un.s 43 (IL_0039) IL_000e 02 ldarg.0 IL_000f 7b 46 06 00 04 ldfld 0x4000646 IL_0014 03 ldarg.1 IL_0015 7b 46 06 00 04 ldfld 0x4000646 IL_001a 33 1d bne.un.s 29 (IL_0039) IL_001c 02 ldarg.0 IL_001d 7b 47 06 00 04 ldfld 0x4000647 IL_0022 03 ldarg.1 IL_0023 7b 47 06 00 04 ldfld 0x4000647 IL_0028 33 0f bne.un.s 15 (IL_0039) IL_002a 02 ldarg.0 IL_002b 7b 48 06 00 04 ldfld 0x4000648 IL_0030 03 ldarg.1 IL_0031 7b 48 06 00 04 ldfld 0x4000648 IL_0036 fe 01 ceq IL_0038 2a ret IL_0039 16 ldc.i4.0 IL_003a 2a ret INLINER impTokenLookupContextHandle for System.Numerics.Quaternion:op_Equality(System.Numerics.Quaternion,System.Numerics.Quaternion):bool is 0x00000000D1FFAB1E. *************** In fgFindBasicBlocks() for System.Numerics.Quaternion:op_Equality(System.Numerics.Quaternion,System.Numerics.Quaternion):bool weight= 31 : state 191 [ ldarg.0 -> ldfld ] weight= 29 : state 192 [ ldarg.1 -> ldfld ] weight= 12 : state 51 [ bne.un.s ] weight= 31 : state 191 [ ldarg.0 -> ldfld ] weight= 29 : state 192 [ ldarg.1 -> ldfld ] weight= 12 : state 51 [ bne.un.s ] weight= 31 : state 191 [ ldarg.0 -> ldfld ] weight= 29 : state 192 [ ldarg.1 -> ldfld ] weight= 12 : state 51 [ bne.un.s ] weight= 31 : state 191 [ ldarg.0 -> ldfld ] weight= 29 : state 192 [ ldarg.1 -> ldfld ] weight= 20 : state 168 [ ceq ] weight= 19 : state 42 [ ret ] weight= 15 : state 23 [ ldc.i4.0 ] weight= 19 : state 42 [ ret ] multiplier in methods of promotable struct increased to 3. Inline candidate has SIMD type args, locals or return value. Multiplier increased to 6. Inline candidate callsite is boring. Multiplier increased to 7.3. calleeNativeSizeEstimate=349 callsiteNativeSizeEstimate=155 benefit multiplier=7.3 threshold=1131 Native estimate for function size is within threshold for inlining 34.9 <= 113.1 (multiplier = 7.3) Jump targets: IL_0039 New Basic Block BB04 [0003] created. BB04 [000..00E) New Basic Block BB05 [0004] created. BB05 [00E..01C) New Basic Block BB06 [0005] created. BB06 [01C..02A) New Basic Block BB07 [0006] created. BB07 [02A..039) New Basic Block BB08 [0007] created. BB08 [039..03B) lvaGrabTemp returning 5 (V05 tmp4) (a long lifetime temp) called for Inline return value spill temp. Basic block list for 'System.Numerics.Quaternion:op_Equality(System.Numerics.Quaternion,System.Numerics.Quaternion):bool' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB04 [0003] 1 1 [000..00E)-> BB08 ( cond ) BB05 [0004] 1 1 [00E..01C)-> BB08 ( cond ) BB06 [0005] 1 1 [01C..02A)-> BB08 ( cond ) BB07 [0006] 1 1 [02A..039) (return) BB08 [0007] 3 1 [039..03B) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000008] Starting PHASE Pre-import *************** Inline @[000008] Finishing PHASE Pre-import *************** Inline @[000008] Starting PHASE Profile incorporation BBOPT not set *************** Inline @[000008] Finishing PHASE Profile incorporation [no changes] *************** Inline @[000008] Starting PHASE Importation *************** In impImport() for System.Numerics.Quaternion:op_Equality(System.Numerics.Quaternion,System.Numerics.Quaternion):bool impImportBlockPending for BB04 Importing BB04 (PC=000) of 'System.Numerics.Quaternion:op_Equality(System.Numerics.Quaternion,System.Numerics.Quaternion):bool' [ 0] 0 (0x000) ldarg.0 lvaGrabTemp returning 6 (V06 tmp5) called for Inlining Arg. SIMD Candidate Type System.Numerics.Quaternion Unknown SIMD Type [ 1] 1 (0x001) ldfld 04000645 [ 1] 6 (0x006) ldarg.1 lvaGrabTemp returning 7 (V07 tmp6) called for Inlining Arg. SIMD Candidate Type System.Numerics.Quaternion Unknown SIMD Type [ 2] 7 (0x007) ldfld 04000645 [ 2] 12 (0x00c) bne.un.s [000062] ------------ * JTRUE void [000061] N--------U-- \--* NE int [000057] ------------ +--* FIELD float X [000056] ------------ | \--* ADDR byref [000055] -------N---- | \--* LCL_VAR struct V06 tmp5 [000060] ------------ \--* FIELD float X [000059] ------------ \--* ADDR byref [000058] -------N---- \--* LCL_VAR struct V07 tmp6 impImportBlockPending for BB05 impImportBlockPending for BB08 Importing BB08 (PC=057) of 'System.Numerics.Quaternion:op_Equality(System.Numerics.Quaternion,System.Numerics.Quaternion):bool' [ 0] 57 (0x039) ldc.i4.0 0 [ 1] 58 (0x03a) ret Inlinee Return expression (before normalization) => [000063] ------------ * CNS_INT int 0 [000066] -A---------- * ASG bool [000065] D------N---- +--* LCL_VAR bool V05 tmp4 [000064] ------------ \--* CAST int <- bool <- int [000063] ------------ \--* CNS_INT int 0 Inlinee Return expression (after normalization) => [000067] ------------ * LCL_VAR bool V05 tmp4 Importing BB05 (PC=014) of 'System.Numerics.Quaternion:op_Equality(System.Numerics.Quaternion,System.Numerics.Quaternion):bool' [ 0] 14 (0x00e) ldarg.0 [ 1] 15 (0x00f) ldfld 04000646 [ 1] 20 (0x014) ldarg.1 [ 2] 21 (0x015) ldfld 04000646 [ 2] 26 (0x01a) bne.un.s [000075] ------------ * JTRUE void [000074] N--------U-- \--* NE int [000070] ------------ +--* FIELD float Y [000069] ------------ | \--* ADDR byref [000068] -------N---- | \--* LCL_VAR struct V06 tmp5 [000073] ------------ \--* FIELD float Y [000072] ------------ \--* ADDR byref [000071] -------N---- \--* LCL_VAR struct V07 tmp6 impImportBlockPending for BB06 impImportBlockPending for BB08 Importing BB06 (PC=028) of 'System.Numerics.Quaternion:op_Equality(System.Numerics.Quaternion,System.Numerics.Quaternion):bool' [ 0] 28 (0x01c) ldarg.0 [ 1] 29 (0x01d) ldfld 04000647 [ 1] 34 (0x022) ldarg.1 [ 2] 35 (0x023) ldfld 04000647 [ 2] 40 (0x028) bne.un.s [000083] ------------ * JTRUE void [000082] N--------U-- \--* NE int [000078] ------------ +--* FIELD float Z [000077] ------------ | \--* ADDR byref [000076] -------N---- | \--* LCL_VAR struct V06 tmp5 [000081] ------------ \--* FIELD float Z [000080] ------------ \--* ADDR byref [000079] -------N---- \--* LCL_VAR struct V07 tmp6 impImportBlockPending for BB07 impImportBlockPending for BB08 Importing BB07 (PC=042) of 'System.Numerics.Quaternion:op_Equality(System.Numerics.Quaternion,System.Numerics.Quaternion):bool' [ 0] 42 (0x02a) ldarg.0 [ 1] 43 (0x02b) ldfld 04000648 [ 1] 48 (0x030) ldarg.1 [ 2] 49 (0x031) ldfld 04000648 [ 2] 54 (0x036) ceq [ 1] 56 (0x038) ret Inlinee Return expression (before normalization) => [000090] ------------ * EQ int [000086] ------------ +--* FIELD float W [000085] ------------ | \--* ADDR byref [000084] -------N---- | \--* LCL_VAR struct V06 tmp5 [000089] ------------ \--* FIELD float W [000088] ------------ \--* ADDR byref [000087] -------N---- \--* LCL_VAR struct V07 tmp6 [000092] -A---------- * ASG bool [000091] D------N---- +--* LCL_VAR bool V05 tmp4 [000090] ------------ \--* EQ int [000086] ------------ +--* FIELD float W [000085] ------------ | \--* ADDR byref [000084] -------N---- | \--* LCL_VAR struct V06 tmp5 [000089] ------------ \--* FIELD float W [000088] ------------ \--* ADDR byref [000087] -------N---- \--* LCL_VAR struct V07 tmp6 Inlinee Return expression (after normalization) => [000093] ------------ * LCL_VAR bool V05 tmp4 *************** Inline @[000008] Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB04 [0003] 1 1 [000..00E)-> BB08 ( cond ) i BB05 [0004] 1 1 [00E..01C)-> BB08 ( cond ) i BB06 [0005] 1 1 [01C..02A)-> BB08 ( cond ) i BB07 [0006] 1 1 [02A..039) (return) i BB08 [0007] 3 1 [039..03B) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB04 [000..00E) -> BB08 (cond), preds={} succs={BB05,BB08} ***** BB04 [000062] ------------ * JTRUE void [000061] N--------U-- \--* NE int [000057] ------------ +--* FIELD float X [000056] ------------ | \--* ADDR byref [000055] -------N---- | \--* LCL_VAR struct V06 tmp5 [000060] ------------ \--* FIELD float X [000059] ------------ \--* ADDR byref [000058] -------N---- \--* LCL_VAR struct V07 tmp6 ------------ BB05 [00E..01C) -> BB08 (cond), preds={} succs={BB06,BB08} ***** BB05 [000075] ------------ * JTRUE void [000074] N--------U-- \--* NE int [000070] ------------ +--* FIELD float Y [000069] ------------ | \--* ADDR byref [000068] -------N---- | \--* LCL_VAR struct V06 tmp5 [000073] ------------ \--* FIELD float Y [000072] ------------ \--* ADDR byref [000071] -------N---- \--* LCL_VAR struct V07 tmp6 ------------ BB06 [01C..02A) -> BB08 (cond), preds={} succs={BB07,BB08} ***** BB06 [000083] ------------ * JTRUE void [000082] N--------U-- \--* NE int [000078] ------------ +--* FIELD float Z [000077] ------------ | \--* ADDR byref [000076] -------N---- | \--* LCL_VAR struct V06 tmp5 [000081] ------------ \--* FIELD float Z [000080] ------------ \--* ADDR byref [000079] -------N---- \--* LCL_VAR struct V07 tmp6 ------------ BB07 [02A..039) (return), preds={} succs={} ***** BB07 [000092] -A---------- * ASG bool [000091] D------N---- +--* LCL_VAR bool V05 tmp4 [000090] ------------ \--* EQ int [000086] ------------ +--* FIELD float W [000085] ------------ | \--* ADDR byref [000084] -------N---- | \--* LCL_VAR struct V06 tmp5 [000089] ------------ \--* FIELD float W [000088] ------------ \--* ADDR byref [000087] -------N---- \--* LCL_VAR struct V07 tmp6 ------------ BB08 [039..03B) (return), preds={} succs={} ***** BB08 [000066] -A---------- * ASG bool [000065] D------N---- +--* LCL_VAR bool V05 tmp4 [000064] ------------ \--* CAST int <- bool <- int [000063] ------------ \--* CNS_INT int 0 ------------------------------------------------------------------------------------------------------------------- *************** Inline @[000008] Starting PHASE Indirect call transform -- no candidates to transform *************** Inline @[000008] Finishing PHASE Indirect call transform [no changes] *************** Inline @[000008] Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Inline @[000008] Finishing PHASE Expand patchpoints [no changes] *************** Inline @[000008] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000008] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000008] ----------- Arguments setup: SIMD Candidate Type System.Numerics.Quaternion Unknown SIMD Type STMT00016 (IL ???... ???) [000096] -A---------- * ASG struct (copy) [000094] D------N---- +--* LCL_VAR struct V06 tmp5 [000015] n----------- \--* OBJ struct [000014] ------------ \--* ADDR byref [000006] -------N---- \--* LCL_VAR struct V02 tmp1 SIMD Candidate Type System.Numerics.Quaternion Unknown SIMD Type STMT00017 (IL ???... ???) [000099] -A---------- * ASG struct (copy) [000097] D------N---- +--* LCL_VAR struct V07 tmp6 [000013] n----------- \--* OBJ struct [000012] ------------ \--* ADDR byref [000011] -------N---- \--* LCL_VAR struct V03 tmp2 Inlinee method body:New Basic Block BB09 [0008] created. Convert bbJumpKind of BB07 to BBJ_ALWAYS to bottomBlock BB09 Convert bbJumpKind of BB08 to BBJ_NONE fgInlineAppendStatements: no gc ref inline locals. ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB04 [0003] 1 1 [000..000)-> BB08 ( cond ) i internal BB05 [0004] 1 0.50 [000..000)-> BB08 ( cond ) i internal BB06 [0005] 1 0.50 [000..000)-> BB08 ( cond ) i internal BB07 [0006] 1 1 [000..000)-> BB09 (always) i internal BB08 [0007] 3 1 [000..000) i internal ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB04 [000..000) -> BB08 (cond), preds={} succs={BB05,BB08} ***** BB04 STMT00011 (IL ???... ???) [000062] ------------ * JTRUE void [000061] N--------U-- \--* NE int [000057] ------------ +--* FIELD float X [000056] ------------ | \--* ADDR byref [000055] -------N---- | \--* LCL_VAR struct V06 tmp5 [000060] ------------ \--* FIELD float X [000059] ------------ \--* ADDR byref [000058] -------N---- \--* LCL_VAR struct V07 tmp6 ------------ BB05 [000..000) -> BB08 (cond), preds={} succs={BB06,BB08} ***** BB05 STMT00013 (IL ???... ???) [000075] ------------ * JTRUE void [000074] N--------U-- \--* NE int [000070] ------------ +--* FIELD float Y [000069] ------------ | \--* ADDR byref [000068] -------N---- | \--* LCL_VAR struct V06 tmp5 [000073] ------------ \--* FIELD float Y [000072] ------------ \--* ADDR byref [000071] -------N---- \--* LCL_VAR struct V07 tmp6 ------------ BB06 [000..000) -> BB08 (cond), preds={} succs={BB07,BB08} ***** BB06 STMT00014 (IL ???... ???) [000083] ------------ * JTRUE void [000082] N--------U-- \--* NE int [000078] ------------ +--* FIELD float Z [000077] ------------ | \--* ADDR byref [000076] -------N---- | \--* LCL_VAR struct V06 tmp5 [000081] ------------ \--* FIELD float Z [000080] ------------ \--* ADDR byref [000079] -------N---- \--* LCL_VAR struct V07 tmp6 ------------ BB07 [000..000) -> BB09 (always), preds={} succs={BB09} ***** BB07 STMT00015 (IL ???... ???) [000092] -A---------- * ASG bool [000091] D------N---- +--* LCL_VAR bool V05 tmp4 [000090] ------------ \--* EQ int [000086] ------------ +--* FIELD float W [000085] ------------ | \--* ADDR byref [000084] -------N---- | \--* LCL_VAR struct V06 tmp5 [000089] ------------ \--* FIELD float W [000088] ------------ \--* ADDR byref [000087] -------N---- \--* LCL_VAR struct V07 tmp6 ------------ BB08 [000..000), preds={} succs={BB09} ***** BB08 STMT00012 (IL ???... ???) [000066] -A---------- * ASG bool [000065] D------N---- +--* LCL_VAR bool V05 tmp4 [000064] ------------ \--* CAST int <- bool <- int [000063] ------------ \--* CNS_INT int 0 ------------------------------------------------------------------------------------------------------------------- Return expression for call at [000008] is [000093] ------------ * LCL_VAR bool V05 tmp4 Successfully inlined System.Numerics.Quaternion:op_Equality(System.Numerics.Quaternion,System.Numerics.Quaternion):bool (59 IL bytes) (depth 1) [profitable inline] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'profitable inline' for 'System.Numerics.Quaternion:get_IsIdentity():bool:this' calling 'System.Numerics.Quaternion:op_Equality(System.Numerics.Quaternion,System.Numerics.Quaternion):bool' INLINER: during 'fgInline' result 'success' reason 'profitable inline' Replacing the return expression placeholder [000016] with [000093] [000016] --C--------- * RET_EXPR int (inl return from call [000093]) Inserting the inline return expression [000093] ------------ * LCL_VAR bool V05 tmp4 **************** Inline Tree Inlines into 06001CD2 [via DefaultPolicy] System.Numerics.Quaternion:get_IsIdentity():bool:this [1 IL=0006 TR=000002 06001CD1] [profitable inline] System.Numerics.Quaternion:get_Identity():System.Numerics.Quaternion [2 IL=0020 TR=000028 06001CCF] [profitable inline] System.Numerics.Quaternion:.ctor(float,float,float,float):this [3 IL=0011 TR=000008 06001CD5] [profitable inline] System.Numerics.Quaternion:op_Equality(System.Numerics.Quaternion,System.Numerics.Quaternion):bool Budget: initialTime=111, finalTime=299, initialBudget=1110, currentBudget=1110 Budget: initialSize=518, finalSize=1186 *************** Finishing PHASE Morph - Inlining Trees after Morph - Inlining ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011) i BB04 [0003] 1 1 [000..000)-> BB08 ( cond ) i internal BB05 [0004] 1 0.50 [000..000)-> BB08 ( cond ) i internal BB06 [0005] 1 0.50 [000..000)-> BB08 ( cond ) i internal BB07 [0006] 1 1 [000..000)-> BB09 (always) i internal BB08 [0007] 3 1 [000..000) i internal BB09 [0008] 1 1 [???..???) (return) internal ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..011), preds={} succs={BB04} ***** BB01 STMT00001 (IL 0x000...0x010) [000005] -A-XG------- * ASG struct (copy) [000003] D------N---- +--* LCL_VAR struct V02 tmp1 [000001] ---XG------- \--* OBJ struct [000000] ------------ \--* LCL_VAR byref V00 this ***** BB01 STMT00005 (IL 0x000... ???) [000025] IA---------- * ASG struct (init) [000023] D------N---- +--* LCL_VAR struct V04 tmp3 [000024] ------------ \--* CNS_INT int 0 ***** BB01 STMT00007 (IL 0x000... ???) [000038] -A---------- * ASG float [000037] -------N---- +--* FIELD float X [000034] ------------ | \--* ADDR byref [000035] -------N---- | \--* LCL_VAR struct V04 tmp3 [000036] ------------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00008 (IL 0x000... ???) [000043] -A---------- * ASG float [000042] -------N---- +--* FIELD float Y [000039] ------------ | \--* ADDR byref [000040] -------N---- | \--* LCL_VAR struct V04 tmp3 [000041] ------------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00009 (IL 0x000... ???) [000048] -A---------- * ASG float [000047] -------N---- +--* FIELD float Z [000044] ------------ | \--* ADDR byref [000045] -------N---- | \--* LCL_VAR struct V04 tmp3 [000046] ------------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00010 (IL 0x000... ???) [000053] -A---------- * ASG float [000052] -------N---- +--* FIELD float W [000049] ------------ | \--* ADDR byref [000050] -------N---- | \--* LCL_VAR struct V04 tmp3 [000051] ------------ \--* CNS_DBL float 1.0000000000000000 ***** BB01 STMT00002 (IL ???... ???) [000032] -A---------- * ASG struct (copy) [000031] D------N---- +--* LCL_VAR struct V03 tmp2 [000029] ------------ \--* LCL_VAR struct V04 tmp3 ***** BB01 STMT00016 (IL ???... ???) [000096] -A---------- * ASG struct (copy) [000094] D------N---- +--* LCL_VAR struct V06 tmp5 [000015] n----------- \--* OBJ struct [000014] ------------ \--* ADDR byref [000006] -------N---- \--* LCL_VAR struct V02 tmp1 ***** BB01 STMT00017 (IL ???... ???) [000099] -A---------- * ASG struct (copy) [000097] D------N---- +--* LCL_VAR struct V07 tmp6 [000013] n----------- \--* OBJ struct [000012] ------------ \--* ADDR byref [000011] -------N---- \--* LCL_VAR struct V03 tmp2 ------------ BB04 [000..000) -> BB08 (cond), preds={} succs={BB05,BB08} ***** BB04 STMT00011 (IL ???... ???) [000062] ------------ * JTRUE void [000061] N--------U-- \--* NE int [000057] ------------ +--* FIELD float X [000056] ------------ | \--* ADDR byref [000055] -------N---- | \--* LCL_VAR struct V06 tmp5 [000060] ------------ \--* FIELD float X [000059] ------------ \--* ADDR byref [000058] -------N---- \--* LCL_VAR struct V07 tmp6 ------------ BB05 [000..000) -> BB08 (cond), preds={} succs={BB06,BB08} ***** BB05 STMT00013 (IL ???... ???) [000075] ------------ * JTRUE void [000074] N--------U-- \--* NE int [000070] ------------ +--* FIELD float Y [000069] ------------ | \--* ADDR byref [000068] -------N---- | \--* LCL_VAR struct V06 tmp5 [000073] ------------ \--* FIELD float Y [000072] ------------ \--* ADDR byref [000071] -------N---- \--* LCL_VAR struct V07 tmp6 ------------ BB06 [000..000) -> BB08 (cond), preds={} succs={BB07,BB08} ***** BB06 STMT00014 (IL ???... ???) [000083] ------------ * JTRUE void [000082] N--------U-- \--* NE int [000078] ------------ +--* FIELD float Z [000077] ------------ | \--* ADDR byref [000076] -------N---- | \--* LCL_VAR struct V06 tmp5 [000081] ------------ \--* FIELD float Z [000080] ------------ \--* ADDR byref [000079] -------N---- \--* LCL_VAR struct V07 tmp6 ------------ BB07 [000..000) -> BB09 (always), preds={} succs={BB09} ***** BB07 STMT00015 (IL ???... ???) [000092] -A---------- * ASG bool [000091] D------N---- +--* LCL_VAR bool V05 tmp4 [000090] ------------ \--* EQ int [000086] ------------ +--* FIELD float W [000085] ------------ | \--* ADDR byref [000084] -------N---- | \--* LCL_VAR struct V06 tmp5 [000089] ------------ \--* FIELD float W [000088] ------------ \--* ADDR byref [000087] -------N---- \--* LCL_VAR struct V07 tmp6 ------------ BB08 [000..000), preds={} succs={BB09} ***** BB08 STMT00012 (IL ???... ???) [000066] -A---------- * ASG bool [000065] D------N---- +--* LCL_VAR bool V05 tmp4 [000064] ------------ \--* CAST int <- bool <- int [000063] ------------ \--* CNS_INT int 0 ------------ BB09 [???..???) (return), preds={} succs={} ***** BB09 STMT00004 (IL ???... ???) [000018] --C--------- * RETURN int [000017] --C--------- \--* CAST int <- bool <- int [000093] ------------ \--* LCL_VAR bool V05 tmp4 ------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Allocate Objects no newobjs in this method; punting *************** Finishing PHASE Allocate Objects [no changes] *************** Starting PHASE Morph - Add internal blocks *************** After fgAddInternal() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011) i BB04 [0003] 1 1 [000..000)-> BB08 ( cond ) i internal BB05 [0004] 1 0.50 [000..000)-> BB08 ( cond ) i internal BB06 [0005] 1 0.50 [000..000)-> BB08 ( cond ) i internal BB07 [0006] 1 1 [000..000)-> BB09 (always) i internal BB08 [0007] 3 1 [000..000) i internal BB09 [0008] 1 1 [???..???) (return) internal ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table is empty *************** Finishing PHASE Morph - Add internal blocks *************** Starting PHASE Remove empty try *************** In fgRemoveEmptyTry() No EH in this method, nothing to remove. *************** Finishing PHASE Remove empty try [no changes] *************** Starting PHASE Remove empty finally No EH in this method, nothing to remove. *************** Finishing PHASE Remove empty finally [no changes] *************** Starting PHASE Merge callfinally chains No EH in this method, nothing to merge. *************** Finishing PHASE Merge callfinally chains [no changes] *************** Starting PHASE Clone finally No EH in this method, no cloning. *************** Finishing PHASE Clone finally [no changes] *************** Starting PHASE Compute preds Renumbering the basic blocks for fgComputePred *************** Before renumbering the basic blocks ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011) i BB04 [0003] 1 1 [000..000)-> BB08 ( cond ) i internal BB05 [0004] 1 0.50 [000..000)-> BB08 ( cond ) i internal BB06 [0005] 1 0.50 [000..000)-> BB08 ( cond ) i internal BB07 [0006] 1 1 [000..000)-> BB09 (always) i internal BB08 [0007] 3 1 [000..000) i internal BB09 [0008] 1 1 [???..???) (return) internal ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table is empty Renumber BB04 to BB02 Renumber BB05 to BB03 Renumber BB06 to BB04 Renumber BB07 to BB05 Renumber BB08 to BB06 Renumber BB09 to BB07 *************** After renumbering the basic blocks ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011) i BB02 [0003] 1 1 [000..000)-> BB06 ( cond ) i internal BB03 [0004] 1 0.50 [000..000)-> BB06 ( cond ) i internal BB04 [0005] 1 0.50 [000..000)-> BB06 ( cond ) i internal BB05 [0006] 1 1 [000..000)-> BB07 (always) i internal BB06 [0007] 3 1 [000..000) i internal BB07 [0008] 1 1 [???..???) (return) internal ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table is empty New BlockSet epoch 2, # of blocks (including unused BB00): 8, 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..011) i BB02 [0003] 1 1 [000..000)-> BB06 ( cond ) i internal BB03 [0004] 1 0.50 [000..000)-> BB06 ( cond ) i internal BB04 [0005] 1 0.50 [000..000)-> BB06 ( cond ) i internal BB05 [0006] 1 1 [000..000)-> BB07 (always) i internal BB06 [0007] 3 1 [000..000) i internal BB07 [0008] 1 1 [???..???) (return) internal ----------------------------------------------------------------------------------------------------------------------------------------- *************** After fgComputePreds() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011) i label target BB02 [0003] 1 BB01 1 [000..000)-> BB06 ( cond ) i internal BB03 [0004] 1 BB02 0.50 [000..000)-> BB06 ( cond ) i internal BB04 [0005] 1 BB03 0.50 [000..000)-> BB06 ( cond ) i internal BB05 [0006] 1 BB04 1 [000..000)-> BB07 (always) i internal BB06 [0007] 3 BB02,BB03,BB04 1 [000..000) i internal label target BB07 [0008] 2 BB05,BB06 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- *************** Finishing PHASE Compute preds *************** Starting PHASE Merge throw blocks *************** In fgTailMergeThrows Method does not have multiple noreturn calls. *************** Finishing PHASE Merge throw blocks [no changes] *************** Starting PHASE Update flow graph early pass *************** In fgUpdateFlowGraph() Before updating the flow graph: ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011) i label target BB02 [0003] 1 BB01 1 [000..000)-> BB06 ( cond ) i internal BB03 [0004] 1 BB02 0.50 [000..000)-> BB06 ( cond ) i internal BB04 [0005] 1 BB03 0.50 [000..000)-> BB06 ( cond ) i internal BB05 [0006] 1 BB04 1 [000..000)-> BB07 (always) i internal BB06 [0007] 3 BB02,BB03,BB04 1 [000..000) i internal label target BB07 [0008] 2 BB05,BB06 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- Compacting blocks BB01 and BB02: *************** 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..011)-> BB06 ( cond ) i label target BB03 [0004] 1 BB01 0.50 [000..000)-> BB06 ( cond ) i internal BB04 [0005] 1 BB03 0.50 [000..000)-> BB06 ( cond ) i internal BB05 [0006] 1 BB04 1 [000..000)-> BB07 (always) i internal BB06 [0007] 3 BB01,BB03,BB04 1 [000..000) i internal label target BB07 [0008] 2 BB05,BB06 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table is empty *************** In fgDebugCheckBBlist *************** Finishing PHASE Update flow graph early pass *************** Starting PHASE Morph - Promote Structs *************** In fgResetImplicitByRefRefCount() *************** In fgPromoteStructs() lvaTable before fgPromoteStructs ; Initial local variable assignments ; ; V00 this byref this ; V01 OutArgs lclBlk "OutgoingArgSpace" ; V02 tmp1 struct "impAppendStmt" ; V03 tmp2 struct "struct address for call/obj" ; V04 tmp3 struct "NewObj constructor temp" ; V05 tmp4 bool "Inline return value spill temp" ; V06 tmp5 struct "Inlining Arg" ; V07 tmp6 struct "Inlining Arg" Not promoting promotable struct local V02: #fields = 4, fieldAccessed = 0. Not promoting promotable struct local V03: #fields = 4, fieldAccessed = 0. Promoting struct local V04 (System.Numerics.Quaternion): lvaGrabTemp returning 8 (V08 tmp7) (a long lifetime temp) called for field V04.X (fldOffset=0x0). lvaGrabTemp returning 9 (V09 tmp8) (a long lifetime temp) called for field V04.Y (fldOffset=0x4). lvaGrabTemp returning 10 (V10 tmp9) (a long lifetime temp) called for field V04.Z (fldOffset=0x8). lvaGrabTemp returning 11 (V11 tmp10) (a long lifetime temp) called for field V04.W (fldOffset=0xc). Promoting struct local V06 (System.Numerics.Quaternion): lvaGrabTemp returning 12 (V12 tmp11) (a long lifetime temp) called for field V06.X (fldOffset=0x0). lvaGrabTemp returning 13 (V13 tmp12) (a long lifetime temp) called for field V06.Y (fldOffset=0x4). lvaGrabTemp returning 14 (V14 tmp13) (a long lifetime temp) called for field V06.Z (fldOffset=0x8). lvaGrabTemp returning 15 (V15 tmp14) (a long lifetime temp) called for field V06.W (fldOffset=0xc). Promoting struct local V07 (System.Numerics.Quaternion): lvaGrabTemp returning 16 (V16 tmp15) (a long lifetime temp) called for field V07.X (fldOffset=0x0). lvaGrabTemp returning 17 (V17 tmp16) (a long lifetime temp) called for field V07.Y (fldOffset=0x4). lvaGrabTemp returning 18 (V18 tmp17) (a long lifetime temp) called for field V07.Z (fldOffset=0x8). lvaGrabTemp returning 19 (V19 tmp18) (a long lifetime temp) called for field V07.W (fldOffset=0xc). lvaTable after fgPromoteStructs ; Initial local variable assignments ; ; V00 this byref this ; V01 OutArgs lclBlk "OutgoingArgSpace" ; V02 tmp1 struct "impAppendStmt" ; V03 tmp2 struct "struct address for call/obj" ; V04 tmp3 struct "NewObj constructor temp" ; V05 tmp4 bool "Inline return value spill temp" ; V06 tmp5 struct "Inlining Arg" ; V07 tmp6 struct "Inlining Arg" ; V08 tmp7 float V04.X(offs=0x00) P-INDEP "field V04.X (fldOffset=0x0)" ; V09 tmp8 float V04.Y(offs=0x04) P-INDEP "field V04.Y (fldOffset=0x4)" ; V10 tmp9 float V04.Z(offs=0x08) P-INDEP "field V04.Z (fldOffset=0x8)" ; V11 tmp10 float V04.W(offs=0x0c) P-INDEP "field V04.W (fldOffset=0xc)" ; V12 tmp11 float V06.X(offs=0x00) P-INDEP "field V06.X (fldOffset=0x0)" ; V13 tmp12 float V06.Y(offs=0x04) P-INDEP "field V06.Y (fldOffset=0x4)" ; V14 tmp13 float V06.Z(offs=0x08) P-INDEP "field V06.Z (fldOffset=0x8)" ; V15 tmp14 float V06.W(offs=0x0c) P-INDEP "field V06.W (fldOffset=0xc)" ; V16 tmp15 float V07.X(offs=0x00) P-INDEP "field V07.X (fldOffset=0x0)" ; V17 tmp16 float V07.Y(offs=0x04) P-INDEP "field V07.Y (fldOffset=0x4)" ; V18 tmp17 float V07.Z(offs=0x08) P-INDEP "field V07.Z (fldOffset=0x8)" ; V19 tmp18 float V07.W(offs=0x0c) P-INDEP "field V07.W (fldOffset=0xc)" *************** Finishing PHASE Morph - Promote Structs *************** Starting PHASE Morph - Structs/AddrExp *************** In fgMarkAddressExposedLocals() LocalAddressVisitor visiting statement: STMT00001 (IL 0x000...0x010) [000005] -A-XG------- * ASG struct (copy) [000003] D------N---- +--* LCL_VAR struct V02 tmp1 [000001] ---XG------- \--* OBJ struct [000000] ------------ \--* LCL_VAR byref V00 this LocalAddressVisitor visiting statement: STMT00005 (IL 0x000... ???) [000025] IA---------- * ASG struct (init) [000023] D------N---- +--* LCL_VAR struct(P) V04 tmp3 +--* float V04.X (offs=0x00) -> V08 tmp7 +--* float V04.Y (offs=0x04) -> V09 tmp8 +--* float V04.Z (offs=0x08) -> V10 tmp9 +--* float V04.W (offs=0x0c) -> V11 tmp10 [000024] ------------ \--* CNS_INT int 0 LocalAddressVisitor visiting statement: STMT00007 (IL 0x000... ???) [000038] -A---------- * ASG float [000037] -------N---- +--* FIELD float X [000034] ------------ | \--* ADDR byref [000035] -------N---- | \--* LCL_VAR struct(P) V04 tmp3 | \--* float V04.X (offs=0x00) -> V08 tmp7 | \--* float V04.Y (offs=0x04) -> V09 tmp8 | \--* float V04.Z (offs=0x08) -> V10 tmp9 | \--* float V04.W (offs=0x0c) -> V11 tmp10 [000036] ------------ \--* CNS_DBL float 0.00000000000000000 Replacing the field in promoted struct with local var V08 LocalAddressVisitor modified statement: STMT00007 (IL 0x000... ???) [000038] -A---------- * ASG float [000037] D------N---- +--* LCL_VAR float V08 tmp7 [000036] ------------ \--* CNS_DBL float 0.00000000000000000 LocalAddressVisitor visiting statement: STMT00008 (IL 0x000... ???) [000043] -A---------- * ASG float [000042] -------N---- +--* FIELD float Y [000039] ------------ | \--* ADDR byref [000040] -------N---- | \--* LCL_VAR struct(P) V04 tmp3 | \--* float V04.X (offs=0x00) -> V08 tmp7 | \--* float V04.Y (offs=0x04) -> V09 tmp8 | \--* float V04.Z (offs=0x08) -> V10 tmp9 | \--* float V04.W (offs=0x0c) -> V11 tmp10 [000041] ------------ \--* CNS_DBL float 0.00000000000000000 Replacing the field in promoted struct with local var V09 LocalAddressVisitor modified statement: STMT00008 (IL 0x000... ???) [000043] -A---------- * ASG float [000042] D------N---- +--* LCL_VAR float V09 tmp8 [000041] ------------ \--* CNS_DBL float 0.00000000000000000 LocalAddressVisitor visiting statement: STMT00009 (IL 0x000... ???) [000048] -A---------- * ASG float [000047] -------N---- +--* FIELD float Z [000044] ------------ | \--* ADDR byref [000045] -------N---- | \--* LCL_VAR struct(P) V04 tmp3 | \--* float V04.X (offs=0x00) -> V08 tmp7 | \--* float V04.Y (offs=0x04) -> V09 tmp8 | \--* float V04.Z (offs=0x08) -> V10 tmp9 | \--* float V04.W (offs=0x0c) -> V11 tmp10 [000046] ------------ \--* CNS_DBL float 0.00000000000000000 Replacing the field in promoted struct with local var V10 LocalAddressVisitor modified statement: STMT00009 (IL 0x000... ???) [000048] -A---------- * ASG float [000047] D------N---- +--* LCL_VAR float V10 tmp9 [000046] ------------ \--* CNS_DBL float 0.00000000000000000 LocalAddressVisitor visiting statement: STMT00010 (IL 0x000... ???) [000053] -A---------- * ASG float [000052] -------N---- +--* FIELD float W [000049] ------------ | \--* ADDR byref [000050] -------N---- | \--* LCL_VAR struct(P) V04 tmp3 | \--* float V04.X (offs=0x00) -> V08 tmp7 | \--* float V04.Y (offs=0x04) -> V09 tmp8 | \--* float V04.Z (offs=0x08) -> V10 tmp9 | \--* float V04.W (offs=0x0c) -> V11 tmp10 [000051] ------------ \--* CNS_DBL float 1.0000000000000000 Replacing the field in promoted struct with local var V11 LocalAddressVisitor modified statement: STMT00010 (IL 0x000... ???) [000053] -A---------- * ASG float [000052] D------N---- +--* LCL_VAR float V11 tmp10 [000051] ------------ \--* CNS_DBL float 1.0000000000000000 LocalAddressVisitor visiting statement: STMT00002 (IL ???... ???) [000032] -A---------- * ASG struct (copy) [000031] D------N---- +--* LCL_VAR struct V03 tmp2 [000029] ------------ \--* LCL_VAR struct(P) V04 tmp3 \--* float V04.X (offs=0x00) -> V08 tmp7 \--* float V04.Y (offs=0x04) -> V09 tmp8 \--* float V04.Z (offs=0x08) -> V10 tmp9 \--* float V04.W (offs=0x0c) -> V11 tmp10 LocalAddressVisitor visiting statement: STMT00016 (IL ???... ???) [000096] -A---------- * ASG struct (copy) [000094] D------N---- +--* LCL_VAR struct(P) V06 tmp5 +--* float V06.X (offs=0x00) -> V12 tmp11 +--* float V06.Y (offs=0x04) -> V13 tmp12 +--* float V06.Z (offs=0x08) -> V14 tmp13 +--* float V06.W (offs=0x0c) -> V15 tmp14 [000015] n----------- \--* OBJ struct [000014] ------------ \--* ADDR byref [000006] -------N---- \--* LCL_VAR struct V02 tmp1 LocalAddressVisitor modified statement: STMT00016 (IL ???... ???) [000096] -A---------- * ASG struct (copy) [000094] D------N---- +--* LCL_VAR struct(P) V06 tmp5 +--* float V06.X (offs=0x00) -> V12 tmp11 +--* float V06.Y (offs=0x04) -> V13 tmp12 +--* float V06.Z (offs=0x08) -> V14 tmp13 +--* float V06.W (offs=0x0c) -> V15 tmp14 [000015] ------------ \--* LCL_VAR struct V02 tmp1 LocalAddressVisitor visiting statement: STMT00017 (IL ???... ???) [000099] -A---------- * ASG struct (copy) [000097] D------N---- +--* LCL_VAR struct(P) V07 tmp6 +--* float V07.X (offs=0x00) -> V16 tmp15 +--* float V07.Y (offs=0x04) -> V17 tmp16 +--* float V07.Z (offs=0x08) -> V18 tmp17 +--* float V07.W (offs=0x0c) -> V19 tmp18 [000013] n----------- \--* OBJ struct [000012] ------------ \--* ADDR byref [000011] -------N---- \--* LCL_VAR struct V03 tmp2 LocalAddressVisitor modified statement: STMT00017 (IL ???... ???) [000099] -A---------- * ASG struct (copy) [000097] D------N---- +--* LCL_VAR struct(P) V07 tmp6 +--* float V07.X (offs=0x00) -> V16 tmp15 +--* float V07.Y (offs=0x04) -> V17 tmp16 +--* float V07.Z (offs=0x08) -> V18 tmp17 +--* float V07.W (offs=0x0c) -> V19 tmp18 [000013] ------------ \--* LCL_VAR struct V03 tmp2 LocalAddressVisitor visiting statement: STMT00011 (IL ???... ???) [000062] ------------ * JTRUE void [000061] N--------U-- \--* NE int [000057] ------------ +--* FIELD float X [000056] ------------ | \--* ADDR byref [000055] -------N---- | \--* LCL_VAR struct(P) V06 tmp5 | \--* float V06.X (offs=0x00) -> V12 tmp11 | \--* float V06.Y (offs=0x04) -> V13 tmp12 | \--* float V06.Z (offs=0x08) -> V14 tmp13 | \--* float V06.W (offs=0x0c) -> V15 tmp14 [000060] ------------ \--* FIELD float X [000059] ------------ \--* ADDR byref [000058] -------N---- \--* LCL_VAR struct(P) V07 tmp6 \--* float V07.X (offs=0x00) -> V16 tmp15 \--* float V07.Y (offs=0x04) -> V17 tmp16 \--* float V07.Z (offs=0x08) -> V18 tmp17 \--* float V07.W (offs=0x0c) -> V19 tmp18 Replacing the field in promoted struct with local var V12 Replacing the field in promoted struct with local var V16 LocalAddressVisitor modified statement: STMT00011 (IL ???... ???) [000062] ------------ * JTRUE void [000061] N--------U-- \--* NE int [000057] ------------ +--* LCL_VAR float V12 tmp11 [000060] ------------ \--* LCL_VAR float V16 tmp15 LocalAddressVisitor visiting statement: STMT00013 (IL ???... ???) [000075] ------------ * JTRUE void [000074] N--------U-- \--* NE int [000070] ------------ +--* FIELD float Y [000069] ------------ | \--* ADDR byref [000068] -------N---- | \--* LCL_VAR struct(P) V06 tmp5 | \--* float V06.X (offs=0x00) -> V12 tmp11 | \--* float V06.Y (offs=0x04) -> V13 tmp12 | \--* float V06.Z (offs=0x08) -> V14 tmp13 | \--* float V06.W (offs=0x0c) -> V15 tmp14 [000073] ------------ \--* FIELD float Y [000072] ------------ \--* ADDR byref [000071] -------N---- \--* LCL_VAR struct(P) V07 tmp6 \--* float V07.X (offs=0x00) -> V16 tmp15 \--* float V07.Y (offs=0x04) -> V17 tmp16 \--* float V07.Z (offs=0x08) -> V18 tmp17 \--* float V07.W (offs=0x0c) -> V19 tmp18 Replacing the field in promoted struct with local var V13 Replacing the field in promoted struct with local var V17 LocalAddressVisitor modified statement: STMT00013 (IL ???... ???) [000075] ------------ * JTRUE void [000074] N--------U-- \--* NE int [000070] ------------ +--* LCL_VAR float V13 tmp12 [000073] ------------ \--* LCL_VAR float V17 tmp16 LocalAddressVisitor visiting statement: STMT00014 (IL ???... ???) [000083] ------------ * JTRUE void [000082] N--------U-- \--* NE int [000078] ------------ +--* FIELD float Z [000077] ------------ | \--* ADDR byref [000076] -------N---- | \--* LCL_VAR struct(P) V06 tmp5 | \--* float V06.X (offs=0x00) -> V12 tmp11 | \--* float V06.Y (offs=0x04) -> V13 tmp12 | \--* float V06.Z (offs=0x08) -> V14 tmp13 | \--* float V06.W (offs=0x0c) -> V15 tmp14 [000081] ------------ \--* FIELD float Z [000080] ------------ \--* ADDR byref [000079] -------N---- \--* LCL_VAR struct(P) V07 tmp6 \--* float V07.X (offs=0x00) -> V16 tmp15 \--* float V07.Y (offs=0x04) -> V17 tmp16 \--* float V07.Z (offs=0x08) -> V18 tmp17 \--* float V07.W (offs=0x0c) -> V19 tmp18 Replacing the field in promoted struct with local var V14 Replacing the field in promoted struct with local var V18 LocalAddressVisitor modified statement: STMT00014 (IL ???... ???) [000083] ------------ * JTRUE void [000082] N--------U-- \--* NE int [000078] ------------ +--* LCL_VAR float V14 tmp13 [000081] ------------ \--* LCL_VAR float V18 tmp17 LocalAddressVisitor visiting statement: STMT00015 (IL ???... ???) [000092] -A---------- * ASG bool [000091] D------N---- +--* LCL_VAR bool V05 tmp4 [000090] ------------ \--* EQ int [000086] ------------ +--* FIELD float W [000085] ------------ | \--* ADDR byref [000084] -------N---- | \--* LCL_VAR struct(P) V06 tmp5 | \--* float V06.X (offs=0x00) -> V12 tmp11 | \--* float V06.Y (offs=0x04) -> V13 tmp12 | \--* float V06.Z (offs=0x08) -> V14 tmp13 | \--* float V06.W (offs=0x0c) -> V15 tmp14 [000089] ------------ \--* FIELD float W [000088] ------------ \--* ADDR byref [000087] -------N---- \--* LCL_VAR struct(P) V07 tmp6 \--* float V07.X (offs=0x00) -> V16 tmp15 \--* float V07.Y (offs=0x04) -> V17 tmp16 \--* float V07.Z (offs=0x08) -> V18 tmp17 \--* float V07.W (offs=0x0c) -> V19 tmp18 Replacing the field in promoted struct with local var V15 Replacing the field in promoted struct with local var V19 LocalAddressVisitor modified statement: STMT00015 (IL ???... ???) [000092] -A---------- * ASG bool [000091] D------N---- +--* LCL_VAR bool V05 tmp4 [000090] ------------ \--* EQ int [000086] ------------ +--* LCL_VAR float V15 tmp14 [000089] ------------ \--* LCL_VAR float V19 tmp18 LocalAddressVisitor visiting statement: STMT00012 (IL ???... ???) [000066] -A---------- * ASG bool [000065] D------N---- +--* LCL_VAR bool V05 tmp4 [000064] ------------ \--* CAST int <- bool <- int [000063] ------------ \--* CNS_INT int 0 LocalAddressVisitor visiting statement: STMT00004 (IL ???... ???) [000018] --C--------- * RETURN int [000017] --C--------- \--* CAST int <- bool <- int [000093] ------------ \--* LCL_VAR bool V05 tmp4 *************** Finishing PHASE Morph - Structs/AddrExp *************** Starting PHASE Morph - ByRefs *************** In fgRetypeImplicitByRefArgs() *************** Finishing PHASE Morph - ByRefs *************** Starting PHASE Morph - Global *************** In fgMorphBlocks() Morphing BB01 of 'System.Numerics.Quaternion:get_IsIdentity():bool:this' fgMorphTree BB01, STMT00001 (before) [000005] -A-XG------- * ASG struct (copy) [000003] D------N---- +--* LCL_VAR struct V02 tmp1 [000001] ---XG------- \--* OBJ struct [000000] ------------ \--* LCL_VAR byref V00 this fgMorphTree (before 0): [000005] -A-XG------- * ASG struct (copy) [000003] D------N---- +--* LCL_VAR struct V02 tmp1 [000001] ---XG------- \--* OBJ struct [000000] ------------ \--* LCL_VAR byref V00 this fgMorphTree (before 1): [000003] D------N---- * LCL_VAR struct V02 tmp1 fgMorphTree (after 1): [000003] D------N---- * LCL_VAR struct V02 tmp1 fgMorphTree (before 2): [000001] ---XG------- * OBJ struct [000000] ------------ \--* LCL_VAR byref V00 this fgMorphTree (before 3): [000000] ------------ * LCL_VAR byref V00 this fgMorphTree (after 3): [000000] ------------ * LCL_VAR byref V00 this fgMorphTree (after 2): [000001] ---XG------- * OBJ struct [000000] -----+------ \--* LCL_VAR byref V00 this fgMorphCopyBlock: fgMorphBlkNode for dst tree, before: [000003] D----+-N---- * LCL_VAR struct V02 tmp1 fgMorphBlkNode after: [000003] D----+-N---- * LCL_VAR struct V02 tmp1 fgMorphBlkNode for src tree, before: [000001] ---XG+------ * OBJ struct [000000] -----+------ \--* LCL_VAR byref V00 this fgMorphBlkNode after: [000001] ---XG+------ * OBJ struct [000000] -----+------ \--* LCL_VAR byref V00 this block assignment to morph: [000005] -A-XG------- * ASG struct (copy) [000003] D----+-N---- +--* LCL_VAR struct V02 tmp1 [000001] ---XG+------ \--* OBJ struct [000000] -----+------ \--* LCL_VAR byref V00 this with no promoted structs this requires a CopyBlock. Local V02 should not be enregistered because: written in a block op fgMorphCopyBlock (after): [000005] -A-XG------- * ASG struct (copy) [000003] D----+-N---- +--* LCL_VAR struct V02 tmp1 [000001] ---XG+------ \--* IND struct [000000] -----+------ \--* LCL_VAR byref V00 this fgMorphTree (after 0): [000005] -A-XG------- * ASG struct (copy) [000003] D----+-N---- +--* LCL_VAR struct V02 tmp1 [000001] ---XG+------ \--* IND struct [000000] -----+------ \--* LCL_VAR byref V00 this fgMorphTree BB01, STMT00001 (after) [000005] -A-XG+------ * ASG struct (copy) [000003] D----+-N---- +--* LCL_VAR struct V02 tmp1 [000001] ---XG+------ \--* IND struct [000000] -----+------ \--* LCL_VAR byref V00 this fgMorphTree BB01, STMT00005 (before) [000025] IA---------- * ASG struct (init) [000023] D------N---- +--* LCL_VAR struct(P) V04 tmp3 +--* float V04.X (offs=0x00) -> V08 tmp7 +--* float V04.Y (offs=0x04) -> V09 tmp8 +--* float V04.Z (offs=0x08) -> V10 tmp9 +--* float V04.W (offs=0x0c) -> V11 tmp10 [000024] ------------ \--* CNS_INT int 0 fgMorphTree (before 4): [000025] IA---------- * ASG struct (init) [000023] D------N---- +--* LCL_VAR struct(P) V04 tmp3 +--* float V04.X (offs=0x00) -> V08 tmp7 +--* float V04.Y (offs=0x04) -> V09 tmp8 +--* float V04.Z (offs=0x08) -> V10 tmp9 +--* float V04.W (offs=0x0c) -> V11 tmp10 [000024] ------------ \--* CNS_INT int 0 fgMorphTree (before 5): [000023] D------N---- * LCL_VAR struct(P) V04 tmp3 * float V04.X (offs=0x00) -> V08 tmp7 * float V04.Y (offs=0x04) -> V09 tmp8 * float V04.Z (offs=0x08) -> V10 tmp9 * float V04.W (offs=0x0c) -> V11 tmp10 fgMorphTree (after 5): [000023] D------N---- * LCL_VAR struct(P) V04 tmp3 * float V04.X (offs=0x00) -> V08 tmp7 * float V04.Y (offs=0x04) -> V09 tmp8 * float V04.Z (offs=0x08) -> V10 tmp9 * float V04.W (offs=0x0c) -> V11 tmp10 fgMorphTree (before 6): [000024] ------------ * CNS_INT int 0 fgMorphTree (after 6): [000024] ------------ * CNS_INT int 0 fgMorphBlkNode for dst tree, before: [000023] D----+-N---- * LCL_VAR struct(P) V04 tmp3 * float V04.X (offs=0x00) -> V08 tmp7 * float V04.Y (offs=0x04) -> V09 tmp8 * float V04.Z (offs=0x08) -> V10 tmp9 * float V04.W (offs=0x0c) -> V11 tmp10 fgMorphBlkNode after: [000023] D----+-N---- * LCL_VAR struct(P) V04 tmp3 * float V04.X (offs=0x00) -> V08 tmp7 * float V04.Y (offs=0x04) -> V09 tmp8 * float V04.Z (offs=0x08) -> V10 tmp9 * float V04.W (offs=0x0c) -> V11 tmp10 fgMorphInitBlock: using field by field initialization. GenTreeNode creates assertion: [000103] -A---------- * ASG float In BB01 New Local Constant Assertion: V08 == 0.000000 index=#01, mask=0000000000000001 GenTreeNode creates assertion: [000106] -A---------- * ASG float In BB01 New Local Constant Assertion: V09 == 0.000000 index=#02, mask=0000000000000002 GenTreeNode creates assertion: [000110] -A---------- * ASG float In BB01 New Local Constant Assertion: V10 == 0.000000 index=#03, mask=0000000000000004 GenTreeNode creates assertion: [000114] -A---------- * ASG float In BB01 New Local Constant Assertion: V11 == 0.000000 index=#04, mask=0000000000000008 fgMorphInitBlock (after): [000115] -A---+------ * COMMA void [000111] -A---------- +--* COMMA void [000107] -A---------- | +--* COMMA void [000103] -A---------- | | +--* ASG float [000101] D------N---- | | | +--* LCL_VAR float V08 tmp7 [000102] ------------ | | | \--* CNS_DBL float 0.00000000000000000 [000106] -A---------- | | \--* ASG float [000104] D------N---- | | +--* LCL_VAR float V09 tmp8 [000105] ------------ | | \--* CNS_DBL float 0.00000000000000000 [000110] -A---------- | \--* ASG float [000108] D------N---- | +--* LCL_VAR float V10 tmp9 [000109] ------------ | \--* CNS_DBL float 0.00000000000000000 [000114] -A---------- \--* ASG float [000112] D------N---- +--* LCL_VAR float V11 tmp10 [000113] ------------ \--* CNS_DBL float 0.00000000000000000 fgMorphTree (after 4): [000115] -A---+------ * COMMA void [000111] -A---------- +--* COMMA void [000107] -A---------- | +--* COMMA void [000103] -A---------- | | +--* ASG float [000101] D------N---- | | | +--* LCL_VAR float V08 tmp7 [000102] ------------ | | | \--* CNS_DBL float 0.00000000000000000 [000106] -A---------- | | \--* ASG float [000104] D------N---- | | +--* LCL_VAR float V09 tmp8 [000105] ------------ | | \--* CNS_DBL float 0.00000000000000000 [000110] -A---------- | \--* ASG float [000108] D------N---- | +--* LCL_VAR float V10 tmp9 [000109] ------------ | \--* CNS_DBL float 0.00000000000000000 [000114] -A---------- \--* ASG float [000112] D------N---- +--* LCL_VAR float V11 tmp10 [000113] ------------ \--* CNS_DBL float 0.00000000000000000 fgMorphTree BB01, STMT00005 (after) [000115] -A---+------ * COMMA void [000111] -A---------- +--* COMMA void [000107] -A---------- | +--* COMMA void [000103] -A---------- | | +--* ASG float [000101] D------N---- | | | +--* LCL_VAR float V08 tmp7 [000102] ------------ | | | \--* CNS_DBL float 0.00000000000000000 [000106] -A---------- | | \--* ASG float [000104] D------N---- | | +--* LCL_VAR float V09 tmp8 [000105] ------------ | | \--* CNS_DBL float 0.00000000000000000 [000110] -A---------- | \--* ASG float [000108] D------N---- | +--* LCL_VAR float V10 tmp9 [000109] ------------ | \--* CNS_DBL float 0.00000000000000000 [000114] -A---------- \--* ASG float [000112] D------N---- +--* LCL_VAR float V11 tmp10 [000113] ------------ \--* CNS_DBL float 0.00000000000000000 fgMorphTree BB01, STMT00007 (before) [000038] -A---------- * ASG float [000037] D------N---- +--* LCL_VAR float V08 tmp7 [000036] ------------ \--* CNS_DBL float 0.00000000000000000 fgMorphTree (before 7): [000038] -A---------- * ASG float [000037] D------N---- +--* LCL_VAR float V08 tmp7 [000036] ------------ \--* CNS_DBL float 0.00000000000000000 fgMorphTree (before 8): [000037] D------N---- * LCL_VAR float V08 tmp7 fgMorphTree (after 8): [000037] D------N---- * LCL_VAR float V08 tmp7 fgMorphTree (before 9): [000036] ------------ * CNS_DBL float 0.00000000000000000 fgMorphTree (after 9): [000036] ------------ * CNS_DBL float 0.00000000000000000 fgMorphTree (after 7): [000038] -A---------- * ASG float [000037] D----+-N---- +--* LCL_VAR float V08 tmp7 [000036] -----+------ \--* CNS_DBL float 0.00000000000000000 The assignment [000038] using V08 removes: Constant Assertion: V08 == 0.000000 GenTreeNode creates assertion: [000038] -A---------- * ASG float In BB01 New Local Constant Assertion: V08 == 0.000000 index=#04, mask=0000000000000008 fgMorphTree BB01, STMT00008 (before) [000043] -A---------- * ASG float [000042] D------N---- +--* LCL_VAR float V09 tmp8 [000041] ------------ \--* CNS_DBL float 0.00000000000000000 fgMorphTree (before 10): [000043] -A---------- * ASG float [000042] D------N---- +--* LCL_VAR float V09 tmp8 [000041] ------------ \--* CNS_DBL float 0.00000000000000000 fgMorphTree (before 11): [000042] D------N---- * LCL_VAR float V09 tmp8 fgMorphTree (after 11): [000042] D------N---- * LCL_VAR float V09 tmp8 fgMorphTree (before 12): [000041] ------------ * CNS_DBL float 0.00000000000000000 fgMorphTree (after 12): [000041] ------------ * CNS_DBL float 0.00000000000000000 fgMorphTree (after 10): [000043] -A---------- * ASG float [000042] D----+-N---- +--* LCL_VAR float V09 tmp8 [000041] -----+------ \--* CNS_DBL float 0.00000000000000000 The assignment [000043] using V09 removes: Constant Assertion: V09 == 0.000000 GenTreeNode creates assertion: [000043] -A---------- * ASG float In BB01 New Local Constant Assertion: V09 == 0.000000 index=#04, mask=0000000000000008 fgMorphTree BB01, STMT00009 (before) [000048] -A---------- * ASG float [000047] D------N---- +--* LCL_VAR float V10 tmp9 [000046] ------------ \--* CNS_DBL float 0.00000000000000000 fgMorphTree (before 13): [000048] -A---------- * ASG float [000047] D------N---- +--* LCL_VAR float V10 tmp9 [000046] ------------ \--* CNS_DBL float 0.00000000000000000 fgMorphTree (before 14): [000047] D------N---- * LCL_VAR float V10 tmp9 fgMorphTree (after 14): [000047] D------N---- * LCL_VAR float V10 tmp9 fgMorphTree (before 15): [000046] ------------ * CNS_DBL float 0.00000000000000000 fgMorphTree (after 15): [000046] ------------ * CNS_DBL float 0.00000000000000000 fgMorphTree (after 13): [000048] -A---------- * ASG float [000047] D----+-N---- +--* LCL_VAR float V10 tmp9 [000046] -----+------ \--* CNS_DBL float 0.00000000000000000 The assignment [000048] using V10 removes: Constant Assertion: V10 == 0.000000 GenTreeNode creates assertion: [000048] -A---------- * ASG float In BB01 New Local Constant Assertion: V10 == 0.000000 index=#04, mask=0000000000000008 fgMorphTree BB01, STMT00010 (before) [000053] -A---------- * ASG float [000052] D------N---- +--* LCL_VAR float V11 tmp10 [000051] ------------ \--* CNS_DBL float 1.0000000000000000 fgMorphTree (before 16): [000053] -A---------- * ASG float [000052] D------N---- +--* LCL_VAR float V11 tmp10 [000051] ------------ \--* CNS_DBL float 1.0000000000000000 fgMorphTree (before 17): [000052] D------N---- * LCL_VAR float V11 tmp10 fgMorphTree (after 17): [000052] D------N---- * LCL_VAR float V11 tmp10 fgMorphTree (before 18): [000051] ------------ * CNS_DBL float 1.0000000000000000 fgMorphTree (after 18): [000051] ------------ * CNS_DBL float 1.0000000000000000 fgMorphTree (after 16): [000053] -A---------- * ASG float [000052] D----+-N---- +--* LCL_VAR float V11 tmp10 [000051] -----+------ \--* CNS_DBL float 1.0000000000000000 The assignment [000053] using V11 removes: Constant Assertion: V11 == 0.000000 GenTreeNode creates assertion: [000053] -A---------- * ASG float In BB01 New Local Constant Assertion: V11 == 1.00000 index=#04, mask=0000000000000008 fgMorphTree BB01, STMT00002 (before) [000032] -A---------- * ASG struct (copy) [000031] D------N---- +--* LCL_VAR struct V03 tmp2 [000029] ------------ \--* LCL_VAR struct(P) V04 tmp3 \--* float V04.X (offs=0x00) -> V08 tmp7 \--* float V04.Y (offs=0x04) -> V09 tmp8 \--* float V04.Z (offs=0x08) -> V10 tmp9 \--* float V04.W (offs=0x0c) -> V11 tmp10 fgMorphTree (before 19): [000032] -A---------- * ASG struct (copy) [000031] D------N---- +--* LCL_VAR struct V03 tmp2 [000029] ------------ \--* LCL_VAR struct(P) V04 tmp3 \--* float V04.X (offs=0x00) -> V08 tmp7 \--* float V04.Y (offs=0x04) -> V09 tmp8 \--* float V04.Z (offs=0x08) -> V10 tmp9 \--* float V04.W (offs=0x0c) -> V11 tmp10 fgMorphTree (before 20): [000031] D------N---- * LCL_VAR struct V03 tmp2 fgMorphTree (after 20): [000031] D------N---- * LCL_VAR struct V03 tmp2 fgMorphTree (before 21): [000029] ------------ * LCL_VAR struct(P) V04 tmp3 * float V04.X (offs=0x00) -> V08 tmp7 * float V04.Y (offs=0x04) -> V09 tmp8 * float V04.Z (offs=0x08) -> V10 tmp9 * float V04.W (offs=0x0c) -> V11 tmp10 fgMorphTree (after 21): [000029] ------------ * LCL_VAR struct(P) V04 tmp3 * float V04.X (offs=0x00) -> V08 tmp7 * float V04.Y (offs=0x04) -> V09 tmp8 * float V04.Z (offs=0x08) -> V10 tmp9 * float V04.W (offs=0x0c) -> V11 tmp10 fgMorphCopyBlock: fgMorphBlkNode for dst tree, before: [000031] D----+-N---- * LCL_VAR struct V03 tmp2 fgMorphBlkNode after: [000031] D----+-N---- * LCL_VAR struct V03 tmp2 fgMorphBlkNode for src tree, before: [000029] -----+------ * LCL_VAR struct(P) V04 tmp3 * float V04.X (offs=0x00) -> V08 tmp7 * float V04.Y (offs=0x04) -> V09 tmp8 * float V04.Z (offs=0x08) -> V10 tmp9 * float V04.W (offs=0x0c) -> V11 tmp10 fgMorphBlkNode after: [000029] -----+------ * LCL_VAR struct(P) V04 tmp3 * float V04.X (offs=0x00) -> V08 tmp7 * float V04.Y (offs=0x04) -> V09 tmp8 * float V04.Z (offs=0x08) -> V10 tmp9 * float V04.W (offs=0x0c) -> V11 tmp10 block assignment to morph: [000032] -A---------- * ASG struct (copy) [000031] D----+-N---- +--* LCL_VAR struct V03 tmp2 [000029] -----+------ \--* LCL_VAR struct(P) V04 tmp3 \--* float V04.X (offs=0x00) -> V08 tmp7 \--* float V04.Y (offs=0x04) -> V09 tmp8 \--* float V04.Z (offs=0x08) -> V10 tmp9 \--* float V04.W (offs=0x0c) -> V11 tmp10 (srcDoFldAsg=true) using field by field assignments. Local V03 should not be enregistered because: written in a block op lvaGrabTemp returning 20 (V20 tmp19) called for BlockOp address local. Local V03 should not be enregistered because: it is address exposed fgAddFieldSeqForZeroOffset for Fseq[X] addr (Before) [000119] ------------ LCL_VAR byref (After) [000119] ------------ LCL_VAR byref Zero Fseq[X] fgMorphCopyBlock (after): [000144] -A---+------ * COMMA void [000137] -A---------- +--* COMMA void [000130] -A---------- | +--* COMMA void [000123] -A---------- | | +--* COMMA void [000118] -A---------- | | | +--* ASG byref [000117] D------N---- | | | | +--* LCL_VAR byref V20 tmp19 [000116] ------------ | | | | \--* ADDR byref [000031] -----+-N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 [000122] -A---------- | | | \--* ASG float [000120] *------N---- | | | +--* IND float [000119] ------------ | | | | \--* LCL_VAR byref V20 tmp19 Zero Fseq[X] [000121] ------------ | | | \--* LCL_VAR float V08 tmp7 [000129] -A---------- | | \--* ASG float [000127] *------N---- | | +--* IND float [000126] ------------ | | | \--* ADD byref [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] [000128] ------------ | | \--* LCL_VAR float V09 tmp8 [000136] -A---------- | \--* ASG float [000134] *------N---- | +--* IND float [000133] ------------ | | \--* ADD byref [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] [000135] ------------ | \--* LCL_VAR float V10 tmp9 [000143] -A---------- \--* ASG float [000141] *------N---- +--* IND float [000140] ------------ | \--* ADD byref [000138] ------------ | +--* LCL_VAR byref V20 tmp19 [000139] ------------ | \--* CNS_INT long 12 Fseq[W] [000142] ------------ \--* LCL_VAR float V11 tmp10 fgMorphTree (after 19): [000144] -A---+------ * COMMA void [000137] -A---------- +--* COMMA void [000130] -A---------- | +--* COMMA void [000123] -A---------- | | +--* COMMA void [000118] -A---------- | | | +--* ASG byref [000117] D------N---- | | | | +--* LCL_VAR byref V20 tmp19 [000116] ------------ | | | | \--* ADDR byref [000031] -----+-N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 [000122] -A---------- | | | \--* ASG float [000120] *------N---- | | | +--* IND float [000119] ------------ | | | | \--* LCL_VAR byref V20 tmp19 Zero Fseq[X] [000121] ------------ | | | \--* LCL_VAR float V08 tmp7 [000129] -A---------- | | \--* ASG float [000127] *------N---- | | +--* IND float [000126] ------------ | | | \--* ADD byref [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] [000128] ------------ | | \--* LCL_VAR float V09 tmp8 [000136] -A---------- | \--* ASG float [000134] *------N---- | +--* IND float [000133] ------------ | | \--* ADD byref [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] [000135] ------------ | \--* LCL_VAR float V10 tmp9 [000143] -A---------- \--* ASG float [000141] *------N---- +--* IND float [000140] ------------ | \--* ADD byref [000138] ------------ | +--* LCL_VAR byref V20 tmp19 [000139] ------------ | \--* CNS_INT long 12 Fseq[W] [000142] ------------ \--* LCL_VAR float V11 tmp10 fgMorphTree BB01, STMT00002 (after) [000144] -A---+------ * COMMA void [000137] -A---------- +--* COMMA void [000130] -A---------- | +--* COMMA void [000123] -A---------- | | +--* COMMA void [000118] -A---------- | | | +--* ASG byref [000117] D------N---- | | | | +--* LCL_VAR byref V20 tmp19 [000116] ------------ | | | | \--* ADDR byref [000031] -----+-N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 [000122] -A---------- | | | \--* ASG float [000120] *------N---- | | | +--* IND float [000119] ------------ | | | | \--* LCL_VAR byref V20 tmp19 Zero Fseq[X] [000121] ------------ | | | \--* LCL_VAR float V08 tmp7 [000129] -A---------- | | \--* ASG float [000127] *------N---- | | +--* IND float [000126] ------------ | | | \--* ADD byref [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] [000128] ------------ | | \--* LCL_VAR float V09 tmp8 [000136] -A---------- | \--* ASG float [000134] *------N---- | +--* IND float [000133] ------------ | | \--* ADD byref [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] [000135] ------------ | \--* LCL_VAR float V10 tmp9 [000143] -A---------- \--* ASG float [000141] *------N---- +--* IND float [000140] ------------ | \--* ADD byref [000138] ------------ | +--* LCL_VAR byref V20 tmp19 [000139] ------------ | \--* CNS_INT long 12 Fseq[W] [000142] ------------ \--* LCL_VAR float V11 tmp10 fgMorphTree BB01, STMT00016 (before) [000096] -A---------- * ASG struct (copy) [000094] D------N---- +--* LCL_VAR struct(P) V06 tmp5 +--* float V06.X (offs=0x00) -> V12 tmp11 +--* float V06.Y (offs=0x04) -> V13 tmp12 +--* float V06.Z (offs=0x08) -> V14 tmp13 +--* float V06.W (offs=0x0c) -> V15 tmp14 [000015] ------------ \--* LCL_VAR struct V02 tmp1 fgMorphTree (before 22): [000096] -A---------- * ASG struct (copy) [000094] D------N---- +--* LCL_VAR struct(P) V06 tmp5 +--* float V06.X (offs=0x00) -> V12 tmp11 +--* float V06.Y (offs=0x04) -> V13 tmp12 +--* float V06.Z (offs=0x08) -> V14 tmp13 +--* float V06.W (offs=0x0c) -> V15 tmp14 [000015] ------------ \--* LCL_VAR struct V02 tmp1 fgMorphTree (before 23): [000094] D------N---- * LCL_VAR struct(P) V06 tmp5 * float V06.X (offs=0x00) -> V12 tmp11 * float V06.Y (offs=0x04) -> V13 tmp12 * float V06.Z (offs=0x08) -> V14 tmp13 * float V06.W (offs=0x0c) -> V15 tmp14 fgMorphTree (after 23): [000094] D------N---- * LCL_VAR struct(P) V06 tmp5 * float V06.X (offs=0x00) -> V12 tmp11 * float V06.Y (offs=0x04) -> V13 tmp12 * float V06.Z (offs=0x08) -> V14 tmp13 * float V06.W (offs=0x0c) -> V15 tmp14 fgMorphTree (before 24): [000015] ------------ * LCL_VAR struct V02 tmp1 fgMorphTree (after 24): [000015] ------------ * LCL_VAR struct V02 tmp1 fgMorphCopyBlock: fgMorphBlkNode for dst tree, before: [000094] D----+-N---- * LCL_VAR struct(P) V06 tmp5 * float V06.X (offs=0x00) -> V12 tmp11 * float V06.Y (offs=0x04) -> V13 tmp12 * float V06.Z (offs=0x08) -> V14 tmp13 * float V06.W (offs=0x0c) -> V15 tmp14 fgMorphBlkNode after: [000094] D----+-N---- * LCL_VAR struct(P) V06 tmp5 * float V06.X (offs=0x00) -> V12 tmp11 * float V06.Y (offs=0x04) -> V13 tmp12 * float V06.Z (offs=0x08) -> V14 tmp13 * float V06.W (offs=0x0c) -> V15 tmp14 fgMorphBlkNode for src tree, before: [000015] -----+------ * LCL_VAR struct V02 tmp1 fgMorphBlkNode after: [000015] -----+------ * LCL_VAR struct V02 tmp1 block assignment to morph: [000096] -A---------- * ASG struct (copy) [000094] D----+-N---- +--* LCL_VAR struct(P) V06 tmp5 +--* float V06.X (offs=0x00) -> V12 tmp11 +--* float V06.Y (offs=0x04) -> V13 tmp12 +--* float V06.Z (offs=0x08) -> V14 tmp13 +--* float V06.W (offs=0x0c) -> V15 tmp14 [000015] -----+------ \--* LCL_VAR struct V02 tmp1 (destDoFldAsg=true) using field by field assignments. Local V02 should not be enregistered because: written in a block op lvaGrabTemp returning 21 (V21 tmp20) called for BlockOp address local. Local V02 should not be enregistered because: it is address exposed fgAddFieldSeqForZeroOffset for Fseq[X] addr (Before) [000149] ------------ LCL_VAR byref (After) [000149] ------------ LCL_VAR byref Zero Fseq[X] fgMorphCopyBlock (after): [000173] -A---+------ * COMMA void [000166] -A---------- +--* COMMA void [000159] -A---------- | +--* COMMA void [000152] -A---------- | | +--* COMMA void [000147] -A---------- | | | +--* ASG byref [000146] D------N---- | | | | +--* LCL_VAR byref V21 tmp20 [000145] ------------ | | | | \--* ADDR byref [000015] -----+-N---- | | | | \--* LCL_VAR struct(AX) V02 tmp1 [000151] -A---------- | | | \--* ASG float [000148] D------N---- | | | +--* LCL_VAR float V12 tmp11 [000150] n----------- | | | \--* IND float [000149] ------------ | | | \--* LCL_VAR byref V21 tmp20 Zero Fseq[X] [000158] -A---------- | | \--* ASG float [000153] D------N---- | | +--* LCL_VAR float V13 tmp12 [000157] n----------- | | \--* IND float [000156] ------------ | | \--* ADD byref [000154] ------------ | | +--* LCL_VAR byref V21 tmp20 [000155] ------------ | | \--* CNS_INT long 4 Fseq[Y] [000165] -A---------- | \--* ASG float [000160] D------N---- | +--* LCL_VAR float V14 tmp13 [000164] n----------- | \--* IND float [000163] ------------ | \--* ADD byref [000161] ------------ | +--* LCL_VAR byref V21 tmp20 [000162] ------------ | \--* CNS_INT long 8 Fseq[Z] [000172] -A---------- \--* ASG float [000167] D------N---- +--* LCL_VAR float V15 tmp14 [000171] n----------- \--* IND float [000170] ------------ \--* ADD byref [000168] ------------ +--* LCL_VAR byref V21 tmp20 [000169] ------------ \--* CNS_INT long 12 Fseq[W] fgMorphTree (after 22): [000173] -A---+------ * COMMA void [000166] -A---------- +--* COMMA void [000159] -A---------- | +--* COMMA void [000152] -A---------- | | +--* COMMA void [000147] -A---------- | | | +--* ASG byref [000146] D------N---- | | | | +--* LCL_VAR byref V21 tmp20 [000145] ------------ | | | | \--* ADDR byref [000015] -----+-N---- | | | | \--* LCL_VAR struct(AX) V02 tmp1 [000151] -A---------- | | | \--* ASG float [000148] D------N---- | | | +--* LCL_VAR float V12 tmp11 [000150] n----------- | | | \--* IND float [000149] ------------ | | | \--* LCL_VAR byref V21 tmp20 Zero Fseq[X] [000158] -A---------- | | \--* ASG float [000153] D------N---- | | +--* LCL_VAR float V13 tmp12 [000157] n----------- | | \--* IND float [000156] ------------ | | \--* ADD byref [000154] ------------ | | +--* LCL_VAR byref V21 tmp20 [000155] ------------ | | \--* CNS_INT long 4 Fseq[Y] [000165] -A---------- | \--* ASG float [000160] D------N---- | +--* LCL_VAR float V14 tmp13 [000164] n----------- | \--* IND float [000163] ------------ | \--* ADD byref [000161] ------------ | +--* LCL_VAR byref V21 tmp20 [000162] ------------ | \--* CNS_INT long 8 Fseq[Z] [000172] -A---------- \--* ASG float [000167] D------N---- +--* LCL_VAR float V15 tmp14 [000171] n----------- \--* IND float [000170] ------------ \--* ADD byref [000168] ------------ +--* LCL_VAR byref V21 tmp20 [000169] ------------ \--* CNS_INT long 12 Fseq[W] fgMorphTree BB01, STMT00016 (after) [000173] -A---+------ * COMMA void [000166] -A---------- +--* COMMA void [000159] -A---------- | +--* COMMA void [000152] -A---------- | | +--* COMMA void [000147] -A---------- | | | +--* ASG byref [000146] D------N---- | | | | +--* LCL_VAR byref V21 tmp20 [000145] ------------ | | | | \--* ADDR byref [000015] -----+-N---- | | | | \--* LCL_VAR struct(AX) V02 tmp1 [000151] -A---------- | | | \--* ASG float [000148] D------N---- | | | +--* LCL_VAR float V12 tmp11 [000150] n----------- | | | \--* IND float [000149] ------------ | | | \--* LCL_VAR byref V21 tmp20 Zero Fseq[X] [000158] -A---------- | | \--* ASG float [000153] D------N---- | | +--* LCL_VAR float V13 tmp12 [000157] n----------- | | \--* IND float [000156] ------------ | | \--* ADD byref [000154] ------------ | | +--* LCL_VAR byref V21 tmp20 [000155] ------------ | | \--* CNS_INT long 4 Fseq[Y] [000165] -A---------- | \--* ASG float [000160] D------N---- | +--* LCL_VAR float V14 tmp13 [000164] n----------- | \--* IND float [000163] ------------ | \--* ADD byref [000161] ------------ | +--* LCL_VAR byref V21 tmp20 [000162] ------------ | \--* CNS_INT long 8 Fseq[Z] [000172] -A---------- \--* ASG float [000167] D------N---- +--* LCL_VAR float V15 tmp14 [000171] n----------- \--* IND float [000170] ------------ \--* ADD byref [000168] ------------ +--* LCL_VAR byref V21 tmp20 [000169] ------------ \--* CNS_INT long 12 Fseq[W] fgMorphTree BB01, STMT00017 (before) [000099] -A---------- * ASG struct (copy) [000097] D------N---- +--* LCL_VAR struct(P) V07 tmp6 +--* float V07.X (offs=0x00) -> V16 tmp15 +--* float V07.Y (offs=0x04) -> V17 tmp16 +--* float V07.Z (offs=0x08) -> V18 tmp17 +--* float V07.W (offs=0x0c) -> V19 tmp18 [000013] ------------ \--* LCL_VAR struct(AX) V03 tmp2 fgMorphTree (before 25): [000099] -A---------- * ASG struct (copy) [000097] D------N---- +--* LCL_VAR struct(P) V07 tmp6 +--* float V07.X (offs=0x00) -> V16 tmp15 +--* float V07.Y (offs=0x04) -> V17 tmp16 +--* float V07.Z (offs=0x08) -> V18 tmp17 +--* float V07.W (offs=0x0c) -> V19 tmp18 [000013] ------------ \--* LCL_VAR struct(AX) V03 tmp2 fgMorphTree (before 26): [000097] D------N---- * LCL_VAR struct(P) V07 tmp6 * float V07.X (offs=0x00) -> V16 tmp15 * float V07.Y (offs=0x04) -> V17 tmp16 * float V07.Z (offs=0x08) -> V18 tmp17 * float V07.W (offs=0x0c) -> V19 tmp18 fgMorphTree (after 26): [000097] D------N---- * LCL_VAR struct(P) V07 tmp6 * float V07.X (offs=0x00) -> V16 tmp15 * float V07.Y (offs=0x04) -> V17 tmp16 * float V07.Z (offs=0x08) -> V18 tmp17 * float V07.W (offs=0x0c) -> V19 tmp18 fgMorphTree (before 27): [000013] ------------ * LCL_VAR struct(AX) V03 tmp2 fgMorphTree (after 27): [000013] ----G------- * LCL_VAR struct(AX) V03 tmp2 fgMorphCopyBlock: fgMorphBlkNode for dst tree, before: [000097] D----+-N---- * LCL_VAR struct(P) V07 tmp6 * float V07.X (offs=0x00) -> V16 tmp15 * float V07.Y (offs=0x04) -> V17 tmp16 * float V07.Z (offs=0x08) -> V18 tmp17 * float V07.W (offs=0x0c) -> V19 tmp18 fgMorphBlkNode after: [000097] D----+-N---- * LCL_VAR struct(P) V07 tmp6 * float V07.X (offs=0x00) -> V16 tmp15 * float V07.Y (offs=0x04) -> V17 tmp16 * float V07.Z (offs=0x08) -> V18 tmp17 * float V07.W (offs=0x0c) -> V19 tmp18 fgMorphBlkNode for src tree, before: [000013] ----G+------ * LCL_VAR struct(AX) V03 tmp2 fgMorphBlkNode after: [000013] ----G+------ * LCL_VAR struct(AX) V03 tmp2 block assignment to morph: [000099] -A--G------- * ASG struct (copy) [000097] D----+-N---- +--* LCL_VAR struct(P) V07 tmp6 +--* float V07.X (offs=0x00) -> V16 tmp15 +--* float V07.Y (offs=0x04) -> V17 tmp16 +--* float V07.Z (offs=0x08) -> V18 tmp17 +--* float V07.W (offs=0x0c) -> V19 tmp18 [000013] ----G+------ \--* LCL_VAR struct(AX) V03 tmp2 (destDoFldAsg=true) using field by field assignments. Local V03 should not be enregistered because: written in a block op lvaGrabTemp returning 22 (V22 tmp21) called for BlockOp address local. Local V03 should not be enregistered because: it is address exposed fgAddFieldSeqForZeroOffset for Fseq[X] addr (Before) [000178] ------------ LCL_VAR byref (After) [000178] ------------ LCL_VAR byref Zero Fseq[X] fgMorphCopyBlock (after): [000202] -A--G+------ * COMMA void [000195] -A--G------- +--* COMMA void [000188] -A--G------- | +--* COMMA void [000181] -A--G------- | | +--* COMMA void [000176] -A--G------- | | | +--* ASG byref [000175] D------N---- | | | | +--* LCL_VAR byref V22 tmp21 [000174] ----G------- | | | | \--* ADDR byref [000013] ----G+-N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 [000180] -A---------- | | | \--* ASG float [000177] D------N---- | | | +--* LCL_VAR float V16 tmp15 [000179] n----------- | | | \--* IND float [000178] ------------ | | | \--* LCL_VAR byref V22 tmp21 Zero Fseq[X] [000187] -A---------- | | \--* ASG float [000182] D------N---- | | +--* LCL_VAR float V17 tmp16 [000186] n----------- | | \--* IND float [000185] ------------ | | \--* ADD byref [000183] ------------ | | +--* LCL_VAR byref V22 tmp21 [000184] ------------ | | \--* CNS_INT long 4 Fseq[Y] [000194] -A---------- | \--* ASG float [000189] D------N---- | +--* LCL_VAR float V18 tmp17 [000193] n----------- | \--* IND float [000192] ------------ | \--* ADD byref [000190] ------------ | +--* LCL_VAR byref V22 tmp21 [000191] ------------ | \--* CNS_INT long 8 Fseq[Z] [000201] -A---------- \--* ASG float [000196] D------N---- +--* LCL_VAR float V19 tmp18 [000200] n----------- \--* IND float [000199] ------------ \--* ADD byref [000197] ------------ +--* LCL_VAR byref V22 tmp21 [000198] ------------ \--* CNS_INT long 12 Fseq[W] fgMorphTree (after 25): [000202] -A--G+------ * COMMA void [000195] -A--G------- +--* COMMA void [000188] -A--G------- | +--* COMMA void [000181] -A--G------- | | +--* COMMA void [000176] -A--G------- | | | +--* ASG byref [000175] D------N---- | | | | +--* LCL_VAR byref V22 tmp21 [000174] ----G------- | | | | \--* ADDR byref [000013] ----G+-N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 [000180] -A---------- | | | \--* ASG float [000177] D------N---- | | | +--* LCL_VAR float V16 tmp15 [000179] n----------- | | | \--* IND float [000178] ------------ | | | \--* LCL_VAR byref V22 tmp21 Zero Fseq[X] [000187] -A---------- | | \--* ASG float [000182] D------N---- | | +--* LCL_VAR float V17 tmp16 [000186] n----------- | | \--* IND float [000185] ------------ | | \--* ADD byref [000183] ------------ | | +--* LCL_VAR byref V22 tmp21 [000184] ------------ | | \--* CNS_INT long 4 Fseq[Y] [000194] -A---------- | \--* ASG float [000189] D------N---- | +--* LCL_VAR float V18 tmp17 [000193] n----------- | \--* IND float [000192] ------------ | \--* ADD byref [000190] ------------ | +--* LCL_VAR byref V22 tmp21 [000191] ------------ | \--* CNS_INT long 8 Fseq[Z] [000201] -A---------- \--* ASG float [000196] D------N---- +--* LCL_VAR float V19 tmp18 [000200] n----------- \--* IND float [000199] ------------ \--* ADD byref [000197] ------------ +--* LCL_VAR byref V22 tmp21 [000198] ------------ \--* CNS_INT long 12 Fseq[W] fgMorphTree BB01, STMT00017 (after) [000202] -A--G+------ * COMMA void [000195] -A--G------- +--* COMMA void [000188] -A--G------- | +--* COMMA void [000181] -A--G------- | | +--* COMMA void [000176] -A--G------- | | | +--* ASG byref [000175] D------N---- | | | | +--* LCL_VAR byref V22 tmp21 [000174] ----G------- | | | | \--* ADDR byref [000013] ----G+-N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 [000180] -A---------- | | | \--* ASG float [000177] D------N---- | | | +--* LCL_VAR float V16 tmp15 [000179] n----------- | | | \--* IND float [000178] ------------ | | | \--* LCL_VAR byref V22 tmp21 Zero Fseq[X] [000187] -A---------- | | \--* ASG float [000182] D------N---- | | +--* LCL_VAR float V17 tmp16 [000186] n----------- | | \--* IND float [000185] ------------ | | \--* ADD byref [000183] ------------ | | +--* LCL_VAR byref V22 tmp21 [000184] ------------ | | \--* CNS_INT long 4 Fseq[Y] [000194] -A---------- | \--* ASG float [000189] D------N---- | +--* LCL_VAR float V18 tmp17 [000193] n----------- | \--* IND float [000192] ------------ | \--* ADD byref [000190] ------------ | +--* LCL_VAR byref V22 tmp21 [000191] ------------ | \--* CNS_INT long 8 Fseq[Z] [000201] -A---------- \--* ASG float [000196] D------N---- +--* LCL_VAR float V19 tmp18 [000200] n----------- \--* IND float [000199] ------------ \--* ADD byref [000197] ------------ +--* LCL_VAR byref V22 tmp21 [000198] ------------ \--* CNS_INT long 12 Fseq[W] fgMorphTree BB01, STMT00011 (before) [000062] ------------ * JTRUE void [000061] N--------U-- \--* NE int [000057] ------------ +--* LCL_VAR float V12 tmp11 [000060] ------------ \--* LCL_VAR float V16 tmp15 fgMorphTree (before 28): [000062] ------------ * JTRUE void [000061] N--------U-- \--* NE int [000057] ------------ +--* LCL_VAR float V12 tmp11 [000060] ------------ \--* LCL_VAR float V16 tmp15 fgMorphTree (before 29): [000061] N------N-U-- * NE int [000057] ------------ +--* LCL_VAR float V12 tmp11 [000060] ------------ \--* LCL_VAR float V16 tmp15 fgMorphTree (before 30): [000057] ------------ * LCL_VAR float V12 tmp11 fgMorphTree (after 30): [000057] ------------ * LCL_VAR float V12 tmp11 fgMorphTree (before 31): [000060] ------------ * LCL_VAR float V16 tmp15 fgMorphTree (after 31): [000060] ------------ * LCL_VAR float V16 tmp15 fgMorphTree (after 29): [000061] N------N-U-- * NE int [000057] -----+------ +--* LCL_VAR float V12 tmp11 [000060] -----+------ \--* LCL_VAR float V16 tmp15 fgMorphTree (after 28): [000062] ------------ * JTRUE void [000061] N----+-N-U-- \--* NE int [000057] -----+------ +--* LCL_VAR float V12 tmp11 [000060] -----+------ \--* LCL_VAR float V16 tmp15 Morphing BB03 of 'System.Numerics.Quaternion:get_IsIdentity():bool:this' fgMorphTree BB03, STMT00013 (before) [000075] ------------ * JTRUE void [000074] N--------U-- \--* NE int [000070] ------------ +--* LCL_VAR float V13 tmp12 [000073] ------------ \--* LCL_VAR float V17 tmp16 fgMorphTree (before 32): [000075] ------------ * JTRUE void [000074] N--------U-- \--* NE int [000070] ------------ +--* LCL_VAR float V13 tmp12 [000073] ------------ \--* LCL_VAR float V17 tmp16 fgMorphTree (before 33): [000074] N------N-U-- * NE int [000070] ------------ +--* LCL_VAR float V13 tmp12 [000073] ------------ \--* LCL_VAR float V17 tmp16 fgMorphTree (before 34): [000070] ------------ * LCL_VAR float V13 tmp12 fgMorphTree (after 34): [000070] ------------ * LCL_VAR float V13 tmp12 fgMorphTree (before 35): [000073] ------------ * LCL_VAR float V17 tmp16 fgMorphTree (after 35): [000073] ------------ * LCL_VAR float V17 tmp16 fgMorphTree (after 33): [000074] N------N-U-- * NE int [000070] -----+------ +--* LCL_VAR float V13 tmp12 [000073] -----+------ \--* LCL_VAR float V17 tmp16 fgMorphTree (after 32): [000075] ------------ * JTRUE void [000074] N----+-N-U-- \--* NE int [000070] -----+------ +--* LCL_VAR float V13 tmp12 [000073] -----+------ \--* LCL_VAR float V17 tmp16 Morphing BB04 of 'System.Numerics.Quaternion:get_IsIdentity():bool:this' fgMorphTree BB04, STMT00014 (before) [000083] ------------ * JTRUE void [000082] N--------U-- \--* NE int [000078] ------------ +--* LCL_VAR float V14 tmp13 [000081] ------------ \--* LCL_VAR float V18 tmp17 fgMorphTree (before 36): [000083] ------------ * JTRUE void [000082] N--------U-- \--* NE int [000078] ------------ +--* LCL_VAR float V14 tmp13 [000081] ------------ \--* LCL_VAR float V18 tmp17 fgMorphTree (before 37): [000082] N------N-U-- * NE int [000078] ------------ +--* LCL_VAR float V14 tmp13 [000081] ------------ \--* LCL_VAR float V18 tmp17 fgMorphTree (before 38): [000078] ------------ * LCL_VAR float V14 tmp13 fgMorphTree (after 38): [000078] ------------ * LCL_VAR float V14 tmp13 fgMorphTree (before 39): [000081] ------------ * LCL_VAR float V18 tmp17 fgMorphTree (after 39): [000081] ------------ * LCL_VAR float V18 tmp17 fgMorphTree (after 37): [000082] N------N-U-- * NE int [000078] -----+------ +--* LCL_VAR float V14 tmp13 [000081] -----+------ \--* LCL_VAR float V18 tmp17 fgMorphTree (after 36): [000083] ------------ * JTRUE void [000082] N----+-N-U-- \--* NE int [000078] -----+------ +--* LCL_VAR float V14 tmp13 [000081] -----+------ \--* LCL_VAR float V18 tmp17 Morphing BB05 of 'System.Numerics.Quaternion:get_IsIdentity():bool:this' fgMorphTree BB05, STMT00015 (before) [000092] -A---------- * ASG bool [000091] D------N---- +--* LCL_VAR bool V05 tmp4 [000090] ------------ \--* EQ int [000086] ------------ +--* LCL_VAR float V15 tmp14 [000089] ------------ \--* LCL_VAR float V19 tmp18 fgMorphTree (before 40): [000092] -A---------- * ASG bool [000091] D------N---- +--* LCL_VAR bool V05 tmp4 [000090] ------------ \--* EQ int [000086] ------------ +--* LCL_VAR float V15 tmp14 [000089] ------------ \--* LCL_VAR float V19 tmp18 fgMorphTree (before 41): [000091] D------N---- * LCL_VAR int V05 tmp4 fgMorphTree (after 41): [000091] D------N---- * LCL_VAR int V05 tmp4 fgMorphTree (before 42): [000090] ------------ * EQ int [000086] ------------ +--* LCL_VAR float V15 tmp14 [000089] ------------ \--* LCL_VAR float V19 tmp18 fgMorphTree (before 43): [000086] ------------ * LCL_VAR float V15 tmp14 fgMorphTree (after 43): [000086] ------------ * LCL_VAR float V15 tmp14 fgMorphTree (before 44): [000089] ------------ * LCL_VAR float V19 tmp18 fgMorphTree (after 44): [000089] ------------ * LCL_VAR float V19 tmp18 fgMorphTree (after 42): [000090] ------------ * EQ int [000086] -----+------ +--* LCL_VAR float V15 tmp14 [000089] -----+------ \--* LCL_VAR float V19 tmp18 fgMorphTree (after 40): [000092] -A---------- * ASG bool [000091] D----+-N---- +--* LCL_VAR int V05 tmp4 [000090] -----+------ \--* EQ int [000086] -----+------ +--* LCL_VAR float V15 tmp14 [000089] -----+------ \--* LCL_VAR float V19 tmp18 GenTreeNode creates assertion: [000092] -A---------- * ASG bool In BB05 New Local Subrange Assertion: V05 in [0..1] index=#01, mask=0000000000000001 Morphing BB06 of 'System.Numerics.Quaternion:get_IsIdentity():bool:this' fgMorphTree BB06, STMT00012 (before) [000066] -A---------- * ASG bool [000065] D------N---- +--* LCL_VAR bool V05 tmp4 [000064] ------------ \--* CAST int <- bool <- int [000063] ------------ \--* CNS_INT int 0 fgMorphTree (before 45): [000066] -A---------- * ASG bool [000065] D------N---- +--* LCL_VAR bool V05 tmp4 [000064] ------------ \--* CAST int <- bool <- int [000063] ------------ \--* CNS_INT int 0 fgMorphTree (before 46): [000065] D------N---- * LCL_VAR int V05 tmp4 fgMorphTree (after 46): [000065] D------N---- * LCL_VAR int V05 tmp4 fgMorphTree (before 47): [000064] ------------ * CAST int <- bool <- int [000063] ------------ \--* CNS_INT int 0 fgMorphTree (before 48): [000063] ------------ * CNS_INT int 0 fgMorphTree (after 48): [000063] ------------ * CNS_INT int 0 fgMorphTree (after 47): [000063] -----+------ * CNS_INT int 0 fgMorphTree (after 45): [000066] -A---------- * ASG bool [000065] D----+-N---- +--* LCL_VAR int V05 tmp4 [000063] -----+------ \--* CNS_INT int 0 GenTreeNode creates assertion: [000066] -A---------- * ASG bool In BB06 New Local Constant Assertion: V05 == 0 index=#01, mask=0000000000000001 fgMorphTree BB06, STMT00012 (after) [000066] -A---+------ * ASG bool [000065] D----+-N---- +--* LCL_VAR int V05 tmp4 [000063] -----+------ \--* CNS_INT int 0 Morphing BB07 of 'System.Numerics.Quaternion:get_IsIdentity():bool:this' fgMorphTree BB07, STMT00004 (before) [000018] --C--------- * RETURN int [000017] --C--------- \--* CAST int <- bool <- int [000093] ------------ \--* LCL_VAR bool V05 tmp4 fgMorphTree (before 49): [000018] --C--------- * RETURN int [000017] --C--------- \--* CAST int <- bool <- int [000093] ------------ \--* LCL_VAR bool V05 tmp4 fgMorphTree (before 50): [000017] --C--------- * CAST int <- bool <- int [000093] ------------ \--* LCL_VAR bool V05 tmp4 fgMorphTree (before 51): [000093] ------------ * LCL_VAR bool V05 tmp4 fgMorphTree (after 51): [000093] ------------ * LCL_VAR bool V05 tmp4 fgMorphTree (after 50): [000093] -----+------ * LCL_VAR bool V05 tmp4 fgMorphTree (after 49): [000018] ------------ * RETURN int [000093] -----+------ \--* LCL_VAR bool V05 tmp4 fgMorphTree BB07, STMT00004 (after) [000018] -----+------ * RETURN int [000093] -----+------ \--* LCL_VAR bool V05 tmp4 *************** Finishing PHASE Morph - Global Trees after Morph - Global ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB06 ( cond ) i label target BB03 [0004] 1 BB01 0.50 [000..000)-> BB06 ( cond ) i internal BB04 [0005] 1 BB03 0.50 [000..000)-> BB06 ( cond ) i internal BB05 [0006] 1 BB04 1 [000..000)-> BB07 (always) i internal BB06 [0007] 3 BB01,BB03,BB04 1 [000..000) i internal label target BB07 [0008] 2 BB05,BB06 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..011) -> BB06 (cond), preds={} succs={BB03,BB06} ***** BB01 STMT00001 (IL 0x000...0x010) [000005] -A-XG+------ * ASG struct (copy) [000003] D----+-N---- +--* LCL_VAR struct(AX) V02 tmp1 [000001] ---XG+------ \--* IND struct [000000] -----+------ \--* LCL_VAR byref V00 this ***** BB01 STMT00005 (IL 0x000... ???) [000115] -A---+------ * COMMA void [000111] -A---------- +--* COMMA void [000107] -A---------- | +--* COMMA void [000103] -A---------- | | +--* ASG float [000101] D------N---- | | | +--* LCL_VAR float V08 tmp7 [000102] ------------ | | | \--* CNS_DBL float 0.00000000000000000 [000106] -A---------- | | \--* ASG float [000104] D------N---- | | +--* LCL_VAR float V09 tmp8 [000105] ------------ | | \--* CNS_DBL float 0.00000000000000000 [000110] -A---------- | \--* ASG float [000108] D------N---- | +--* LCL_VAR float V10 tmp9 [000109] ------------ | \--* CNS_DBL float 0.00000000000000000 [000114] -A---------- \--* ASG float [000112] D------N---- +--* LCL_VAR float V11 tmp10 [000113] ------------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00007 (IL 0x000... ???) [000038] -A---+------ * ASG float [000037] D----+-N---- +--* LCL_VAR float V08 tmp7 [000036] -----+------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00008 (IL 0x000... ???) [000043] -A---+------ * ASG float [000042] D----+-N---- +--* LCL_VAR float V09 tmp8 [000041] -----+------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00009 (IL 0x000... ???) [000048] -A---+------ * ASG float [000047] D----+-N---- +--* LCL_VAR float V10 tmp9 [000046] -----+------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00010 (IL 0x000... ???) [000053] -A---+------ * ASG float [000052] D----+-N---- +--* LCL_VAR float V11 tmp10 [000051] -----+------ \--* CNS_DBL float 1.0000000000000000 ***** BB01 STMT00002 (IL ???... ???) [000144] -A---+------ * COMMA void [000137] -A---------- +--* COMMA void [000130] -A---------- | +--* COMMA void [000123] -A---------- | | +--* COMMA void [000118] -A---------- | | | +--* ASG byref [000117] D------N---- | | | | +--* LCL_VAR byref V20 tmp19 [000116] ------------ | | | | \--* ADDR byref [000031] -----+-N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 [000122] -A---------- | | | \--* ASG float [000120] *------N---- | | | +--* IND float [000119] ------------ | | | | \--* LCL_VAR byref V20 tmp19 Zero Fseq[X] [000121] ------------ | | | \--* LCL_VAR float V08 tmp7 [000129] -A---------- | | \--* ASG float [000127] *------N---- | | +--* IND float [000126] ------------ | | | \--* ADD byref [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] [000128] ------------ | | \--* LCL_VAR float V09 tmp8 [000136] -A---------- | \--* ASG float [000134] *------N---- | +--* IND float [000133] ------------ | | \--* ADD byref [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] [000135] ------------ | \--* LCL_VAR float V10 tmp9 [000143] -A---------- \--* ASG float [000141] *------N---- +--* IND float [000140] ------------ | \--* ADD byref [000138] ------------ | +--* LCL_VAR byref V20 tmp19 [000139] ------------ | \--* CNS_INT long 12 Fseq[W] [000142] ------------ \--* LCL_VAR float V11 tmp10 ***** BB01 STMT00016 (IL ???... ???) [000173] -A---+------ * COMMA void [000166] -A---------- +--* COMMA void [000159] -A---------- | +--* COMMA void [000152] -A---------- | | +--* COMMA void [000147] -A---------- | | | +--* ASG byref [000146] D------N---- | | | | +--* LCL_VAR byref V21 tmp20 [000145] ------------ | | | | \--* ADDR byref [000015] -----+-N---- | | | | \--* LCL_VAR struct(AX) V02 tmp1 [000151] -A---------- | | | \--* ASG float [000148] D------N---- | | | +--* LCL_VAR float V12 tmp11 [000150] n----------- | | | \--* IND float [000149] ------------ | | | \--* LCL_VAR byref V21 tmp20 Zero Fseq[X] [000158] -A---------- | | \--* ASG float [000153] D------N---- | | +--* LCL_VAR float V13 tmp12 [000157] n----------- | | \--* IND float [000156] ------------ | | \--* ADD byref [000154] ------------ | | +--* LCL_VAR byref V21 tmp20 [000155] ------------ | | \--* CNS_INT long 4 Fseq[Y] [000165] -A---------- | \--* ASG float [000160] D------N---- | +--* LCL_VAR float V14 tmp13 [000164] n----------- | \--* IND float [000163] ------------ | \--* ADD byref [000161] ------------ | +--* LCL_VAR byref V21 tmp20 [000162] ------------ | \--* CNS_INT long 8 Fseq[Z] [000172] -A---------- \--* ASG float [000167] D------N---- +--* LCL_VAR float V15 tmp14 [000171] n----------- \--* IND float [000170] ------------ \--* ADD byref [000168] ------------ +--* LCL_VAR byref V21 tmp20 [000169] ------------ \--* CNS_INT long 12 Fseq[W] ***** BB01 STMT00017 (IL ???... ???) [000202] -A--G+------ * COMMA void [000195] -A--G------- +--* COMMA void [000188] -A--G------- | +--* COMMA void [000181] -A--G------- | | +--* COMMA void [000176] -A--G------- | | | +--* ASG byref [000175] D------N---- | | | | +--* LCL_VAR byref V22 tmp21 [000174] ----G------- | | | | \--* ADDR byref [000013] ----G+-N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 [000180] -A---------- | | | \--* ASG float [000177] D------N---- | | | +--* LCL_VAR float V16 tmp15 [000179] n----------- | | | \--* IND float [000178] ------------ | | | \--* LCL_VAR byref V22 tmp21 Zero Fseq[X] [000187] -A---------- | | \--* ASG float [000182] D------N---- | | +--* LCL_VAR float V17 tmp16 [000186] n----------- | | \--* IND float [000185] ------------ | | \--* ADD byref [000183] ------------ | | +--* LCL_VAR byref V22 tmp21 [000184] ------------ | | \--* CNS_INT long 4 Fseq[Y] [000194] -A---------- | \--* ASG float [000189] D------N---- | +--* LCL_VAR float V18 tmp17 [000193] n----------- | \--* IND float [000192] ------------ | \--* ADD byref [000190] ------------ | +--* LCL_VAR byref V22 tmp21 [000191] ------------ | \--* CNS_INT long 8 Fseq[Z] [000201] -A---------- \--* ASG float [000196] D------N---- +--* LCL_VAR float V19 tmp18 [000200] n----------- \--* IND float [000199] ------------ \--* ADD byref [000197] ------------ +--* LCL_VAR byref V22 tmp21 [000198] ------------ \--* CNS_INT long 12 Fseq[W] ***** BB01 STMT00011 (IL ???... ???) [000062] -----+------ * JTRUE void [000061] N----+-N-U-- \--* NE int [000057] -----+------ +--* LCL_VAR float V12 tmp11 [000060] -----+------ \--* LCL_VAR float V16 tmp15 ------------ BB03 [000..000) -> BB06 (cond), preds={BB01} succs={BB04,BB06} ***** BB03 STMT00013 (IL ???... ???) [000075] -----+------ * JTRUE void [000074] N----+-N-U-- \--* NE int [000070] -----+------ +--* LCL_VAR float V13 tmp12 [000073] -----+------ \--* LCL_VAR float V17 tmp16 ------------ BB04 [000..000) -> BB06 (cond), preds={BB03} succs={BB05,BB06} ***** BB04 STMT00014 (IL ???... ???) [000083] -----+------ * JTRUE void [000082] N----+-N-U-- \--* NE int [000078] -----+------ +--* LCL_VAR float V14 tmp13 [000081] -----+------ \--* LCL_VAR float V18 tmp17 ------------ BB05 [000..000) -> BB07 (always), preds={BB04} succs={BB07} ***** BB05 STMT00015 (IL ???... ???) [000092] -A---+------ * ASG bool [000091] D----+-N---- +--* LCL_VAR int V05 tmp4 [000090] -----+------ \--* EQ int [000086] -----+------ +--* LCL_VAR float V15 tmp14 [000089] -----+------ \--* LCL_VAR float V19 tmp18 ------------ BB06 [000..000), preds={BB01,BB03,BB04} succs={BB07} ***** BB06 STMT00012 (IL ???... ???) [000066] -A---+------ * ASG bool [000065] D----+-N---- +--* LCL_VAR int V05 tmp4 [000063] -----+------ \--* CNS_INT int 0 ------------ BB07 [???..???) (return), preds={BB05,BB06} succs={} ***** BB07 STMT00004 (IL ???... ???) [000018] -----+------ * RETURN int [000093] -----+------ \--* LCL_VAR bool V05 tmp4 ------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist *************** Starting PHASE GS Cookie No GS security needed *************** Finishing PHASE GS Cookie *************** Starting PHASE Compute edge weights (1, false) *************** In fgComputeBlockAndEdgeWeights() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB06 ( cond ) i label target BB03 [0004] 1 BB01 0.50 [000..000)-> BB06 ( cond ) i internal BB04 [0005] 1 BB03 0.50 [000..000)-> BB06 ( cond ) i internal BB05 [0006] 1 BB04 1 [000..000)-> BB07 (always) i internal BB06 [0007] 3 BB01,BB03,BB04 1 [000..000) i internal label target BB07 [0008] 2 BB05,BB06 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- -- no profile data, so using default called count -- not optimizing or no profile data, so not computing edge weights *************** Finishing PHASE Compute edge weights (1, false) *************** Starting PHASE Create EH funclets *************** In fgCreateFunclets() After fgCreateFunclets() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB06 ( cond ) i label target BB03 [0004] 1 BB01 0.50 [000..000)-> BB06 ( cond ) i internal BB04 [0005] 1 BB03 0.50 [000..000)-> BB06 ( cond ) i internal BB05 [0006] 1 BB04 1 [000..000)-> BB07 (always) i internal BB06 [0007] 3 BB01,BB03,BB04 1 [000..000) i internal label target BB07 [0008] 2 BB05,BB06 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table is empty *************** In fgDebugCheckBBlist *************** Finishing PHASE Create EH funclets *************** Starting PHASE Invert loops *************** Finishing PHASE Invert loops Trees after Invert loops ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB06 ( cond ) i label target BB03 [0004] 1 BB01 0.50 [000..000)-> BB06 ( cond ) i internal BB04 [0005] 1 BB03 0.50 [000..000)-> BB06 ( cond ) i internal BB05 [0006] 1 BB04 1 [000..000)-> BB07 (always) i internal BB06 [0007] 3 BB01,BB03,BB04 1 [000..000) i internal label target BB07 [0008] 2 BB05,BB06 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..011) -> BB06 (cond), preds={} succs={BB03,BB06} ***** BB01 STMT00001 (IL 0x000...0x010) [000005] -A-XG+------ * ASG struct (copy) [000003] D----+-N---- +--* LCL_VAR struct(AX) V02 tmp1 [000001] ---XG+------ \--* IND struct [000000] -----+------ \--* LCL_VAR byref V00 this ***** BB01 STMT00005 (IL 0x000... ???) [000115] -A---+------ * COMMA void [000111] -A---------- +--* COMMA void [000107] -A---------- | +--* COMMA void [000103] -A---------- | | +--* ASG float [000101] D------N---- | | | +--* LCL_VAR float V08 tmp7 [000102] ------------ | | | \--* CNS_DBL float 0.00000000000000000 [000106] -A---------- | | \--* ASG float [000104] D------N---- | | +--* LCL_VAR float V09 tmp8 [000105] ------------ | | \--* CNS_DBL float 0.00000000000000000 [000110] -A---------- | \--* ASG float [000108] D------N---- | +--* LCL_VAR float V10 tmp9 [000109] ------------ | \--* CNS_DBL float 0.00000000000000000 [000114] -A---------- \--* ASG float [000112] D------N---- +--* LCL_VAR float V11 tmp10 [000113] ------------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00007 (IL 0x000... ???) [000038] -A---+------ * ASG float [000037] D----+-N---- +--* LCL_VAR float V08 tmp7 [000036] -----+------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00008 (IL 0x000... ???) [000043] -A---+------ * ASG float [000042] D----+-N---- +--* LCL_VAR float V09 tmp8 [000041] -----+------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00009 (IL 0x000... ???) [000048] -A---+------ * ASG float [000047] D----+-N---- +--* LCL_VAR float V10 tmp9 [000046] -----+------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00010 (IL 0x000... ???) [000053] -A---+------ * ASG float [000052] D----+-N---- +--* LCL_VAR float V11 tmp10 [000051] -----+------ \--* CNS_DBL float 1.0000000000000000 ***** BB01 STMT00002 (IL ???... ???) [000144] -A---+------ * COMMA void [000137] -A---------- +--* COMMA void [000130] -A---------- | +--* COMMA void [000123] -A---------- | | +--* COMMA void [000118] -A---------- | | | +--* ASG byref [000117] D------N---- | | | | +--* LCL_VAR byref V20 tmp19 [000116] ------------ | | | | \--* ADDR byref [000031] -----+-N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 [000122] -A---------- | | | \--* ASG float [000120] *------N---- | | | +--* IND float [000119] ------------ | | | | \--* LCL_VAR byref V20 tmp19 Zero Fseq[X] [000121] ------------ | | | \--* LCL_VAR float V08 tmp7 [000129] -A---------- | | \--* ASG float [000127] *------N---- | | +--* IND float [000126] ------------ | | | \--* ADD byref [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] [000128] ------------ | | \--* LCL_VAR float V09 tmp8 [000136] -A---------- | \--* ASG float [000134] *------N---- | +--* IND float [000133] ------------ | | \--* ADD byref [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] [000135] ------------ | \--* LCL_VAR float V10 tmp9 [000143] -A---------- \--* ASG float [000141] *------N---- +--* IND float [000140] ------------ | \--* ADD byref [000138] ------------ | +--* LCL_VAR byref V20 tmp19 [000139] ------------ | \--* CNS_INT long 12 Fseq[W] [000142] ------------ \--* LCL_VAR float V11 tmp10 ***** BB01 STMT00016 (IL ???... ???) [000173] -A---+------ * COMMA void [000166] -A---------- +--* COMMA void [000159] -A---------- | +--* COMMA void [000152] -A---------- | | +--* COMMA void [000147] -A---------- | | | +--* ASG byref [000146] D------N---- | | | | +--* LCL_VAR byref V21 tmp20 [000145] ------------ | | | | \--* ADDR byref [000015] -----+-N---- | | | | \--* LCL_VAR struct(AX) V02 tmp1 [000151] -A---------- | | | \--* ASG float [000148] D------N---- | | | +--* LCL_VAR float V12 tmp11 [000150] n----------- | | | \--* IND float [000149] ------------ | | | \--* LCL_VAR byref V21 tmp20 Zero Fseq[X] [000158] -A---------- | | \--* ASG float [000153] D------N---- | | +--* LCL_VAR float V13 tmp12 [000157] n----------- | | \--* IND float [000156] ------------ | | \--* ADD byref [000154] ------------ | | +--* LCL_VAR byref V21 tmp20 [000155] ------------ | | \--* CNS_INT long 4 Fseq[Y] [000165] -A---------- | \--* ASG float [000160] D------N---- | +--* LCL_VAR float V14 tmp13 [000164] n----------- | \--* IND float [000163] ------------ | \--* ADD byref [000161] ------------ | +--* LCL_VAR byref V21 tmp20 [000162] ------------ | \--* CNS_INT long 8 Fseq[Z] [000172] -A---------- \--* ASG float [000167] D------N---- +--* LCL_VAR float V15 tmp14 [000171] n----------- \--* IND float [000170] ------------ \--* ADD byref [000168] ------------ +--* LCL_VAR byref V21 tmp20 [000169] ------------ \--* CNS_INT long 12 Fseq[W] ***** BB01 STMT00017 (IL ???... ???) [000202] -A--G+------ * COMMA void [000195] -A--G------- +--* COMMA void [000188] -A--G------- | +--* COMMA void [000181] -A--G------- | | +--* COMMA void [000176] -A--G------- | | | +--* ASG byref [000175] D------N---- | | | | +--* LCL_VAR byref V22 tmp21 [000174] ----G------- | | | | \--* ADDR byref [000013] ----G+-N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 [000180] -A---------- | | | \--* ASG float [000177] D------N---- | | | +--* LCL_VAR float V16 tmp15 [000179] n----------- | | | \--* IND float [000178] ------------ | | | \--* LCL_VAR byref V22 tmp21 Zero Fseq[X] [000187] -A---------- | | \--* ASG float [000182] D------N---- | | +--* LCL_VAR float V17 tmp16 [000186] n----------- | | \--* IND float [000185] ------------ | | \--* ADD byref [000183] ------------ | | +--* LCL_VAR byref V22 tmp21 [000184] ------------ | | \--* CNS_INT long 4 Fseq[Y] [000194] -A---------- | \--* ASG float [000189] D------N---- | +--* LCL_VAR float V18 tmp17 [000193] n----------- | \--* IND float [000192] ------------ | \--* ADD byref [000190] ------------ | +--* LCL_VAR byref V22 tmp21 [000191] ------------ | \--* CNS_INT long 8 Fseq[Z] [000201] -A---------- \--* ASG float [000196] D------N---- +--* LCL_VAR float V19 tmp18 [000200] n----------- \--* IND float [000199] ------------ \--* ADD byref [000197] ------------ +--* LCL_VAR byref V22 tmp21 [000198] ------------ \--* CNS_INT long 12 Fseq[W] ***** BB01 STMT00011 (IL ???... ???) [000062] -----+------ * JTRUE void [000061] N----+-N-U-- \--* NE int [000057] -----+------ +--* LCL_VAR float V12 tmp11 [000060] -----+------ \--* LCL_VAR float V16 tmp15 ------------ BB03 [000..000) -> BB06 (cond), preds={BB01} succs={BB04,BB06} ***** BB03 STMT00013 (IL ???... ???) [000075] -----+------ * JTRUE void [000074] N----+-N-U-- \--* NE int [000070] -----+------ +--* LCL_VAR float V13 tmp12 [000073] -----+------ \--* LCL_VAR float V17 tmp16 ------------ BB04 [000..000) -> BB06 (cond), preds={BB03} succs={BB05,BB06} ***** BB04 STMT00014 (IL ???... ???) [000083] -----+------ * JTRUE void [000082] N----+-N-U-- \--* NE int [000078] -----+------ +--* LCL_VAR float V14 tmp13 [000081] -----+------ \--* LCL_VAR float V18 tmp17 ------------ BB05 [000..000) -> BB07 (always), preds={BB04} succs={BB07} ***** BB05 STMT00015 (IL ???... ???) [000092] -A---+------ * ASG bool [000091] D----+-N---- +--* LCL_VAR int V05 tmp4 [000090] -----+------ \--* EQ int [000086] -----+------ +--* LCL_VAR float V15 tmp14 [000089] -----+------ \--* LCL_VAR float V19 tmp18 ------------ BB06 [000..000), preds={BB01,BB03,BB04} succs={BB07} ***** BB06 STMT00012 (IL ???... ???) [000066] -A---+------ * ASG bool [000065] D----+-N---- +--* LCL_VAR int V05 tmp4 [000063] -----+------ \--* CNS_INT int 0 ------------ BB07 [???..???) (return), preds={BB05,BB06} succs={} ***** BB07 STMT00004 (IL ???... ???) [000018] -----+------ * RETURN int [000093] -----+------ \--* LCL_VAR bool V05 tmp4 ------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist *************** Starting PHASE Optimize layout *************** 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..011)-> BB06 ( cond ) i label target BB03 [0004] 1 BB01 0.50 [000..000)-> BB06 ( cond ) i internal BB04 [0005] 1 BB03 0.50 [000..000)-> BB06 ( cond ) i internal BB05 [0006] 1 BB04 1 [000..000)-> BB07 (always) i internal BB06 [0007] 3 BB01,BB03,BB04 1 [000..000) i internal label target BB07 [0008] 2 BB05,BB06 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- *************** 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..011)-> BB06 ( cond ) i label target BB03 [0004] 1 BB01 0.50 [000..000)-> BB06 ( cond ) i internal BB04 [0005] 1 BB03 0.50 [000..000)-> BB06 ( cond ) i internal BB05 [0006] 1 BB04 1 [000..000)-> BB07 (always) i internal BB06 [0007] 3 BB01,BB03,BB04 1 [000..000) i internal label target BB07 [0008] 2 BB05,BB06 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- *************** 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..011)-> BB06 ( cond ) i label target BB03 [0004] 1 BB01 0.50 [000..000)-> BB06 ( cond ) i internal BB04 [0005] 1 BB03 0.50 [000..000)-> BB06 ( cond ) i internal BB05 [0006] 1 BB04 1 [000..000)-> BB07 (always) i internal BB06 [0007] 3 BB01,BB03,BB04 1 [000..000) i internal label target BB07 [0008] 2 BB05,BB06 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist *************** Finishing PHASE Optimize layout Trees after Optimize layout ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB06 ( cond ) i label target BB03 [0004] 1 BB01 0.50 [000..000)-> BB06 ( cond ) i internal BB04 [0005] 1 BB03 0.50 [000..000)-> BB06 ( cond ) i internal BB05 [0006] 1 BB04 1 [000..000)-> BB07 (always) i internal BB06 [0007] 3 BB01,BB03,BB04 1 [000..000) i internal label target BB07 [0008] 2 BB05,BB06 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..011) -> BB06 (cond), preds={} succs={BB03,BB06} ***** BB01 STMT00001 (IL 0x000...0x010) [000005] -A-XG+------ * ASG struct (copy) [000003] D----+-N---- +--* LCL_VAR struct(AX) V02 tmp1 [000001] ---XG+------ \--* IND struct [000000] -----+------ \--* LCL_VAR byref V00 this ***** BB01 STMT00005 (IL 0x000... ???) [000115] -A---+------ * COMMA void [000111] -A---------- +--* COMMA void [000107] -A---------- | +--* COMMA void [000103] -A---------- | | +--* ASG float [000101] D------N---- | | | +--* LCL_VAR float V08 tmp7 [000102] ------------ | | | \--* CNS_DBL float 0.00000000000000000 [000106] -A---------- | | \--* ASG float [000104] D------N---- | | +--* LCL_VAR float V09 tmp8 [000105] ------------ | | \--* CNS_DBL float 0.00000000000000000 [000110] -A---------- | \--* ASG float [000108] D------N---- | +--* LCL_VAR float V10 tmp9 [000109] ------------ | \--* CNS_DBL float 0.00000000000000000 [000114] -A---------- \--* ASG float [000112] D------N---- +--* LCL_VAR float V11 tmp10 [000113] ------------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00007 (IL 0x000... ???) [000038] -A---+------ * ASG float [000037] D----+-N---- +--* LCL_VAR float V08 tmp7 [000036] -----+------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00008 (IL 0x000... ???) [000043] -A---+------ * ASG float [000042] D----+-N---- +--* LCL_VAR float V09 tmp8 [000041] -----+------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00009 (IL 0x000... ???) [000048] -A---+------ * ASG float [000047] D----+-N---- +--* LCL_VAR float V10 tmp9 [000046] -----+------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00010 (IL 0x000... ???) [000053] -A---+------ * ASG float [000052] D----+-N---- +--* LCL_VAR float V11 tmp10 [000051] -----+------ \--* CNS_DBL float 1.0000000000000000 ***** BB01 STMT00002 (IL ???... ???) [000144] -A---+------ * COMMA void [000137] -A---------- +--* COMMA void [000130] -A---------- | +--* COMMA void [000123] -A---------- | | +--* COMMA void [000118] -A---------- | | | +--* ASG byref [000117] D------N---- | | | | +--* LCL_VAR byref V20 tmp19 [000116] ------------ | | | | \--* ADDR byref [000031] -----+-N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 [000122] -A---------- | | | \--* ASG float [000120] *------N---- | | | +--* IND float [000119] ------------ | | | | \--* LCL_VAR byref V20 tmp19 Zero Fseq[X] [000121] ------------ | | | \--* LCL_VAR float V08 tmp7 [000129] -A---------- | | \--* ASG float [000127] *------N---- | | +--* IND float [000126] ------------ | | | \--* ADD byref [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] [000128] ------------ | | \--* LCL_VAR float V09 tmp8 [000136] -A---------- | \--* ASG float [000134] *------N---- | +--* IND float [000133] ------------ | | \--* ADD byref [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] [000135] ------------ | \--* LCL_VAR float V10 tmp9 [000143] -A---------- \--* ASG float [000141] *------N---- +--* IND float [000140] ------------ | \--* ADD byref [000138] ------------ | +--* LCL_VAR byref V20 tmp19 [000139] ------------ | \--* CNS_INT long 12 Fseq[W] [000142] ------------ \--* LCL_VAR float V11 tmp10 ***** BB01 STMT00016 (IL ???... ???) [000173] -A---+------ * COMMA void [000166] -A---------- +--* COMMA void [000159] -A---------- | +--* COMMA void [000152] -A---------- | | +--* COMMA void [000147] -A---------- | | | +--* ASG byref [000146] D------N---- | | | | +--* LCL_VAR byref V21 tmp20 [000145] ------------ | | | | \--* ADDR byref [000015] -----+-N---- | | | | \--* LCL_VAR struct(AX) V02 tmp1 [000151] -A---------- | | | \--* ASG float [000148] D------N---- | | | +--* LCL_VAR float V12 tmp11 [000150] n----------- | | | \--* IND float [000149] ------------ | | | \--* LCL_VAR byref V21 tmp20 Zero Fseq[X] [000158] -A---------- | | \--* ASG float [000153] D------N---- | | +--* LCL_VAR float V13 tmp12 [000157] n----------- | | \--* IND float [000156] ------------ | | \--* ADD byref [000154] ------------ | | +--* LCL_VAR byref V21 tmp20 [000155] ------------ | | \--* CNS_INT long 4 Fseq[Y] [000165] -A---------- | \--* ASG float [000160] D------N---- | +--* LCL_VAR float V14 tmp13 [000164] n----------- | \--* IND float [000163] ------------ | \--* ADD byref [000161] ------------ | +--* LCL_VAR byref V21 tmp20 [000162] ------------ | \--* CNS_INT long 8 Fseq[Z] [000172] -A---------- \--* ASG float [000167] D------N---- +--* LCL_VAR float V15 tmp14 [000171] n----------- \--* IND float [000170] ------------ \--* ADD byref [000168] ------------ +--* LCL_VAR byref V21 tmp20 [000169] ------------ \--* CNS_INT long 12 Fseq[W] ***** BB01 STMT00017 (IL ???... ???) [000202] -A--G+------ * COMMA void [000195] -A--G------- +--* COMMA void [000188] -A--G------- | +--* COMMA void [000181] -A--G------- | | +--* COMMA void [000176] -A--G------- | | | +--* ASG byref [000175] D------N---- | | | | +--* LCL_VAR byref V22 tmp21 [000174] ----G------- | | | | \--* ADDR byref [000013] ----G+-N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 [000180] -A---------- | | | \--* ASG float [000177] D------N---- | | | +--* LCL_VAR float V16 tmp15 [000179] n----------- | | | \--* IND float [000178] ------------ | | | \--* LCL_VAR byref V22 tmp21 Zero Fseq[X] [000187] -A---------- | | \--* ASG float [000182] D------N---- | | +--* LCL_VAR float V17 tmp16 [000186] n----------- | | \--* IND float [000185] ------------ | | \--* ADD byref [000183] ------------ | | +--* LCL_VAR byref V22 tmp21 [000184] ------------ | | \--* CNS_INT long 4 Fseq[Y] [000194] -A---------- | \--* ASG float [000189] D------N---- | +--* LCL_VAR float V18 tmp17 [000193] n----------- | \--* IND float [000192] ------------ | \--* ADD byref [000190] ------------ | +--* LCL_VAR byref V22 tmp21 [000191] ------------ | \--* CNS_INT long 8 Fseq[Z] [000201] -A---------- \--* ASG float [000196] D------N---- +--* LCL_VAR float V19 tmp18 [000200] n----------- \--* IND float [000199] ------------ \--* ADD byref [000197] ------------ +--* LCL_VAR byref V22 tmp21 [000198] ------------ \--* CNS_INT long 12 Fseq[W] ***** BB01 STMT00011 (IL ???... ???) [000062] -----+------ * JTRUE void [000061] N----+-N-U-- \--* NE int [000057] -----+------ +--* LCL_VAR float V12 tmp11 [000060] -----+------ \--* LCL_VAR float V16 tmp15 ------------ BB03 [000..000) -> BB06 (cond), preds={BB01} succs={BB04,BB06} ***** BB03 STMT00013 (IL ???... ???) [000075] -----+------ * JTRUE void [000074] N----+-N-U-- \--* NE int [000070] -----+------ +--* LCL_VAR float V13 tmp12 [000073] -----+------ \--* LCL_VAR float V17 tmp16 ------------ BB04 [000..000) -> BB06 (cond), preds={BB03} succs={BB05,BB06} ***** BB04 STMT00014 (IL ???... ???) [000083] -----+------ * JTRUE void [000082] N----+-N-U-- \--* NE int [000078] -----+------ +--* LCL_VAR float V14 tmp13 [000081] -----+------ \--* LCL_VAR float V18 tmp17 ------------ BB05 [000..000) -> BB07 (always), preds={BB04} succs={BB07} ***** BB05 STMT00015 (IL ???... ???) [000092] -A---+------ * ASG bool [000091] D----+-N---- +--* LCL_VAR int V05 tmp4 [000090] -----+------ \--* EQ int [000086] -----+------ +--* LCL_VAR float V15 tmp14 [000089] -----+------ \--* LCL_VAR float V19 tmp18 ------------ BB06 [000..000), preds={BB01,BB03,BB04} succs={BB07} ***** BB06 STMT00012 (IL ???... ???) [000066] -A---+------ * ASG bool [000065] D----+-N---- +--* LCL_VAR int V05 tmp4 [000063] -----+------ \--* CNS_INT int 0 ------------ BB07 [???..???) (return), preds={BB05,BB06} succs={} ***** BB07 STMT00004 (IL ???... ???) [000018] -----+------ * RETURN int [000093] -----+------ \--* LCL_VAR bool V05 tmp4 ------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist *************** Starting PHASE Compute blocks reachability *************** In fgComputeReachability *************** In fgDebugCheckBBlist Renumbering the basic blocks for fgComputeReachability pass #1 *************** Before renumbering the basic blocks ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB06 ( cond ) i label target BB03 [0004] 1 BB01 0.50 [000..000)-> BB06 ( cond ) i internal BB04 [0005] 1 BB03 0.50 [000..000)-> BB06 ( cond ) i internal BB05 [0006] 1 BB04 1 [000..000)-> BB07 (always) i internal BB06 [0007] 3 BB01,BB03,BB04 1 [000..000) i internal label target BB07 [0008] 2 BB05,BB06 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table is empty Renumber BB03 to BB02 Renumber BB04 to BB03 Renumber BB05 to BB04 Renumber BB06 to BB05 Renumber BB07 to BB06 *************** After renumbering the basic blocks ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target BB02 [0004] 1 BB01 0.50 [000..000)-> BB05 ( cond ) i internal BB03 [0005] 1 BB02 0.50 [000..000)-> BB05 ( cond ) i internal BB04 [0006] 1 BB03 1 [000..000)-> BB06 (always) i internal BB05 [0007] 3 BB01,BB02,BB03 1 [000..000) i internal label target BB06 [0008] 2 BB04,BB05 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table is empty New BlockSet epoch 3, # of blocks (including unused BB00): 7, bitset array size: 1 (short) Enter blocks: BB01 After computing reachability sets: ------------------------------------------------ BBnum Reachable by ------------------------------------------------ BB01 : BB01 BB02 : BB01 BB02 BB03 : BB01 BB02 BB03 BB04 : BB01 BB02 BB03 BB04 BB05 : BB01 BB02 BB03 BB05 BB06 : BB01 BB02 BB03 BB04 BB05 BB06 After computing reachability: ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target BB02 [0004] 1 BB01 0.50 [000..000)-> BB05 ( cond ) i internal BB03 [0005] 1 BB02 0.50 [000..000)-> BB05 ( cond ) i internal BB04 [0006] 1 BB03 1 [000..000)-> BB06 (always) i internal BB05 [0007] 3 BB01,BB02,BB03 1 [000..000) i internal label target BB06 [0008] 2 BB04,BB05 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- *************** 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 BB02 BB01 BB04: BB04 BB03 BB02 BB01 BB05: BB05 BB01 BB06: BB06 BB01 Inside fgBuildDomTree After computing the Dominance Tree: BB01 : BB06 BB05 BB02 BB02 : BB03 BB03 : BB04 After numbering the dominator tree: BB01: pre=01, post=06 BB02: pre=04, post=05 BB03: pre=05, post=04 BB04: pre=06, post=03 BB05: pre=03, post=02 BB06: pre=02, post=01 *************** Finishing PHASE Compute blocks reachability *************** Starting PHASE Find loops *************** In optFindLoops() After optSetBlockWeights: ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target BB02 [0004] 1 BB01 0.25 [000..000)-> BB05 ( cond ) i internal BB03 [0005] 1 BB02 0.25 [000..000)-> BB05 ( cond ) i internal BB04 [0006] 1 BB03 0.50 [000..000)-> BB06 (always) i internal BB05 [0007] 3 BB01,BB02,BB03 0.50 [000..000) i internal label target BB06 [0008] 2 BB04,BB05 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist *************** Finishing PHASE Find loops Trees after Find loops ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target BB02 [0004] 1 BB01 0.25 [000..000)-> BB05 ( cond ) i internal BB03 [0005] 1 BB02 0.25 [000..000)-> BB05 ( cond ) i internal BB04 [0006] 1 BB03 0.50 [000..000)-> BB06 (always) i internal BB05 [0007] 3 BB01,BB02,BB03 0.50 [000..000) i internal label target BB06 [0008] 2 BB04,BB05 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..011) -> BB05 (cond), preds={} succs={BB02,BB05} ***** BB01 STMT00001 (IL 0x000...0x010) [000005] -A-XG+------ * ASG struct (copy) [000003] D----+-N---- +--* LCL_VAR struct(AX) V02 tmp1 [000001] ---XG+------ \--* IND struct [000000] -----+------ \--* LCL_VAR byref V00 this ***** BB01 STMT00005 (IL 0x000... ???) [000115] -A---+------ * COMMA void [000111] -A---------- +--* COMMA void [000107] -A---------- | +--* COMMA void [000103] -A---------- | | +--* ASG float [000101] D------N---- | | | +--* LCL_VAR float V08 tmp7 [000102] ------------ | | | \--* CNS_DBL float 0.00000000000000000 [000106] -A---------- | | \--* ASG float [000104] D------N---- | | +--* LCL_VAR float V09 tmp8 [000105] ------------ | | \--* CNS_DBL float 0.00000000000000000 [000110] -A---------- | \--* ASG float [000108] D------N---- | +--* LCL_VAR float V10 tmp9 [000109] ------------ | \--* CNS_DBL float 0.00000000000000000 [000114] -A---------- \--* ASG float [000112] D------N---- +--* LCL_VAR float V11 tmp10 [000113] ------------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00007 (IL 0x000... ???) [000038] -A---+------ * ASG float [000037] D----+-N---- +--* LCL_VAR float V08 tmp7 [000036] -----+------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00008 (IL 0x000... ???) [000043] -A---+------ * ASG float [000042] D----+-N---- +--* LCL_VAR float V09 tmp8 [000041] -----+------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00009 (IL 0x000... ???) [000048] -A---+------ * ASG float [000047] D----+-N---- +--* LCL_VAR float V10 tmp9 [000046] -----+------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00010 (IL 0x000... ???) [000053] -A---+------ * ASG float [000052] D----+-N---- +--* LCL_VAR float V11 tmp10 [000051] -----+------ \--* CNS_DBL float 1.0000000000000000 ***** BB01 STMT00002 (IL ???... ???) [000144] -A---+------ * COMMA void [000137] -A---------- +--* COMMA void [000130] -A---------- | +--* COMMA void [000123] -A---------- | | +--* COMMA void [000118] -A---------- | | | +--* ASG byref [000117] D------N---- | | | | +--* LCL_VAR byref V20 tmp19 [000116] ------------ | | | | \--* ADDR byref [000031] -----+-N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 [000122] -A---------- | | | \--* ASG float [000120] *------N---- | | | +--* IND float [000119] ------------ | | | | \--* LCL_VAR byref V20 tmp19 Zero Fseq[X] [000121] ------------ | | | \--* LCL_VAR float V08 tmp7 [000129] -A---------- | | \--* ASG float [000127] *------N---- | | +--* IND float [000126] ------------ | | | \--* ADD byref [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] [000128] ------------ | | \--* LCL_VAR float V09 tmp8 [000136] -A---------- | \--* ASG float [000134] *------N---- | +--* IND float [000133] ------------ | | \--* ADD byref [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] [000135] ------------ | \--* LCL_VAR float V10 tmp9 [000143] -A---------- \--* ASG float [000141] *------N---- +--* IND float [000140] ------------ | \--* ADD byref [000138] ------------ | +--* LCL_VAR byref V20 tmp19 [000139] ------------ | \--* CNS_INT long 12 Fseq[W] [000142] ------------ \--* LCL_VAR float V11 tmp10 ***** BB01 STMT00016 (IL ???... ???) [000173] -A---+------ * COMMA void [000166] -A---------- +--* COMMA void [000159] -A---------- | +--* COMMA void [000152] -A---------- | | +--* COMMA void [000147] -A---------- | | | +--* ASG byref [000146] D------N---- | | | | +--* LCL_VAR byref V21 tmp20 [000145] ------------ | | | | \--* ADDR byref [000015] -----+-N---- | | | | \--* LCL_VAR struct(AX) V02 tmp1 [000151] -A---------- | | | \--* ASG float [000148] D------N---- | | | +--* LCL_VAR float V12 tmp11 [000150] n----------- | | | \--* IND float [000149] ------------ | | | \--* LCL_VAR byref V21 tmp20 Zero Fseq[X] [000158] -A---------- | | \--* ASG float [000153] D------N---- | | +--* LCL_VAR float V13 tmp12 [000157] n----------- | | \--* IND float [000156] ------------ | | \--* ADD byref [000154] ------------ | | +--* LCL_VAR byref V21 tmp20 [000155] ------------ | | \--* CNS_INT long 4 Fseq[Y] [000165] -A---------- | \--* ASG float [000160] D------N---- | +--* LCL_VAR float V14 tmp13 [000164] n----------- | \--* IND float [000163] ------------ | \--* ADD byref [000161] ------------ | +--* LCL_VAR byref V21 tmp20 [000162] ------------ | \--* CNS_INT long 8 Fseq[Z] [000172] -A---------- \--* ASG float [000167] D------N---- +--* LCL_VAR float V15 tmp14 [000171] n----------- \--* IND float [000170] ------------ \--* ADD byref [000168] ------------ +--* LCL_VAR byref V21 tmp20 [000169] ------------ \--* CNS_INT long 12 Fseq[W] ***** BB01 STMT00017 (IL ???... ???) [000202] -A--G+------ * COMMA void [000195] -A--G------- +--* COMMA void [000188] -A--G------- | +--* COMMA void [000181] -A--G------- | | +--* COMMA void [000176] -A--G------- | | | +--* ASG byref [000175] D------N---- | | | | +--* LCL_VAR byref V22 tmp21 [000174] ----G------- | | | | \--* ADDR byref [000013] ----G+-N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 [000180] -A---------- | | | \--* ASG float [000177] D------N---- | | | +--* LCL_VAR float V16 tmp15 [000179] n----------- | | | \--* IND float [000178] ------------ | | | \--* LCL_VAR byref V22 tmp21 Zero Fseq[X] [000187] -A---------- | | \--* ASG float [000182] D------N---- | | +--* LCL_VAR float V17 tmp16 [000186] n----------- | | \--* IND float [000185] ------------ | | \--* ADD byref [000183] ------------ | | +--* LCL_VAR byref V22 tmp21 [000184] ------------ | | \--* CNS_INT long 4 Fseq[Y] [000194] -A---------- | \--* ASG float [000189] D------N---- | +--* LCL_VAR float V18 tmp17 [000193] n----------- | \--* IND float [000192] ------------ | \--* ADD byref [000190] ------------ | +--* LCL_VAR byref V22 tmp21 [000191] ------------ | \--* CNS_INT long 8 Fseq[Z] [000201] -A---------- \--* ASG float [000196] D------N---- +--* LCL_VAR float V19 tmp18 [000200] n----------- \--* IND float [000199] ------------ \--* ADD byref [000197] ------------ +--* LCL_VAR byref V22 tmp21 [000198] ------------ \--* CNS_INT long 12 Fseq[W] ***** BB01 STMT00011 (IL ???... ???) [000062] -----+------ * JTRUE void [000061] N----+-N-U-- \--* NE int [000057] -----+------ +--* LCL_VAR float V12 tmp11 [000060] -----+------ \--* LCL_VAR float V16 tmp15 ------------ BB02 [000..000) -> BB05 (cond), preds={BB01} succs={BB03,BB05} ***** BB02 STMT00013 (IL ???... ???) [000075] -----+------ * JTRUE void [000074] N----+-N-U-- \--* NE int [000070] -----+------ +--* LCL_VAR float V13 tmp12 [000073] -----+------ \--* LCL_VAR float V17 tmp16 ------------ BB03 [000..000) -> BB05 (cond), preds={BB02} succs={BB04,BB05} ***** BB03 STMT00014 (IL ???... ???) [000083] -----+------ * JTRUE void [000082] N----+-N-U-- \--* NE int [000078] -----+------ +--* LCL_VAR float V14 tmp13 [000081] -----+------ \--* LCL_VAR float V18 tmp17 ------------ BB04 [000..000) -> BB06 (always), preds={BB03} succs={BB06} ***** BB04 STMT00015 (IL ???... ???) [000092] -A---+------ * ASG bool [000091] D----+-N---- +--* LCL_VAR int V05 tmp4 [000090] -----+------ \--* EQ int [000086] -----+------ +--* LCL_VAR float V15 tmp14 [000089] -----+------ \--* LCL_VAR float V19 tmp18 ------------ BB05 [000..000), preds={BB01,BB02,BB03} succs={BB06} ***** BB05 STMT00012 (IL ???... ???) [000066] -A---+------ * ASG bool [000065] D----+-N---- +--* LCL_VAR int V05 tmp4 [000063] -----+------ \--* CNS_INT int 0 ------------ BB06 [???..???) (return), preds={BB04,BB05} succs={} ***** BB06 STMT00004 (IL ???... ???) [000018] -----+------ * RETURN int [000093] -----+------ \--* LCL_VAR bool V05 tmp4 ------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist *************** Starting PHASE Clone loops *************** In optCloneLoops() *************** Finishing PHASE Clone loops *************** Starting PHASE Unroll loops *************** Finishing PHASE Unroll loops *************** Starting PHASE Mark local vars *************** In lvaMarkLocalVars() *** lvaComputeRefCounts *** *** lvaComputeRefCounts -- explicit counts *** *** marking local variables in block BB01 (weight=1 ) STMT00001 (IL 0x000...0x010) [000005] -A-XG+------ * ASG struct (copy) [000003] D----+-N---- +--* LCL_VAR struct(AX) V02 tmp1 [000001] ---XG+------ \--* IND struct [000000] -----+------ \--* LCL_VAR byref V00 this New refCnts for V02: refCnt = 1, refCntWtd = 2 New refCnts for V00: refCnt = 1, refCntWtd = 1 STMT00005 (IL 0x000... ???) [000115] -A---+------ * COMMA void [000111] -A---------- +--* COMMA void [000107] -A---------- | +--* COMMA void [000103] -A---------- | | +--* ASG float [000101] D------N---- | | | +--* LCL_VAR float V08 tmp7 [000102] ------------ | | | \--* CNS_DBL float 0.00000000000000000 [000106] -A---------- | | \--* ASG float [000104] D------N---- | | +--* LCL_VAR float V09 tmp8 [000105] ------------ | | \--* CNS_DBL float 0.00000000000000000 [000110] -A---------- | \--* ASG float [000108] D------N---- | +--* LCL_VAR float V10 tmp9 [000109] ------------ | \--* CNS_DBL float 0.00000000000000000 [000114] -A---------- \--* ASG float [000112] D------N---- +--* LCL_VAR float V11 tmp10 [000113] ------------ \--* CNS_DBL float 0.00000000000000000 New refCnts for V08: refCnt = 1, refCntWtd = 1 New refCnts for V09: refCnt = 1, refCntWtd = 1 New refCnts for V10: refCnt = 1, refCntWtd = 1 New refCnts for V11: refCnt = 1, refCntWtd = 1 STMT00007 (IL 0x000... ???) [000038] -A---+------ * ASG float [000037] D----+-N---- +--* LCL_VAR float V08 tmp7 [000036] -----+------ \--* CNS_DBL float 0.00000000000000000 New refCnts for V08: refCnt = 2, refCntWtd = 2 STMT00008 (IL 0x000... ???) [000043] -A---+------ * ASG float [000042] D----+-N---- +--* LCL_VAR float V09 tmp8 [000041] -----+------ \--* CNS_DBL float 0.00000000000000000 New refCnts for V09: refCnt = 2, refCntWtd = 2 STMT00009 (IL 0x000... ???) [000048] -A---+------ * ASG float [000047] D----+-N---- +--* LCL_VAR float V10 tmp9 [000046] -----+------ \--* CNS_DBL float 0.00000000000000000 New refCnts for V10: refCnt = 2, refCntWtd = 2 STMT00010 (IL 0x000... ???) [000053] -A---+------ * ASG float [000052] D----+-N---- +--* LCL_VAR float V11 tmp10 [000051] -----+------ \--* CNS_DBL float 1.0000000000000000 New refCnts for V11: refCnt = 2, refCntWtd = 2 STMT00002 (IL ???... ???) [000144] -A---+------ * COMMA void [000137] -A---------- +--* COMMA void [000130] -A---------- | +--* COMMA void [000123] -A---------- | | +--* COMMA void [000118] -A---------- | | | +--* ASG byref [000117] D------N---- | | | | +--* LCL_VAR byref V20 tmp19 [000116] ------------ | | | | \--* ADDR byref [000031] -----+-N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 [000122] -A---------- | | | \--* ASG float [000120] *------N---- | | | +--* IND float [000119] ------------ | | | | \--* LCL_VAR byref V20 tmp19 Zero Fseq[X] [000121] ------------ | | | \--* LCL_VAR float V08 tmp7 [000129] -A---------- | | \--* ASG float [000127] *------N---- | | +--* IND float [000126] ------------ | | | \--* ADD byref [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] [000128] ------------ | | \--* LCL_VAR float V09 tmp8 [000136] -A---------- | \--* ASG float [000134] *------N---- | +--* IND float [000133] ------------ | | \--* ADD byref [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] [000135] ------------ | \--* LCL_VAR float V10 tmp9 [000143] -A---------- \--* ASG float [000141] *------N---- +--* IND float [000140] ------------ | \--* ADD byref [000138] ------------ | +--* LCL_VAR byref V20 tmp19 [000139] ------------ | \--* CNS_INT long 12 Fseq[W] [000142] ------------ \--* LCL_VAR float V11 tmp10 New refCnts for V20: refCnt = 1, refCntWtd = 2 New refCnts for V03: refCnt = 1, refCntWtd = 2 New refCnts for V20: refCnt = 2, refCntWtd = 4 New refCnts for V08: refCnt = 3, refCntWtd = 3 New refCnts for V20: refCnt = 3, refCntWtd = 6 New refCnts for V09: refCnt = 3, refCntWtd = 3 New refCnts for V20: refCnt = 4, refCntWtd = 8 New refCnts for V10: refCnt = 3, refCntWtd = 3 New refCnts for V20: refCnt = 5, refCntWtd = 10 New refCnts for V11: refCnt = 3, refCntWtd = 3 STMT00016 (IL ???... ???) [000173] -A---+------ * COMMA void [000166] -A---------- +--* COMMA void [000159] -A---------- | +--* COMMA void [000152] -A---------- | | +--* COMMA void [000147] -A---------- | | | +--* ASG byref [000146] D------N---- | | | | +--* LCL_VAR byref V21 tmp20 [000145] ------------ | | | | \--* ADDR byref [000015] -----+-N---- | | | | \--* LCL_VAR struct(AX) V02 tmp1 [000151] -A---------- | | | \--* ASG float [000148] D------N---- | | | +--* LCL_VAR float V12 tmp11 [000150] n----------- | | | \--* IND float [000149] ------------ | | | \--* LCL_VAR byref V21 tmp20 Zero Fseq[X] [000158] -A---------- | | \--* ASG float [000153] D------N---- | | +--* LCL_VAR float V13 tmp12 [000157] n----------- | | \--* IND float [000156] ------------ | | \--* ADD byref [000154] ------------ | | +--* LCL_VAR byref V21 tmp20 [000155] ------------ | | \--* CNS_INT long 4 Fseq[Y] [000165] -A---------- | \--* ASG float [000160] D------N---- | +--* LCL_VAR float V14 tmp13 [000164] n----------- | \--* IND float [000163] ------------ | \--* ADD byref [000161] ------------ | +--* LCL_VAR byref V21 tmp20 [000162] ------------ | \--* CNS_INT long 8 Fseq[Z] [000172] -A---------- \--* ASG float [000167] D------N---- +--* LCL_VAR float V15 tmp14 [000171] n----------- \--* IND float [000170] ------------ \--* ADD byref [000168] ------------ +--* LCL_VAR byref V21 tmp20 [000169] ------------ \--* CNS_INT long 12 Fseq[W] New refCnts for V21: refCnt = 1, refCntWtd = 2 New refCnts for V02: refCnt = 2, refCntWtd = 4 New refCnts for V12: refCnt = 1, refCntWtd = 1 New refCnts for V21: refCnt = 2, refCntWtd = 4 New refCnts for V13: refCnt = 1, refCntWtd = 1 New refCnts for V21: refCnt = 3, refCntWtd = 6 New refCnts for V14: refCnt = 1, refCntWtd = 1 New refCnts for V21: refCnt = 4, refCntWtd = 8 New refCnts for V15: refCnt = 1, refCntWtd = 1 New refCnts for V21: refCnt = 5, refCntWtd = 10 STMT00017 (IL ???... ???) [000202] -A--G+------ * COMMA void [000195] -A--G------- +--* COMMA void [000188] -A--G------- | +--* COMMA void [000181] -A--G------- | | +--* COMMA void [000176] -A--G------- | | | +--* ASG byref [000175] D------N---- | | | | +--* LCL_VAR byref V22 tmp21 [000174] ----G------- | | | | \--* ADDR byref [000013] ----G+-N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 [000180] -A---------- | | | \--* ASG float [000177] D------N---- | | | +--* LCL_VAR float V16 tmp15 [000179] n----------- | | | \--* IND float [000178] ------------ | | | \--* LCL_VAR byref V22 tmp21 Zero Fseq[X] [000187] -A---------- | | \--* ASG float [000182] D------N---- | | +--* LCL_VAR float V17 tmp16 [000186] n----------- | | \--* IND float [000185] ------------ | | \--* ADD byref [000183] ------------ | | +--* LCL_VAR byref V22 tmp21 [000184] ------------ | | \--* CNS_INT long 4 Fseq[Y] [000194] -A---------- | \--* ASG float [000189] D------N---- | +--* LCL_VAR float V18 tmp17 [000193] n----------- | \--* IND float [000192] ------------ | \--* ADD byref [000190] ------------ | +--* LCL_VAR byref V22 tmp21 [000191] ------------ | \--* CNS_INT long 8 Fseq[Z] [000201] -A---------- \--* ASG float [000196] D------N---- +--* LCL_VAR float V19 tmp18 [000200] n----------- \--* IND float [000199] ------------ \--* ADD byref [000197] ------------ +--* LCL_VAR byref V22 tmp21 [000198] ------------ \--* CNS_INT long 12 Fseq[W] New refCnts for V22: refCnt = 1, refCntWtd = 2 New refCnts for V03: refCnt = 2, refCntWtd = 4 New refCnts for V16: refCnt = 1, refCntWtd = 1 New refCnts for V22: refCnt = 2, refCntWtd = 4 New refCnts for V17: refCnt = 1, refCntWtd = 1 New refCnts for V22: refCnt = 3, refCntWtd = 6 New refCnts for V18: refCnt = 1, refCntWtd = 1 New refCnts for V22: refCnt = 4, refCntWtd = 8 New refCnts for V19: refCnt = 1, refCntWtd = 1 New refCnts for V22: refCnt = 5, refCntWtd = 10 STMT00011 (IL ???... ???) [000062] -----+------ * JTRUE void [000061] N----+-N-U-- \--* NE int [000057] -----+------ +--* LCL_VAR float V12 tmp11 [000060] -----+------ \--* LCL_VAR float V16 tmp15 New refCnts for V12: refCnt = 2, refCntWtd = 2 New refCnts for V16: refCnt = 2, refCntWtd = 2 *** marking local variables in block BB02 (weight=0.25) STMT00013 (IL ???... ???) [000075] -----+------ * JTRUE void [000074] N----+-N-U-- \--* NE int [000070] -----+------ +--* LCL_VAR float V13 tmp12 [000073] -----+------ \--* LCL_VAR float V17 tmp16 New refCnts for V13: refCnt = 2, refCntWtd = 1.25 New refCnts for V17: refCnt = 2, refCntWtd = 1.25 *** marking local variables in block BB03 (weight=0.25) STMT00014 (IL ???... ???) [000083] -----+------ * JTRUE void [000082] N----+-N-U-- \--* NE int [000078] -----+------ +--* LCL_VAR float V14 tmp13 [000081] -----+------ \--* LCL_VAR float V18 tmp17 New refCnts for V14: refCnt = 2, refCntWtd = 1.25 New refCnts for V18: refCnt = 2, refCntWtd = 1.25 *** marking local variables in block BB04 (weight=0.50) STMT00015 (IL ???... ???) [000092] -A---+------ * ASG bool [000091] D----+-N---- +--* LCL_VAR int V05 tmp4 [000090] -----+------ \--* EQ int [000086] -----+------ +--* LCL_VAR float V15 tmp14 [000089] -----+------ \--* LCL_VAR float V19 tmp18 New refCnts for V05: refCnt = 1, refCntWtd = 0.50 New refCnts for V15: refCnt = 2, refCntWtd = 1.50 New refCnts for V19: refCnt = 2, refCntWtd = 1.50 *** marking local variables in block BB05 (weight=0.50) STMT00012 (IL ???... ???) [000066] -A---+------ * ASG bool [000065] D----+-N---- +--* LCL_VAR int V05 tmp4 [000063] -----+------ \--* CNS_INT int 0 New refCnts for V05: refCnt = 2, refCntWtd = 1 *** marking local variables in block BB06 (weight=1 ) STMT00004 (IL ???... ???) [000018] -----+------ * RETURN int [000093] -----+------ \--* LCL_VAR bool V05 tmp4 New refCnts for V05: refCnt = 3, refCntWtd = 2 *** lvaComputeRefCounts -- implicit counts *** New refCnts for V00: refCnt = 2, refCntWtd = 2 New refCnts for V00: refCnt = 3, refCntWtd = 3 *************** In optAddCopies() *************** Finishing PHASE Mark local vars *************** Starting PHASE Optimize bools *************** In optOptimizeBools() *************** In fgDebugCheckBBlist *************** Finishing PHASE Optimize bools *************** Starting PHASE Find oper order *************** In fgFindOperOrder() *************** Finishing PHASE Find oper order *************** Starting PHASE Set block order *************** In fgSetBlockOrder() The biggest BB has 30 tree nodes *************** Finishing PHASE Set block order Trees before Build SSA representation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target BB02 [0004] 1 BB01 0.25 [000..000)-> BB05 ( cond ) i internal BB03 [0005] 1 BB02 0.25 [000..000)-> BB05 ( cond ) i internal BB04 [0006] 1 BB03 0.50 [000..000)-> BB06 (always) i internal BB05 [0007] 3 BB01,BB02,BB03 0.50 [000..000) i internal label target BB06 [0008] 2 BB04,BB05 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..011) -> BB05 (cond), preds={} succs={BB02,BB05} ***** BB01 STMT00001 (IL 0x000...0x010) N004 ( 7, 5) [000005] -A-XG---R--- * ASG struct (copy) N003 ( 3, 2) [000003] D------N---- +--* LCL_VAR struct(AX) V02 tmp1 N002 ( 3, 2) [000001] ---XG------- \--* IND struct N001 ( 1, 1) [000000] ------------ \--* LCL_VAR byref V00 this ***** BB01 STMT00005 (IL 0x000... ???) N015 ( 4, 12) [000115] -A---------- * COMMA void N011 ( 3, 9) [000111] -A---------- +--* COMMA void N007 ( 2, 6) [000107] -A---------- | +--* COMMA void N003 ( 1, 3) [000103] -A------R--- | | +--* ASG float N002 ( 1, 2) [000101] D------N---- | | | +--* LCL_VAR float V08 tmp7 N001 ( 1, 1) [000102] ------------ | | | \--* CNS_DBL float 0.00000000000000000 N006 ( 1, 3) [000106] -A------R--- | | \--* ASG float N005 ( 1, 2) [000104] D------N---- | | +--* LCL_VAR float V09 tmp8 N004 ( 1, 1) [000105] ------------ | | \--* CNS_DBL float 0.00000000000000000 N010 ( 1, 3) [000110] -A------R--- | \--* ASG float N009 ( 1, 2) [000108] D------N---- | +--* LCL_VAR float V10 tmp9 N008 ( 1, 1) [000109] ------------ | \--* CNS_DBL float 0.00000000000000000 N014 ( 1, 3) [000114] -A------R--- \--* ASG float N013 ( 1, 2) [000112] D------N---- +--* LCL_VAR float V11 tmp10 N012 ( 1, 1) [000113] ------------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00007 (IL 0x000... ???) N003 ( 1, 3) [000038] -A------R--- * ASG float N002 ( 1, 2) [000037] D------N---- +--* LCL_VAR float V08 tmp7 N001 ( 1, 1) [000036] ------------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00008 (IL 0x000... ???) N003 ( 1, 3) [000043] -A------R--- * ASG float N002 ( 1, 2) [000042] D------N---- +--* LCL_VAR float V09 tmp8 N001 ( 1, 1) [000041] ------------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00009 (IL 0x000... ???) N003 ( 1, 3) [000048] -A------R--- * ASG float N002 ( 1, 2) [000047] D------N---- +--* LCL_VAR float V10 tmp9 N001 ( 1, 1) [000046] ------------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00010 (IL 0x000... ???) N003 ( 1, 3) [000053] -A------R--- * ASG float N002 ( 1, 2) [000052] D------N---- +--* LCL_VAR float V11 tmp10 N001 ( 1, 1) [000051] ------------ \--* CNS_DBL float 1.0000000000000000 ***** BB01 STMT00002 (IL ???... ???) N030 ( 26, 29) [000144] -A---------- * COMMA void N023 ( 20, 22) [000137] -A---------- +--* COMMA void N016 ( 14, 15) [000130] -A---------- | +--* COMMA void N009 ( 8, 8) [000123] -A---------- | | +--* COMMA void N004 ( 3, 3) [000118] -A------R--- | | | +--* ASG byref N003 ( 1, 1) [000117] D------N---- | | | | +--* LCL_VAR byref V20 tmp19 N002 ( 3, 3) [000116] ------------ | | | | \--* ADDR byref N001 ( 3, 2) [000031] -------N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 N008 ( 5, 5) [000122] -A---------- | | | \--* ASG float N006 ( 3, 2) [000120] *------N---- | | | +--* IND float N005 ( 1, 1) [000119] ------------ | | | | \--* LCL_VAR byref V20 tmp19 Zero Fseq[X] N007 ( 1, 2) [000121] ------------ | | | \--* LCL_VAR float V08 tmp7 N015 ( 6, 7) [000129] -A---------- | | \--* ASG float N013 ( 4, 4) [000127] *------N---- | | +--* IND float N012 ( 2, 2) [000126] -------N---- | | | \--* ADD byref N010 ( 1, 1) [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 N011 ( 1, 1) [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] N014 ( 1, 2) [000128] ------------ | | \--* LCL_VAR float V09 tmp8 N022 ( 6, 7) [000136] -A---------- | \--* ASG float N020 ( 4, 4) [000134] *------N---- | +--* IND float N019 ( 2, 2) [000133] -------N---- | | \--* ADD byref N017 ( 1, 1) [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 N018 ( 1, 1) [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] N021 ( 1, 2) [000135] ------------ | \--* LCL_VAR float V10 tmp9 N029 ( 6, 7) [000143] -A---------- \--* ASG float N027 ( 4, 4) [000141] *------N---- +--* IND float N026 ( 2, 2) [000140] -------N---- | \--* ADD byref N024 ( 1, 1) [000138] ------------ | +--* LCL_VAR byref V20 tmp19 N025 ( 1, 1) [000139] ------------ | \--* CNS_INT long 12 Fseq[W] N028 ( 1, 2) [000142] ------------ \--* LCL_VAR float V11 tmp10 ***** BB01 STMT00016 (IL ???... ???) N030 ( 34, 37) [000173] -A---------- * COMMA void N023 ( 26, 28) [000166] -A---------- +--* COMMA void N016 ( 18, 19) [000159] -A---------- | +--* COMMA void N009 ( 10, 10) [000152] -A---------- | | +--* COMMA void N004 ( 3, 3) [000147] -A------R--- | | | +--* ASG byref N003 ( 1, 1) [000146] D------N---- | | | | +--* LCL_VAR byref V21 tmp20 N002 ( 3, 3) [000145] ------------ | | | | \--* ADDR byref N001 ( 3, 2) [000015] -------N---- | | | | \--* LCL_VAR struct(AX) V02 tmp1 N008 ( 7, 7) [000151] -A------R--- | | | \--* ASG float N007 ( 3, 4) [000148] D------N---- | | | +--* LCL_VAR float V12 tmp11 N006 ( 3, 2) [000150] n----------- | | | \--* IND float N005 ( 1, 1) [000149] ------------ | | | \--* LCL_VAR byref V21 tmp20 Zero Fseq[X] N015 ( 8, 9) [000158] -A------R--- | | \--* ASG float N014 ( 3, 4) [000153] D------N---- | | +--* LCL_VAR float V13 tmp12 N013 ( 4, 4) [000157] n----------- | | \--* IND float N012 ( 2, 2) [000156] -------N---- | | \--* ADD byref N010 ( 1, 1) [000154] ------------ | | +--* LCL_VAR byref V21 tmp20 N011 ( 1, 1) [000155] ------------ | | \--* CNS_INT long 4 Fseq[Y] N022 ( 8, 9) [000165] -A------R--- | \--* ASG float N021 ( 3, 4) [000160] D------N---- | +--* LCL_VAR float V14 tmp13 N020 ( 4, 4) [000164] n----------- | \--* IND float N019 ( 2, 2) [000163] -------N---- | \--* ADD byref N017 ( 1, 1) [000161] ------------ | +--* LCL_VAR byref V21 tmp20 N018 ( 1, 1) [000162] ------------ | \--* CNS_INT long 8 Fseq[Z] N029 ( 8, 9) [000172] -A------R--- \--* ASG float N028 ( 3, 4) [000167] D------N---- +--* LCL_VAR float V15 tmp14 N027 ( 4, 4) [000171] n----------- \--* IND float N026 ( 2, 2) [000170] -------N---- \--* ADD byref N024 ( 1, 1) [000168] ------------ +--* LCL_VAR byref V21 tmp20 N025 ( 1, 1) [000169] ------------ \--* CNS_INT long 12 Fseq[W] ***** BB01 STMT00017 (IL ???... ???) N030 ( 34, 37) [000202] -A--G------- * COMMA void N023 ( 26, 28) [000195] -A--G------- +--* COMMA void N016 ( 18, 19) [000188] -A--G------- | +--* COMMA void N009 ( 10, 10) [000181] -A--G------- | | +--* COMMA void N004 ( 3, 3) [000176] -A--G---R--- | | | +--* ASG byref N003 ( 1, 1) [000175] D------N---- | | | | +--* LCL_VAR byref V22 tmp21 N002 ( 3, 3) [000174] ----G------- | | | | \--* ADDR byref N001 ( 3, 2) [000013] ----G--N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 N008 ( 7, 7) [000180] -A------R--- | | | \--* ASG float N007 ( 3, 4) [000177] D------N---- | | | +--* LCL_VAR float V16 tmp15 N006 ( 3, 2) [000179] n----------- | | | \--* IND float N005 ( 1, 1) [000178] ------------ | | | \--* LCL_VAR byref V22 tmp21 Zero Fseq[X] N015 ( 8, 9) [000187] -A------R--- | | \--* ASG float N014 ( 3, 4) [000182] D------N---- | | +--* LCL_VAR float V17 tmp16 N013 ( 4, 4) [000186] n----------- | | \--* IND float N012 ( 2, 2) [000185] -------N---- | | \--* ADD byref N010 ( 1, 1) [000183] ------------ | | +--* LCL_VAR byref V22 tmp21 N011 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 4 Fseq[Y] N022 ( 8, 9) [000194] -A------R--- | \--* ASG float N021 ( 3, 4) [000189] D------N---- | +--* LCL_VAR float V18 tmp17 N020 ( 4, 4) [000193] n----------- | \--* IND float N019 ( 2, 2) [000192] -------N---- | \--* ADD byref N017 ( 1, 1) [000190] ------------ | +--* LCL_VAR byref V22 tmp21 N018 ( 1, 1) [000191] ------------ | \--* CNS_INT long 8 Fseq[Z] N029 ( 8, 9) [000201] -A------R--- \--* ASG float N028 ( 3, 4) [000196] D------N---- +--* LCL_VAR float V19 tmp18 N027 ( 4, 4) [000200] n----------- \--* IND float N026 ( 2, 2) [000199] -------N---- \--* ADD byref N024 ( 1, 1) [000197] ------------ +--* LCL_VAR byref V22 tmp21 N025 ( 1, 1) [000198] ------------ \--* CNS_INT long 12 Fseq[W] ***** BB01 STMT00011 (IL ???... ???) N004 ( 9, 11) [000062] ------------ * JTRUE void N003 ( 7, 9) [000061] N------N-U-- \--* NE int N001 ( 3, 4) [000057] ------------ +--* LCL_VAR float V12 tmp11 N002 ( 3, 4) [000060] ------------ \--* LCL_VAR float V16 tmp15 ------------ BB02 [000..000) -> BB05 (cond), preds={BB01} succs={BB03,BB05} ***** BB02 STMT00013 (IL ???... ???) N004 ( 9, 11) [000075] ------------ * JTRUE void N003 ( 7, 9) [000074] N------N-U-- \--* NE int N001 ( 3, 4) [000070] ------------ +--* LCL_VAR float V13 tmp12 N002 ( 3, 4) [000073] ------------ \--* LCL_VAR float V17 tmp16 ------------ BB03 [000..000) -> BB05 (cond), preds={BB02} succs={BB04,BB05} ***** BB03 STMT00014 (IL ???... ???) N004 ( 9, 11) [000083] ------------ * JTRUE void N003 ( 7, 9) [000082] N------N-U-- \--* NE int N001 ( 3, 4) [000078] ------------ +--* LCL_VAR float V14 tmp13 N002 ( 3, 4) [000081] ------------ \--* LCL_VAR float V18 tmp17 ------------ BB04 [000..000) -> BB06 (always), preds={BB03} succs={BB06} ***** BB04 STMT00015 (IL ???... ???) N005 ( 14, 12) [000092] -A------R--- * ASG bool N004 ( 3, 2) [000091] D------N---- +--* LCL_VAR int V05 tmp4 N003 ( 10, 9) [000090] ------------ \--* EQ int N001 ( 3, 4) [000086] ------------ +--* LCL_VAR float V15 tmp14 N002 ( 3, 4) [000089] ------------ \--* LCL_VAR float V19 tmp18 ------------ BB05 [000..000), preds={BB01,BB02,BB03} succs={BB06} ***** BB05 STMT00012 (IL ???... ???) N003 ( 5, 4) [000066] -A------R--- * ASG bool N002 ( 3, 2) [000065] D------N---- +--* LCL_VAR int V05 tmp4 N001 ( 1, 1) [000063] ------------ \--* CNS_INT int 0 ------------ BB06 [???..???) (return), preds={BB04,BB05} succs={} ***** BB06 STMT00004 (IL ???... ???) N002 ( 5, 4) [000018] ------------ * RETURN int N001 ( 4, 3) [000093] ------------ \--* LCL_VAR bool V05 tmp4 ------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Build SSA representation *************** In SsaBuilder::Build() [SsaBuilder] Max block count is 7. ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target BB02 [0004] 1 BB01 0.25 [000..000)-> BB05 ( cond ) i internal BB03 [0005] 1 BB02 0.25 [000..000)-> BB05 ( cond ) i internal BB04 [0006] 1 BB03 0.50 [000..000)-> BB06 (always) i internal BB05 [0007] 3 BB01,BB02,BB03 0.50 [000..000) i internal label target BB06 [0008] 2 BB04,BB05 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table is empty [SsaBuilder] Topologically sorted the graph. [SsaBuilder::ComputeImmediateDom] Inside fgBuildDomTree After computing the Dominance Tree: BB01 : BB06 BB05 BB02 BB02 : BB03 BB03 : BB04 *************** In fgLocalVarLiveness() In fgLocalVarLivenessInit Tracked variable (17 out of 23) table: V20 tmp19 [ byref]: refCnt = 5, refCntWtd = 10 V21 tmp20 [ byref]: refCnt = 5, refCntWtd = 10 V22 tmp21 [ byref]: refCnt = 5, refCntWtd = 10 V00 this [ byref]: refCnt = 3, refCntWtd = 3 V05 tmp4 [ bool]: refCnt = 3, refCntWtd = 2 V08 tmp7 [ float]: refCnt = 3, refCntWtd = 3 V09 tmp8 [ float]: refCnt = 3, refCntWtd = 3 V10 tmp9 [ float]: refCnt = 3, refCntWtd = 3 V11 tmp10 [ float]: refCnt = 3, refCntWtd = 3 V12 tmp11 [ float]: refCnt = 2, refCntWtd = 2 V16 tmp15 [ float]: refCnt = 2, refCntWtd = 2 V15 tmp14 [ float]: refCnt = 2, refCntWtd = 1.50 V19 tmp18 [ float]: refCnt = 2, refCntWtd = 1.50 V13 tmp12 [ float]: refCnt = 2, refCntWtd = 1.25 V14 tmp13 [ float]: refCnt = 2, refCntWtd = 1.25 V17 tmp16 [ float]: refCnt = 2, refCntWtd = 1.25 V18 tmp17 [ float]: refCnt = 2, refCntWtd = 1.25 *************** In fgPerBlockLocalVarLiveness() BB01 USE(1)={ V00 } + ByrefExposed + GcHeap DEF(15)={V20 V21 V22 V08 V09 V10 V11 V12 V16 V15 V19 V13 V14 V17 V18} + ByrefExposed + GcHeap BB02 USE(2)={V13 V17} DEF(0)={ } BB03 USE(2)={V14 V18} DEF(0)={ } BB04 USE(2)={ V15 V19} DEF(1)={V05 } BB05 USE(0)={ } DEF(1)={V05} BB06 USE(1)={V05} DEF(0)={ } ** Memory liveness computed, GcHeap states and ByrefExposed states diverge *************** In fgInterBlockLocalVarLiveness() BB liveness after fgLiveVarAnalysis(): BB01 IN (1)={V00 } + ByrefExposed + GcHeap OUT(6)={ V15 V19 V13 V14 V17 V18} BB02 IN (6)={V15 V19 V13 V14 V17 V18} OUT(4)={V15 V19 V14 V18} BB03 IN (4)={V15 V19 V14 V18} OUT(2)={V15 V19 } BB04 IN (2)={ V15 V19} OUT(1)={V05 } BB05 IN (0)={ } OUT(1)={V05} BB06 IN (1)={V05} OUT(0)={ } Removing tree [000114] in BB01 as useless N014 ( 1, 3) [000114] -A------R--- * ASG float N013 ( 1, 2) [000112] D------N---- +--* LCL_VAR float V11 tmp10 N012 ( 1, 1) [000113] ------------ \--* CNS_DBL float 0.00000000000000000 Removing tree [000110] in BB01 as useless N010 ( 1, 3) [000110] -A------R--- * ASG float N009 ( 1, 2) [000108] D------N---- +--* LCL_VAR float V10 tmp9 N008 ( 1, 1) [000109] ------------ \--* CNS_DBL float 0.00000000000000000 Removing tree [000106] in BB01 as useless N006 ( 1, 3) [000106] -A------R--- * ASG float N005 ( 1, 2) [000104] D------N---- +--* LCL_VAR float V09 tmp8 N004 ( 1, 1) [000105] ------------ \--* CNS_DBL float 0.00000000000000000 Removing tree [000103] in BB01 as useless N003 ( 1, 3) [000103] -A------R--- * ASG float N002 ( 1, 2) [000101] D------N---- +--* LCL_VAR float V08 tmp7 N001 ( 1, 1) [000102] ------------ \--* CNS_DBL float 0.00000000000000000 fgComputeLife modified tree: N007 ( 0, 0) [000115] ------------ * COMMA void N005 ( 0, 0) [000111] ------------ +--* COMMA void N003 ( 0, 0) [000107] ------------ | +--* COMMA void N001 ( 0, 0) [000103] ------------ | | +--* NOP void N002 ( 0, 0) [000106] ------------ | | \--* NOP void N004 ( 0, 0) [000110] ------------ | \--* NOP void N006 ( 0, 0) [000114] ------------ \--* NOP void *************** In optRemoveRedundantZeroInits() *************** In SsaBuilder::InsertPhiFunctions() Inserting phi functions: Added PHI definition for V05 at start of BB06. *************** In SsaBuilder::RenameVariables() After fgSsaBuild: ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target BB02 [0004] 1 BB01 0.25 [000..000)-> BB05 ( cond ) i internal BB03 [0005] 1 BB02 0.25 [000..000)-> BB05 ( cond ) i internal BB04 [0006] 1 BB03 0.50 [000..000)-> BB06 (always) i internal BB05 [0007] 3 BB01,BB02,BB03 0.50 [000..000) i internal label target BB06 [0008] 2 BB04,BB05 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..011) -> BB05 (cond), preds={} succs={BB02,BB05} ***** BB01 STMT00001 (IL 0x000...0x010) N004 ( 7, 5) [000005] -A-XG---R--- * ASG struct (copy) N003 ( 3, 2) [000003] D------N---- +--* LCL_VAR struct(AX) V02 tmp1 N002 ( 3, 2) [000001] ---XG------- \--* IND struct N001 ( 1, 1) [000000] ------------ \--* LCL_VAR byref V00 this u:1 (last use) ***** BB01 STMT00005 (IL 0x000... ???) N007 ( 0, 0) [000115] ------------ * COMMA void N005 ( 0, 0) [000111] ------------ +--* COMMA void N003 ( 0, 0) [000107] ------------ | +--* COMMA void N001 ( 0, 0) [000103] ------------ | | +--* NOP void N002 ( 0, 0) [000106] ------------ | | \--* NOP void N004 ( 0, 0) [000110] ------------ | \--* NOP void N006 ( 0, 0) [000114] ------------ \--* NOP void ***** BB01 STMT00007 (IL 0x000... ???) N003 ( 1, 3) [000038] -A------R--- * ASG float N002 ( 1, 2) [000037] D------N---- +--* LCL_VAR float V08 tmp7 d:1 N001 ( 1, 1) [000036] ------------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00008 (IL 0x000... ???) N003 ( 1, 3) [000043] -A------R--- * ASG float N002 ( 1, 2) [000042] D------N---- +--* LCL_VAR float V09 tmp8 d:1 N001 ( 1, 1) [000041] ------------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00009 (IL 0x000... ???) N003 ( 1, 3) [000048] -A------R--- * ASG float N002 ( 1, 2) [000047] D------N---- +--* LCL_VAR float V10 tmp9 d:1 N001 ( 1, 1) [000046] ------------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00010 (IL 0x000... ???) N003 ( 1, 3) [000053] -A------R--- * ASG float N002 ( 1, 2) [000052] D------N---- +--* LCL_VAR float V11 tmp10 d:1 N001 ( 1, 1) [000051] ------------ \--* CNS_DBL float 1.0000000000000000 ***** BB01 STMT00002 (IL ???... ???) N030 ( 26, 29) [000144] -A---------- * COMMA void N023 ( 20, 22) [000137] -A---------- +--* COMMA void N016 ( 14, 15) [000130] -A---------- | +--* COMMA void N009 ( 8, 8) [000123] -A---------- | | +--* COMMA void N004 ( 3, 3) [000118] -A------R--- | | | +--* ASG byref N003 ( 1, 1) [000117] D------N---- | | | | +--* LCL_VAR byref V20 tmp19 d:1 N002 ( 3, 3) [000116] ------------ | | | | \--* ADDR byref N001 ( 3, 2) [000031] -------N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 N008 ( 5, 5) [000122] -A---------- | | | \--* ASG float N006 ( 3, 2) [000120] *------N---- | | | +--* IND float N005 ( 1, 1) [000119] ------------ | | | | \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] N007 ( 1, 2) [000121] ------------ | | | \--* LCL_VAR float V08 tmp7 u:1 (last use) N015 ( 6, 7) [000129] -A---------- | | \--* ASG float N013 ( 4, 4) [000127] *------N---- | | +--* IND float N012 ( 2, 2) [000126] -------N---- | | | \--* ADD byref N010 ( 1, 1) [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 u:1 N011 ( 1, 1) [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] N014 ( 1, 2) [000128] ------------ | | \--* LCL_VAR float V09 tmp8 u:1 (last use) N022 ( 6, 7) [000136] -A---------- | \--* ASG float N020 ( 4, 4) [000134] *------N---- | +--* IND float N019 ( 2, 2) [000133] -------N---- | | \--* ADD byref N017 ( 1, 1) [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 u:1 N018 ( 1, 1) [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] N021 ( 1, 2) [000135] ------------ | \--* LCL_VAR float V10 tmp9 u:1 (last use) N029 ( 6, 7) [000143] -A---------- \--* ASG float N027 ( 4, 4) [000141] *------N---- +--* IND float N026 ( 2, 2) [000140] -------N---- | \--* ADD byref N024 ( 1, 1) [000138] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 (last use) N025 ( 1, 1) [000139] ------------ | \--* CNS_INT long 12 Fseq[W] N028 ( 1, 2) [000142] ------------ \--* LCL_VAR float V11 tmp10 u:1 (last use) ***** BB01 STMT00016 (IL ???... ???) N030 ( 34, 37) [000173] -A---------- * COMMA void N023 ( 26, 28) [000166] -A---------- +--* COMMA void N016 ( 18, 19) [000159] -A---------- | +--* COMMA void N009 ( 10, 10) [000152] -A---------- | | +--* COMMA void N004 ( 3, 3) [000147] -A------R--- | | | +--* ASG byref N003 ( 1, 1) [000146] D------N---- | | | | +--* LCL_VAR byref V21 tmp20 d:1 N002 ( 3, 3) [000145] ------------ | | | | \--* ADDR byref N001 ( 3, 2) [000015] -------N---- | | | | \--* LCL_VAR struct(AX) V02 tmp1 N008 ( 7, 7) [000151] -A------R--- | | | \--* ASG float N007 ( 3, 4) [000148] D------N---- | | | +--* LCL_VAR float V12 tmp11 d:1 N006 ( 3, 2) [000150] n----------- | | | \--* IND float N005 ( 1, 1) [000149] ------------ | | | \--* LCL_VAR byref V21 tmp20 u:1 Zero Fseq[X] N015 ( 8, 9) [000158] -A------R--- | | \--* ASG float N014 ( 3, 4) [000153] D------N---- | | +--* LCL_VAR float V13 tmp12 d:1 N013 ( 4, 4) [000157] n----------- | | \--* IND float N012 ( 2, 2) [000156] -------N---- | | \--* ADD byref N010 ( 1, 1) [000154] ------------ | | +--* LCL_VAR byref V21 tmp20 u:1 N011 ( 1, 1) [000155] ------------ | | \--* CNS_INT long 4 Fseq[Y] N022 ( 8, 9) [000165] -A------R--- | \--* ASG float N021 ( 3, 4) [000160] D------N---- | +--* LCL_VAR float V14 tmp13 d:1 N020 ( 4, 4) [000164] n----------- | \--* IND float N019 ( 2, 2) [000163] -------N---- | \--* ADD byref N017 ( 1, 1) [000161] ------------ | +--* LCL_VAR byref V21 tmp20 u:1 N018 ( 1, 1) [000162] ------------ | \--* CNS_INT long 8 Fseq[Z] N029 ( 8, 9) [000172] -A------R--- \--* ASG float N028 ( 3, 4) [000167] D------N---- +--* LCL_VAR float V15 tmp14 d:1 N027 ( 4, 4) [000171] n----------- \--* IND float N026 ( 2, 2) [000170] -------N---- \--* ADD byref N024 ( 1, 1) [000168] ------------ +--* LCL_VAR byref V21 tmp20 u:1 (last use) N025 ( 1, 1) [000169] ------------ \--* CNS_INT long 12 Fseq[W] ***** BB01 STMT00017 (IL ???... ???) N030 ( 34, 37) [000202] -A--G------- * COMMA void N023 ( 26, 28) [000195] -A--G------- +--* COMMA void N016 ( 18, 19) [000188] -A--G------- | +--* COMMA void N009 ( 10, 10) [000181] -A--G------- | | +--* COMMA void N004 ( 3, 3) [000176] -A--G---R--- | | | +--* ASG byref N003 ( 1, 1) [000175] D------N---- | | | | +--* LCL_VAR byref V22 tmp21 d:1 N002 ( 3, 3) [000174] ----G------- | | | | \--* ADDR byref N001 ( 3, 2) [000013] ----G--N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 N008 ( 7, 7) [000180] -A------R--- | | | \--* ASG float N007 ( 3, 4) [000177] D------N---- | | | +--* LCL_VAR float V16 tmp15 d:1 N006 ( 3, 2) [000179] n----------- | | | \--* IND float N005 ( 1, 1) [000178] ------------ | | | \--* LCL_VAR byref V22 tmp21 u:1 Zero Fseq[X] N015 ( 8, 9) [000187] -A------R--- | | \--* ASG float N014 ( 3, 4) [000182] D------N---- | | +--* LCL_VAR float V17 tmp16 d:1 N013 ( 4, 4) [000186] n----------- | | \--* IND float N012 ( 2, 2) [000185] -------N---- | | \--* ADD byref N010 ( 1, 1) [000183] ------------ | | +--* LCL_VAR byref V22 tmp21 u:1 N011 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 4 Fseq[Y] N022 ( 8, 9) [000194] -A------R--- | \--* ASG float N021 ( 3, 4) [000189] D------N---- | +--* LCL_VAR float V18 tmp17 d:1 N020 ( 4, 4) [000193] n----------- | \--* IND float N019 ( 2, 2) [000192] -------N---- | \--* ADD byref N017 ( 1, 1) [000190] ------------ | +--* LCL_VAR byref V22 tmp21 u:1 N018 ( 1, 1) [000191] ------------ | \--* CNS_INT long 8 Fseq[Z] N029 ( 8, 9) [000201] -A------R--- \--* ASG float N028 ( 3, 4) [000196] D------N---- +--* LCL_VAR float V19 tmp18 d:1 N027 ( 4, 4) [000200] n----------- \--* IND float N026 ( 2, 2) [000199] -------N---- \--* ADD byref N024 ( 1, 1) [000197] ------------ +--* LCL_VAR byref V22 tmp21 u:1 (last use) N025 ( 1, 1) [000198] ------------ \--* CNS_INT long 12 Fseq[W] ***** BB01 STMT00011 (IL ???... ???) N004 ( 9, 11) [000062] ------------ * JTRUE void N003 ( 7, 9) [000061] N------N-U-- \--* NE int N001 ( 3, 4) [000057] ------------ +--* LCL_VAR float V12 tmp11 u:1 (last use) N002 ( 3, 4) [000060] ------------ \--* LCL_VAR float V16 tmp15 u:1 (last use) ------------ BB02 [000..000) -> BB05 (cond), preds={BB01} succs={BB03,BB05} ***** BB02 STMT00013 (IL ???... ???) N004 ( 9, 11) [000075] ------------ * JTRUE void N003 ( 7, 9) [000074] N------N-U-- \--* NE int N001 ( 3, 4) [000070] ------------ +--* LCL_VAR float V13 tmp12 u:1 (last use) N002 ( 3, 4) [000073] ------------ \--* LCL_VAR float V17 tmp16 u:1 (last use) ------------ BB03 [000..000) -> BB05 (cond), preds={BB02} succs={BB04,BB05} ***** BB03 STMT00014 (IL ???... ???) N004 ( 9, 11) [000083] ------------ * JTRUE void N003 ( 7, 9) [000082] N------N-U-- \--* NE int N001 ( 3, 4) [000078] ------------ +--* LCL_VAR float V14 tmp13 u:1 (last use) N002 ( 3, 4) [000081] ------------ \--* LCL_VAR float V18 tmp17 u:1 (last use) ------------ BB04 [000..000) -> BB06 (always), preds={BB03} succs={BB06} ***** BB04 STMT00015 (IL ???... ???) N005 ( 14, 12) [000092] -A------R--- * ASG bool N004 ( 3, 2) [000091] D------N---- +--* LCL_VAR int V05 tmp4 d:3 N003 ( 10, 9) [000090] ------------ \--* EQ int N001 ( 3, 4) [000086] ------------ +--* LCL_VAR float V15 tmp14 u:1 (last use) N002 ( 3, 4) [000089] ------------ \--* LCL_VAR float V19 tmp18 u:1 (last use) ------------ BB05 [000..000), preds={BB01,BB02,BB03} succs={BB06} ***** BB05 STMT00012 (IL ???... ???) N003 ( 5, 4) [000066] -A------R--- * ASG bool N002 ( 3, 2) [000065] D------N---- +--* LCL_VAR int V05 tmp4 d:2 N001 ( 1, 1) [000063] ------------ \--* CNS_INT int 0 ------------ BB06 [???..???) (return), preds={BB04,BB05} succs={} ***** BB06 STMT00018 (IL ???... ???) N005 ( 0, 0) [000205] -A------R--- * ASG bool N004 ( 0, 0) [000203] D------N---- +--* LCL_VAR bool V05 tmp4 d:1 N003 ( 0, 0) [000204] ------------ \--* PHI bool N001 ( 0, 0) [000207] ------------ pred BB04 +--* PHI_ARG bool V05 tmp4 u:3 N002 ( 0, 0) [000206] ------------ pred BB05 \--* PHI_ARG bool V05 tmp4 u:2 ***** BB06 STMT00004 (IL ???... ???) N002 ( 5, 4) [000018] ------------ * RETURN int N001 ( 4, 3) [000093] ------------ \--* LCL_VAR bool V05 tmp4 u:1 (last use) ------------------------------------------------------------------------------------------------------------------- *************** Finishing PHASE Build SSA representation Trees after Build SSA representation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target BB02 [0004] 1 BB01 0.25 [000..000)-> BB05 ( cond ) i internal BB03 [0005] 1 BB02 0.25 [000..000)-> BB05 ( cond ) i internal BB04 [0006] 1 BB03 0.50 [000..000)-> BB06 (always) i internal BB05 [0007] 3 BB01,BB02,BB03 0.50 [000..000) i internal label target BB06 [0008] 2 BB04,BB05 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..011) -> BB05 (cond), preds={} succs={BB02,BB05} ***** BB01 STMT00001 (IL 0x000...0x010) N004 ( 7, 5) [000005] -A-XG---R--- * ASG struct (copy) N003 ( 3, 2) [000003] D------N---- +--* LCL_VAR struct(AX) V02 tmp1 N002 ( 3, 2) [000001] ---XG------- \--* IND struct N001 ( 1, 1) [000000] ------------ \--* LCL_VAR byref V00 this u:1 (last use) ***** BB01 STMT00005 (IL 0x000... ???) N007 ( 0, 0) [000115] ------------ * COMMA void N005 ( 0, 0) [000111] ------------ +--* COMMA void N003 ( 0, 0) [000107] ------------ | +--* COMMA void N001 ( 0, 0) [000103] ------------ | | +--* NOP void N002 ( 0, 0) [000106] ------------ | | \--* NOP void N004 ( 0, 0) [000110] ------------ | \--* NOP void N006 ( 0, 0) [000114] ------------ \--* NOP void ***** BB01 STMT00007 (IL 0x000... ???) N003 ( 1, 3) [000038] -A------R--- * ASG float N002 ( 1, 2) [000037] D------N---- +--* LCL_VAR float V08 tmp7 d:1 N001 ( 1, 1) [000036] ------------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00008 (IL 0x000... ???) N003 ( 1, 3) [000043] -A------R--- * ASG float N002 ( 1, 2) [000042] D------N---- +--* LCL_VAR float V09 tmp8 d:1 N001 ( 1, 1) [000041] ------------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00009 (IL 0x000... ???) N003 ( 1, 3) [000048] -A------R--- * ASG float N002 ( 1, 2) [000047] D------N---- +--* LCL_VAR float V10 tmp9 d:1 N001 ( 1, 1) [000046] ------------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00010 (IL 0x000... ???) N003 ( 1, 3) [000053] -A------R--- * ASG float N002 ( 1, 2) [000052] D------N---- +--* LCL_VAR float V11 tmp10 d:1 N001 ( 1, 1) [000051] ------------ \--* CNS_DBL float 1.0000000000000000 ***** BB01 STMT00002 (IL ???... ???) N030 ( 26, 29) [000144] -A---------- * COMMA void N023 ( 20, 22) [000137] -A---------- +--* COMMA void N016 ( 14, 15) [000130] -A---------- | +--* COMMA void N009 ( 8, 8) [000123] -A---------- | | +--* COMMA void N004 ( 3, 3) [000118] -A------R--- | | | +--* ASG byref N003 ( 1, 1) [000117] D------N---- | | | | +--* LCL_VAR byref V20 tmp19 d:1 N002 ( 3, 3) [000116] ------------ | | | | \--* ADDR byref N001 ( 3, 2) [000031] -------N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 N008 ( 5, 5) [000122] -A---------- | | | \--* ASG float N006 ( 3, 2) [000120] *------N---- | | | +--* IND float N005 ( 1, 1) [000119] ------------ | | | | \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] N007 ( 1, 2) [000121] ------------ | | | \--* LCL_VAR float V08 tmp7 u:1 (last use) N015 ( 6, 7) [000129] -A---------- | | \--* ASG float N013 ( 4, 4) [000127] *------N---- | | +--* IND float N012 ( 2, 2) [000126] -------N---- | | | \--* ADD byref N010 ( 1, 1) [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 u:1 N011 ( 1, 1) [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] N014 ( 1, 2) [000128] ------------ | | \--* LCL_VAR float V09 tmp8 u:1 (last use) N022 ( 6, 7) [000136] -A---------- | \--* ASG float N020 ( 4, 4) [000134] *------N---- | +--* IND float N019 ( 2, 2) [000133] -------N---- | | \--* ADD byref N017 ( 1, 1) [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 u:1 N018 ( 1, 1) [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] N021 ( 1, 2) [000135] ------------ | \--* LCL_VAR float V10 tmp9 u:1 (last use) N029 ( 6, 7) [000143] -A---------- \--* ASG float N027 ( 4, 4) [000141] *------N---- +--* IND float N026 ( 2, 2) [000140] -------N---- | \--* ADD byref N024 ( 1, 1) [000138] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 (last use) N025 ( 1, 1) [000139] ------------ | \--* CNS_INT long 12 Fseq[W] N028 ( 1, 2) [000142] ------------ \--* LCL_VAR float V11 tmp10 u:1 (last use) ***** BB01 STMT00016 (IL ???... ???) N030 ( 34, 37) [000173] -A---------- * COMMA void N023 ( 26, 28) [000166] -A---------- +--* COMMA void N016 ( 18, 19) [000159] -A---------- | +--* COMMA void N009 ( 10, 10) [000152] -A---------- | | +--* COMMA void N004 ( 3, 3) [000147] -A------R--- | | | +--* ASG byref N003 ( 1, 1) [000146] D------N---- | | | | +--* LCL_VAR byref V21 tmp20 d:1 N002 ( 3, 3) [000145] ------------ | | | | \--* ADDR byref N001 ( 3, 2) [000015] -------N---- | | | | \--* LCL_VAR struct(AX) V02 tmp1 N008 ( 7, 7) [000151] -A------R--- | | | \--* ASG float N007 ( 3, 4) [000148] D------N---- | | | +--* LCL_VAR float V12 tmp11 d:1 N006 ( 3, 2) [000150] n----------- | | | \--* IND float N005 ( 1, 1) [000149] ------------ | | | \--* LCL_VAR byref V21 tmp20 u:1 Zero Fseq[X] N015 ( 8, 9) [000158] -A------R--- | | \--* ASG float N014 ( 3, 4) [000153] D------N---- | | +--* LCL_VAR float V13 tmp12 d:1 N013 ( 4, 4) [000157] n----------- | | \--* IND float N012 ( 2, 2) [000156] -------N---- | | \--* ADD byref N010 ( 1, 1) [000154] ------------ | | +--* LCL_VAR byref V21 tmp20 u:1 N011 ( 1, 1) [000155] ------------ | | \--* CNS_INT long 4 Fseq[Y] N022 ( 8, 9) [000165] -A------R--- | \--* ASG float N021 ( 3, 4) [000160] D------N---- | +--* LCL_VAR float V14 tmp13 d:1 N020 ( 4, 4) [000164] n----------- | \--* IND float N019 ( 2, 2) [000163] -------N---- | \--* ADD byref N017 ( 1, 1) [000161] ------------ | +--* LCL_VAR byref V21 tmp20 u:1 N018 ( 1, 1) [000162] ------------ | \--* CNS_INT long 8 Fseq[Z] N029 ( 8, 9) [000172] -A------R--- \--* ASG float N028 ( 3, 4) [000167] D------N---- +--* LCL_VAR float V15 tmp14 d:1 N027 ( 4, 4) [000171] n----------- \--* IND float N026 ( 2, 2) [000170] -------N---- \--* ADD byref N024 ( 1, 1) [000168] ------------ +--* LCL_VAR byref V21 tmp20 u:1 (last use) N025 ( 1, 1) [000169] ------------ \--* CNS_INT long 12 Fseq[W] ***** BB01 STMT00017 (IL ???... ???) N030 ( 34, 37) [000202] -A--G------- * COMMA void N023 ( 26, 28) [000195] -A--G------- +--* COMMA void N016 ( 18, 19) [000188] -A--G------- | +--* COMMA void N009 ( 10, 10) [000181] -A--G------- | | +--* COMMA void N004 ( 3, 3) [000176] -A--G---R--- | | | +--* ASG byref N003 ( 1, 1) [000175] D------N---- | | | | +--* LCL_VAR byref V22 tmp21 d:1 N002 ( 3, 3) [000174] ----G------- | | | | \--* ADDR byref N001 ( 3, 2) [000013] ----G--N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 N008 ( 7, 7) [000180] -A------R--- | | | \--* ASG float N007 ( 3, 4) [000177] D------N---- | | | +--* LCL_VAR float V16 tmp15 d:1 N006 ( 3, 2) [000179] n----------- | | | \--* IND float N005 ( 1, 1) [000178] ------------ | | | \--* LCL_VAR byref V22 tmp21 u:1 Zero Fseq[X] N015 ( 8, 9) [000187] -A------R--- | | \--* ASG float N014 ( 3, 4) [000182] D------N---- | | +--* LCL_VAR float V17 tmp16 d:1 N013 ( 4, 4) [000186] n----------- | | \--* IND float N012 ( 2, 2) [000185] -------N---- | | \--* ADD byref N010 ( 1, 1) [000183] ------------ | | +--* LCL_VAR byref V22 tmp21 u:1 N011 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 4 Fseq[Y] N022 ( 8, 9) [000194] -A------R--- | \--* ASG float N021 ( 3, 4) [000189] D------N---- | +--* LCL_VAR float V18 tmp17 d:1 N020 ( 4, 4) [000193] n----------- | \--* IND float N019 ( 2, 2) [000192] -------N---- | \--* ADD byref N017 ( 1, 1) [000190] ------------ | +--* LCL_VAR byref V22 tmp21 u:1 N018 ( 1, 1) [000191] ------------ | \--* CNS_INT long 8 Fseq[Z] N029 ( 8, 9) [000201] -A------R--- \--* ASG float N028 ( 3, 4) [000196] D------N---- +--* LCL_VAR float V19 tmp18 d:1 N027 ( 4, 4) [000200] n----------- \--* IND float N026 ( 2, 2) [000199] -------N---- \--* ADD byref N024 ( 1, 1) [000197] ------------ +--* LCL_VAR byref V22 tmp21 u:1 (last use) N025 ( 1, 1) [000198] ------------ \--* CNS_INT long 12 Fseq[W] ***** BB01 STMT00011 (IL ???... ???) N004 ( 9, 11) [000062] ------------ * JTRUE void N003 ( 7, 9) [000061] N------N-U-- \--* NE int N001 ( 3, 4) [000057] ------------ +--* LCL_VAR float V12 tmp11 u:1 (last use) N002 ( 3, 4) [000060] ------------ \--* LCL_VAR float V16 tmp15 u:1 (last use) ------------ BB02 [000..000) -> BB05 (cond), preds={BB01} succs={BB03,BB05} ***** BB02 STMT00013 (IL ???... ???) N004 ( 9, 11) [000075] ------------ * JTRUE void N003 ( 7, 9) [000074] N------N-U-- \--* NE int N001 ( 3, 4) [000070] ------------ +--* LCL_VAR float V13 tmp12 u:1 (last use) N002 ( 3, 4) [000073] ------------ \--* LCL_VAR float V17 tmp16 u:1 (last use) ------------ BB03 [000..000) -> BB05 (cond), preds={BB02} succs={BB04,BB05} ***** BB03 STMT00014 (IL ???... ???) N004 ( 9, 11) [000083] ------------ * JTRUE void N003 ( 7, 9) [000082] N------N-U-- \--* NE int N001 ( 3, 4) [000078] ------------ +--* LCL_VAR float V14 tmp13 u:1 (last use) N002 ( 3, 4) [000081] ------------ \--* LCL_VAR float V18 tmp17 u:1 (last use) ------------ BB04 [000..000) -> BB06 (always), preds={BB03} succs={BB06} ***** BB04 STMT00015 (IL ???... ???) N005 ( 14, 12) [000092] -A------R--- * ASG bool N004 ( 3, 2) [000091] D------N---- +--* LCL_VAR int V05 tmp4 d:3 N003 ( 10, 9) [000090] ------------ \--* EQ int N001 ( 3, 4) [000086] ------------ +--* LCL_VAR float V15 tmp14 u:1 (last use) N002 ( 3, 4) [000089] ------------ \--* LCL_VAR float V19 tmp18 u:1 (last use) ------------ BB05 [000..000), preds={BB01,BB02,BB03} succs={BB06} ***** BB05 STMT00012 (IL ???... ???) N003 ( 5, 4) [000066] -A------R--- * ASG bool N002 ( 3, 2) [000065] D------N---- +--* LCL_VAR int V05 tmp4 d:2 N001 ( 1, 1) [000063] ------------ \--* CNS_INT int 0 ------------ BB06 [???..???) (return), preds={BB04,BB05} succs={} ***** BB06 STMT00018 (IL ???... ???) N005 ( 0, 0) [000205] -A------R--- * ASG bool N004 ( 0, 0) [000203] D------N---- +--* LCL_VAR bool V05 tmp4 d:1 N003 ( 0, 0) [000204] ------------ \--* PHI bool N001 ( 0, 0) [000207] ------------ pred BB04 +--* PHI_ARG bool V05 tmp4 u:3 N002 ( 0, 0) [000206] ------------ pred BB05 \--* PHI_ARG bool V05 tmp4 u:2 ***** BB06 STMT00004 (IL ???... ???) N002 ( 5, 4) [000018] ------------ * RETURN int N001 ( 4, 3) [000093] ------------ \--* LCL_VAR bool V05 tmp4 u:1 (last use) ------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist *************** Starting PHASE Early Value Propagation *************** In optEarlyProp() After optEarlyProp: ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target BB02 [0004] 1 BB01 0.25 [000..000)-> BB05 ( cond ) i internal BB03 [0005] 1 BB02 0.25 [000..000)-> BB05 ( cond ) i internal BB04 [0006] 1 BB03 0.50 [000..000)-> BB06 (always) i internal BB05 [0007] 3 BB01,BB02,BB03 0.50 [000..000) i internal label target BB06 [0008] 2 BB04,BB05 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..011) -> BB05 (cond), preds={} succs={BB02,BB05} ***** BB01 STMT00001 (IL 0x000...0x010) N004 ( 7, 5) [000005] -A-XG---R--- * ASG struct (copy) N003 ( 3, 2) [000003] D------N---- +--* LCL_VAR struct(AX) V02 tmp1 N002 ( 3, 2) [000001] ---XG------- \--* IND struct N001 ( 1, 1) [000000] ------------ \--* LCL_VAR byref V00 this u:1 (last use) ***** BB01 STMT00005 (IL 0x000... ???) N007 ( 0, 0) [000115] ------------ * COMMA void N005 ( 0, 0) [000111] ------------ +--* COMMA void N003 ( 0, 0) [000107] ------------ | +--* COMMA void N001 ( 0, 0) [000103] ------------ | | +--* NOP void N002 ( 0, 0) [000106] ------------ | | \--* NOP void N004 ( 0, 0) [000110] ------------ | \--* NOP void N006 ( 0, 0) [000114] ------------ \--* NOP void ***** BB01 STMT00007 (IL 0x000... ???) N003 ( 1, 3) [000038] -A------R--- * ASG float N002 ( 1, 2) [000037] D------N---- +--* LCL_VAR float V08 tmp7 d:1 N001 ( 1, 1) [000036] ------------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00008 (IL 0x000... ???) N003 ( 1, 3) [000043] -A------R--- * ASG float N002 ( 1, 2) [000042] D------N---- +--* LCL_VAR float V09 tmp8 d:1 N001 ( 1, 1) [000041] ------------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00009 (IL 0x000... ???) N003 ( 1, 3) [000048] -A------R--- * ASG float N002 ( 1, 2) [000047] D------N---- +--* LCL_VAR float V10 tmp9 d:1 N001 ( 1, 1) [000046] ------------ \--* CNS_DBL float 0.00000000000000000 ***** BB01 STMT00010 (IL 0x000... ???) N003 ( 1, 3) [000053] -A------R--- * ASG float N002 ( 1, 2) [000052] D------N---- +--* LCL_VAR float V11 tmp10 d:1 N001 ( 1, 1) [000051] ------------ \--* CNS_DBL float 1.0000000000000000 ***** BB01 STMT00002 (IL ???... ???) N030 ( 26, 29) [000144] -A---------- * COMMA void N023 ( 20, 22) [000137] -A---------- +--* COMMA void N016 ( 14, 15) [000130] -A---------- | +--* COMMA void N009 ( 8, 8) [000123] -A---------- | | +--* COMMA void N004 ( 3, 3) [000118] -A------R--- | | | +--* ASG byref N003 ( 1, 1) [000117] D------N---- | | | | +--* LCL_VAR byref V20 tmp19 d:1 N002 ( 3, 3) [000116] ------------ | | | | \--* ADDR byref N001 ( 3, 2) [000031] -------N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 N008 ( 5, 5) [000122] -A---------- | | | \--* ASG float N006 ( 3, 2) [000120] *------N---- | | | +--* IND float N005 ( 1, 1) [000119] ------------ | | | | \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] N007 ( 1, 2) [000121] ------------ | | | \--* LCL_VAR float V08 tmp7 u:1 (last use) N015 ( 6, 7) [000129] -A---------- | | \--* ASG float N013 ( 4, 4) [000127] *------N---- | | +--* IND float N012 ( 2, 2) [000126] -------N---- | | | \--* ADD byref N010 ( 1, 1) [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 u:1 N011 ( 1, 1) [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] N014 ( 1, 2) [000128] ------------ | | \--* LCL_VAR float V09 tmp8 u:1 (last use) N022 ( 6, 7) [000136] -A---------- | \--* ASG float N020 ( 4, 4) [000134] *------N---- | +--* IND float N019 ( 2, 2) [000133] -------N---- | | \--* ADD byref N017 ( 1, 1) [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 u:1 N018 ( 1, 1) [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] N021 ( 1, 2) [000135] ------------ | \--* LCL_VAR float V10 tmp9 u:1 (last use) N029 ( 6, 7) [000143] -A---------- \--* ASG float N027 ( 4, 4) [000141] *------N---- +--* IND float N026 ( 2, 2) [000140] -------N---- | \--* ADD byref N024 ( 1, 1) [000138] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 (last use) N025 ( 1, 1) [000139] ------------ | \--* CNS_INT long 12 Fseq[W] N028 ( 1, 2) [000142] ------------ \--* LCL_VAR float V11 tmp10 u:1 (last use) ***** BB01 STMT00016 (IL ???... ???) N030 ( 34, 37) [000173] -A---------- * COMMA void N023 ( 26, 28) [000166] -A---------- +--* COMMA void N016 ( 18, 19) [000159] -A---------- | +--* COMMA void N009 ( 10, 10) [000152] -A---------- | | +--* COMMA void N004 ( 3, 3) [000147] -A------R--- | | | +--* ASG byref N003 ( 1, 1) [000146] D------N---- | | | | +--* LCL_VAR byref V21 tmp20 d:1 N002 ( 3, 3) [000145] ------------ | | | | \--* ADDR byref N001 ( 3, 2) [000015] -------N---- | | | | \--* LCL_VAR struct(AX) V02 tmp1 N008 ( 7, 7) [000151] -A------R--- | | | \--* ASG float N007 ( 3, 4) [000148] D------N---- | | | +--* LCL_VAR float V12 tmp11 d:1 N006 ( 3, 2) [000150] n----------- | | | \--* IND float N005 ( 1, 1) [000149] ------------ | | | \--* LCL_VAR byref V21 tmp20 u:1 Zero Fseq[X] N015 ( 8, 9) [000158] -A------R--- | | \--* ASG float N014 ( 3, 4) [000153] D------N---- | | +--* LCL_VAR float V13 tmp12 d:1 N013 ( 4, 4) [000157] n----------- | | \--* IND float N012 ( 2, 2) [000156] -------N---- | | \--* ADD byref N010 ( 1, 1) [000154] ------------ | | +--* LCL_VAR byref V21 tmp20 u:1 N011 ( 1, 1) [000155] ------------ | | \--* CNS_INT long 4 Fseq[Y] N022 ( 8, 9) [000165] -A------R--- | \--* ASG float N021 ( 3, 4) [000160] D------N---- | +--* LCL_VAR float V14 tmp13 d:1 N020 ( 4, 4) [000164] n----------- | \--* IND float N019 ( 2, 2) [000163] -------N---- | \--* ADD byref N017 ( 1, 1) [000161] ------------ | +--* LCL_VAR byref V21 tmp20 u:1 N018 ( 1, 1) [000162] ------------ | \--* CNS_INT long 8 Fseq[Z] N029 ( 8, 9) [000172] -A------R--- \--* ASG float N028 ( 3, 4) [000167] D------N---- +--* LCL_VAR float V15 tmp14 d:1 N027 ( 4, 4) [000171] n----------- \--* IND float N026 ( 2, 2) [000170] -------N---- \--* ADD byref N024 ( 1, 1) [000168] ------------ +--* LCL_VAR byref V21 tmp20 u:1 (last use) N025 ( 1, 1) [000169] ------------ \--* CNS_INT long 12 Fseq[W] ***** BB01 STMT00017 (IL ???... ???) N030 ( 34, 37) [000202] -A--G------- * COMMA void N023 ( 26, 28) [000195] -A--G------- +--* COMMA void N016 ( 18, 19) [000188] -A--G------- | +--* COMMA void N009 ( 10, 10) [000181] -A--G------- | | +--* COMMA void N004 ( 3, 3) [000176] -A--G---R--- | | | +--* ASG byref N003 ( 1, 1) [000175] D------N---- | | | | +--* LCL_VAR byref V22 tmp21 d:1 N002 ( 3, 3) [000174] ----G------- | | | | \--* ADDR byref N001 ( 3, 2) [000013] ----G--N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 N008 ( 7, 7) [000180] -A------R--- | | | \--* ASG float N007 ( 3, 4) [000177] D------N---- | | | +--* LCL_VAR float V16 tmp15 d:1 N006 ( 3, 2) [000179] n----------- | | | \--* IND float N005 ( 1, 1) [000178] ------------ | | | \--* LCL_VAR byref V22 tmp21 u:1 Zero Fseq[X] N015 ( 8, 9) [000187] -A------R--- | | \--* ASG float N014 ( 3, 4) [000182] D------N---- | | +--* LCL_VAR float V17 tmp16 d:1 N013 ( 4, 4) [000186] n----------- | | \--* IND float N012 ( 2, 2) [000185] -------N---- | | \--* ADD byref N010 ( 1, 1) [000183] ------------ | | +--* LCL_VAR byref V22 tmp21 u:1 N011 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 4 Fseq[Y] N022 ( 8, 9) [000194] -A------R--- | \--* ASG float N021 ( 3, 4) [000189] D------N---- | +--* LCL_VAR float V18 tmp17 d:1 N020 ( 4, 4) [000193] n----------- | \--* IND float N019 ( 2, 2) [000192] -------N---- | \--* ADD byref N017 ( 1, 1) [000190] ------------ | +--* LCL_VAR byref V22 tmp21 u:1 N018 ( 1, 1) [000191] ------------ | \--* CNS_INT long 8 Fseq[Z] N029 ( 8, 9) [000201] -A------R--- \--* ASG float N028 ( 3, 4) [000196] D------N---- +--* LCL_VAR float V19 tmp18 d:1 N027 ( 4, 4) [000200] n----------- \--* IND float N026 ( 2, 2) [000199] -------N---- \--* ADD byref N024 ( 1, 1) [000197] ------------ +--* LCL_VAR byref V22 tmp21 u:1 (last use) N025 ( 1, 1) [000198] ------------ \--* CNS_INT long 12 Fseq[W] ***** BB01 STMT00011 (IL ???... ???) N004 ( 9, 11) [000062] ------------ * JTRUE void N003 ( 7, 9) [000061] N------N-U-- \--* NE int N001 ( 3, 4) [000057] ------------ +--* LCL_VAR float V12 tmp11 u:1 (last use) N002 ( 3, 4) [000060] ------------ \--* LCL_VAR float V16 tmp15 u:1 (last use) ------------ BB02 [000..000) -> BB05 (cond), preds={BB01} succs={BB03,BB05} ***** BB02 STMT00013 (IL ???... ???) N004 ( 9, 11) [000075] ------------ * JTRUE void N003 ( 7, 9) [000074] N------N-U-- \--* NE int N001 ( 3, 4) [000070] ------------ +--* LCL_VAR float V13 tmp12 u:1 (last use) N002 ( 3, 4) [000073] ------------ \--* LCL_VAR float V17 tmp16 u:1 (last use) ------------ BB03 [000..000) -> BB05 (cond), preds={BB02} succs={BB04,BB05} ***** BB03 STMT00014 (IL ???... ???) N004 ( 9, 11) [000083] ------------ * JTRUE void N003 ( 7, 9) [000082] N------N-U-- \--* NE int N001 ( 3, 4) [000078] ------------ +--* LCL_VAR float V14 tmp13 u:1 (last use) N002 ( 3, 4) [000081] ------------ \--* LCL_VAR float V18 tmp17 u:1 (last use) ------------ BB04 [000..000) -> BB06 (always), preds={BB03} succs={BB06} ***** BB04 STMT00015 (IL ???... ???) N005 ( 14, 12) [000092] -A------R--- * ASG bool N004 ( 3, 2) [000091] D------N---- +--* LCL_VAR int V05 tmp4 d:3 N003 ( 10, 9) [000090] ------------ \--* EQ int N001 ( 3, 4) [000086] ------------ +--* LCL_VAR float V15 tmp14 u:1 (last use) N002 ( 3, 4) [000089] ------------ \--* LCL_VAR float V19 tmp18 u:1 (last use) ------------ BB05 [000..000), preds={BB01,BB02,BB03} succs={BB06} ***** BB05 STMT00012 (IL ???... ???) N003 ( 5, 4) [000066] -A------R--- * ASG bool N002 ( 3, 2) [000065] D------N---- +--* LCL_VAR int V05 tmp4 d:2 N001 ( 1, 1) [000063] ------------ \--* CNS_INT int 0 ------------ BB06 [???..???) (return), preds={BB04,BB05} succs={} ***** BB06 STMT00018 (IL ???... ???) N005 ( 0, 0) [000205] -A------R--- * ASG bool N004 ( 0, 0) [000203] D------N---- +--* LCL_VAR bool V05 tmp4 d:1 N003 ( 0, 0) [000204] ------------ \--* PHI bool N001 ( 0, 0) [000207] ------------ pred BB04 +--* PHI_ARG bool V05 tmp4 u:3 N002 ( 0, 0) [000206] ------------ pred BB05 \--* PHI_ARG bool V05 tmp4 u:2 ***** BB06 STMT00004 (IL ???... ???) N002 ( 5, 4) [000018] ------------ * RETURN int N001 ( 4, 3) [000093] ------------ \--* LCL_VAR bool V05 tmp4 u:1 (last use) ------------------------------------------------------------------------------------------------------------------- *************** Finishing PHASE Early Value Propagation *************** Starting PHASE Do value numbering *************** In fgValueNumber() Memory Initial Value in BB01 is: $c0 The SSA definition for ByrefExposed (#1) at start of BB01 is $c0 {InitVal($41)} The SSA definition for GcHeap (#1) at start of BB01 is $c0 {InitVal($41)} ***** BB01, STMT00001(before) N004 ( 7, 5) [000005] -A-XG---R--- * ASG struct (copy) N003 ( 3, 2) [000003] D------N---- +--* LCL_VAR struct(AX) V02 tmp1 N002 ( 3, 2) [000001] ---XG------- \--* IND struct N001 ( 1, 1) [000000] ------------ \--* LCL_VAR byref V00 this u:1 (last use) N001 [000000] LCL_VAR V00 this u:1 (last use) => $80 {InitVal($40)} N002 [000001] IND => fgCurMemoryVN[ByrefExposed] assigned for COPYBLK - address-exposed local at [000005] to VN: $1c0. N004 [000005] ASG => $VN.Void ***** BB01, STMT00001(after) N004 ( 7, 5) [000005] -A-XG---R--- * ASG struct (copy) $VN.Void N003 ( 3, 2) [000003] D------N---- +--* LCL_VAR struct(AX) V02 tmp1 N002 ( 3, 2) [000001] ---XG------- \--* IND struct N001 ( 1, 1) [000000] ------------ \--* LCL_VAR byref V00 this u:1 (last use) $80 --------- ***** BB01, STMT00005(before) N007 ( 0, 0) [000115] ------------ * COMMA void N005 ( 0, 0) [000111] ------------ +--* COMMA void N003 ( 0, 0) [000107] ------------ | +--* COMMA void N001 ( 0, 0) [000103] ------------ | | +--* NOP void N002 ( 0, 0) [000106] ------------ | | \--* NOP void N004 ( 0, 0) [000110] ------------ | \--* NOP void N006 ( 0, 0) [000114] ------------ \--* NOP void N001 [000103] NOP => $200 {200} N002 [000106] NOP => $201 {201} N003 [000107] COMMA => $201 {201} N004 [000110] NOP => $202 {202} N005 [000111] COMMA => $202 {202} N006 [000114] NOP => $203 {203} N007 [000115] COMMA => $203 {203} ***** BB01, STMT00005(after) N007 ( 0, 0) [000115] ------------ * COMMA void $203 N005 ( 0, 0) [000111] ------------ +--* COMMA void $202 N003 ( 0, 0) [000107] ------------ | +--* COMMA void $201 N001 ( 0, 0) [000103] ------------ | | +--* NOP void $200 N002 ( 0, 0) [000106] ------------ | | \--* NOP void $201 N004 ( 0, 0) [000110] ------------ | \--* NOP void $202 N006 ( 0, 0) [000114] ------------ \--* NOP void $203 --------- ***** BB01, STMT00007(before) N003 ( 1, 3) [000038] -A------R--- * ASG float N002 ( 1, 2) [000037] D------N---- +--* LCL_VAR float V08 tmp7 d:1 N001 ( 1, 1) [000036] ------------ \--* CNS_DBL float 0.00000000000000000 N001 [000036] CNS_DBL 0.00000000000000000 => $240 {FltCns[0.000000]} N002 [000037] LCL_VAR V08 tmp7 d:1 => $240 {FltCns[0.000000]} N003 [000038] ASG => $240 {FltCns[0.000000]} ***** BB01, STMT00007(after) N003 ( 1, 3) [000038] -A------R--- * ASG float $240 N002 ( 1, 2) [000037] D------N---- +--* LCL_VAR float V08 tmp7 d:1 $240 N001 ( 1, 1) [000036] ------------ \--* CNS_DBL float 0.00000000000000000 $240 --------- ***** BB01, STMT00008(before) N003 ( 1, 3) [000043] -A------R--- * ASG float N002 ( 1, 2) [000042] D------N---- +--* LCL_VAR float V09 tmp8 d:1 N001 ( 1, 1) [000041] ------------ \--* CNS_DBL float 0.00000000000000000 N001 [000041] CNS_DBL 0.00000000000000000 => $240 {FltCns[0.000000]} N002 [000042] LCL_VAR V09 tmp8 d:1 => $240 {FltCns[0.000000]} N003 [000043] ASG => $240 {FltCns[0.000000]} ***** BB01, STMT00008(after) N003 ( 1, 3) [000043] -A------R--- * ASG float $240 N002 ( 1, 2) [000042] D------N---- +--* LCL_VAR float V09 tmp8 d:1 $240 N001 ( 1, 1) [000041] ------------ \--* CNS_DBL float 0.00000000000000000 $240 --------- ***** BB01, STMT00009(before) N003 ( 1, 3) [000048] -A------R--- * ASG float N002 ( 1, 2) [000047] D------N---- +--* LCL_VAR float V10 tmp9 d:1 N001 ( 1, 1) [000046] ------------ \--* CNS_DBL float 0.00000000000000000 N001 [000046] CNS_DBL 0.00000000000000000 => $240 {FltCns[0.000000]} N002 [000047] LCL_VAR V10 tmp9 d:1 => $240 {FltCns[0.000000]} N003 [000048] ASG => $240 {FltCns[0.000000]} ***** BB01, STMT00009(after) N003 ( 1, 3) [000048] -A------R--- * ASG float $240 N002 ( 1, 2) [000047] D------N---- +--* LCL_VAR float V10 tmp9 d:1 $240 N001 ( 1, 1) [000046] ------------ \--* CNS_DBL float 0.00000000000000000 $240 --------- ***** BB01, STMT00010(before) N003 ( 1, 3) [000053] -A------R--- * ASG float N002 ( 1, 2) [000052] D------N---- +--* LCL_VAR float V11 tmp10 d:1 N001 ( 1, 1) [000051] ------------ \--* CNS_DBL float 1.0000000000000000 N001 [000051] CNS_DBL 1.0000000000000000 => $241 {FltCns[1.000000]} N002 [000052] LCL_VAR V11 tmp10 d:1 => $241 {FltCns[1.000000]} N003 [000053] ASG => $241 {FltCns[1.000000]} ***** BB01, STMT00010(after) N003 ( 1, 3) [000053] -A------R--- * ASG float $241 N002 ( 1, 2) [000052] D------N---- +--* LCL_VAR float V11 tmp10 d:1 $241 N001 ( 1, 1) [000051] ------------ \--* CNS_DBL float 1.0000000000000000 $241 --------- ***** BB01, STMT00002(before) N030 ( 26, 29) [000144] -A---------- * COMMA void N023 ( 20, 22) [000137] -A---------- +--* COMMA void N016 ( 14, 15) [000130] -A---------- | +--* COMMA void N009 ( 8, 8) [000123] -A---------- | | +--* COMMA void N004 ( 3, 3) [000118] -A------R--- | | | +--* ASG byref N003 ( 1, 1) [000117] D------N---- | | | | +--* LCL_VAR byref V20 tmp19 d:1 N002 ( 3, 3) [000116] ------------ | | | | \--* ADDR byref N001 ( 3, 2) [000031] -------N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 N008 ( 5, 5) [000122] -A---------- | | | \--* ASG float N006 ( 3, 2) [000120] *------N---- | | | +--* IND float N005 ( 1, 1) [000119] ------------ | | | | \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] N007 ( 1, 2) [000121] ------------ | | | \--* LCL_VAR float V08 tmp7 u:1 (last use) N015 ( 6, 7) [000129] -A---------- | | \--* ASG float N013 ( 4, 4) [000127] *------N---- | | +--* IND float N012 ( 2, 2) [000126] -------N---- | | | \--* ADD byref N010 ( 1, 1) [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 u:1 N011 ( 1, 1) [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] N014 ( 1, 2) [000128] ------------ | | \--* LCL_VAR float V09 tmp8 u:1 (last use) N022 ( 6, 7) [000136] -A---------- | \--* ASG float N020 ( 4, 4) [000134] *------N---- | +--* IND float N019 ( 2, 2) [000133] -------N---- | | \--* ADD byref N017 ( 1, 1) [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 u:1 N018 ( 1, 1) [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] N021 ( 1, 2) [000135] ------------ | \--* LCL_VAR float V10 tmp9 u:1 (last use) N029 ( 6, 7) [000143] -A---------- \--* ASG float N027 ( 4, 4) [000141] *------N---- +--* IND float N026 ( 2, 2) [000140] -------N---- | \--* ADD byref N024 ( 1, 1) [000138] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 (last use) N025 ( 1, 1) [000139] ------------ | \--* CNS_INT long 12 Fseq[W] N028 ( 1, 2) [000142] ------------ \--* LCL_VAR float V11 tmp10 u:1 (last use) N001 [000031] LCL_VAR V03 tmp2 => $102 {102} N002 [000116] ADDR => $300 {300} N003 [000117] LCL_VAR V20 tmp19 d:1 => $300 {300} N004 [000118] ASG => $300 {300} N005 [000119] LCL_VAR V20 tmp19 u:1 => $300 {300} N007 [000121] LCL_VAR V08 tmp7 u:1 (last use) => $240 {FltCns[0.000000]} fgCurMemoryVN[GcHeap] assigned for assign-of-IND at [000122] to VN: $340. N008 [000122] ASG => $VN.Void N009 [000123] COMMA => $VN.Void N010 [000124] LCL_VAR V20 tmp19 u:1 => $300 {300} N011 [000125] CNS_INT 4 Fseq[Y] => $380 {LngCns: 4} N012 [000126] ADD => $2c1 {ADD($300, $380)} N014 [000128] LCL_VAR V09 tmp8 u:1 (last use) => $240 {FltCns[0.000000]} fgCurMemoryVN[GcHeap] assigned for assign-of-IND at [000129] to VN: $341. N015 [000129] ASG => $VN.Void N016 [000130] COMMA => $VN.Void N017 [000131] LCL_VAR V20 tmp19 u:1 => $300 {300} N018 [000132] CNS_INT 8 Fseq[Z] => $381 {LngCns: 8} N019 [000133] ADD => $2c2 {ADD($300, $381)} N021 [000135] LCL_VAR V10 tmp9 u:1 (last use) => $240 {FltCns[0.000000]} fgCurMemoryVN[GcHeap] assigned for assign-of-IND at [000136] to VN: $342. N022 [000136] ASG => $VN.Void N023 [000137] COMMA => $VN.Void N024 [000138] LCL_VAR V20 tmp19 u:1 (last use) => $300 {300} N025 [000139] CNS_INT 12 Fseq[W] => $382 {LngCns: 12} N026 [000140] ADD => $2c3 {ADD($300, $382)} N028 [000142] LCL_VAR V11 tmp10 u:1 (last use) => $241 {FltCns[1.000000]} fgCurMemoryVN[GcHeap] assigned for assign-of-IND at [000143] to VN: $343. N029 [000143] ASG => $VN.Void N030 [000144] COMMA => $VN.Void ***** BB01, STMT00002(after) N030 ( 26, 29) [000144] -A---------- * COMMA void $VN.Void N023 ( 20, 22) [000137] -A---------- +--* COMMA void $VN.Void N016 ( 14, 15) [000130] -A---------- | +--* COMMA void $VN.Void N009 ( 8, 8) [000123] -A---------- | | +--* COMMA void $VN.Void N004 ( 3, 3) [000118] -A------R--- | | | +--* ASG byref $300 N003 ( 1, 1) [000117] D------N---- | | | | +--* LCL_VAR byref V20 tmp19 d:1 $300 N002 ( 3, 3) [000116] ------------ | | | | \--* ADDR byref $300 N001 ( 3, 2) [000031] -------N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 $102 N008 ( 5, 5) [000122] -A---------- | | | \--* ASG float $VN.Void N006 ( 3, 2) [000120] *------N---- | | | +--* IND float $240 N005 ( 1, 1) [000119] ------------ | | | | \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 N007 ( 1, 2) [000121] ------------ | | | \--* LCL_VAR float V08 tmp7 u:1 (last use) $240 N015 ( 6, 7) [000129] -A---------- | | \--* ASG float $VN.Void N013 ( 4, 4) [000127] *------N---- | | +--* IND float $240 N012 ( 2, 2) [000126] -------N---- | | | \--* ADD byref $2c1 N010 ( 1, 1) [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N011 ( 1, 1) [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] $380 N014 ( 1, 2) [000128] ------------ | | \--* LCL_VAR float V09 tmp8 u:1 (last use) $240 N022 ( 6, 7) [000136] -A---------- | \--* ASG float $VN.Void N020 ( 4, 4) [000134] *------N---- | +--* IND float $240 N019 ( 2, 2) [000133] -------N---- | | \--* ADD byref $2c2 N017 ( 1, 1) [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N018 ( 1, 1) [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] $381 N021 ( 1, 2) [000135] ------------ | \--* LCL_VAR float V10 tmp9 u:1 (last use) $240 N029 ( 6, 7) [000143] -A---------- \--* ASG float $VN.Void N027 ( 4, 4) [000141] *------N---- +--* IND float $241 N026 ( 2, 2) [000140] -------N---- | \--* ADD byref $2c3 N024 ( 1, 1) [000138] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 (last use) $300 N025 ( 1, 1) [000139] ------------ | \--* CNS_INT long 12 Fseq[W] $382 N028 ( 1, 2) [000142] ------------ \--* LCL_VAR float V11 tmp10 u:1 (last use) $241 --------- ***** BB01, STMT00016(before) N030 ( 34, 37) [000173] -A---------- * COMMA void N023 ( 26, 28) [000166] -A---------- +--* COMMA void N016 ( 18, 19) [000159] -A---------- | +--* COMMA void N009 ( 10, 10) [000152] -A---------- | | +--* COMMA void N004 ( 3, 3) [000147] -A------R--- | | | +--* ASG byref N003 ( 1, 1) [000146] D------N---- | | | | +--* LCL_VAR byref V21 tmp20 d:1 N002 ( 3, 3) [000145] ------------ | | | | \--* ADDR byref N001 ( 3, 2) [000015] -------N---- | | | | \--* LCL_VAR struct(AX) V02 tmp1 N008 ( 7, 7) [000151] -A------R--- | | | \--* ASG float N007 ( 3, 4) [000148] D------N---- | | | +--* LCL_VAR float V12 tmp11 d:1 N006 ( 3, 2) [000150] n----------- | | | \--* IND float N005 ( 1, 1) [000149] ------------ | | | \--* LCL_VAR byref V21 tmp20 u:1 Zero Fseq[X] N015 ( 8, 9) [000158] -A------R--- | | \--* ASG float N014 ( 3, 4) [000153] D------N---- | | +--* LCL_VAR float V13 tmp12 d:1 N013 ( 4, 4) [000157] n----------- | | \--* IND float N012 ( 2, 2) [000156] -------N---- | | \--* ADD byref N010 ( 1, 1) [000154] ------------ | | +--* LCL_VAR byref V21 tmp20 u:1 N011 ( 1, 1) [000155] ------------ | | \--* CNS_INT long 4 Fseq[Y] N022 ( 8, 9) [000165] -A------R--- | \--* ASG float N021 ( 3, 4) [000160] D------N---- | +--* LCL_VAR float V14 tmp13 d:1 N020 ( 4, 4) [000164] n----------- | \--* IND float N019 ( 2, 2) [000163] -------N---- | \--* ADD byref N017 ( 1, 1) [000161] ------------ | +--* LCL_VAR byref V21 tmp20 u:1 N018 ( 1, 1) [000162] ------------ | \--* CNS_INT long 8 Fseq[Z] N029 ( 8, 9) [000172] -A------R--- \--* ASG float N028 ( 3, 4) [000167] D------N---- +--* LCL_VAR float V15 tmp14 d:1 N027 ( 4, 4) [000171] n----------- \--* IND float N026 ( 2, 2) [000170] -------N---- \--* ADD byref N024 ( 1, 1) [000168] ------------ +--* LCL_VAR byref V21 tmp20 u:1 (last use) N025 ( 1, 1) [000169] ------------ \--* CNS_INT long 12 Fseq[W] N001 [000015] LCL_VAR V02 tmp1 => $103 {103} N002 [000145] ADDR => $302 {302} N003 [000146] LCL_VAR V21 tmp20 d:1 => $302 {302} N004 [000147] ASG => $302 {302} N005 [000149] LCL_VAR V21 tmp20 u:1 => $302 {302} N006 [000150] IND => N007 [000148] LCL_VAR V12 tmp11 d:1 => N008 [000151] ASG => N009 [000152] COMMA => N010 [000154] LCL_VAR V21 tmp20 u:1 => $302 {302} N011 [000155] CNS_INT 4 Fseq[Y] => $380 {LngCns: 4} N012 [000156] ADD => $2c5 {ADD($302, $380)} N013 [000157] IND => N014 [000153] LCL_VAR V13 tmp12 d:1 => N015 [000158] ASG => N016 [000159] COMMA => N017 [000161] LCL_VAR V21 tmp20 u:1 => $302 {302} N018 [000162] CNS_INT 8 Fseq[Z] => $381 {LngCns: 8} N019 [000163] ADD => $2c6 {ADD($302, $381)} N020 [000164] IND => N021 [000160] LCL_VAR V14 tmp13 d:1 => N022 [000165] ASG => N023 [000166] COMMA => N024 [000168] LCL_VAR V21 tmp20 u:1 (last use) => $302 {302} N025 [000169] CNS_INT 12 Fseq[W] => $382 {LngCns: 12} N026 [000170] ADD => $2c7 {ADD($302, $382)} N027 [000171] IND => N028 [000167] LCL_VAR V15 tmp14 d:1 => N029 [000172] ASG => N030 [000173] COMMA => ***** BB01, STMT00016(after) N030 ( 34, 37) [000173] -A---------- * COMMA void N023 ( 26, 28) [000166] -A---------- +--* COMMA void N016 ( 18, 19) [000159] -A---------- | +--* COMMA void N009 ( 10, 10) [000152] -A---------- | | +--* COMMA void N004 ( 3, 3) [000147] -A------R--- | | | +--* ASG byref $302 N003 ( 1, 1) [000146] D------N---- | | | | +--* LCL_VAR byref V21 tmp20 d:1 $302 N002 ( 3, 3) [000145] ------------ | | | | \--* ADDR byref $302 N001 ( 3, 2) [000015] -------N---- | | | | \--* LCL_VAR struct(AX) V02 tmp1 $103 N008 ( 7, 7) [000151] -A------R--- | | | \--* ASG float N007 ( 3, 4) [000148] D------N---- | | | +--* LCL_VAR float V12 tmp11 d:1 N006 ( 3, 2) [000150] n----------- | | | \--* IND float N005 ( 1, 1) [000149] ------------ | | | \--* LCL_VAR byref V21 tmp20 u:1 Zero Fseq[X] $302 N015 ( 8, 9) [000158] -A------R--- | | \--* ASG float N014 ( 3, 4) [000153] D------N---- | | +--* LCL_VAR float V13 tmp12 d:1 N013 ( 4, 4) [000157] n----------- | | \--* IND float N012 ( 2, 2) [000156] -------N---- | | \--* ADD byref $2c5 N010 ( 1, 1) [000154] ------------ | | +--* LCL_VAR byref V21 tmp20 u:1 $302 N011 ( 1, 1) [000155] ------------ | | \--* CNS_INT long 4 Fseq[Y] $380 N022 ( 8, 9) [000165] -A------R--- | \--* ASG float N021 ( 3, 4) [000160] D------N---- | +--* LCL_VAR float V14 tmp13 d:1 N020 ( 4, 4) [000164] n----------- | \--* IND float N019 ( 2, 2) [000163] -------N---- | \--* ADD byref $2c6 N017 ( 1, 1) [000161] ------------ | +--* LCL_VAR byref V21 tmp20 u:1 $302 N018 ( 1, 1) [000162] ------------ | \--* CNS_INT long 8 Fseq[Z] $381 N029 ( 8, 9) [000172] -A------R--- \--* ASG float N028 ( 3, 4) [000167] D------N---- +--* LCL_VAR float V15 tmp14 d:1 N027 ( 4, 4) [000171] n----------- \--* IND float N026 ( 2, 2) [000170] -------N---- \--* ADD byref $2c7 N024 ( 1, 1) [000168] ------------ +--* LCL_VAR byref V21 tmp20 u:1 (last use) $302 N025 ( 1, 1) [000169] ------------ \--* CNS_INT long 12 Fseq[W] $382 --------- ***** BB01, STMT00017(before) N030 ( 34, 37) [000202] -A--G------- * COMMA void N023 ( 26, 28) [000195] -A--G------- +--* COMMA void N016 ( 18, 19) [000188] -A--G------- | +--* COMMA void N009 ( 10, 10) [000181] -A--G------- | | +--* COMMA void N004 ( 3, 3) [000176] -A--G---R--- | | | +--* ASG byref N003 ( 1, 1) [000175] D------N---- | | | | +--* LCL_VAR byref V22 tmp21 d:1 N002 ( 3, 3) [000174] ----G------- | | | | \--* ADDR byref N001 ( 3, 2) [000013] ----G--N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 N008 ( 7, 7) [000180] -A------R--- | | | \--* ASG float N007 ( 3, 4) [000177] D------N---- | | | +--* LCL_VAR float V16 tmp15 d:1 N006 ( 3, 2) [000179] n----------- | | | \--* IND float N005 ( 1, 1) [000178] ------------ | | | \--* LCL_VAR byref V22 tmp21 u:1 Zero Fseq[X] N015 ( 8, 9) [000187] -A------R--- | | \--* ASG float N014 ( 3, 4) [000182] D------N---- | | +--* LCL_VAR float V17 tmp16 d:1 N013 ( 4, 4) [000186] n----------- | | \--* IND float N012 ( 2, 2) [000185] -------N---- | | \--* ADD byref N010 ( 1, 1) [000183] ------------ | | +--* LCL_VAR byref V22 tmp21 u:1 N011 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 4 Fseq[Y] N022 ( 8, 9) [000194] -A------R--- | \--* ASG float N021 ( 3, 4) [000189] D------N---- | +--* LCL_VAR float V18 tmp17 d:1 N020 ( 4, 4) [000193] n----------- | \--* IND float N019 ( 2, 2) [000192] -------N---- | \--* ADD byref N017 ( 1, 1) [000190] ------------ | +--* LCL_VAR byref V22 tmp21 u:1 N018 ( 1, 1) [000191] ------------ | \--* CNS_INT long 8 Fseq[Z] N029 ( 8, 9) [000201] -A------R--- \--* ASG float N028 ( 3, 4) [000196] D------N---- +--* LCL_VAR float V19 tmp18 d:1 N027 ( 4, 4) [000200] n----------- \--* IND float N026 ( 2, 2) [000199] -------N---- \--* ADD byref N024 ( 1, 1) [000197] ------------ +--* LCL_VAR byref V22 tmp21 u:1 (last use) N025 ( 1, 1) [000198] ------------ \--* CNS_INT long 12 Fseq[W] N001 [000013] LCL_VAR V03 tmp2 => $104 {104} N002 [000174] ADDR => $304 {304} N003 [000175] LCL_VAR V22 tmp21 d:1 => $304 {304} N004 [000176] ASG => $304 {304} N005 [000178] LCL_VAR V22 tmp21 u:1 => $304 {304} N006 [000179] IND => N007 [000177] LCL_VAR V16 tmp15 d:1 => N008 [000180] ASG => N009 [000181] COMMA => N010 [000183] LCL_VAR V22 tmp21 u:1 => $304 {304} N011 [000184] CNS_INT 4 Fseq[Y] => $380 {LngCns: 4} N012 [000185] ADD => $2c8 {ADD($304, $380)} N013 [000186] IND => N014 [000182] LCL_VAR V17 tmp16 d:1 => N015 [000187] ASG => N016 [000188] COMMA => N017 [000190] LCL_VAR V22 tmp21 u:1 => $304 {304} N018 [000191] CNS_INT 8 Fseq[Z] => $381 {LngCns: 8} N019 [000192] ADD => $2c9 {ADD($304, $381)} N020 [000193] IND => N021 [000189] LCL_VAR V18 tmp17 d:1 => N022 [000194] ASG => N023 [000195] COMMA => N024 [000197] LCL_VAR V22 tmp21 u:1 (last use) => $304 {304} N025 [000198] CNS_INT 12 Fseq[W] => $382 {LngCns: 12} N026 [000199] ADD => $2ca {ADD($304, $382)} N027 [000200] IND => N028 [000196] LCL_VAR V19 tmp18 d:1 => N029 [000201] ASG => N030 [000202] COMMA => ***** BB01, STMT00017(after) N030 ( 34, 37) [000202] -A--G------- * COMMA void N023 ( 26, 28) [000195] -A--G------- +--* COMMA void N016 ( 18, 19) [000188] -A--G------- | +--* COMMA void N009 ( 10, 10) [000181] -A--G------- | | +--* COMMA void N004 ( 3, 3) [000176] -A--G---R--- | | | +--* ASG byref $304 N003 ( 1, 1) [000175] D------N---- | | | | +--* LCL_VAR byref V22 tmp21 d:1 $304 N002 ( 3, 3) [000174] ----G------- | | | | \--* ADDR byref $304 N001 ( 3, 2) [000013] ----G--N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 $104 N008 ( 7, 7) [000180] -A------R--- | | | \--* ASG float N007 ( 3, 4) [000177] D------N---- | | | +--* LCL_VAR float V16 tmp15 d:1 N006 ( 3, 2) [000179] n----------- | | | \--* IND float N005 ( 1, 1) [000178] ------------ | | | \--* LCL_VAR byref V22 tmp21 u:1 Zero Fseq[X] $304 N015 ( 8, 9) [000187] -A------R--- | | \--* ASG float N014 ( 3, 4) [000182] D------N---- | | +--* LCL_VAR float V17 tmp16 d:1 N013 ( 4, 4) [000186] n----------- | | \--* IND float N012 ( 2, 2) [000185] -------N---- | | \--* ADD byref $2c8 N010 ( 1, 1) [000183] ------------ | | +--* LCL_VAR byref V22 tmp21 u:1 $304 N011 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 4 Fseq[Y] $380 N022 ( 8, 9) [000194] -A------R--- | \--* ASG float N021 ( 3, 4) [000189] D------N---- | +--* LCL_VAR float V18 tmp17 d:1 N020 ( 4, 4) [000193] n----------- | \--* IND float N019 ( 2, 2) [000192] -------N---- | \--* ADD byref $2c9 N017 ( 1, 1) [000190] ------------ | +--* LCL_VAR byref V22 tmp21 u:1 $304 N018 ( 1, 1) [000191] ------------ | \--* CNS_INT long 8 Fseq[Z] $381 N029 ( 8, 9) [000201] -A------R--- \--* ASG float N028 ( 3, 4) [000196] D------N---- +--* LCL_VAR float V19 tmp18 d:1 N027 ( 4, 4) [000200] n----------- \--* IND float N026 ( 2, 2) [000199] -------N---- \--* ADD byref $2ca N024 ( 1, 1) [000197] ------------ +--* LCL_VAR byref V22 tmp21 u:1 (last use) $304 N025 ( 1, 1) [000198] ------------ \--* CNS_INT long 12 Fseq[W] $382 --------- ***** BB01, STMT00011(before) N004 ( 9, 11) [000062] ------------ * JTRUE void N003 ( 7, 9) [000061] N------N-U-- \--* NE int N001 ( 3, 4) [000057] ------------ +--* LCL_VAR float V12 tmp11 u:1 (last use) N002 ( 3, 4) [000060] ------------ \--* LCL_VAR float V16 tmp15 u:1 (last use) N001 [000057] LCL_VAR V12 tmp11 u:1 (last use) => N002 [000060] LCL_VAR V16 tmp15 u:1 (last use) => N003 [000061] NE => ***** BB01, STMT00011(after) N004 ( 9, 11) [000062] ------------ * JTRUE void N003 ( 7, 9) [000061] N------N-U-- \--* NE int N001 ( 3, 4) [000057] ------------ +--* LCL_VAR float V12 tmp11 u:1 (last use) N002 ( 3, 4) [000060] ------------ \--* LCL_VAR float V16 tmp15 u:1 (last use) finish(BB01). Succ(BB02). Not yet completed. All preds complete, adding to allDone. Succ(BB05). 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 $1c4 {1c4} The SSA definition for GcHeap (#3) at start of BB02 is $343 {343} ***** BB02, STMT00013(before) N004 ( 9, 11) [000075] ------------ * JTRUE void N003 ( 7, 9) [000074] N------N-U-- \--* NE int N001 ( 3, 4) [000070] ------------ +--* LCL_VAR float V13 tmp12 u:1 (last use) N002 ( 3, 4) [000073] ------------ \--* LCL_VAR float V17 tmp16 u:1 (last use) N001 [000070] LCL_VAR V13 tmp12 u:1 (last use) => N002 [000073] LCL_VAR V17 tmp16 u:1 (last use) => N003 [000074] NE => ***** BB02, STMT00013(after) N004 ( 9, 11) [000075] ------------ * JTRUE void N003 ( 7, 9) [000074] N------N-U-- \--* NE int N001 ( 3, 4) [000070] ------------ +--* LCL_VAR float V13 tmp12 u:1 (last use) N002 ( 3, 4) [000073] ------------ \--* LCL_VAR float V17 tmp16 u:1 (last use) finish(BB02). Succ(BB03). Not yet completed. All preds complete, adding to allDone. Succ(BB05). Not yet completed. Not all preds complete Adding to notallDone, if necessary... The SSA definition for ByrefExposed (#2) at start of BB03 is $1c4 {1c4} The SSA definition for GcHeap (#3) at start of BB03 is $343 {343} ***** BB03, STMT00014(before) N004 ( 9, 11) [000083] ------------ * JTRUE void N003 ( 7, 9) [000082] N------N-U-- \--* NE int N001 ( 3, 4) [000078] ------------ +--* LCL_VAR float V14 tmp13 u:1 (last use) N002 ( 3, 4) [000081] ------------ \--* LCL_VAR float V18 tmp17 u:1 (last use) N001 [000078] LCL_VAR V14 tmp13 u:1 (last use) => N002 [000081] LCL_VAR V18 tmp17 u:1 (last use) => N003 [000082] NE => ***** BB03, STMT00014(after) N004 ( 9, 11) [000083] ------------ * JTRUE void N003 ( 7, 9) [000082] N------N-U-- \--* NE int N001 ( 3, 4) [000078] ------------ +--* LCL_VAR float V14 tmp13 u:1 (last use) N002 ( 3, 4) [000081] ------------ \--* LCL_VAR float V18 tmp17 u:1 (last use) finish(BB03). Succ(BB04). Not yet completed. All preds complete, adding to allDone. Succ(BB05). Not yet completed. All preds complete, adding to allDone. The SSA definition for ByrefExposed (#2) at start of BB05 is $1c4 {1c4} The SSA definition for GcHeap (#3) at start of BB05 is $343 {343} ***** BB05, STMT00012(before) N003 ( 5, 4) [000066] -A------R--- * ASG bool N002 ( 3, 2) [000065] D------N---- +--* LCL_VAR int V05 tmp4 d:2 N001 ( 1, 1) [000063] ------------ \--* CNS_INT int 0 N001 [000063] CNS_INT 0 => $40 {IntCns 0} N002 [000065] LCL_VAR V05 tmp4 d:2 => $40 {IntCns 0} N003 [000066] ASG => $40 {IntCns 0} ***** BB05, STMT00012(after) N003 ( 5, 4) [000066] -A------R--- * ASG bool $40 N002 ( 3, 2) [000065] D------N---- +--* LCL_VAR int V05 tmp4 d:2 $40 N001 ( 1, 1) [000063] ------------ \--* CNS_INT int 0 $40 finish(BB05). Succ(BB06). Not yet completed. Not all preds complete Adding to notallDone, if necessary... Was necessary. The SSA definition for ByrefExposed (#2) at start of BB04 is $1c4 {1c4} The SSA definition for GcHeap (#3) at start of BB04 is $343 {343} ***** BB04, STMT00015(before) N005 ( 14, 12) [000092] -A------R--- * ASG bool N004 ( 3, 2) [000091] D------N---- +--* LCL_VAR int V05 tmp4 d:3 N003 ( 10, 9) [000090] ------------ \--* EQ int N001 ( 3, 4) [000086] ------------ +--* LCL_VAR float V15 tmp14 u:1 (last use) N002 ( 3, 4) [000089] ------------ \--* LCL_VAR float V19 tmp18 u:1 (last use) N001 [000086] LCL_VAR V15 tmp14 u:1 (last use) => N002 [000089] LCL_VAR V19 tmp18 u:1 (last use) => N003 [000090] EQ => N004 [000091] LCL_VAR V05 tmp4 d:3 => N005 [000092] ASG => ***** BB04, STMT00015(after) N005 ( 14, 12) [000092] -A------R--- * ASG bool N004 ( 3, 2) [000091] D------N---- +--* LCL_VAR int V05 tmp4 d:3 N003 ( 10, 9) [000090] ------------ \--* EQ int N001 ( 3, 4) [000086] ------------ +--* LCL_VAR float V15 tmp14 u:1 (last use) N002 ( 3, 4) [000089] ------------ \--* LCL_VAR float V19 tmp18 u:1 (last use) finish(BB04). Succ(BB06). Not yet completed. All preds complete, adding to allDone. SSA PHI definition: set VN of local 5/1 to $4c0 {PhiDef($5, $1, $480)} . The SSA definition for ByrefExposed (#2) at start of BB06 is $1c4 {1c4} The SSA definition for GcHeap (#3) at start of BB06 is $343 {343} ***** BB06, STMT00004(before) N002 ( 5, 4) [000018] ------------ * RETURN int N001 ( 4, 3) [000093] ------------ \--* LCL_VAR bool V05 tmp4 u:1 (last use) N001 [000093] LCL_VAR V05 tmp4 u:1 (last use) => $4c0 {PhiDef($5, $1, $480)} N002 [000018] RETURN => $442 {442} ***** BB06, STMT00004(after) N002 ( 5, 4) [000018] ------------ * RETURN int $442 N001 ( 4, 3) [000093] ------------ \--* LCL_VAR bool V05 tmp4 u:1 (last use) $4c0 finish(BB06). *************** Finishing PHASE Do value numbering *************** Starting PHASE Hoist loop code *************** Finishing PHASE Hoist loop code *************** Starting PHASE VN based copy prop *************** In optVnCopyProp() Copy Assertion for BB01 curSsaName stack: { } Live vars: {V00} => {} Live vars: {} => {V08} Live vars: {V08} => {V08 V09} Live vars: {V08 V09} => {V08 V09 V10} Live vars: {V08 V09 V10} => {V08 V09 V10 V11} Live vars: {V08 V09 V10 V11} => {V08 V09 V10 V11 V20} Live vars: {V08 V09 V10 V11 V20} => {V09 V10 V11 V20} VN based copy assertion for [000121] V08 @00000240 by [000042] V09 @00000240. N007 ( 1, 2) [000121] ------------ * LCL_VAR float V08 tmp7 u:1 (last use) $240 copy propagated to: N007 ( 1, 2) [000121] ------------ * LCL_VAR float V09 tmp8 u:1 (last use) $240 Live vars: {V09 V10 V11 V20} => {V10 V11 V20} VN based copy assertion for [000128] V09 @00000240 by [000047] V10 @00000240. N014 ( 1, 2) [000128] ------------ * LCL_VAR float V09 tmp8 u:1 (last use) $240 copy propagated to: N014 ( 1, 2) [000128] ------------ * LCL_VAR float V10 tmp9 u:1 (last use) $240 Live vars: {V10 V11 V20} => {V11 V20} Live vars: {V11 V20} => {V11} Live vars: {V11} => {} Live vars: {} => {V21} Live vars: {V21} => {V12 V21} Live vars: {V12 V21} => {V12 V13 V21} Live vars: {V12 V13 V21} => {V12 V13 V14 V21} Live vars: {V12 V13 V14 V21} => {V12 V13 V14} Live vars: {V12 V13 V14} => {V12 V13 V14 V15} Live vars: {V12 V13 V14 V15} => {V12 V13 V14 V15 V22} Live vars: {V12 V13 V14 V15 V22} => {V12 V13 V14 V15 V16 V22} Live vars: {V12 V13 V14 V15 V16 V22} => {V12 V13 V14 V15 V16 V17 V22} Live vars: {V12 V13 V14 V15 V16 V17 V22} => {V12 V13 V14 V15 V16 V17 V18 V22} Live vars: {V12 V13 V14 V15 V16 V17 V18 V22} => {V12 V13 V14 V15 V16 V17 V18} Live vars: {V12 V13 V14 V15 V16 V17 V18} => {V12 V13 V14 V15 V16 V17 V18 V19} Live vars: {V12 V13 V14 V15 V16 V17 V18 V19} => {V13 V14 V15 V16 V17 V18 V19} Live vars: {V13 V14 V15 V16 V17 V18 V19} => {V13 V14 V15 V17 V18 V19} Copy Assertion for BB06 curSsaName stack: { 0-[000000]:V00 8-[000037]:V08 9-[000042]:V09 10-[000047]:V10 11-[000052]:V11 12-[000148]:V12 13-[000153]:V13 14-[000160]:V14 15-[000167]:V15 16-[000177]:V16 17-[000182]:V17 18-[000189]:V18 19-[000196]:V19 20-[000117]:V20 21-[000146]:V21 22-[000175]:V22 } Live vars: {V05} => {} Copy Assertion for BB05 curSsaName stack: { 0-[000000]:V00 8-[000037]:V08 9-[000042]:V09 10-[000047]:V10 11-[000052]:V11 12-[000148]:V12 13-[000153]:V13 14-[000160]:V14 15-[000167]:V15 16-[000177]:V16 17-[000182]:V17 18-[000189]:V18 19-[000196]:V19 20-[000117]:V20 21-[000146]:V21 22-[000175]:V22 } Live vars: {} => {V05} Copy Assertion for BB02 curSsaName stack: { 0-[000000]:V00 8-[000037]:V08 9-[000042]:V09 10-[000047]:V10 11-[000052]:V11 12-[000148]:V12 13-[000153]:V13 14-[000160]:V14 15-[000167]:V15 16-[000177]:V16 17-[000182]:V17 18-[000189]:V18 19-[000196]:V19 20-[000117]:V20 21-[000146]:V21 22-[000175]:V22 } Live vars: {V13 V14 V15 V17 V18 V19} => {V14 V15 V17 V18 V19} Live vars: {V14 V15 V17 V18 V19} => {V14 V15 V18 V19} Copy Assertion for BB03 curSsaName stack: { 0-[000000]:V00 8-[000037]:V08 9-[000042]:V09 10-[000047]:V10 11-[000052]:V11 12-[000148]:V12 13-[000153]:V13 14-[000160]:V14 15-[000167]:V15 16-[000177]:V16 17-[000182]:V17 18-[000189]:V18 19-[000196]:V19 20-[000117]:V20 21-[000146]:V21 22-[000175]:V22 } Live vars: {V14 V15 V18 V19} => {V15 V18 V19} Live vars: {V15 V18 V19} => {V15 V19} Copy Assertion for BB04 curSsaName stack: { 0-[000000]:V00 8-[000037]:V08 9-[000042]:V09 10-[000047]:V10 11-[000052]:V11 12-[000148]:V12 13-[000153]:V13 14-[000160]:V14 15-[000167]:V15 16-[000177]:V16 17-[000182]:V17 18-[000189]:V18 19-[000196]:V19 20-[000117]:V20 21-[000146]:V21 22-[000175]:V22 } Live vars: {V15 V19} => {V19} Live vars: {V19} => {} Live vars: {} => {V05} *************** Finishing PHASE VN based copy prop *************** Starting PHASE Redundant branch opts ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target BB02 [0004] 1 BB01 0.25 [000..000)-> BB05 ( cond ) i internal BB03 [0005] 1 BB02 0.25 [000..000)-> BB05 ( cond ) i internal BB04 [0006] 1 BB03 0.50 [000..000)-> BB06 (always) i internal BB05 [0007] 3 BB01,BB02,BB03 0.50 [000..000) i internal label target BB06 [0008] 2 BB04,BB05 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- *************** Finishing PHASE Redundant branch opts [no changes] *************** Starting PHASE Optimize Valnum CSEs *************** In optOptimizeCSEs() Blocks/Trees at start of optOptimizeCSE phase ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target BB02 [0004] 1 BB01 0.25 [000..000)-> BB05 ( cond ) i internal BB03 [0005] 1 BB02 0.25 [000..000)-> BB05 ( cond ) i internal BB04 [0006] 1 BB03 0.50 [000..000)-> BB06 (always) i internal BB05 [0007] 3 BB01,BB02,BB03 0.50 [000..000) i internal label target BB06 [0008] 2 BB04,BB05 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..011) -> BB05 (cond), preds={} succs={BB02,BB05} ***** BB01 STMT00001 (IL 0x000...0x010) N004 ( 7, 5) [000005] -A-XG---R--- * ASG struct (copy) $VN.Void N003 ( 3, 2) [000003] D------N---- +--* LCL_VAR struct(AX) V02 tmp1 N002 ( 3, 2) [000001] ---XG------- \--* IND struct N001 ( 1, 1) [000000] ------------ \--* LCL_VAR byref V00 this u:1 (last use) $80 ***** BB01 STMT00005 (IL 0x000... ???) N007 ( 0, 0) [000115] ------------ * COMMA void $203 N005 ( 0, 0) [000111] ------------ +--* COMMA void $202 N003 ( 0, 0) [000107] ------------ | +--* COMMA void $201 N001 ( 0, 0) [000103] ------------ | | +--* NOP void $200 N002 ( 0, 0) [000106] ------------ | | \--* NOP void $201 N004 ( 0, 0) [000110] ------------ | \--* NOP void $202 N006 ( 0, 0) [000114] ------------ \--* NOP void $203 ***** BB01 STMT00007 (IL 0x000... ???) N003 ( 1, 3) [000038] -A------R--- * ASG float $240 N002 ( 1, 2) [000037] D------N---- +--* LCL_VAR float V08 tmp7 d:1 $240 N001 ( 1, 1) [000036] ------------ \--* CNS_DBL float 0.00000000000000000 $240 ***** BB01 STMT00008 (IL 0x000... ???) N003 ( 1, 3) [000043] -A------R--- * ASG float $240 N002 ( 1, 2) [000042] D------N---- +--* LCL_VAR float V09 tmp8 d:1 $240 N001 ( 1, 1) [000041] ------------ \--* CNS_DBL float 0.00000000000000000 $240 ***** BB01 STMT00009 (IL 0x000... ???) N003 ( 1, 3) [000048] -A------R--- * ASG float $240 N002 ( 1, 2) [000047] D------N---- +--* LCL_VAR float V10 tmp9 d:1 $240 N001 ( 1, 1) [000046] ------------ \--* CNS_DBL float 0.00000000000000000 $240 ***** BB01 STMT00010 (IL 0x000... ???) N003 ( 1, 3) [000053] -A------R--- * ASG float $241 N002 ( 1, 2) [000052] D------N---- +--* LCL_VAR float V11 tmp10 d:1 $241 N001 ( 1, 1) [000051] ------------ \--* CNS_DBL float 1.0000000000000000 $241 ***** BB01 STMT00002 (IL ???... ???) N030 ( 26, 29) [000144] -A---------- * COMMA void $VN.Void N023 ( 20, 22) [000137] -A---------- +--* COMMA void $VN.Void N016 ( 14, 15) [000130] -A---------- | +--* COMMA void $VN.Void N009 ( 8, 8) [000123] -A---------- | | +--* COMMA void $VN.Void N004 ( 3, 3) [000118] -A------R--- | | | +--* ASG byref $300 N003 ( 1, 1) [000117] D------N---- | | | | +--* LCL_VAR byref V20 tmp19 d:1 $300 N002 ( 3, 3) [000116] ------------ | | | | \--* ADDR byref $300 N001 ( 3, 2) [000031] -------N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 $102 N008 ( 5, 5) [000122] -A---------- | | | \--* ASG float $VN.Void N006 ( 3, 2) [000120] *------N---- | | | +--* IND float $240 N005 ( 1, 1) [000119] ------------ | | | | \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 N007 ( 1, 2) [000121] ------------ | | | \--* LCL_VAR float V09 tmp8 u:1 (last use) $240 N015 ( 6, 7) [000129] -A---------- | | \--* ASG float $VN.Void N013 ( 4, 4) [000127] *------N---- | | +--* IND float $240 N012 ( 2, 2) [000126] -------N---- | | | \--* ADD byref $2c1 N010 ( 1, 1) [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N011 ( 1, 1) [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] $380 N014 ( 1, 2) [000128] ------------ | | \--* LCL_VAR float V10 tmp9 u:1 (last use) $240 N022 ( 6, 7) [000136] -A---------- | \--* ASG float $VN.Void N020 ( 4, 4) [000134] *------N---- | +--* IND float $240 N019 ( 2, 2) [000133] -------N---- | | \--* ADD byref $2c2 N017 ( 1, 1) [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N018 ( 1, 1) [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] $381 N021 ( 1, 2) [000135] ------------ | \--* LCL_VAR float V10 tmp9 u:1 (last use) $240 N029 ( 6, 7) [000143] -A---------- \--* ASG float $VN.Void N027 ( 4, 4) [000141] *------N---- +--* IND float $241 N026 ( 2, 2) [000140] -------N---- | \--* ADD byref $2c3 N024 ( 1, 1) [000138] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 (last use) $300 N025 ( 1, 1) [000139] ------------ | \--* CNS_INT long 12 Fseq[W] $382 N028 ( 1, 2) [000142] ------------ \--* LCL_VAR float V11 tmp10 u:1 (last use) $241 ***** BB01 STMT00016 (IL ???... ???) N030 ( 34, 37) [000173] -A---------- * COMMA void N023 ( 26, 28) [000166] -A---------- +--* COMMA void N016 ( 18, 19) [000159] -A---------- | +--* COMMA void N009 ( 10, 10) [000152] -A---------- | | +--* COMMA void N004 ( 3, 3) [000147] -A------R--- | | | +--* ASG byref $302 N003 ( 1, 1) [000146] D------N---- | | | | +--* LCL_VAR byref V21 tmp20 d:1 $302 N002 ( 3, 3) [000145] ------------ | | | | \--* ADDR byref $302 N001 ( 3, 2) [000015] -------N---- | | | | \--* LCL_VAR struct(AX) V02 tmp1 $103 N008 ( 7, 7) [000151] -A------R--- | | | \--* ASG float N007 ( 3, 4) [000148] D------N---- | | | +--* LCL_VAR float V12 tmp11 d:1 N006 ( 3, 2) [000150] n----------- | | | \--* IND float N005 ( 1, 1) [000149] ------------ | | | \--* LCL_VAR byref V21 tmp20 u:1 Zero Fseq[X] $302 N015 ( 8, 9) [000158] -A------R--- | | \--* ASG float N014 ( 3, 4) [000153] D------N---- | | +--* LCL_VAR float V13 tmp12 d:1 N013 ( 4, 4) [000157] n----------- | | \--* IND float N012 ( 2, 2) [000156] -------N---- | | \--* ADD byref $2c5 N010 ( 1, 1) [000154] ------------ | | +--* LCL_VAR byref V21 tmp20 u:1 $302 N011 ( 1, 1) [000155] ------------ | | \--* CNS_INT long 4 Fseq[Y] $380 N022 ( 8, 9) [000165] -A------R--- | \--* ASG float N021 ( 3, 4) [000160] D------N---- | +--* LCL_VAR float V14 tmp13 d:1 N020 ( 4, 4) [000164] n----------- | \--* IND float N019 ( 2, 2) [000163] -------N---- | \--* ADD byref $2c6 N017 ( 1, 1) [000161] ------------ | +--* LCL_VAR byref V21 tmp20 u:1 $302 N018 ( 1, 1) [000162] ------------ | \--* CNS_INT long 8 Fseq[Z] $381 N029 ( 8, 9) [000172] -A------R--- \--* ASG float N028 ( 3, 4) [000167] D------N---- +--* LCL_VAR float V15 tmp14 d:1 N027 ( 4, 4) [000171] n----------- \--* IND float N026 ( 2, 2) [000170] -------N---- \--* ADD byref $2c7 N024 ( 1, 1) [000168] ------------ +--* LCL_VAR byref V21 tmp20 u:1 (last use) $302 N025 ( 1, 1) [000169] ------------ \--* CNS_INT long 12 Fseq[W] $382 ***** BB01 STMT00017 (IL ???... ???) N030 ( 34, 37) [000202] -A--G------- * COMMA void N023 ( 26, 28) [000195] -A--G------- +--* COMMA void N016 ( 18, 19) [000188] -A--G------- | +--* COMMA void N009 ( 10, 10) [000181] -A--G------- | | +--* COMMA void N004 ( 3, 3) [000176] -A--G---R--- | | | +--* ASG byref $304 N003 ( 1, 1) [000175] D------N---- | | | | +--* LCL_VAR byref V22 tmp21 d:1 $304 N002 ( 3, 3) [000174] ----G------- | | | | \--* ADDR byref $304 N001 ( 3, 2) [000013] ----G--N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 $104 N008 ( 7, 7) [000180] -A------R--- | | | \--* ASG float N007 ( 3, 4) [000177] D------N---- | | | +--* LCL_VAR float V16 tmp15 d:1 N006 ( 3, 2) [000179] n----------- | | | \--* IND float N005 ( 1, 1) [000178] ------------ | | | \--* LCL_VAR byref V22 tmp21 u:1 Zero Fseq[X] $304 N015 ( 8, 9) [000187] -A------R--- | | \--* ASG float N014 ( 3, 4) [000182] D------N---- | | +--* LCL_VAR float V17 tmp16 d:1 N013 ( 4, 4) [000186] n----------- | | \--* IND float N012 ( 2, 2) [000185] -------N---- | | \--* ADD byref $2c8 N010 ( 1, 1) [000183] ------------ | | +--* LCL_VAR byref V22 tmp21 u:1 $304 N011 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 4 Fseq[Y] $380 N022 ( 8, 9) [000194] -A------R--- | \--* ASG float N021 ( 3, 4) [000189] D------N---- | +--* LCL_VAR float V18 tmp17 d:1 N020 ( 4, 4) [000193] n----------- | \--* IND float N019 ( 2, 2) [000192] -------N---- | \--* ADD byref $2c9 N017 ( 1, 1) [000190] ------------ | +--* LCL_VAR byref V22 tmp21 u:1 $304 N018 ( 1, 1) [000191] ------------ | \--* CNS_INT long 8 Fseq[Z] $381 N029 ( 8, 9) [000201] -A------R--- \--* ASG float N028 ( 3, 4) [000196] D------N---- +--* LCL_VAR float V19 tmp18 d:1 N027 ( 4, 4) [000200] n----------- \--* IND float N026 ( 2, 2) [000199] -------N---- \--* ADD byref $2ca N024 ( 1, 1) [000197] ------------ +--* LCL_VAR byref V22 tmp21 u:1 (last use) $304 N025 ( 1, 1) [000198] ------------ \--* CNS_INT long 12 Fseq[W] $382 ***** BB01 STMT00011 (IL ???... ???) N004 ( 9, 11) [000062] ------------ * JTRUE void N003 ( 7, 9) [000061] N------N-U-- \--* NE int N001 ( 3, 4) [000057] ------------ +--* LCL_VAR float V12 tmp11 u:1 (last use) N002 ( 3, 4) [000060] ------------ \--* LCL_VAR float V16 tmp15 u:1 (last use) ------------ BB02 [000..000) -> BB05 (cond), preds={BB01} succs={BB03,BB05} ***** BB02 STMT00013 (IL ???... ???) N004 ( 9, 11) [000075] ------------ * JTRUE void N003 ( 7, 9) [000074] N------N-U-- \--* NE int N001 ( 3, 4) [000070] ------------ +--* LCL_VAR float V13 tmp12 u:1 (last use) N002 ( 3, 4) [000073] ------------ \--* LCL_VAR float V17 tmp16 u:1 (last use) ------------ BB03 [000..000) -> BB05 (cond), preds={BB02} succs={BB04,BB05} ***** BB03 STMT00014 (IL ???... ???) N004 ( 9, 11) [000083] ------------ * JTRUE void N003 ( 7, 9) [000082] N------N-U-- \--* NE int N001 ( 3, 4) [000078] ------------ +--* LCL_VAR float V14 tmp13 u:1 (last use) N002 ( 3, 4) [000081] ------------ \--* LCL_VAR float V18 tmp17 u:1 (last use) ------------ BB04 [000..000) -> BB06 (always), preds={BB03} succs={BB06} ***** BB04 STMT00015 (IL ???... ???) N005 ( 14, 12) [000092] -A------R--- * ASG bool N004 ( 3, 2) [000091] D------N---- +--* LCL_VAR int V05 tmp4 d:3 N003 ( 10, 9) [000090] ------------ \--* EQ int N001 ( 3, 4) [000086] ------------ +--* LCL_VAR float V15 tmp14 u:1 (last use) N002 ( 3, 4) [000089] ------------ \--* LCL_VAR float V19 tmp18 u:1 (last use) ------------ BB05 [000..000), preds={BB01,BB02,BB03} succs={BB06} ***** BB05 STMT00012 (IL ???... ???) N003 ( 5, 4) [000066] -A------R--- * ASG bool $40 N002 ( 3, 2) [000065] D------N---- +--* LCL_VAR int V05 tmp4 d:2 $40 N001 ( 1, 1) [000063] ------------ \--* CNS_INT int 0 $40 ------------ BB06 [???..???) (return), preds={BB04,BB05} succs={} ***** BB06 STMT00018 (IL ???... ???) N005 ( 0, 0) [000205] -A------R--- * ASG bool N004 ( 0, 0) [000203] D------N---- +--* LCL_VAR bool V05 tmp4 d:1 N003 ( 0, 0) [000204] ------------ \--* PHI bool N001 ( 0, 0) [000207] ------------ pred BB04 +--* PHI_ARG bool V05 tmp4 u:3 N002 ( 0, 0) [000206] ------------ pred BB05 \--* PHI_ARG bool V05 tmp4 u:2 $40 ***** BB06 STMT00004 (IL ???... ???) N002 ( 5, 4) [000018] ------------ * RETURN int $442 N001 ( 4, 3) [000093] ------------ \--* LCL_VAR bool V05 tmp4 u:1 (last use) $4c0 ------------------------------------------------------------------------------------------------------------------- *************** In optOptimizeValnumCSEs() *************** Finishing PHASE Optimize Valnum CSEs *************** Starting PHASE Assertion prop *************** In optAssertionPropMain() Blocks/Trees at start of phase ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target BB02 [0004] 1 BB01 0.25 [000..000)-> BB05 ( cond ) i internal BB03 [0005] 1 BB02 0.25 [000..000)-> BB05 ( cond ) i internal BB04 [0006] 1 BB03 0.50 [000..000)-> BB06 (always) i internal BB05 [0007] 3 BB01,BB02,BB03 0.50 [000..000) i internal label target BB06 [0008] 2 BB04,BB05 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..011) -> BB05 (cond), preds={} succs={BB02,BB05} ***** BB01 STMT00001 (IL 0x000...0x010) N004 ( 7, 5) [000005] -A-XG---R--- * ASG struct (copy) $VN.Void N003 ( 3, 2) [000003] D------N---- +--* LCL_VAR struct(AX) V02 tmp1 N002 ( 3, 2) [000001] ---XG------- \--* IND struct N001 ( 1, 1) [000000] ------------ \--* LCL_VAR byref V00 this u:1 (last use) $80 ***** BB01 STMT00005 (IL 0x000... ???) N007 ( 0, 0) [000115] ------------ * COMMA void $203 N005 ( 0, 0) [000111] ------------ +--* COMMA void $202 N003 ( 0, 0) [000107] ------------ | +--* COMMA void $201 N001 ( 0, 0) [000103] ------------ | | +--* NOP void $200 N002 ( 0, 0) [000106] ------------ | | \--* NOP void $201 N004 ( 0, 0) [000110] ------------ | \--* NOP void $202 N006 ( 0, 0) [000114] ------------ \--* NOP void $203 ***** BB01 STMT00007 (IL 0x000... ???) N003 ( 1, 3) [000038] -A------R--- * ASG float $240 N002 ( 1, 2) [000037] D------N---- +--* LCL_VAR float V08 tmp7 d:1 $240 N001 ( 1, 1) [000036] ------------ \--* CNS_DBL float 0.00000000000000000 $240 ***** BB01 STMT00008 (IL 0x000... ???) N003 ( 1, 3) [000043] -A------R--- * ASG float $240 N002 ( 1, 2) [000042] D------N---- +--* LCL_VAR float V09 tmp8 d:1 $240 N001 ( 1, 1) [000041] ------------ \--* CNS_DBL float 0.00000000000000000 $240 ***** BB01 STMT00009 (IL 0x000... ???) N003 ( 1, 3) [000048] -A------R--- * ASG float $240 N002 ( 1, 2) [000047] D------N---- +--* LCL_VAR float V10 tmp9 d:1 $240 N001 ( 1, 1) [000046] ------------ \--* CNS_DBL float 0.00000000000000000 $240 ***** BB01 STMT00010 (IL 0x000... ???) N003 ( 1, 3) [000053] -A------R--- * ASG float $241 N002 ( 1, 2) [000052] D------N---- +--* LCL_VAR float V11 tmp10 d:1 $241 N001 ( 1, 1) [000051] ------------ \--* CNS_DBL float 1.0000000000000000 $241 ***** BB01 STMT00002 (IL ???... ???) N030 ( 26, 29) [000144] -A---------- * COMMA void $VN.Void N023 ( 20, 22) [000137] -A---------- +--* COMMA void $VN.Void N016 ( 14, 15) [000130] -A---------- | +--* COMMA void $VN.Void N009 ( 8, 8) [000123] -A---------- | | +--* COMMA void $VN.Void N004 ( 3, 3) [000118] -A------R--- | | | +--* ASG byref $300 N003 ( 1, 1) [000117] D------N---- | | | | +--* LCL_VAR byref V20 tmp19 d:1 $300 N002 ( 3, 3) [000116] ------------ | | | | \--* ADDR byref $300 N001 ( 3, 2) [000031] -------N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 $102 N008 ( 5, 5) [000122] -A---------- | | | \--* ASG float $VN.Void N006 ( 3, 2) [000120] *------N---- | | | +--* IND float $240 N005 ( 1, 1) [000119] ------------ | | | | \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 N007 ( 1, 2) [000121] ------------ | | | \--* LCL_VAR float V09 tmp8 u:1 (last use) $240 N015 ( 6, 7) [000129] -A---------- | | \--* ASG float $VN.Void N013 ( 4, 4) [000127] *------N---- | | +--* IND float $240 N012 ( 2, 2) [000126] -------N---- | | | \--* ADD byref $2c1 N010 ( 1, 1) [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N011 ( 1, 1) [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] $380 N014 ( 1, 2) [000128] ------------ | | \--* LCL_VAR float V10 tmp9 u:1 (last use) $240 N022 ( 6, 7) [000136] -A---------- | \--* ASG float $VN.Void N020 ( 4, 4) [000134] *------N---- | +--* IND float $240 N019 ( 2, 2) [000133] -------N---- | | \--* ADD byref $2c2 N017 ( 1, 1) [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N018 ( 1, 1) [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] $381 N021 ( 1, 2) [000135] ------------ | \--* LCL_VAR float V10 tmp9 u:1 (last use) $240 N029 ( 6, 7) [000143] -A---------- \--* ASG float $VN.Void N027 ( 4, 4) [000141] *------N---- +--* IND float $241 N026 ( 2, 2) [000140] -------N---- | \--* ADD byref $2c3 N024 ( 1, 1) [000138] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 (last use) $300 N025 ( 1, 1) [000139] ------------ | \--* CNS_INT long 12 Fseq[W] $382 N028 ( 1, 2) [000142] ------------ \--* LCL_VAR float V11 tmp10 u:1 (last use) $241 ***** BB01 STMT00016 (IL ???... ???) N030 ( 34, 37) [000173] -A---------- * COMMA void N023 ( 26, 28) [000166] -A---------- +--* COMMA void N016 ( 18, 19) [000159] -A---------- | +--* COMMA void N009 ( 10, 10) [000152] -A---------- | | +--* COMMA void N004 ( 3, 3) [000147] -A------R--- | | | +--* ASG byref $302 N003 ( 1, 1) [000146] D------N---- | | | | +--* LCL_VAR byref V21 tmp20 d:1 $302 N002 ( 3, 3) [000145] ------------ | | | | \--* ADDR byref $302 N001 ( 3, 2) [000015] -------N---- | | | | \--* LCL_VAR struct(AX) V02 tmp1 $103 N008 ( 7, 7) [000151] -A------R--- | | | \--* ASG float N007 ( 3, 4) [000148] D------N---- | | | +--* LCL_VAR float V12 tmp11 d:1 N006 ( 3, 2) [000150] n----------- | | | \--* IND float N005 ( 1, 1) [000149] ------------ | | | \--* LCL_VAR byref V21 tmp20 u:1 Zero Fseq[X] $302 N015 ( 8, 9) [000158] -A------R--- | | \--* ASG float N014 ( 3, 4) [000153] D------N---- | | +--* LCL_VAR float V13 tmp12 d:1 N013 ( 4, 4) [000157] n----------- | | \--* IND float N012 ( 2, 2) [000156] -------N---- | | \--* ADD byref $2c5 N010 ( 1, 1) [000154] ------------ | | +--* LCL_VAR byref V21 tmp20 u:1 $302 N011 ( 1, 1) [000155] ------------ | | \--* CNS_INT long 4 Fseq[Y] $380 N022 ( 8, 9) [000165] -A------R--- | \--* ASG float N021 ( 3, 4) [000160] D------N---- | +--* LCL_VAR float V14 tmp13 d:1 N020 ( 4, 4) [000164] n----------- | \--* IND float N019 ( 2, 2) [000163] -------N---- | \--* ADD byref $2c6 N017 ( 1, 1) [000161] ------------ | +--* LCL_VAR byref V21 tmp20 u:1 $302 N018 ( 1, 1) [000162] ------------ | \--* CNS_INT long 8 Fseq[Z] $381 N029 ( 8, 9) [000172] -A------R--- \--* ASG float N028 ( 3, 4) [000167] D------N---- +--* LCL_VAR float V15 tmp14 d:1 N027 ( 4, 4) [000171] n----------- \--* IND float N026 ( 2, 2) [000170] -------N---- \--* ADD byref $2c7 N024 ( 1, 1) [000168] ------------ +--* LCL_VAR byref V21 tmp20 u:1 (last use) $302 N025 ( 1, 1) [000169] ------------ \--* CNS_INT long 12 Fseq[W] $382 ***** BB01 STMT00017 (IL ???... ???) N030 ( 34, 37) [000202] -A--G------- * COMMA void N023 ( 26, 28) [000195] -A--G------- +--* COMMA void N016 ( 18, 19) [000188] -A--G------- | +--* COMMA void N009 ( 10, 10) [000181] -A--G------- | | +--* COMMA void N004 ( 3, 3) [000176] -A--G---R--- | | | +--* ASG byref $304 N003 ( 1, 1) [000175] D------N---- | | | | +--* LCL_VAR byref V22 tmp21 d:1 $304 N002 ( 3, 3) [000174] ----G------- | | | | \--* ADDR byref $304 N001 ( 3, 2) [000013] ----G--N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 $104 N008 ( 7, 7) [000180] -A------R--- | | | \--* ASG float N007 ( 3, 4) [000177] D------N---- | | | +--* LCL_VAR float V16 tmp15 d:1 N006 ( 3, 2) [000179] n----------- | | | \--* IND float N005 ( 1, 1) [000178] ------------ | | | \--* LCL_VAR byref V22 tmp21 u:1 Zero Fseq[X] $304 N015 ( 8, 9) [000187] -A------R--- | | \--* ASG float N014 ( 3, 4) [000182] D------N---- | | +--* LCL_VAR float V17 tmp16 d:1 N013 ( 4, 4) [000186] n----------- | | \--* IND float N012 ( 2, 2) [000185] -------N---- | | \--* ADD byref $2c8 N010 ( 1, 1) [000183] ------------ | | +--* LCL_VAR byref V22 tmp21 u:1 $304 N011 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 4 Fseq[Y] $380 N022 ( 8, 9) [000194] -A------R--- | \--* ASG float N021 ( 3, 4) [000189] D------N---- | +--* LCL_VAR float V18 tmp17 d:1 N020 ( 4, 4) [000193] n----------- | \--* IND float N019 ( 2, 2) [000192] -------N---- | \--* ADD byref $2c9 N017 ( 1, 1) [000190] ------------ | +--* LCL_VAR byref V22 tmp21 u:1 $304 N018 ( 1, 1) [000191] ------------ | \--* CNS_INT long 8 Fseq[Z] $381 N029 ( 8, 9) [000201] -A------R--- \--* ASG float N028 ( 3, 4) [000196] D------N---- +--* LCL_VAR float V19 tmp18 d:1 N027 ( 4, 4) [000200] n----------- \--* IND float N026 ( 2, 2) [000199] -------N---- \--* ADD byref $2ca N024 ( 1, 1) [000197] ------------ +--* LCL_VAR byref V22 tmp21 u:1 (last use) $304 N025 ( 1, 1) [000198] ------------ \--* CNS_INT long 12 Fseq[W] $382 ***** BB01 STMT00011 (IL ???... ???) N004 ( 9, 11) [000062] ------------ * JTRUE void N003 ( 7, 9) [000061] N------N-U-- \--* NE int N001 ( 3, 4) [000057] ------------ +--* LCL_VAR float V12 tmp11 u:1 (last use) N002 ( 3, 4) [000060] ------------ \--* LCL_VAR float V16 tmp15 u:1 (last use) ------------ BB02 [000..000) -> BB05 (cond), preds={BB01} succs={BB03,BB05} ***** BB02 STMT00013 (IL ???... ???) N004 ( 9, 11) [000075] ------------ * JTRUE void N003 ( 7, 9) [000074] N------N-U-- \--* NE int N001 ( 3, 4) [000070] ------------ +--* LCL_VAR float V13 tmp12 u:1 (last use) N002 ( 3, 4) [000073] ------------ \--* LCL_VAR float V17 tmp16 u:1 (last use) ------------ BB03 [000..000) -> BB05 (cond), preds={BB02} succs={BB04,BB05} ***** BB03 STMT00014 (IL ???... ???) N004 ( 9, 11) [000083] ------------ * JTRUE void N003 ( 7, 9) [000082] N------N-U-- \--* NE int N001 ( 3, 4) [000078] ------------ +--* LCL_VAR float V14 tmp13 u:1 (last use) N002 ( 3, 4) [000081] ------------ \--* LCL_VAR float V18 tmp17 u:1 (last use) ------------ BB04 [000..000) -> BB06 (always), preds={BB03} succs={BB06} ***** BB04 STMT00015 (IL ???... ???) N005 ( 14, 12) [000092] -A------R--- * ASG bool N004 ( 3, 2) [000091] D------N---- +--* LCL_VAR int V05 tmp4 d:3 N003 ( 10, 9) [000090] ------------ \--* EQ int N001 ( 3, 4) [000086] ------------ +--* LCL_VAR float V15 tmp14 u:1 (last use) N002 ( 3, 4) [000089] ------------ \--* LCL_VAR float V19 tmp18 u:1 (last use) ------------ BB05 [000..000), preds={BB01,BB02,BB03} succs={BB06} ***** BB05 STMT00012 (IL ???... ???) N003 ( 5, 4) [000066] -A------R--- * ASG bool $40 N002 ( 3, 2) [000065] D------N---- +--* LCL_VAR int V05 tmp4 d:2 $40 N001 ( 1, 1) [000063] ------------ \--* CNS_INT int 0 $40 ------------ BB06 [???..???) (return), preds={BB04,BB05} succs={} ***** BB06 STMT00018 (IL ???... ???) N005 ( 0, 0) [000205] -A------R--- * ASG bool N004 ( 0, 0) [000203] D------N---- +--* LCL_VAR bool V05 tmp4 d:1 N003 ( 0, 0) [000204] ------------ \--* PHI bool N001 ( 0, 0) [000207] ------------ pred BB04 +--* PHI_ARG bool V05 tmp4 u:3 N002 ( 0, 0) [000206] ------------ pred BB05 \--* PHI_ARG bool V05 tmp4 u:2 $40 ***** BB06 STMT00004 (IL ???... ???) N002 ( 5, 4) [000018] ------------ * RETURN int $442 N001 ( 4, 3) [000093] ------------ \--* LCL_VAR bool V05 tmp4 u:1 (last use) $4c0 ------------------------------------------------------------------------------------------------------------------- GenTreeNode creates assertion: N002 ( 3, 2) [000001] ---XG------- * IND struct In BB01 New Global Constant Assertion: (128, 0) ($80,$0) Value_Number {InitVal($40)} is not 0 index=#01, mask=0000000000000001 After constant propagation on [000121]: STMT00002 (IL ???... ???) N030 ( 26, 29) [000144] -A---------- * COMMA void $VN.Void N023 ( 20, 22) [000137] -A---------- +--* COMMA void $VN.Void N016 ( 14, 15) [000130] -A---------- | +--* COMMA void $VN.Void N009 ( 8, 8) [000123] -A---------- | | +--* COMMA void $VN.Void N004 ( 3, 3) [000118] -A------R--- | | | +--* ASG byref $300 N003 ( 1, 1) [000117] D------N---- | | | | +--* LCL_VAR byref V20 tmp19 d:1 $300 N002 ( 3, 3) [000116] ------------ | | | | \--* ADDR byref $300 N001 ( 3, 2) [000031] -------N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 $102 N008 ( 5, 5) [000122] -A---------- | | | \--* ASG float $VN.Void N006 ( 3, 2) [000120] *------N---- | | | +--* IND float $240 N005 ( 1, 1) [000119] ------------ | | | | \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 [000208] ------------ | | | \--* CNS_DBL float 0.00000000000000000 $240 N015 ( 6, 7) [000129] -A---------- | | \--* ASG float $VN.Void N013 ( 4, 4) [000127] *------N---- | | +--* IND float $240 N012 ( 2, 2) [000126] -------N---- | | | \--* ADD byref $2c1 N010 ( 1, 1) [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N011 ( 1, 1) [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] $380 N014 ( 1, 2) [000128] ------------ | | \--* LCL_VAR float V10 tmp9 u:1 (last use) $240 N022 ( 6, 7) [000136] -A---------- | \--* ASG float $VN.Void N020 ( 4, 4) [000134] *------N---- | +--* IND float $240 N019 ( 2, 2) [000133] -------N---- | | \--* ADD byref $2c2 N017 ( 1, 1) [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N018 ( 1, 1) [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] $381 N021 ( 1, 2) [000135] ------------ | \--* LCL_VAR float V10 tmp9 u:1 (last use) $240 N029 ( 6, 7) [000143] -A---------- \--* ASG float $VN.Void N027 ( 4, 4) [000141] *------N---- +--* IND float $241 N026 ( 2, 2) [000140] -------N---- | \--* ADD byref $2c3 N024 ( 1, 1) [000138] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 (last use) $300 N025 ( 1, 1) [000139] ------------ | \--* CNS_INT long 12 Fseq[W] $382 N028 ( 1, 2) [000142] ------------ \--* LCL_VAR float V11 tmp10 u:1 (last use) $241 After constant propagation on [000128]: STMT00002 (IL ???... ???) N030 ( 26, 29) [000144] -A---------- * COMMA void $VN.Void N023 ( 20, 22) [000137] -A---------- +--* COMMA void $VN.Void N016 ( 14, 15) [000130] -A---------- | +--* COMMA void $VN.Void N009 ( 8, 8) [000123] -A---------- | | +--* COMMA void $VN.Void N004 ( 3, 3) [000118] -A------R--- | | | +--* ASG byref $300 N003 ( 1, 1) [000117] D------N---- | | | | +--* LCL_VAR byref V20 tmp19 d:1 $300 N002 ( 3, 3) [000116] ------------ | | | | \--* ADDR byref $300 N001 ( 3, 2) [000031] -------N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 $102 N008 ( 5, 5) [000122] -A---------- | | | \--* ASG float $VN.Void N006 ( 3, 2) [000120] *------N---- | | | +--* IND float $240 N005 ( 1, 1) [000119] ------------ | | | | \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 [000208] ------------ | | | \--* CNS_DBL float 0.00000000000000000 $240 N015 ( 6, 7) [000129] -A---------- | | \--* ASG float $VN.Void N013 ( 4, 4) [000127] *------N---- | | +--* IND float $240 N012 ( 2, 2) [000126] -------N---- | | | \--* ADD byref $2c1 N010 ( 1, 1) [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N011 ( 1, 1) [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] $380 [000209] ------------ | | \--* CNS_DBL float 0.00000000000000000 $240 N022 ( 6, 7) [000136] -A---------- | \--* ASG float $VN.Void N020 ( 4, 4) [000134] *------N---- | +--* IND float $240 N019 ( 2, 2) [000133] -------N---- | | \--* ADD byref $2c2 N017 ( 1, 1) [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N018 ( 1, 1) [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] $381 N021 ( 1, 2) [000135] ------------ | \--* LCL_VAR float V10 tmp9 u:1 (last use) $240 N029 ( 6, 7) [000143] -A---------- \--* ASG float $VN.Void N027 ( 4, 4) [000141] *------N---- +--* IND float $241 N026 ( 2, 2) [000140] -------N---- | \--* ADD byref $2c3 N024 ( 1, 1) [000138] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 (last use) $300 N025 ( 1, 1) [000139] ------------ | \--* CNS_INT long 12 Fseq[W] $382 N028 ( 1, 2) [000142] ------------ \--* LCL_VAR float V11 tmp10 u:1 (last use) $241 After constant propagation on [000135]: STMT00002 (IL ???... ???) N030 ( 26, 29) [000144] -A---------- * COMMA void $VN.Void N023 ( 20, 22) [000137] -A---------- +--* COMMA void $VN.Void N016 ( 14, 15) [000130] -A---------- | +--* COMMA void $VN.Void N009 ( 8, 8) [000123] -A---------- | | +--* COMMA void $VN.Void N004 ( 3, 3) [000118] -A------R--- | | | +--* ASG byref $300 N003 ( 1, 1) [000117] D------N---- | | | | +--* LCL_VAR byref V20 tmp19 d:1 $300 N002 ( 3, 3) [000116] ------------ | | | | \--* ADDR byref $300 N001 ( 3, 2) [000031] -------N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 $102 N008 ( 5, 5) [000122] -A---------- | | | \--* ASG float $VN.Void N006 ( 3, 2) [000120] *------N---- | | | +--* IND float $240 N005 ( 1, 1) [000119] ------------ | | | | \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 [000208] ------------ | | | \--* CNS_DBL float 0.00000000000000000 $240 N015 ( 6, 7) [000129] -A---------- | | \--* ASG float $VN.Void N013 ( 4, 4) [000127] *------N---- | | +--* IND float $240 N012 ( 2, 2) [000126] -------N---- | | | \--* ADD byref $2c1 N010 ( 1, 1) [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N011 ( 1, 1) [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] $380 [000209] ------------ | | \--* CNS_DBL float 0.00000000000000000 $240 N022 ( 6, 7) [000136] -A---------- | \--* ASG float $VN.Void N020 ( 4, 4) [000134] *------N---- | +--* IND float $240 N019 ( 2, 2) [000133] -------N---- | | \--* ADD byref $2c2 N017 ( 1, 1) [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N018 ( 1, 1) [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] $381 [000210] ------------ | \--* CNS_DBL float 0.00000000000000000 $240 N029 ( 6, 7) [000143] -A---------- \--* ASG float $VN.Void N027 ( 4, 4) [000141] *------N---- +--* IND float $241 N026 ( 2, 2) [000140] -------N---- | \--* ADD byref $2c3 N024 ( 1, 1) [000138] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 (last use) $300 N025 ( 1, 1) [000139] ------------ | \--* CNS_INT long 12 Fseq[W] $382 N028 ( 1, 2) [000142] ------------ \--* LCL_VAR float V11 tmp10 u:1 (last use) $241 After constant propagation on [000142]: STMT00002 (IL ???... ???) N030 ( 26, 29) [000144] -A---------- * COMMA void $VN.Void N023 ( 20, 22) [000137] -A---------- +--* COMMA void $VN.Void N016 ( 14, 15) [000130] -A---------- | +--* COMMA void $VN.Void N009 ( 8, 8) [000123] -A---------- | | +--* COMMA void $VN.Void N004 ( 3, 3) [000118] -A------R--- | | | +--* ASG byref $300 N003 ( 1, 1) [000117] D------N---- | | | | +--* LCL_VAR byref V20 tmp19 d:1 $300 N002 ( 3, 3) [000116] ------------ | | | | \--* ADDR byref $300 N001 ( 3, 2) [000031] -------N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 $102 N008 ( 5, 5) [000122] -A---------- | | | \--* ASG float $VN.Void N006 ( 3, 2) [000120] *------N---- | | | +--* IND float $240 N005 ( 1, 1) [000119] ------------ | | | | \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 [000208] ------------ | | | \--* CNS_DBL float 0.00000000000000000 $240 N015 ( 6, 7) [000129] -A---------- | | \--* ASG float $VN.Void N013 ( 4, 4) [000127] *------N---- | | +--* IND float $240 N012 ( 2, 2) [000126] -------N---- | | | \--* ADD byref $2c1 N010 ( 1, 1) [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N011 ( 1, 1) [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] $380 [000209] ------------ | | \--* CNS_DBL float 0.00000000000000000 $240 N022 ( 6, 7) [000136] -A---------- | \--* ASG float $VN.Void N020 ( 4, 4) [000134] *------N---- | +--* IND float $240 N019 ( 2, 2) [000133] -------N---- | | \--* ADD byref $2c2 N017 ( 1, 1) [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N018 ( 1, 1) [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] $381 [000210] ------------ | \--* CNS_DBL float 0.00000000000000000 $240 N029 ( 6, 7) [000143] -A---------- \--* ASG float $VN.Void N027 ( 4, 4) [000141] *------N---- +--* IND float $241 N026 ( 2, 2) [000140] -------N---- | \--* ADD byref $2c3 N024 ( 1, 1) [000138] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 (last use) $300 N025 ( 1, 1) [000139] ------------ | \--* CNS_INT long 12 Fseq[W] $382 [000211] ------------ \--* CNS_DBL float 1.0000000000000000 $241 fgMorphTree (before 52): N030 ( 26, 29) [000144] -A---------- * COMMA void $VN.Void N023 ( 20, 22) [000137] -A---------- +--* COMMA void $VN.Void N016 ( 14, 15) [000130] -A---------- | +--* COMMA void $VN.Void N009 ( 8, 8) [000123] -A---------- | | +--* COMMA void $VN.Void N004 ( 3, 3) [000118] -A------R--- | | | +--* ASG byref $300 N003 ( 1, 1) [000117] D------N---- | | | | +--* LCL_VAR byref V20 tmp19 d:1 $300 N002 ( 3, 3) [000116] ------------ | | | | \--* ADDR byref $300 N001 ( 3, 2) [000031] -------N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 $102 N008 ( 5, 5) [000122] -A---------- | | | \--* ASG float $VN.Void N006 ( 3, 2) [000120] *------N---- | | | +--* IND float $240 N005 ( 1, 1) [000119] ------------ | | | | \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 [000208] ------------ | | | \--* CNS_DBL float 0.00000000000000000 $240 N015 ( 6, 7) [000129] -A---------- | | \--* ASG float $VN.Void N013 ( 4, 4) [000127] *------N---- | | +--* IND float $240 N012 ( 2, 2) [000126] -------N---- | | | \--* ADD byref $2c1 N010 ( 1, 1) [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N011 ( 1, 1) [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] $380 [000209] ------------ | | \--* CNS_DBL float 0.00000000000000000 $240 N022 ( 6, 7) [000136] -A---------- | \--* ASG float $VN.Void N020 ( 4, 4) [000134] *------N---- | +--* IND float $240 N019 ( 2, 2) [000133] -------N---- | | \--* ADD byref $2c2 N017 ( 1, 1) [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N018 ( 1, 1) [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] $381 [000210] ------------ | \--* CNS_DBL float 0.00000000000000000 $240 N029 ( 6, 7) [000143] -A---------- \--* ASG float $VN.Void N027 ( 4, 4) [000141] *------N---- +--* IND float $241 N026 ( 2, 2) [000140] -------N---- | \--* ADD byref $2c3 N024 ( 1, 1) [000138] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 (last use) $300 N025 ( 1, 1) [000139] ------------ | \--* CNS_INT long 12 Fseq[W] $382 [000211] ------------ \--* CNS_DBL float 1.0000000000000000 $241 fgMorphTree (before 53): N023 ( 20, 22) [000137] -A---------- * COMMA void $VN.Void N016 ( 14, 15) [000130] -A---------- +--* COMMA void $VN.Void N009 ( 8, 8) [000123] -A---------- | +--* COMMA void $VN.Void N004 ( 3, 3) [000118] -A------R--- | | +--* ASG byref $300 N003 ( 1, 1) [000117] D------N---- | | | +--* LCL_VAR byref V20 tmp19 d:1 $300 N002 ( 3, 3) [000116] ------------ | | | \--* ADDR byref $300 N001 ( 3, 2) [000031] -------N---- | | | \--* LCL_VAR struct(AX) V03 tmp2 $102 N008 ( 5, 5) [000122] -A---------- | | \--* ASG float $VN.Void N006 ( 3, 2) [000120] *------N---- | | +--* IND float $240 N005 ( 1, 1) [000119] ------------ | | | \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 [000208] ------------ | | \--* CNS_DBL float 0.00000000000000000 $240 N015 ( 6, 7) [000129] -A---------- | \--* ASG float $VN.Void N013 ( 4, 4) [000127] *------N---- | +--* IND float $240 N012 ( 2, 2) [000126] -------N---- | | \--* ADD byref $2c1 N010 ( 1, 1) [000124] ------------ | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N011 ( 1, 1) [000125] ------------ | | \--* CNS_INT long 4 Fseq[Y] $380 [000209] ------------ | \--* CNS_DBL float 0.00000000000000000 $240 N022 ( 6, 7) [000136] -A---------- \--* ASG float $VN.Void N020 ( 4, 4) [000134] *------N---- +--* IND float $240 N019 ( 2, 2) [000133] -------N---- | \--* ADD byref $2c2 N017 ( 1, 1) [000131] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 $300 N018 ( 1, 1) [000132] ------------ | \--* CNS_INT long 8 Fseq[Z] $381 [000210] ------------ \--* CNS_DBL float 0.00000000000000000 $240 fgMorphTree (before 54): N016 ( 14, 15) [000130] -A---------- * COMMA void $VN.Void N009 ( 8, 8) [000123] -A---------- +--* COMMA void $VN.Void N004 ( 3, 3) [000118] -A------R--- | +--* ASG byref $300 N003 ( 1, 1) [000117] D------N---- | | +--* LCL_VAR byref V20 tmp19 d:1 $300 N002 ( 3, 3) [000116] ------------ | | \--* ADDR byref $300 N001 ( 3, 2) [000031] -------N---- | | \--* LCL_VAR struct(AX) V03 tmp2 $102 N008 ( 5, 5) [000122] -A---------- | \--* ASG float $VN.Void N006 ( 3, 2) [000120] *------N---- | +--* IND float $240 N005 ( 1, 1) [000119] ------------ | | \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 [000208] ------------ | \--* CNS_DBL float 0.00000000000000000 $240 N015 ( 6, 7) [000129] -A---------- \--* ASG float $VN.Void N013 ( 4, 4) [000127] *------N---- +--* IND float $240 N012 ( 2, 2) [000126] -------N---- | \--* ADD byref $2c1 N010 ( 1, 1) [000124] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 $300 N011 ( 1, 1) [000125] ------------ | \--* CNS_INT long 4 Fseq[Y] $380 [000209] ------------ \--* CNS_DBL float 0.00000000000000000 $240 fgMorphTree (before 55): N009 ( 8, 8) [000123] -A---------- * COMMA void $VN.Void N004 ( 3, 3) [000118] -A------R--- +--* ASG byref $300 N003 ( 1, 1) [000117] D------N---- | +--* LCL_VAR byref V20 tmp19 d:1 $300 N002 ( 3, 3) [000116] ------------ | \--* ADDR byref $300 N001 ( 3, 2) [000031] -------N---- | \--* LCL_VAR struct(AX) V03 tmp2 $102 N008 ( 5, 5) [000122] -A---------- \--* ASG float $VN.Void N006 ( 3, 2) [000120] *------N---- +--* IND float $240 N005 ( 1, 1) [000119] ------------ | \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 [000208] ------------ \--* CNS_DBL float 0.00000000000000000 $240 fgMorphTree (before 56): N004 ( 3, 3) [000118] -A------R--- * ASG byref $300 N003 ( 1, 1) [000117] D------N---- +--* LCL_VAR byref V20 tmp19 d:1 $300 N002 ( 3, 3) [000116] ------------ \--* ADDR byref $300 N001 ( 3, 2) [000031] -------N---- \--* LCL_VAR struct(AX) V03 tmp2 $102 fgMorphTree (before 57): N003 ( 1, 1) [000117] D------N---- * LCL_VAR byref V20 tmp19 d:1 $300 fgMorphTree (after 57): N003 ( 1, 1) [000117] D------N---- * LCL_VAR byref V20 tmp19 d:1 $300 fgMorphTree (before 58): N002 ( 3, 3) [000116] ------------ * ADDR byref $300 N001 ( 3, 2) [000031] -------N---- \--* LCL_VAR struct(AX) V03 tmp2 $102 fgMorphTree (before 59): N001 ( 3, 2) [000031] -------N---- * LCL_VAR struct(AX) V03 tmp2 $102 fgMorphTree (after 59): N001 ( 3, 2) [000031] ----G--N---- * LCL_VAR struct(AX) V03 tmp2 $102 fgMorphTree (after 58): N002 ( 3, 3) [000116] ------------ * ADDR byref $300 N001 ( 3, 2) [000031] ----G--N---- \--* LCL_VAR struct(AX) V03 tmp2 $102 fgMorphTree (after 56): N004 ( 3, 3) [000118] -A------R--- * ASG byref $300 N003 ( 1, 1) [000117] D------N---- +--* LCL_VAR byref V20 tmp19 d:1 $300 N002 ( 3, 3) [000116] ------------ \--* ADDR byref $300 N001 ( 3, 2) [000031] ----G--N---- \--* LCL_VAR struct(AX) V03 tmp2 $102 fgMorphTree (before 60): N008 ( 5, 5) [000122] -A---------- * ASG float $VN.Void N006 ( 3, 2) [000120] *------N---- +--* IND float $240 N005 ( 1, 1) [000119] ------------ | \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 [000208] ------------ \--* CNS_DBL float 0.00000000000000000 $240 fgMorphTree (before 61): N006 ( 3, 2) [000120] *------N---- * IND float $240 N005 ( 1, 1) [000119] ------------ \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 fgMorphTree (before 62): N005 ( 1, 1) [000119] ------------ * LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 fgMorphTree (after 62): N005 ( 1, 1) [000119] ------------ * LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 fgMorphTree (after 61): N006 ( 3, 2) [000120] *------N---- * IND float $240 N005 ( 1, 1) [000119] ------------ \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 fgMorphTree (before 63): [000208] ------------ * CNS_DBL float 0.00000000000000000 $240 fgMorphTree (after 63): [000208] ------------ * CNS_DBL float 0.00000000000000000 $240 fgMorphTree (after 60): N008 ( 5, 5) [000122] -A---------- * ASG float $VN.Void N006 ( 3, 2) [000120] *------N---- +--* IND float $240 N005 ( 1, 1) [000119] ------------ | \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 [000208] ------------ \--* CNS_DBL float 0.00000000000000000 $240 fgMorphTree (after 55): N009 ( 8, 8) [000123] -A---------- * COMMA void $VN.Void N004 ( 3, 3) [000118] -A------R--- +--* ASG byref $300 N003 ( 1, 1) [000117] D------N---- | +--* LCL_VAR byref V20 tmp19 d:1 $300 N002 ( 3, 3) [000116] ------------ | \--* ADDR byref $300 N001 ( 3, 2) [000031] ----G--N---- | \--* LCL_VAR struct(AX) V03 tmp2 $102 N008 ( 5, 5) [000122] -A---------- \--* ASG float $VN.Void N006 ( 3, 2) [000120] *------N---- +--* IND float $240 N005 ( 1, 1) [000119] ------------ | \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 [000208] ------------ \--* CNS_DBL float 0.00000000000000000 $240 fgMorphTree (before 64): N015 ( 6, 7) [000129] -A---------- * ASG float $VN.Void N013 ( 4, 4) [000127] *------N---- +--* IND float $240 N012 ( 2, 2) [000126] -------N---- | \--* ADD byref $2c1 N010 ( 1, 1) [000124] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 $300 N011 ( 1, 1) [000125] ------------ | \--* CNS_INT long 4 Fseq[Y] $380 [000209] ------------ \--* CNS_DBL float 0.00000000000000000 $240 fgMorphTree (before 65): N013 ( 4, 4) [000127] *------N---- * IND float $240 N012 ( 2, 2) [000126] -------N---- \--* ADD byref $2c1 N010 ( 1, 1) [000124] ------------ +--* LCL_VAR byref V20 tmp19 u:1 $300 N011 ( 1, 1) [000125] ------------ \--* CNS_INT long 4 Fseq[Y] $380 fgMorphTree (before 66): N012 ( 2, 2) [000126] -------N---- * ADD byref $2c1 N010 ( 1, 1) [000124] ------------ +--* LCL_VAR byref V20 tmp19 u:1 $300 N011 ( 1, 1) [000125] ------------ \--* CNS_INT long 4 Fseq[Y] $380 fgMorphTree (before 67): N010 ( 1, 1) [000124] ------------ * LCL_VAR byref V20 tmp19 u:1 $300 fgMorphTree (after 67): N010 ( 1, 1) [000124] ------------ * LCL_VAR byref V20 tmp19 u:1 $300 fgMorphTree (before 68): N011 ( 1, 1) [000125] ------------ * CNS_INT long 4 Fseq[Y] $380 fgMorphTree (after 68): N011 ( 1, 1) [000125] ------------ * CNS_INT long 4 Fseq[Y] $380 fgMorphTree (after 66): N012 ( 2, 2) [000126] -------N---- * ADD byref $2c1 N010 ( 1, 1) [000124] ------------ +--* LCL_VAR byref V20 tmp19 u:1 $300 N011 ( 1, 1) [000125] ------------ \--* CNS_INT long 4 Fseq[Y] $380 fgMorphTree (after 65): N013 ( 4, 4) [000127] *------N---- * IND float $240 N012 ( 2, 2) [000126] -------N---- \--* ADD byref $2c1 N010 ( 1, 1) [000124] ------------ +--* LCL_VAR byref V20 tmp19 u:1 $300 N011 ( 1, 1) [000125] ------------ \--* CNS_INT long 4 Fseq[Y] $380 fgMorphTree (before 69): [000209] ------------ * CNS_DBL float 0.00000000000000000 $240 fgMorphTree (after 69): [000209] ------------ * CNS_DBL float 0.00000000000000000 $240 fgMorphTree (after 64): N015 ( 6, 7) [000129] -A---------- * ASG float $VN.Void N013 ( 4, 4) [000127] *------N---- +--* IND float $240 N012 ( 2, 2) [000126] -------N---- | \--* ADD byref $2c1 N010 ( 1, 1) [000124] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 $300 N011 ( 1, 1) [000125] ------------ | \--* CNS_INT long 4 Fseq[Y] $380 [000209] ------------ \--* CNS_DBL float 0.00000000000000000 $240 fgMorphTree (after 54): N016 ( 14, 15) [000130] -A---------- * COMMA void $VN.Void [000212] -A---------- +--* COMMA void $VN.Void N004 ( 3, 3) [000118] -A------R--- | +--* ASG byref $300 N003 ( 1, 1) [000117] D------N---- | | +--* LCL_VAR byref V20 tmp19 d:1 $300 N002 ( 3, 3) [000116] ------------ | | \--* ADDR byref $300 N001 ( 3, 2) [000031] ----G--N---- | | \--* LCL_VAR struct(AX) V03 tmp2 $102 N008 ( 5, 5) [000122] -A---------- | \--* ASG float $VN.Void N006 ( 3, 2) [000120] *------N---- | +--* IND float $240 N005 ( 1, 1) [000119] ------------ | | \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 [000208] ------------ | \--* CNS_DBL float 0.00000000000000000 $240 N015 ( 6, 7) [000129] -A---------- \--* ASG float $VN.Void N013 ( 4, 4) [000127] *------N---- +--* IND float $240 N012 ( 2, 2) [000126] -------N---- | \--* ADD byref $2c1 N010 ( 1, 1) [000124] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 $300 N011 ( 1, 1) [000125] ------------ | \--* CNS_INT long 4 Fseq[Y] $380 [000209] ------------ \--* CNS_DBL float 0.00000000000000000 $240 fgMorphTree (before 70): N022 ( 6, 7) [000136] -A---------- * ASG float $VN.Void N020 ( 4, 4) [000134] *------N---- +--* IND float $240 N019 ( 2, 2) [000133] -------N---- | \--* ADD byref $2c2 N017 ( 1, 1) [000131] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 $300 N018 ( 1, 1) [000132] ------------ | \--* CNS_INT long 8 Fseq[Z] $381 [000210] ------------ \--* CNS_DBL float 0.00000000000000000 $240 fgMorphTree (before 71): N020 ( 4, 4) [000134] *------N---- * IND float $240 N019 ( 2, 2) [000133] -------N---- \--* ADD byref $2c2 N017 ( 1, 1) [000131] ------------ +--* LCL_VAR byref V20 tmp19 u:1 $300 N018 ( 1, 1) [000132] ------------ \--* CNS_INT long 8 Fseq[Z] $381 fgMorphTree (before 72): N019 ( 2, 2) [000133] -------N---- * ADD byref $2c2 N017 ( 1, 1) [000131] ------------ +--* LCL_VAR byref V20 tmp19 u:1 $300 N018 ( 1, 1) [000132] ------------ \--* CNS_INT long 8 Fseq[Z] $381 fgMorphTree (before 73): N017 ( 1, 1) [000131] ------------ * LCL_VAR byref V20 tmp19 u:1 $300 fgMorphTree (after 73): N017 ( 1, 1) [000131] ------------ * LCL_VAR byref V20 tmp19 u:1 $300 fgMorphTree (before 74): N018 ( 1, 1) [000132] ------------ * CNS_INT long 8 Fseq[Z] $381 fgMorphTree (after 74): N018 ( 1, 1) [000132] ------------ * CNS_INT long 8 Fseq[Z] $381 fgMorphTree (after 72): N019 ( 2, 2) [000133] -------N---- * ADD byref $2c2 N017 ( 1, 1) [000131] ------------ +--* LCL_VAR byref V20 tmp19 u:1 $300 N018 ( 1, 1) [000132] ------------ \--* CNS_INT long 8 Fseq[Z] $381 fgMorphTree (after 71): N020 ( 4, 4) [000134] *------N---- * IND float $240 N019 ( 2, 2) [000133] -------N---- \--* ADD byref $2c2 N017 ( 1, 1) [000131] ------------ +--* LCL_VAR byref V20 tmp19 u:1 $300 N018 ( 1, 1) [000132] ------------ \--* CNS_INT long 8 Fseq[Z] $381 fgMorphTree (before 75): [000210] ------------ * CNS_DBL float 0.00000000000000000 $240 fgMorphTree (after 75): [000210] ------------ * CNS_DBL float 0.00000000000000000 $240 fgMorphTree (after 70): N022 ( 6, 7) [000136] -A---------- * ASG float $VN.Void N020 ( 4, 4) [000134] *------N---- +--* IND float $240 N019 ( 2, 2) [000133] -------N---- | \--* ADD byref $2c2 N017 ( 1, 1) [000131] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 $300 N018 ( 1, 1) [000132] ------------ | \--* CNS_INT long 8 Fseq[Z] $381 [000210] ------------ \--* CNS_DBL float 0.00000000000000000 $240 fgMorphTree (after 53): N023 ( 20, 22) [000137] -A---------- * COMMA void $VN.Void [000214] -A---------- +--* COMMA void $VN.Void N004 ( 3, 3) [000118] -A------R--- | +--* ASG byref $300 N003 ( 1, 1) [000117] D------N---- | | +--* LCL_VAR byref V20 tmp19 d:1 $300 N002 ( 3, 3) [000116] ------------ | | \--* ADDR byref $300 N001 ( 3, 2) [000031] ----G--N---- | | \--* LCL_VAR struct(AX) V03 tmp2 $102 [000213] -A---------- | \--* COMMA void $VN.Void N008 ( 5, 5) [000122] -A---------- | +--* ASG float $VN.Void N006 ( 3, 2) [000120] *------N---- | | +--* IND float $240 N005 ( 1, 1) [000119] ------------ | | | \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 [000208] ------------ | | \--* CNS_DBL float 0.00000000000000000 $240 N015 ( 6, 7) [000129] -A---------- | \--* ASG float $VN.Void N013 ( 4, 4) [000127] *------N---- | +--* IND float $240 N012 ( 2, 2) [000126] -------N---- | | \--* ADD byref $2c1 N010 ( 1, 1) [000124] ------------ | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N011 ( 1, 1) [000125] ------------ | | \--* CNS_INT long 4 Fseq[Y] $380 [000209] ------------ | \--* CNS_DBL float 0.00000000000000000 $240 N022 ( 6, 7) [000136] -A---------- \--* ASG float $VN.Void N020 ( 4, 4) [000134] *------N---- +--* IND float $240 N019 ( 2, 2) [000133] -------N---- | \--* ADD byref $2c2 N017 ( 1, 1) [000131] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 $300 N018 ( 1, 1) [000132] ------------ | \--* CNS_INT long 8 Fseq[Z] $381 [000210] ------------ \--* CNS_DBL float 0.00000000000000000 $240 fgMorphTree (before 76): N029 ( 6, 7) [000143] -A---------- * ASG float $VN.Void N027 ( 4, 4) [000141] *------N---- +--* IND float $241 N026 ( 2, 2) [000140] -------N---- | \--* ADD byref $2c3 N024 ( 1, 1) [000138] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 (last use) $300 N025 ( 1, 1) [000139] ------------ | \--* CNS_INT long 12 Fseq[W] $382 [000211] ------------ \--* CNS_DBL float 1.0000000000000000 $241 fgMorphTree (before 77): N027 ( 4, 4) [000141] *------N---- * IND float $241 N026 ( 2, 2) [000140] -------N---- \--* ADD byref $2c3 N024 ( 1, 1) [000138] ------------ +--* LCL_VAR byref V20 tmp19 u:1 (last use) $300 N025 ( 1, 1) [000139] ------------ \--* CNS_INT long 12 Fseq[W] $382 fgMorphTree (before 78): N026 ( 2, 2) [000140] -------N---- * ADD byref $2c3 N024 ( 1, 1) [000138] ------------ +--* LCL_VAR byref V20 tmp19 u:1 (last use) $300 N025 ( 1, 1) [000139] ------------ \--* CNS_INT long 12 Fseq[W] $382 fgMorphTree (before 79): N024 ( 1, 1) [000138] ------------ * LCL_VAR byref V20 tmp19 u:1 (last use) $300 fgMorphTree (after 79): N024 ( 1, 1) [000138] ------------ * LCL_VAR byref V20 tmp19 u:1 (last use) $300 fgMorphTree (before 80): N025 ( 1, 1) [000139] ------------ * CNS_INT long 12 Fseq[W] $382 fgMorphTree (after 80): N025 ( 1, 1) [000139] ------------ * CNS_INT long 12 Fseq[W] $382 fgMorphTree (after 78): N026 ( 2, 2) [000140] -------N---- * ADD byref $2c3 N024 ( 1, 1) [000138] ------------ +--* LCL_VAR byref V20 tmp19 u:1 (last use) $300 N025 ( 1, 1) [000139] ------------ \--* CNS_INT long 12 Fseq[W] $382 fgMorphTree (after 77): N027 ( 4, 4) [000141] *------N---- * IND float $241 N026 ( 2, 2) [000140] -------N---- \--* ADD byref $2c3 N024 ( 1, 1) [000138] ------------ +--* LCL_VAR byref V20 tmp19 u:1 (last use) $300 N025 ( 1, 1) [000139] ------------ \--* CNS_INT long 12 Fseq[W] $382 fgMorphTree (before 81): [000211] ------------ * CNS_DBL float 1.0000000000000000 $241 fgMorphTree (after 81): [000211] ------------ * CNS_DBL float 1.0000000000000000 $241 fgMorphTree (after 76): N029 ( 6, 7) [000143] -A---------- * ASG float $VN.Void N027 ( 4, 4) [000141] *------N---- +--* IND float $241 N026 ( 2, 2) [000140] -------N---- | \--* ADD byref $2c3 N024 ( 1, 1) [000138] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 (last use) $300 N025 ( 1, 1) [000139] ------------ | \--* CNS_INT long 12 Fseq[W] $382 [000211] ------------ \--* CNS_DBL float 1.0000000000000000 $241 fgMorphTree (after 52): N030 ( 26, 29) [000144] -A---------- * COMMA void $VN.Void [000217] -A---------- +--* COMMA void $VN.Void N004 ( 3, 3) [000118] -A------R--- | +--* ASG byref $300 N003 ( 1, 1) [000117] D------N---- | | +--* LCL_VAR byref V20 tmp19 d:1 $300 N002 ( 3, 3) [000116] ------------ | | \--* ADDR byref $300 N001 ( 3, 2) [000031] ----G--N---- | | \--* LCL_VAR struct(AX) V03 tmp2 $102 [000216] -A---------- | \--* COMMA void $VN.Void N008 ( 5, 5) [000122] -A---------- | +--* ASG float $VN.Void N006 ( 3, 2) [000120] *------N---- | | +--* IND float $240 N005 ( 1, 1) [000119] ------------ | | | \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 [000208] ------------ | | \--* CNS_DBL float 0.00000000000000000 $240 [000215] -A---------- | \--* COMMA void $VN.Void N015 ( 6, 7) [000129] -A---------- | +--* ASG float $VN.Void N013 ( 4, 4) [000127] *------N---- | | +--* IND float $240 N012 ( 2, 2) [000126] -------N---- | | | \--* ADD byref $2c1 N010 ( 1, 1) [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N011 ( 1, 1) [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] $380 [000209] ------------ | | \--* CNS_DBL float 0.00000000000000000 $240 N022 ( 6, 7) [000136] -A---------- | \--* ASG float $VN.Void N020 ( 4, 4) [000134] *------N---- | +--* IND float $240 N019 ( 2, 2) [000133] -------N---- | | \--* ADD byref $2c2 N017 ( 1, 1) [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N018 ( 1, 1) [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] $381 [000210] ------------ | \--* CNS_DBL float 0.00000000000000000 $240 N029 ( 6, 7) [000143] -A---------- \--* ASG float $VN.Void N027 ( 4, 4) [000141] *------N---- +--* IND float $241 N026 ( 2, 2) [000140] -------N---- | \--* ADD byref $2c3 N024 ( 1, 1) [000138] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 (last use) $300 N025 ( 1, 1) [000139] ------------ | \--* CNS_INT long 12 Fseq[W] $382 [000211] ------------ \--* CNS_DBL float 1.0000000000000000 $241 optVNAssertionPropCurStmt morphed tree: N030 ( 26, 25) [000144] -A---------- * COMMA void $VN.Void N023 ( 20, 19) [000217] -A---------- +--* COMMA void $VN.Void N004 ( 3, 3) [000118] -A------R--- | +--* ASG byref $300 N003 ( 1, 1) [000117] D------N---- | | +--* LCL_VAR byref V20 tmp19 d:1 $300 N002 ( 3, 3) [000116] ------------ | | \--* ADDR byref $300 N001 ( 3, 2) [000031] ----G--N---- | | \--* LCL_VAR struct(AX) V03 tmp2 $102 N022 ( 17, 16) [000216] -A---------- | \--* COMMA void $VN.Void N008 ( 5, 4) [000122] -A---------- | +--* ASG float $VN.Void N006 ( 3, 2) [000120] *------N---- | | +--* IND float $240 N005 ( 1, 1) [000119] ------------ | | | \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 N007 ( 1, 1) [000208] ------------ | | \--* CNS_DBL float 0.00000000000000000 $240 N021 ( 12, 12) [000215] -A---------- | \--* COMMA void $VN.Void N014 ( 6, 6) [000129] -A---------- | +--* ASG float $VN.Void N012 ( 4, 4) [000127] *------N---- | | +--* IND float $240 N011 ( 2, 2) [000126] -------N---- | | | \--* ADD byref $2c1 N009 ( 1, 1) [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N010 ( 1, 1) [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] $380 N013 ( 1, 1) [000209] ------------ | | \--* CNS_DBL float 0.00000000000000000 $240 N020 ( 6, 6) [000136] -A---------- | \--* ASG float $VN.Void N018 ( 4, 4) [000134] *------N---- | +--* IND float $240 N017 ( 2, 2) [000133] -------N---- | | \--* ADD byref $2c2 N015 ( 1, 1) [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N016 ( 1, 1) [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] $381 N019 ( 1, 1) [000210] ------------ | \--* CNS_DBL float 0.00000000000000000 $240 N029 ( 6, 6) [000143] -A---------- \--* ASG float $VN.Void N027 ( 4, 4) [000141] *------N---- +--* IND float $241 N026 ( 2, 2) [000140] -------N---- | \--* ADD byref $2c3 N024 ( 1, 1) [000138] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 (last use) $300 N025 ( 1, 1) [000139] ------------ | \--* CNS_INT long 12 Fseq[W] $382 N028 ( 1, 1) [000211] ------------ \--* CNS_DBL float 1.0000000000000000 $241 GenTreeNode creates assertion: N006 ( 3, 2) [000120] *------N---- * IND float $240 In BB01 New Global Constant Assertion: (768, 0) ($300,$0) Value_Number {300} is not 0 index=#02, mask=0000000000000002 GenTreeNode creates assertion: N006 ( 3, 2) [000150] n----------- * IND float In BB01 New Global Constant Assertion: (770, 0) ($302,$0) Value_Number {302} is not 0 index=#03, mask=0000000000000004 GenTreeNode creates assertion: N006 ( 3, 2) [000179] n----------- * IND float In BB01 New Global Constant Assertion: (772, 0) ($304,$0) Value_Number {304} is not 0 index=#04, mask=0000000000000008 GenTreeNode creates assertion: N004 ( 9, 11) [000062] ------------ * JTRUE void In BB01 New Global Copy Assertion: (644, 652) ($284,$28c) V12.01 != V16.01 index=#05, mask=0000000000000010 GenTreeNode creates assertion: N004 ( 9, 11) [000062] ------------ * JTRUE void In BB01 New Global Copy Assertion: (644, 652) ($284,$28c) V12.01 == V16.01 index=#06, mask=0000000000000020 GenTreeNode creates assertion: N004 ( 9, 11) [000075] ------------ * JTRUE void In BB02 New Global Copy Assertion: (646, 654) ($286,$28e) V13.01 != V17.01 index=#07, mask=0000000000000040 GenTreeNode creates assertion: N004 ( 9, 11) [000075] ------------ * JTRUE void In BB02 New Global Copy Assertion: (646, 654) ($286,$28e) V13.01 == V17.01 index=#08, mask=0000000000000080 GenTreeNode creates assertion: N004 ( 9, 11) [000083] ------------ * JTRUE void In BB03 New Global Copy Assertion: (648, 656) ($288,$290) V14.01 != V18.01 index=#09, mask=0000000000000100 GenTreeNode creates assertion: N004 ( 9, 11) [000083] ------------ * JTRUE void In BB03 New Global Copy Assertion: (648, 656) ($288,$290) V14.01 == V18.01 index=#10, mask=0000000000000200 BB01 valueGen = 000000000000002F => BB05 valueGen = 000000000000001F, BB02 valueGen = 0000000000000080 => BB05 valueGen = 0000000000000040, BB03 valueGen = 0000000000000200 => BB05 valueGen = 0000000000000100, BB04 valueGen = 0000000000000000 BB05 valueGen = 0000000000000000 BB06 valueGen = 0000000000000000 AssertionPropCallback::StartMerge: BB01 in -> 0000000000000000 AssertionPropCallback::EndMerge : BB01 in -> 0000000000000000 AssertionPropCallback::Changed : BB01 before out -> 00000000000003FF; after out -> 000000000000002F; jumpDest before out -> 00000000000003FF; jumpDest after out -> 000000000000001F; AssertionPropCallback::StartMerge: BB02 in -> 00000000000003FF AssertionPropCallback::Merge : BB02 in -> 00000000000003FF, predBlock BB01 out -> 000000000000002F AssertionPropCallback::EndMerge : BB02 in -> 000000000000002F AssertionPropCallback::Changed : BB02 before out -> 00000000000003FF; after out -> 00000000000000AF; jumpDest before out -> 00000000000003FF; jumpDest after out -> 000000000000006F; AssertionPropCallback::StartMerge: BB05 in -> 00000000000003FF AssertionPropCallback::Merge : BB05 in -> 00000000000003FF, predBlock BB01 out -> 000000000000001F AssertionPropCallback::Merge : BB05 in -> 000000000000001F, predBlock BB02 out -> 000000000000006F AssertionPropCallback::Merge : BB05 in -> 000000000000000F, predBlock BB03 out -> 00000000000003FF AssertionPropCallback::EndMerge : BB05 in -> 000000000000000F AssertionPropCallback::Changed : BB05 before out -> 00000000000003FF; after out -> 000000000000000F; jumpDest before out -> 00000000000003FF; jumpDest after out -> 000000000000000F; AssertionPropCallback::StartMerge: BB03 in -> 00000000000003FF AssertionPropCallback::Merge : BB03 in -> 00000000000003FF, predBlock BB02 out -> 00000000000000AF AssertionPropCallback::EndMerge : BB03 in -> 00000000000000AF AssertionPropCallback::Changed : BB03 before out -> 00000000000003FF; after out -> 00000000000002AF; jumpDest before out -> 00000000000003FF; jumpDest after out -> 00000000000001AF; AssertionPropCallback::StartMerge: BB05 in -> 000000000000000F AssertionPropCallback::Merge : BB05 in -> 000000000000000F, predBlock BB01 out -> 000000000000001F AssertionPropCallback::Merge : BB05 in -> 000000000000000F, predBlock BB02 out -> 000000000000006F AssertionPropCallback::Merge : BB05 in -> 000000000000000F, predBlock BB03 out -> 00000000000001AF AssertionPropCallback::EndMerge : BB05 in -> 000000000000000F AssertionPropCallback::Unchanged : BB05 out -> 000000000000000F; jumpDest out -> 000000000000000F AssertionPropCallback::StartMerge: BB06 in -> 00000000000003FF AssertionPropCallback::Merge : BB06 in -> 00000000000003FF, predBlock BB04 out -> 00000000000003FF AssertionPropCallback::Merge : BB06 in -> 00000000000003FF, predBlock BB05 out -> 000000000000000F AssertionPropCallback::EndMerge : BB06 in -> 000000000000000F AssertionPropCallback::Changed : BB06 before out -> 00000000000003FF; after out -> 000000000000000F; jumpDest before out -> 00000000000003FF; jumpDest after out -> 000000000000000F; AssertionPropCallback::StartMerge: BB04 in -> 00000000000003FF AssertionPropCallback::Merge : BB04 in -> 00000000000003FF, predBlock BB03 out -> 00000000000002AF AssertionPropCallback::EndMerge : BB04 in -> 00000000000002AF AssertionPropCallback::Changed : BB04 before out -> 00000000000003FF; after out -> 00000000000002AF; jumpDest before out -> 00000000000003FF; jumpDest after out -> 00000000000002AF; AssertionPropCallback::StartMerge: BB05 in -> 000000000000000F AssertionPropCallback::Merge : BB05 in -> 000000000000000F, predBlock BB01 out -> 000000000000001F AssertionPropCallback::Merge : BB05 in -> 000000000000000F, predBlock BB02 out -> 000000000000006F AssertionPropCallback::Merge : BB05 in -> 000000000000000F, predBlock BB03 out -> 00000000000001AF AssertionPropCallback::EndMerge : BB05 in -> 000000000000000F AssertionPropCallback::Unchanged : BB05 out -> 000000000000000F; jumpDest out -> 000000000000000F AssertionPropCallback::StartMerge: BB06 in -> 000000000000000F AssertionPropCallback::Merge : BB06 in -> 000000000000000F, predBlock BB04 out -> 00000000000002AF AssertionPropCallback::Merge : BB06 in -> 000000000000000F, predBlock BB05 out -> 000000000000000F AssertionPropCallback::EndMerge : BB06 in -> 000000000000000F AssertionPropCallback::Unchanged : BB06 out -> 000000000000000F; jumpDest out -> 000000000000000F BB01 valueIn = 0000000000000000 valueOut = 000000000000002F => BB05 valueOut= 000000000000001F BB02 valueIn = 000000000000002F valueOut = 00000000000000AF => BB05 valueOut= 000000000000006F BB03 valueIn = 00000000000000AF valueOut = 00000000000002AF => BB05 valueOut= 00000000000001AF BB04 valueIn = 00000000000002AF valueOut = 00000000000002AF BB05 valueIn = 000000000000000F valueOut = 000000000000000F BB06 valueIn = 000000000000000F valueOut = 000000000000000F Propagating 0000000000000000 assertions for BB01, stmt STMT00001, tree [000000], tree -> 0 Propagating 0000000000000000 assertions for BB01, stmt STMT00001, tree [000001], tree -> 1 Propagating 0000000000000001 assertions for BB01, stmt STMT00001, tree [000003], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00001, tree [000005], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00005, tree [000103], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00005, tree [000106], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00005, tree [000107], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00005, tree [000110], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00005, tree [000111], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00005, tree [000114], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00005, tree [000115], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00007, tree [000036], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00007, tree [000037], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00007, tree [000038], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00008, tree [000041], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00008, tree [000042], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00008, tree [000043], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00009, tree [000046], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00009, tree [000047], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00009, tree [000048], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00010, tree [000051], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00010, tree [000052], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00010, tree [000053], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00002, tree [000031], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00002, tree [000116], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00002, tree [000117], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00002, tree [000118], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00002, tree [000119], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00002, tree [000120], tree -> 2 Propagating 0000000000000003 assertions for BB01, stmt STMT00002, tree [000208], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00002, tree [000122], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00002, tree [000124], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00002, tree [000125], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00002, tree [000126], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00002, tree [000127], tree -> 2 Propagating 0000000000000003 assertions for BB01, stmt STMT00002, tree [000209], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00002, tree [000129], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00002, tree [000131], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00002, tree [000132], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00002, tree [000133], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00002, tree [000134], tree -> 2 Propagating 0000000000000003 assertions for BB01, stmt STMT00002, tree [000210], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00002, tree [000136], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00002, tree [000215], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00002, tree [000216], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00002, tree [000217], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00002, tree [000138], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00002, tree [000139], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00002, tree [000140], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00002, tree [000141], tree -> 2 Propagating 0000000000000003 assertions for BB01, stmt STMT00002, tree [000211], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00002, tree [000143], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00002, tree [000144], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00016, tree [000015], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00016, tree [000145], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00016, tree [000146], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00016, tree [000147], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00016, tree [000149], tree -> 0 Propagating 0000000000000003 assertions for BB01, stmt STMT00016, tree [000150], tree -> 3 Propagating 0000000000000007 assertions for BB01, stmt STMT00016, tree [000148], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00016, tree [000151], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00016, tree [000152], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00016, tree [000154], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00016, tree [000155], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00016, tree [000156], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00016, tree [000157], tree -> 3 Propagating 0000000000000007 assertions for BB01, stmt STMT00016, tree [000153], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00016, tree [000158], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00016, tree [000159], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00016, tree [000161], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00016, tree [000162], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00016, tree [000163], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00016, tree [000164], tree -> 3 Propagating 0000000000000007 assertions for BB01, stmt STMT00016, tree [000160], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00016, tree [000165], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00016, tree [000166], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00016, tree [000168], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00016, tree [000169], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00016, tree [000170], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00016, tree [000171], tree -> 3 Propagating 0000000000000007 assertions for BB01, stmt STMT00016, tree [000167], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00016, tree [000172], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00016, tree [000173], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00017, tree [000013], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00017, tree [000174], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00017, tree [000175], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00017, tree [000176], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00017, tree [000178], tree -> 0 Propagating 0000000000000007 assertions for BB01, stmt STMT00017, tree [000179], tree -> 4 Propagating 000000000000000F assertions for BB01, stmt STMT00017, tree [000177], tree -> 0 Propagating 000000000000000F assertions for BB01, stmt STMT00017, tree [000180], tree -> 0 Propagating 000000000000000F assertions for BB01, stmt STMT00017, tree [000181], tree -> 0 Propagating 000000000000000F assertions for BB01, stmt STMT00017, tree [000183], tree -> 0 Propagating 000000000000000F assertions for BB01, stmt STMT00017, tree [000184], tree -> 0 Propagating 000000000000000F assertions for BB01, stmt STMT00017, tree [000185], tree -> 0 Propagating 000000000000000F assertions for BB01, stmt STMT00017, tree [000186], tree -> 4 Propagating 000000000000000F assertions for BB01, stmt STMT00017, tree [000182], tree -> 0 Propagating 000000000000000F assertions for BB01, stmt STMT00017, tree [000187], tree -> 0 Propagating 000000000000000F assertions for BB01, stmt STMT00017, tree [000188], tree -> 0 Propagating 000000000000000F assertions for BB01, stmt STMT00017, tree [000190], tree -> 0 Propagating 000000000000000F assertions for BB01, stmt STMT00017, tree [000191], tree -> 0 Propagating 000000000000000F assertions for BB01, stmt STMT00017, tree [000192], tree -> 0 Propagating 000000000000000F assertions for BB01, stmt STMT00017, tree [000193], tree -> 4 Propagating 000000000000000F assertions for BB01, stmt STMT00017, tree [000189], tree -> 0 Propagating 000000000000000F assertions for BB01, stmt STMT00017, tree [000194], tree -> 0 Propagating 000000000000000F assertions for BB01, stmt STMT00017, tree [000195], tree -> 0 Propagating 000000000000000F assertions for BB01, stmt STMT00017, tree [000197], tree -> 0 Propagating 000000000000000F assertions for BB01, stmt STMT00017, tree [000198], tree -> 0 Propagating 000000000000000F assertions for BB01, stmt STMT00017, tree [000199], tree -> 0 Propagating 000000000000000F assertions for BB01, stmt STMT00017, tree [000200], tree -> 4 Propagating 000000000000000F assertions for BB01, stmt STMT00017, tree [000196], tree -> 0 Propagating 000000000000000F assertions for BB01, stmt STMT00017, tree [000201], tree -> 0 Propagating 000000000000000F assertions for BB01, stmt STMT00017, tree [000202], tree -> 0 Propagating 000000000000000F assertions for BB01, stmt STMT00011, tree [000057], tree -> 0 Propagating 000000000000000F assertions for BB01, stmt STMT00011, tree [000060], tree -> 0 Propagating 000000000000000F assertions for BB01, stmt STMT00011, tree [000061], tree -> 0 Propagating 000000000000000F assertions for BB01, stmt STMT00011, tree [000062], tree -> 5 Propagating 000000000000002F assertions for BB02, stmt STMT00013, tree [000070], tree -> 0 Propagating 000000000000002F assertions for BB02, stmt STMT00013, tree [000073], tree -> 0 Propagating 000000000000002F assertions for BB02, stmt STMT00013, tree [000074], tree -> 0 Propagating 000000000000002F assertions for BB02, stmt STMT00013, tree [000075], tree -> 7 Propagating 00000000000000AF assertions for BB03, stmt STMT00014, tree [000078], tree -> 0 Propagating 00000000000000AF assertions for BB03, stmt STMT00014, tree [000081], tree -> 0 Propagating 00000000000000AF assertions for BB03, stmt STMT00014, tree [000082], tree -> 0 Propagating 00000000000000AF assertions for BB03, stmt STMT00014, tree [000083], tree -> 9 Propagating 00000000000002AF assertions for BB04, stmt STMT00015, tree [000086], tree -> 0 Propagating 00000000000002AF assertions for BB04, stmt STMT00015, tree [000089], tree -> 0 Propagating 00000000000002AF assertions for BB04, stmt STMT00015, tree [000090], tree -> 0 Propagating 00000000000002AF assertions for BB04, stmt STMT00015, tree [000091], tree -> 0 Propagating 00000000000002AF assertions for BB04, stmt STMT00015, tree [000092], tree -> 0 Propagating 000000000000000F assertions for BB05, stmt STMT00012, tree [000063], tree -> 0 Propagating 000000000000000F assertions for BB05, stmt STMT00012, tree [000065], tree -> 0 Propagating 000000000000000F assertions for BB05, stmt STMT00012, tree [000066], tree -> 0 Propagating 000000000000000F assertions for BB06, stmt STMT00004, tree [000093], tree -> 0 Propagating 000000000000000F assertions for BB06, stmt STMT00004, tree [000018], tree -> 0 *************** In fgDebugCheckBBlist *************** Finishing PHASE Assertion prop *************** Starting PHASE Optimize index checks *************** In OptimizeRangeChecks() Blocks/trees before phase ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target BB02 [0004] 1 BB01 0.25 [000..000)-> BB05 ( cond ) i internal BB03 [0005] 1 BB02 0.25 [000..000)-> BB05 ( cond ) i internal BB04 [0006] 1 BB03 0.50 [000..000)-> BB06 (always) i internal BB05 [0007] 3 BB01,BB02,BB03 0.50 [000..000) i internal label target BB06 [0008] 2 BB04,BB05 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..011) -> BB05 (cond), preds={} succs={BB02,BB05} ***** BB01 STMT00001 (IL 0x000...0x010) N004 ( 7, 5) [000005] -A-XG---R--- * ASG struct (copy) $VN.Void N003 ( 3, 2) [000003] D------N---- +--* LCL_VAR struct(AX) V02 tmp1 N002 ( 3, 2) [000001] ---XG------- \--* IND struct N001 ( 1, 1) [000000] ------------ \--* LCL_VAR byref V00 this u:1 (last use) $80 ***** BB01 STMT00005 (IL 0x000... ???) N007 ( 0, 0) [000115] ------------ * COMMA void $203 N005 ( 0, 0) [000111] ------------ +--* COMMA void $202 N003 ( 0, 0) [000107] ------------ | +--* COMMA void $201 N001 ( 0, 0) [000103] ------------ | | +--* NOP void $200 N002 ( 0, 0) [000106] ------------ | | \--* NOP void $201 N004 ( 0, 0) [000110] ------------ | \--* NOP void $202 N006 ( 0, 0) [000114] ------------ \--* NOP void $203 ***** BB01 STMT00007 (IL 0x000... ???) N003 ( 1, 3) [000038] -A------R--- * ASG float $240 N002 ( 1, 2) [000037] D------N---- +--* LCL_VAR float V08 tmp7 d:1 $240 N001 ( 1, 1) [000036] ------------ \--* CNS_DBL float 0.00000000000000000 $240 ***** BB01 STMT00008 (IL 0x000... ???) N003 ( 1, 3) [000043] -A------R--- * ASG float $240 N002 ( 1, 2) [000042] D------N---- +--* LCL_VAR float V09 tmp8 d:1 $240 N001 ( 1, 1) [000041] ------------ \--* CNS_DBL float 0.00000000000000000 $240 ***** BB01 STMT00009 (IL 0x000... ???) N003 ( 1, 3) [000048] -A------R--- * ASG float $240 N002 ( 1, 2) [000047] D------N---- +--* LCL_VAR float V10 tmp9 d:1 $240 N001 ( 1, 1) [000046] ------------ \--* CNS_DBL float 0.00000000000000000 $240 ***** BB01 STMT00010 (IL 0x000... ???) N003 ( 1, 3) [000053] -A------R--- * ASG float $241 N002 ( 1, 2) [000052] D------N---- +--* LCL_VAR float V11 tmp10 d:1 $241 N001 ( 1, 1) [000051] ------------ \--* CNS_DBL float 1.0000000000000000 $241 ***** BB01 STMT00002 (IL ???... ???) N030 ( 26, 25) [000144] -A---------- * COMMA void $VN.Void N023 ( 20, 19) [000217] -A---------- +--* COMMA void $VN.Void N004 ( 3, 3) [000118] -A------R--- | +--* ASG byref $300 N003 ( 1, 1) [000117] D------N---- | | +--* LCL_VAR byref V20 tmp19 d:1 $300 N002 ( 3, 3) [000116] ------------ | | \--* ADDR byref $300 N001 ( 3, 2) [000031] ----G--N---- | | \--* LCL_VAR struct(AX) V03 tmp2 $102 N022 ( 17, 16) [000216] -A---------- | \--* COMMA void $VN.Void N008 ( 5, 4) [000122] -A---------- | +--* ASG float $VN.Void N006 ( 3, 2) [000120] *------N---- | | +--* IND float $240 N005 ( 1, 1) [000119] ------------ | | | \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 N007 ( 1, 1) [000208] ------------ | | \--* CNS_DBL float 0.00000000000000000 $240 N021 ( 12, 12) [000215] -A---------- | \--* COMMA void $VN.Void N014 ( 6, 6) [000129] -A---------- | +--* ASG float $VN.Void N012 ( 4, 4) [000127] *------N---- | | +--* IND float $240 N011 ( 2, 2) [000126] -------N---- | | | \--* ADD byref $2c1 N009 ( 1, 1) [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N010 ( 1, 1) [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] $380 N013 ( 1, 1) [000209] ------------ | | \--* CNS_DBL float 0.00000000000000000 $240 N020 ( 6, 6) [000136] -A---------- | \--* ASG float $VN.Void N018 ( 4, 4) [000134] *------N---- | +--* IND float $240 N017 ( 2, 2) [000133] -------N---- | | \--* ADD byref $2c2 N015 ( 1, 1) [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N016 ( 1, 1) [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] $381 N019 ( 1, 1) [000210] ------------ | \--* CNS_DBL float 0.00000000000000000 $240 N029 ( 6, 6) [000143] -A---------- \--* ASG float $VN.Void N027 ( 4, 4) [000141] *------N---- +--* IND float $241 N026 ( 2, 2) [000140] -------N---- | \--* ADD byref $2c3 N024 ( 1, 1) [000138] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 (last use) $300 N025 ( 1, 1) [000139] ------------ | \--* CNS_INT long 12 Fseq[W] $382 N028 ( 1, 1) [000211] ------------ \--* CNS_DBL float 1.0000000000000000 $241 ***** BB01 STMT00016 (IL ???... ???) N030 ( 34, 37) [000173] -A---------- * COMMA void N023 ( 26, 28) [000166] -A---------- +--* COMMA void N016 ( 18, 19) [000159] -A---------- | +--* COMMA void N009 ( 10, 10) [000152] -A---------- | | +--* COMMA void N004 ( 3, 3) [000147] -A------R--- | | | +--* ASG byref $302 N003 ( 1, 1) [000146] D------N---- | | | | +--* LCL_VAR byref V21 tmp20 d:1 $302 N002 ( 3, 3) [000145] ------------ | | | | \--* ADDR byref $302 N001 ( 3, 2) [000015] -------N---- | | | | \--* LCL_VAR struct(AX) V02 tmp1 $103 N008 ( 7, 7) [000151] -A------R--- | | | \--* ASG float N007 ( 3, 4) [000148] D------N---- | | | +--* LCL_VAR float V12 tmp11 d:1 N006 ( 3, 2) [000150] n----------- | | | \--* IND float N005 ( 1, 1) [000149] ------------ | | | \--* LCL_VAR byref V21 tmp20 u:1 Zero Fseq[X] $302 N015 ( 8, 9) [000158] -A------R--- | | \--* ASG float N014 ( 3, 4) [000153] D------N---- | | +--* LCL_VAR float V13 tmp12 d:1 N013 ( 4, 4) [000157] n----------- | | \--* IND float N012 ( 2, 2) [000156] -------N---- | | \--* ADD byref $2c5 N010 ( 1, 1) [000154] ------------ | | +--* LCL_VAR byref V21 tmp20 u:1 $302 N011 ( 1, 1) [000155] ------------ | | \--* CNS_INT long 4 Fseq[Y] $380 N022 ( 8, 9) [000165] -A------R--- | \--* ASG float N021 ( 3, 4) [000160] D------N---- | +--* LCL_VAR float V14 tmp13 d:1 N020 ( 4, 4) [000164] n----------- | \--* IND float N019 ( 2, 2) [000163] -------N---- | \--* ADD byref $2c6 N017 ( 1, 1) [000161] ------------ | +--* LCL_VAR byref V21 tmp20 u:1 $302 N018 ( 1, 1) [000162] ------------ | \--* CNS_INT long 8 Fseq[Z] $381 N029 ( 8, 9) [000172] -A------R--- \--* ASG float N028 ( 3, 4) [000167] D------N---- +--* LCL_VAR float V15 tmp14 d:1 N027 ( 4, 4) [000171] n----------- \--* IND float N026 ( 2, 2) [000170] -------N---- \--* ADD byref $2c7 N024 ( 1, 1) [000168] ------------ +--* LCL_VAR byref V21 tmp20 u:1 (last use) $302 N025 ( 1, 1) [000169] ------------ \--* CNS_INT long 12 Fseq[W] $382 ***** BB01 STMT00017 (IL ???... ???) N030 ( 34, 37) [000202] -A--G------- * COMMA void N023 ( 26, 28) [000195] -A--G------- +--* COMMA void N016 ( 18, 19) [000188] -A--G------- | +--* COMMA void N009 ( 10, 10) [000181] -A--G------- | | +--* COMMA void N004 ( 3, 3) [000176] -A--G---R--- | | | +--* ASG byref $304 N003 ( 1, 1) [000175] D------N---- | | | | +--* LCL_VAR byref V22 tmp21 d:1 $304 N002 ( 3, 3) [000174] ----G------- | | | | \--* ADDR byref $304 N001 ( 3, 2) [000013] ----G--N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 $104 N008 ( 7, 7) [000180] -A------R--- | | | \--* ASG float N007 ( 3, 4) [000177] D------N---- | | | +--* LCL_VAR float V16 tmp15 d:1 N006 ( 3, 2) [000179] n----------- | | | \--* IND float N005 ( 1, 1) [000178] ------------ | | | \--* LCL_VAR byref V22 tmp21 u:1 Zero Fseq[X] $304 N015 ( 8, 9) [000187] -A------R--- | | \--* ASG float N014 ( 3, 4) [000182] D------N---- | | +--* LCL_VAR float V17 tmp16 d:1 N013 ( 4, 4) [000186] n----------- | | \--* IND float N012 ( 2, 2) [000185] -------N---- | | \--* ADD byref $2c8 N010 ( 1, 1) [000183] ------------ | | +--* LCL_VAR byref V22 tmp21 u:1 $304 N011 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 4 Fseq[Y] $380 N022 ( 8, 9) [000194] -A------R--- | \--* ASG float N021 ( 3, 4) [000189] D------N---- | +--* LCL_VAR float V18 tmp17 d:1 N020 ( 4, 4) [000193] n----------- | \--* IND float N019 ( 2, 2) [000192] -------N---- | \--* ADD byref $2c9 N017 ( 1, 1) [000190] ------------ | +--* LCL_VAR byref V22 tmp21 u:1 $304 N018 ( 1, 1) [000191] ------------ | \--* CNS_INT long 8 Fseq[Z] $381 N029 ( 8, 9) [000201] -A------R--- \--* ASG float N028 ( 3, 4) [000196] D------N---- +--* LCL_VAR float V19 tmp18 d:1 N027 ( 4, 4) [000200] n----------- \--* IND float N026 ( 2, 2) [000199] -------N---- \--* ADD byref $2ca N024 ( 1, 1) [000197] ------------ +--* LCL_VAR byref V22 tmp21 u:1 (last use) $304 N025 ( 1, 1) [000198] ------------ \--* CNS_INT long 12 Fseq[W] $382 ***** BB01 STMT00011 (IL ???... ???) N004 ( 9, 11) [000062] ------------ * JTRUE void N003 ( 7, 9) [000061] N------N-U-- \--* NE int N001 ( 3, 4) [000057] ------------ +--* LCL_VAR float V12 tmp11 u:1 (last use) N002 ( 3, 4) [000060] ------------ \--* LCL_VAR float V16 tmp15 u:1 (last use) ------------ BB02 [000..000) -> BB05 (cond), preds={BB01} succs={BB03,BB05} ***** BB02 STMT00013 (IL ???... ???) N004 ( 9, 11) [000075] ------------ * JTRUE void N003 ( 7, 9) [000074] N------N-U-- \--* NE int N001 ( 3, 4) [000070] ------------ +--* LCL_VAR float V13 tmp12 u:1 (last use) N002 ( 3, 4) [000073] ------------ \--* LCL_VAR float V17 tmp16 u:1 (last use) ------------ BB03 [000..000) -> BB05 (cond), preds={BB02} succs={BB04,BB05} ***** BB03 STMT00014 (IL ???... ???) N004 ( 9, 11) [000083] ------------ * JTRUE void N003 ( 7, 9) [000082] N------N-U-- \--* NE int N001 ( 3, 4) [000078] ------------ +--* LCL_VAR float V14 tmp13 u:1 (last use) N002 ( 3, 4) [000081] ------------ \--* LCL_VAR float V18 tmp17 u:1 (last use) ------------ BB04 [000..000) -> BB06 (always), preds={BB03} succs={BB06} ***** BB04 STMT00015 (IL ???... ???) N005 ( 14, 12) [000092] -A------R--- * ASG bool N004 ( 3, 2) [000091] D------N---- +--* LCL_VAR int V05 tmp4 d:3 N003 ( 10, 9) [000090] ------------ \--* EQ int N001 ( 3, 4) [000086] ------------ +--* LCL_VAR float V15 tmp14 u:1 (last use) N002 ( 3, 4) [000089] ------------ \--* LCL_VAR float V19 tmp18 u:1 (last use) ------------ BB05 [000..000), preds={BB01,BB02,BB03} succs={BB06} ***** BB05 STMT00012 (IL ???... ???) N003 ( 5, 4) [000066] -A------R--- * ASG bool $40 N002 ( 3, 2) [000065] D------N---- +--* LCL_VAR int V05 tmp4 d:2 $40 N001 ( 1, 1) [000063] ------------ \--* CNS_INT int 0 $40 ------------ BB06 [???..???) (return), preds={BB04,BB05} succs={} ***** BB06 STMT00018 (IL ???... ???) N005 ( 0, 0) [000205] -A------R--- * ASG bool N004 ( 0, 0) [000203] D------N---- +--* LCL_VAR bool V05 tmp4 d:1 N003 ( 0, 0) [000204] ------------ \--* PHI bool N001 ( 0, 0) [000207] ------------ pred BB04 +--* PHI_ARG bool V05 tmp4 u:3 N002 ( 0, 0) [000206] ------------ pred BB05 \--* PHI_ARG bool V05 tmp4 u:2 $40 ***** BB06 STMT00004 (IL ???... ???) N002 ( 5, 4) [000018] ------------ * RETURN int $442 N001 ( 4, 3) [000093] ------------ \--* LCL_VAR bool V05 tmp4 u:1 (last use) $4c0 ------------------------------------------------------------------------------------------------------------------- *************** Finishing PHASE Optimize index checks *************** Starting PHASE Insert GC Polls *************** Finishing PHASE Insert GC Polls [no changes] *************** Starting PHASE Determine first cold block *************** In fgDetermineFirstColdBlock() No procedure splitting will be done for this method *************** Finishing PHASE Determine first cold block Trees before Rationalize IR ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target BB02 [0004] 1 BB01 0.25 [000..000)-> BB05 ( cond ) i internal BB03 [0005] 1 BB02 0.25 [000..000)-> BB05 ( cond ) i internal BB04 [0006] 1 BB03 0.50 [000..000)-> BB06 (always) i internal BB05 [0007] 3 BB01,BB02,BB03 0.50 [000..000) i internal label target BB06 [0008] 2 BB04,BB05 1 [???..???) (return) internal label target ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..011) -> BB05 (cond), preds={} succs={BB02,BB05} ***** BB01 STMT00001 (IL 0x000...0x010) N004 ( 7, 5) [000005] -A-XG---R--- * ASG struct (copy) $VN.Void N003 ( 3, 2) [000003] D------N---- +--* LCL_VAR struct(AX) V02 tmp1 N002 ( 3, 2) [000001] ---XG------- \--* IND struct N001 ( 1, 1) [000000] ------------ \--* LCL_VAR byref V00 this u:1 (last use) $80 ***** BB01 STMT00005 (IL 0x000... ???) N007 ( 0, 0) [000115] ------------ * COMMA void $203 N005 ( 0, 0) [000111] ------------ +--* COMMA void $202 N003 ( 0, 0) [000107] ------------ | +--* COMMA void $201 N001 ( 0, 0) [000103] ------------ | | +--* NOP void $200 N002 ( 0, 0) [000106] ------------ | | \--* NOP void $201 N004 ( 0, 0) [000110] ------------ | \--* NOP void $202 N006 ( 0, 0) [000114] ------------ \--* NOP void $203 ***** BB01 STMT00007 (IL 0x000... ???) N003 ( 1, 3) [000038] -A------R--- * ASG float $240 N002 ( 1, 2) [000037] D------N---- +--* LCL_VAR float V08 tmp7 d:1 $240 N001 ( 1, 1) [000036] ------------ \--* CNS_DBL float 0.00000000000000000 $240 ***** BB01 STMT00008 (IL 0x000... ???) N003 ( 1, 3) [000043] -A------R--- * ASG float $240 N002 ( 1, 2) [000042] D------N---- +--* LCL_VAR float V09 tmp8 d:1 $240 N001 ( 1, 1) [000041] ------------ \--* CNS_DBL float 0.00000000000000000 $240 ***** BB01 STMT00009 (IL 0x000... ???) N003 ( 1, 3) [000048] -A------R--- * ASG float $240 N002 ( 1, 2) [000047] D------N---- +--* LCL_VAR float V10 tmp9 d:1 $240 N001 ( 1, 1) [000046] ------------ \--* CNS_DBL float 0.00000000000000000 $240 ***** BB01 STMT00010 (IL 0x000... ???) N003 ( 1, 3) [000053] -A------R--- * ASG float $241 N002 ( 1, 2) [000052] D------N---- +--* LCL_VAR float V11 tmp10 d:1 $241 N001 ( 1, 1) [000051] ------------ \--* CNS_DBL float 1.0000000000000000 $241 ***** BB01 STMT00002 (IL ???... ???) N030 ( 26, 25) [000144] -A---------- * COMMA void $VN.Void N023 ( 20, 19) [000217] -A---------- +--* COMMA void $VN.Void N004 ( 3, 3) [000118] -A------R--- | +--* ASG byref $300 N003 ( 1, 1) [000117] D------N---- | | +--* LCL_VAR byref V20 tmp19 d:1 $300 N002 ( 3, 3) [000116] ------------ | | \--* ADDR byref $300 N001 ( 3, 2) [000031] ----G--N---- | | \--* LCL_VAR struct(AX) V03 tmp2 $102 N022 ( 17, 16) [000216] -A---------- | \--* COMMA void $VN.Void N008 ( 5, 4) [000122] -A---------- | +--* ASG float $VN.Void N006 ( 3, 2) [000120] *------N---- | | +--* IND float $240 N005 ( 1, 1) [000119] ------------ | | | \--* LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 N007 ( 1, 1) [000208] ------------ | | \--* CNS_DBL float 0.00000000000000000 $240 N021 ( 12, 12) [000215] -A---------- | \--* COMMA void $VN.Void N014 ( 6, 6) [000129] -A---------- | +--* ASG float $VN.Void N012 ( 4, 4) [000127] *------N---- | | +--* IND float $240 N011 ( 2, 2) [000126] -------N---- | | | \--* ADD byref $2c1 N009 ( 1, 1) [000124] ------------ | | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N010 ( 1, 1) [000125] ------------ | | | \--* CNS_INT long 4 Fseq[Y] $380 N013 ( 1, 1) [000209] ------------ | | \--* CNS_DBL float 0.00000000000000000 $240 N020 ( 6, 6) [000136] -A---------- | \--* ASG float $VN.Void N018 ( 4, 4) [000134] *------N---- | +--* IND float $240 N017 ( 2, 2) [000133] -------N---- | | \--* ADD byref $2c2 N015 ( 1, 1) [000131] ------------ | | +--* LCL_VAR byref V20 tmp19 u:1 $300 N016 ( 1, 1) [000132] ------------ | | \--* CNS_INT long 8 Fseq[Z] $381 N019 ( 1, 1) [000210] ------------ | \--* CNS_DBL float 0.00000000000000000 $240 N029 ( 6, 6) [000143] -A---------- \--* ASG float $VN.Void N027 ( 4, 4) [000141] *------N---- +--* IND float $241 N026 ( 2, 2) [000140] -------N---- | \--* ADD byref $2c3 N024 ( 1, 1) [000138] ------------ | +--* LCL_VAR byref V20 tmp19 u:1 (last use) $300 N025 ( 1, 1) [000139] ------------ | \--* CNS_INT long 12 Fseq[W] $382 N028 ( 1, 1) [000211] ------------ \--* CNS_DBL float 1.0000000000000000 $241 ***** BB01 STMT00016 (IL ???... ???) N030 ( 34, 37) [000173] -A---------- * COMMA void N023 ( 26, 28) [000166] -A---------- +--* COMMA void N016 ( 18, 19) [000159] -A---------- | +--* COMMA void N009 ( 10, 10) [000152] -A---------- | | +--* COMMA void N004 ( 3, 3) [000147] -A------R--- | | | +--* ASG byref $302 N003 ( 1, 1) [000146] D------N---- | | | | +--* LCL_VAR byref V21 tmp20 d:1 $302 N002 ( 3, 3) [000145] ------------ | | | | \--* ADDR byref $302 N001 ( 3, 2) [000015] -------N---- | | | | \--* LCL_VAR struct(AX) V02 tmp1 $103 N008 ( 7, 7) [000151] -A------R--- | | | \--* ASG float N007 ( 3, 4) [000148] D------N---- | | | +--* LCL_VAR float V12 tmp11 d:1 N006 ( 3, 2) [000150] n----------- | | | \--* IND float N005 ( 1, 1) [000149] ------------ | | | \--* LCL_VAR byref V21 tmp20 u:1 Zero Fseq[X] $302 N015 ( 8, 9) [000158] -A------R--- | | \--* ASG float N014 ( 3, 4) [000153] D------N---- | | +--* LCL_VAR float V13 tmp12 d:1 N013 ( 4, 4) [000157] n----------- | | \--* IND float N012 ( 2, 2) [000156] -------N---- | | \--* ADD byref $2c5 N010 ( 1, 1) [000154] ------------ | | +--* LCL_VAR byref V21 tmp20 u:1 $302 N011 ( 1, 1) [000155] ------------ | | \--* CNS_INT long 4 Fseq[Y] $380 N022 ( 8, 9) [000165] -A------R--- | \--* ASG float N021 ( 3, 4) [000160] D------N---- | +--* LCL_VAR float V14 tmp13 d:1 N020 ( 4, 4) [000164] n----------- | \--* IND float N019 ( 2, 2) [000163] -------N---- | \--* ADD byref $2c6 N017 ( 1, 1) [000161] ------------ | +--* LCL_VAR byref V21 tmp20 u:1 $302 N018 ( 1, 1) [000162] ------------ | \--* CNS_INT long 8 Fseq[Z] $381 N029 ( 8, 9) [000172] -A------R--- \--* ASG float N028 ( 3, 4) [000167] D------N---- +--* LCL_VAR float V15 tmp14 d:1 N027 ( 4, 4) [000171] n----------- \--* IND float N026 ( 2, 2) [000170] -------N---- \--* ADD byref $2c7 N024 ( 1, 1) [000168] ------------ +--* LCL_VAR byref V21 tmp20 u:1 (last use) $302 N025 ( 1, 1) [000169] ------------ \--* CNS_INT long 12 Fseq[W] $382 ***** BB01 STMT00017 (IL ???... ???) N030 ( 34, 37) [000202] -A--G------- * COMMA void N023 ( 26, 28) [000195] -A--G------- +--* COMMA void N016 ( 18, 19) [000188] -A--G------- | +--* COMMA void N009 ( 10, 10) [000181] -A--G------- | | +--* COMMA void N004 ( 3, 3) [000176] -A--G---R--- | | | +--* ASG byref $304 N003 ( 1, 1) [000175] D------N---- | | | | +--* LCL_VAR byref V22 tmp21 d:1 $304 N002 ( 3, 3) [000174] ----G------- | | | | \--* ADDR byref $304 N001 ( 3, 2) [000013] ----G--N---- | | | | \--* LCL_VAR struct(AX) V03 tmp2 $104 N008 ( 7, 7) [000180] -A------R--- | | | \--* ASG float N007 ( 3, 4) [000177] D------N---- | | | +--* LCL_VAR float V16 tmp15 d:1 N006 ( 3, 2) [000179] n----------- | | | \--* IND float N005 ( 1, 1) [000178] ------------ | | | \--* LCL_VAR byref V22 tmp21 u:1 Zero Fseq[X] $304 N015 ( 8, 9) [000187] -A------R--- | | \--* ASG float N014 ( 3, 4) [000182] D------N---- | | +--* LCL_VAR float V17 tmp16 d:1 N013 ( 4, 4) [000186] n----------- | | \--* IND float N012 ( 2, 2) [000185] -------N---- | | \--* ADD byref $2c8 N010 ( 1, 1) [000183] ------------ | | +--* LCL_VAR byref V22 tmp21 u:1 $304 N011 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 4 Fseq[Y] $380 N022 ( 8, 9) [000194] -A------R--- | \--* ASG float N021 ( 3, 4) [000189] D------N---- | +--* LCL_VAR float V18 tmp17 d:1 N020 ( 4, 4) [000193] n----------- | \--* IND float N019 ( 2, 2) [000192] -------N---- | \--* ADD byref $2c9 N017 ( 1, 1) [000190] ------------ | +--* LCL_VAR byref V22 tmp21 u:1 $304 N018 ( 1, 1) [000191] ------------ | \--* CNS_INT long 8 Fseq[Z] $381 N029 ( 8, 9) [000201] -A------R--- \--* ASG float N028 ( 3, 4) [000196] D------N---- +--* LCL_VAR float V19 tmp18 d:1 N027 ( 4, 4) [000200] n----------- \--* IND float N026 ( 2, 2) [000199] -------N---- \--* ADD byref $2ca N024 ( 1, 1) [000197] ------------ +--* LCL_VAR byref V22 tmp21 u:1 (last use) $304 N025 ( 1, 1) [000198] ------------ \--* CNS_INT long 12 Fseq[W] $382 ***** BB01 STMT00011 (IL ???... ???) N004 ( 9, 11) [000062] ------------ * JTRUE void N003 ( 7, 9) [000061] N------N-U-- \--* NE int N001 ( 3, 4) [000057] ------------ +--* LCL_VAR float V12 tmp11 u:1 (last use) N002 ( 3, 4) [000060] ------------ \--* LCL_VAR float V16 tmp15 u:1 (last use) ------------ BB02 [000..000) -> BB05 (cond), preds={BB01} succs={BB03,BB05} ***** BB02 STMT00013 (IL ???... ???) N004 ( 9, 11) [000075] ------------ * JTRUE void N003 ( 7, 9) [000074] N------N-U-- \--* NE int N001 ( 3, 4) [000070] ------------ +--* LCL_VAR float V13 tmp12 u:1 (last use) N002 ( 3, 4) [000073] ------------ \--* LCL_VAR float V17 tmp16 u:1 (last use) ------------ BB03 [000..000) -> BB05 (cond), preds={BB02} succs={BB04,BB05} ***** BB03 STMT00014 (IL ???... ???) N004 ( 9, 11) [000083] ------------ * JTRUE void N003 ( 7, 9) [000082] N------N-U-- \--* NE int N001 ( 3, 4) [000078] ------------ +--* LCL_VAR float V14 tmp13 u:1 (last use) N002 ( 3, 4) [000081] ------------ \--* LCL_VAR float V18 tmp17 u:1 (last use) ------------ BB04 [000..000) -> BB06 (always), preds={BB03} succs={BB06} ***** BB04 STMT00015 (IL ???... ???) N005 ( 14, 12) [000092] -A------R--- * ASG bool N004 ( 3, 2) [000091] D------N---- +--* LCL_VAR int V05 tmp4 d:3 N003 ( 10, 9) [000090] ------------ \--* EQ int N001 ( 3, 4) [000086] ------------ +--* LCL_VAR float V15 tmp14 u:1 (last use) N002 ( 3, 4) [000089] ------------ \--* LCL_VAR float V19 tmp18 u:1 (last use) ------------ BB05 [000..000), preds={BB01,BB02,BB03} succs={BB06} ***** BB05 STMT00012 (IL ???... ???) N003 ( 5, 4) [000066] -A------R--- * ASG bool $40 N002 ( 3, 2) [000065] D------N---- +--* LCL_VAR int V05 tmp4 d:2 $40 N001 ( 1, 1) [000063] ------------ \--* CNS_INT int 0 $40 ------------ BB06 [???..???) (return), preds={BB04,BB05} succs={} ***** BB06 STMT00018 (IL ???... ???) N005 ( 0, 0) [000205] -A------R--- * ASG bool N004 ( 0, 0) [000203] D------N---- +--* LCL_VAR bool V05 tmp4 d:1 N003 ( 0, 0) [000204] ------------ \--* PHI bool N001 ( 0, 0) [000207] ------------ pred BB04 +--* PHI_ARG bool V05 tmp4 u:3 N002 ( 0, 0) [000206] ------------ pred BB05 \--* PHI_ARG bool V05 tmp4 u:2 $40 ***** BB06 STMT00004 (IL ???... ???) N002 ( 5, 4) [000018] ------------ * RETURN int $442 N001 ( 4, 3) [000093] ------------ \--* LCL_VAR bool V05 tmp4 u:1 (last use) $4c0 ------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Rationalize IR rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N004 ( 7, 5) [000005] DA-XG------- * STORE_LCL_VAR struct(AX) V02 tmp1 rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N003 ( 1, 3) [000038] DA---------- * STORE_LCL_VAR float V08 tmp7 d:1 rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N003 ( 1, 3) [000043] DA---------- * STORE_LCL_VAR float V09 tmp8 d:1 rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N003 ( 1, 3) [000048] DA---------- * STORE_LCL_VAR float V10 tmp9 d:1 rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N003 ( 1, 3) [000053] DA---------- * STORE_LCL_VAR float V11 tmp10 d:1 Rewriting GT_ADDR(GT_LCL_VAR) to GT_LCL_VAR_ADDR: N001 ( 3, 2) [000031] -------N---- t31 = LCL_VAR_ADDR byref V03 tmp2 rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N004 ( 3, 3) [000118] DA---------- * STORE_LCL_VAR byref V20 tmp19 d:1 Rewriting GT_ADDR(GT_LCL_VAR) to GT_LCL_VAR_ADDR: N001 ( 3, 2) [000015] -------N---- t15 = LCL_VAR_ADDR byref V02 tmp1 rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N004 ( 3, 3) [000147] DA---------- * STORE_LCL_VAR byref V21 tmp20 d:1 rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N008 ( 7, 7) [000151] DA---------- * STORE_LCL_VAR float V12 tmp11 d:1 rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N015 ( 8, 9) [000158] DA---------- * STORE_LCL_VAR float V13 tmp12 d:1 rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N022 ( 8, 9) [000165] DA---------- * STORE_LCL_VAR float V14 tmp13 d:1 rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N029 ( 8, 9) [000172] DA---------- * STORE_LCL_VAR float V15 tmp14 d:1 Rewriting GT_ADDR(GT_LCL_VAR) to GT_LCL_VAR_ADDR: N001 ( 3, 2) [000013] ----G--N---- t13 = LCL_VAR_ADDR byref V03 tmp2 rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N004 ( 3, 3) [000176] DA--G------- * STORE_LCL_VAR byref V22 tmp21 d:1 rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N008 ( 7, 7) [000180] DA---------- * STORE_LCL_VAR float V16 tmp15 d:1 rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N015 ( 8, 9) [000187] DA---------- * STORE_LCL_VAR float V17 tmp16 d:1 rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N022 ( 8, 9) [000194] DA---------- * STORE_LCL_VAR float V18 tmp17 d:1 rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N029 ( 8, 9) [000201] DA---------- * STORE_LCL_VAR float V19 tmp18 d:1 rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N005 ( 14, 12) [000092] DA---------- * STORE_LCL_VAR int V05 tmp4 d:3 rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N003 ( 5, 4) [000066] DA---------- * STORE_LCL_VAR int V05 tmp4 d:2 rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N005 ( 0, 0) [000205] DA---------- * STORE_LCL_VAR bool V05 tmp4 d:1 *************** Finishing PHASE Rationalize IR Trees after Rationalize IR ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target LIR BB02 [0004] 1 BB01 0.25 [000..000)-> BB05 ( cond ) i internal LIR BB03 [0005] 1 BB02 0.25 [000..000)-> BB05 ( cond ) i internal LIR BB04 [0006] 1 BB03 0.50 [000..000)-> BB06 (always) i internal LIR BB05 [0007] 3 BB01,BB02,BB03 0.50 [000..000) i internal label target LIR BB06 [0008] 2 BB04,BB05 1 [???..???) (return) internal label target LIR ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..011) -> BB05 (cond), preds={} succs={BB02,BB05} [000218] ------------ IL_OFFSET void IL offset: 0x0 N001 ( 1, 1) [000000] ------------ t0 = LCL_VAR byref V00 this u:1 (last use) $80 /--* t0 byref N002 ( 3, 2) [000001] ---XG------- t1 = * IND struct /--* t1 struct N004 ( 7, 5) [000005] DA-XG------- * STORE_LCL_VAR struct(AX) V02 tmp1 [000219] ------------ IL_OFFSET void IL offset: 0x0 [000220] ------------ IL_OFFSET void IL offset: 0x0 N001 ( 1, 1) [000036] ------------ t36 = CNS_DBL float 0.00000000000000000 $240 /--* t36 float N003 ( 1, 3) [000038] DA---------- * STORE_LCL_VAR float V08 tmp7 d:1 [000221] ------------ IL_OFFSET void IL offset: 0x0 N001 ( 1, 1) [000041] ------------ t41 = CNS_DBL float 0.00000000000000000 $240 /--* t41 float N003 ( 1, 3) [000043] DA---------- * STORE_LCL_VAR float V09 tmp8 d:1 [000222] ------------ IL_OFFSET void IL offset: 0x0 N001 ( 1, 1) [000046] ------------ t46 = CNS_DBL float 0.00000000000000000 $240 /--* t46 float N003 ( 1, 3) [000048] DA---------- * STORE_LCL_VAR float V10 tmp9 d:1 [000223] ------------ IL_OFFSET void IL offset: 0x0 N001 ( 1, 1) [000051] ------------ t51 = CNS_DBL float 1.0000000000000000 $241 /--* t51 float N003 ( 1, 3) [000053] DA---------- * STORE_LCL_VAR float V11 tmp10 d:1 N001 ( 3, 2) [000031] -------N---- t31 = LCL_VAR_ADDR byref V03 tmp2 /--* t31 byref N004 ( 3, 3) [000118] DA---------- * STORE_LCL_VAR byref V20 tmp19 d:1 N005 ( 1, 1) [000119] ------------ t119 = LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 N007 ( 1, 1) [000208] ------------ t208 = CNS_DBL float 0.00000000000000000 $240 /--* t119 byref +--* t208 float [000224] -A---------- * STOREIND float N009 ( 1, 1) [000124] ------------ t124 = LCL_VAR byref V20 tmp19 u:1 $300 N010 ( 1, 1) [000125] ------------ t125 = CNS_INT long 4 Fseq[Y] $380 /--* t124 byref +--* t125 long N011 ( 2, 2) [000126] -------N---- t126 = * ADD byref $2c1 N013 ( 1, 1) [000209] ------------ t209 = CNS_DBL float 0.00000000000000000 $240 /--* t126 byref +--* t209 float [000225] -A---------- * STOREIND float N015 ( 1, 1) [000131] ------------ t131 = LCL_VAR byref V20 tmp19 u:1 $300 N016 ( 1, 1) [000132] ------------ t132 = CNS_INT long 8 Fseq[Z] $381 /--* t131 byref +--* t132 long N017 ( 2, 2) [000133] -------N---- t133 = * ADD byref $2c2 N019 ( 1, 1) [000210] ------------ t210 = CNS_DBL float 0.00000000000000000 $240 /--* t133 byref +--* t210 float [000226] -A---------- * STOREIND float N024 ( 1, 1) [000138] ------------ t138 = LCL_VAR byref V20 tmp19 u:1 (last use) $300 N025 ( 1, 1) [000139] ------------ t139 = CNS_INT long 12 Fseq[W] $382 /--* t138 byref +--* t139 long N026 ( 2, 2) [000140] -------N---- t140 = * ADD byref $2c3 N028 ( 1, 1) [000211] ------------ t211 = CNS_DBL float 1.0000000000000000 $241 /--* t140 byref +--* t211 float [000227] -A---------- * STOREIND float N001 ( 3, 2) [000015] -------N---- t15 = LCL_VAR_ADDR byref V02 tmp1 /--* t15 byref N004 ( 3, 3) [000147] DA---------- * STORE_LCL_VAR byref V21 tmp20 d:1 N005 ( 1, 1) [000149] ------------ t149 = LCL_VAR byref V21 tmp20 u:1 Zero Fseq[X] $302 /--* t149 byref N006 ( 3, 2) [000150] n----------- t150 = * IND float /--* t150 float N008 ( 7, 7) [000151] DA---------- * STORE_LCL_VAR float V12 tmp11 d:1 N010 ( 1, 1) [000154] ------------ t154 = LCL_VAR byref V21 tmp20 u:1 $302 N011 ( 1, 1) [000155] ------------ t155 = CNS_INT long 4 Fseq[Y] $380 /--* t154 byref +--* t155 long N012 ( 2, 2) [000156] -------N---- t156 = * ADD byref $2c5 /--* t156 byref N013 ( 4, 4) [000157] n----------- t157 = * IND float /--* t157 float N015 ( 8, 9) [000158] DA---------- * STORE_LCL_VAR float V13 tmp12 d:1 N017 ( 1, 1) [000161] ------------ t161 = LCL_VAR byref V21 tmp20 u:1 $302 N018 ( 1, 1) [000162] ------------ t162 = CNS_INT long 8 Fseq[Z] $381 /--* t161 byref +--* t162 long N019 ( 2, 2) [000163] -------N---- t163 = * ADD byref $2c6 /--* t163 byref N020 ( 4, 4) [000164] n----------- t164 = * IND float /--* t164 float N022 ( 8, 9) [000165] DA---------- * STORE_LCL_VAR float V14 tmp13 d:1 N024 ( 1, 1) [000168] ------------ t168 = LCL_VAR byref V21 tmp20 u:1 (last use) $302 N025 ( 1, 1) [000169] ------------ t169 = CNS_INT long 12 Fseq[W] $382 /--* t168 byref +--* t169 long N026 ( 2, 2) [000170] -------N---- t170 = * ADD byref $2c7 /--* t170 byref N027 ( 4, 4) [000171] n----------- t171 = * IND float /--* t171 float N029 ( 8, 9) [000172] DA---------- * STORE_LCL_VAR float V15 tmp14 d:1 N001 ( 3, 2) [000013] ----G--N---- t13 = LCL_VAR_ADDR byref V03 tmp2 /--* t13 byref N004 ( 3, 3) [000176] DA--G------- * STORE_LCL_VAR byref V22 tmp21 d:1 N005 ( 1, 1) [000178] ------------ t178 = LCL_VAR byref V22 tmp21 u:1 Zero Fseq[X] $304 /--* t178 byref N006 ( 3, 2) [000179] n----------- t179 = * IND float /--* t179 float N008 ( 7, 7) [000180] DA---------- * STORE_LCL_VAR float V16 tmp15 d:1 N010 ( 1, 1) [000183] ------------ t183 = LCL_VAR byref V22 tmp21 u:1 $304 N011 ( 1, 1) [000184] ------------ t184 = CNS_INT long 4 Fseq[Y] $380 /--* t183 byref +--* t184 long N012 ( 2, 2) [000185] -------N---- t185 = * ADD byref $2c8 /--* t185 byref N013 ( 4, 4) [000186] n----------- t186 = * IND float /--* t186 float N015 ( 8, 9) [000187] DA---------- * STORE_LCL_VAR float V17 tmp16 d:1 N017 ( 1, 1) [000190] ------------ t190 = LCL_VAR byref V22 tmp21 u:1 $304 N018 ( 1, 1) [000191] ------------ t191 = CNS_INT long 8 Fseq[Z] $381 /--* t190 byref +--* t191 long N019 ( 2, 2) [000192] -------N---- t192 = * ADD byref $2c9 /--* t192 byref N020 ( 4, 4) [000193] n----------- t193 = * IND float /--* t193 float N022 ( 8, 9) [000194] DA---------- * STORE_LCL_VAR float V18 tmp17 d:1 N024 ( 1, 1) [000197] ------------ t197 = LCL_VAR byref V22 tmp21 u:1 (last use) $304 N025 ( 1, 1) [000198] ------------ t198 = CNS_INT long 12 Fseq[W] $382 /--* t197 byref +--* t198 long N026 ( 2, 2) [000199] -------N---- t199 = * ADD byref $2ca /--* t199 byref N027 ( 4, 4) [000200] n----------- t200 = * IND float /--* t200 float N029 ( 8, 9) [000201] DA---------- * STORE_LCL_VAR float V19 tmp18 d:1 N001 ( 3, 4) [000057] ------------ t57 = LCL_VAR float V12 tmp11 u:1 (last use) N002 ( 3, 4) [000060] ------------ t60 = LCL_VAR float V16 tmp15 u:1 (last use) /--* t57 float +--* t60 float N003 ( 7, 9) [000061] N------N-U-- t61 = * NE int /--* t61 int N004 ( 9, 11) [000062] ------------ * JTRUE void ------------ BB02 [000..000) -> BB05 (cond), preds={BB01} succs={BB03,BB05} N001 ( 3, 4) [000070] ------------ t70 = LCL_VAR float V13 tmp12 u:1 (last use) N002 ( 3, 4) [000073] ------------ t73 = LCL_VAR float V17 tmp16 u:1 (last use) /--* t70 float +--* t73 float N003 ( 7, 9) [000074] N------N-U-- t74 = * NE int /--* t74 int N004 ( 9, 11) [000075] ------------ * JTRUE void ------------ BB03 [000..000) -> BB05 (cond), preds={BB02} succs={BB04,BB05} N001 ( 3, 4) [000078] ------------ t78 = LCL_VAR float V14 tmp13 u:1 (last use) N002 ( 3, 4) [000081] ------------ t81 = LCL_VAR float V18 tmp17 u:1 (last use) /--* t78 float +--* t81 float N003 ( 7, 9) [000082] N------N-U-- t82 = * NE int /--* t82 int N004 ( 9, 11) [000083] ------------ * JTRUE void ------------ BB04 [000..000) -> BB06 (always), preds={BB03} succs={BB06} N001 ( 3, 4) [000086] ------------ t86 = LCL_VAR float V15 tmp14 u:1 (last use) N002 ( 3, 4) [000089] ------------ t89 = LCL_VAR float V19 tmp18 u:1 (last use) /--* t86 float +--* t89 float N003 ( 10, 9) [000090] ------------ t90 = * EQ int /--* t90 int N005 ( 14, 12) [000092] DA---------- * STORE_LCL_VAR int V05 tmp4 d:3 ------------ BB05 [000..000), preds={BB01,BB02,BB03} succs={BB06} N001 ( 1, 1) [000063] ------------ t63 = CNS_INT int 0 $40 /--* t63 int N003 ( 5, 4) [000066] DA---------- * STORE_LCL_VAR int V05 tmp4 d:2 ------------ BB06 [???..???) (return), preds={BB04,BB05} succs={} N001 ( 0, 0) [000207] ------------ t207 = PHI_ARG bool V05 tmp4 u:3 N002 ( 0, 0) [000206] ------------ t206 = PHI_ARG bool V05 tmp4 u:2 $40 /--* t207 bool +--* t206 bool N003 ( 0, 0) [000204] ------------ t204 = * PHI bool /--* t204 bool N005 ( 0, 0) [000205] DA---------- * STORE_LCL_VAR bool V05 tmp4 d:1 N001 ( 4, 3) [000093] ------------ t93 = LCL_VAR bool V05 tmp4 u:1 (last use) $4c0 /--* t93 bool N002 ( 5, 4) [000018] ------------ * RETURN int $442 ------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist *************** Starting PHASE Do 'simple' lowering *************** Finishing PHASE Do 'simple' lowering *************** In fgDebugCheckBBlist Trees before Lowering nodeinfo ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target LIR BB02 [0004] 1 BB01 0.25 [000..000)-> BB05 ( cond ) i internal LIR BB03 [0005] 1 BB02 0.25 [000..000)-> BB05 ( cond ) i internal LIR BB04 [0006] 1 BB03 0.50 [000..000)-> BB06 (always) i internal LIR BB05 [0007] 3 BB01,BB02,BB03 0.50 [000..000) i internal label target LIR BB06 [0008] 2 BB04,BB05 1 [???..???) (return) internal label target LIR ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..011) -> BB05 (cond), preds={} succs={BB02,BB05} [000218] ------------ IL_OFFSET void IL offset: 0x0 N001 ( 1, 1) [000000] ------------ t0 = LCL_VAR byref V00 this u:1 (last use) $80 /--* t0 byref N002 ( 3, 2) [000001] ---XG------- t1 = * IND struct /--* t1 struct N004 ( 7, 5) [000005] DA-XG------- * STORE_LCL_VAR struct(AX) V02 tmp1 [000219] ------------ IL_OFFSET void IL offset: 0x0 [000220] ------------ IL_OFFSET void IL offset: 0x0 N001 ( 1, 1) [000036] ------------ t36 = CNS_DBL float 0.00000000000000000 $240 /--* t36 float N003 ( 1, 3) [000038] DA---------- * STORE_LCL_VAR float V08 tmp7 d:1 [000221] ------------ IL_OFFSET void IL offset: 0x0 N001 ( 1, 1) [000041] ------------ t41 = CNS_DBL float 0.00000000000000000 $240 /--* t41 float N003 ( 1, 3) [000043] DA---------- * STORE_LCL_VAR float V09 tmp8 d:1 [000222] ------------ IL_OFFSET void IL offset: 0x0 N001 ( 1, 1) [000046] ------------ t46 = CNS_DBL float 0.00000000000000000 $240 /--* t46 float N003 ( 1, 3) [000048] DA---------- * STORE_LCL_VAR float V10 tmp9 d:1 [000223] ------------ IL_OFFSET void IL offset: 0x0 N001 ( 1, 1) [000051] ------------ t51 = CNS_DBL float 1.0000000000000000 $241 /--* t51 float N003 ( 1, 3) [000053] DA---------- * STORE_LCL_VAR float V11 tmp10 d:1 N001 ( 3, 2) [000031] -------N---- t31 = LCL_VAR_ADDR byref V03 tmp2 /--* t31 byref N004 ( 3, 3) [000118] DA---------- * STORE_LCL_VAR byref V20 tmp19 d:1 N005 ( 1, 1) [000119] ------------ t119 = LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 N007 ( 1, 1) [000208] ------------ t208 = CNS_DBL float 0.00000000000000000 $240 /--* t119 byref +--* t208 float [000224] -A---------- * STOREIND float N009 ( 1, 1) [000124] ------------ t124 = LCL_VAR byref V20 tmp19 u:1 $300 N010 ( 1, 1) [000125] ------------ t125 = CNS_INT long 4 Fseq[Y] $380 /--* t124 byref +--* t125 long N011 ( 2, 2) [000126] -------N---- t126 = * ADD byref $2c1 N013 ( 1, 1) [000209] ------------ t209 = CNS_DBL float 0.00000000000000000 $240 /--* t126 byref +--* t209 float [000225] -A---------- * STOREIND float N015 ( 1, 1) [000131] ------------ t131 = LCL_VAR byref V20 tmp19 u:1 $300 N016 ( 1, 1) [000132] ------------ t132 = CNS_INT long 8 Fseq[Z] $381 /--* t131 byref +--* t132 long N017 ( 2, 2) [000133] -------N---- t133 = * ADD byref $2c2 N019 ( 1, 1) [000210] ------------ t210 = CNS_DBL float 0.00000000000000000 $240 /--* t133 byref +--* t210 float [000226] -A---------- * STOREIND float N024 ( 1, 1) [000138] ------------ t138 = LCL_VAR byref V20 tmp19 u:1 (last use) $300 N025 ( 1, 1) [000139] ------------ t139 = CNS_INT long 12 Fseq[W] $382 /--* t138 byref +--* t139 long N026 ( 2, 2) [000140] -------N---- t140 = * ADD byref $2c3 N028 ( 1, 1) [000211] ------------ t211 = CNS_DBL float 1.0000000000000000 $241 /--* t140 byref +--* t211 float [000227] -A---------- * STOREIND float N001 ( 3, 2) [000015] -------N---- t15 = LCL_VAR_ADDR byref V02 tmp1 /--* t15 byref N004 ( 3, 3) [000147] DA---------- * STORE_LCL_VAR byref V21 tmp20 d:1 N005 ( 1, 1) [000149] ------------ t149 = LCL_VAR byref V21 tmp20 u:1 Zero Fseq[X] $302 /--* t149 byref N006 ( 3, 2) [000150] n----------- t150 = * IND float /--* t150 float N008 ( 7, 7) [000151] DA---------- * STORE_LCL_VAR float V12 tmp11 d:1 N010 ( 1, 1) [000154] ------------ t154 = LCL_VAR byref V21 tmp20 u:1 $302 N011 ( 1, 1) [000155] ------------ t155 = CNS_INT long 4 Fseq[Y] $380 /--* t154 byref +--* t155 long N012 ( 2, 2) [000156] -------N---- t156 = * ADD byref $2c5 /--* t156 byref N013 ( 4, 4) [000157] n----------- t157 = * IND float /--* t157 float N015 ( 8, 9) [000158] DA---------- * STORE_LCL_VAR float V13 tmp12 d:1 N017 ( 1, 1) [000161] ------------ t161 = LCL_VAR byref V21 tmp20 u:1 $302 N018 ( 1, 1) [000162] ------------ t162 = CNS_INT long 8 Fseq[Z] $381 /--* t161 byref +--* t162 long N019 ( 2, 2) [000163] -------N---- t163 = * ADD byref $2c6 /--* t163 byref N020 ( 4, 4) [000164] n----------- t164 = * IND float /--* t164 float N022 ( 8, 9) [000165] DA---------- * STORE_LCL_VAR float V14 tmp13 d:1 N024 ( 1, 1) [000168] ------------ t168 = LCL_VAR byref V21 tmp20 u:1 (last use) $302 N025 ( 1, 1) [000169] ------------ t169 = CNS_INT long 12 Fseq[W] $382 /--* t168 byref +--* t169 long N026 ( 2, 2) [000170] -------N---- t170 = * ADD byref $2c7 /--* t170 byref N027 ( 4, 4) [000171] n----------- t171 = * IND float /--* t171 float N029 ( 8, 9) [000172] DA---------- * STORE_LCL_VAR float V15 tmp14 d:1 N001 ( 3, 2) [000013] ----G--N---- t13 = LCL_VAR_ADDR byref V03 tmp2 /--* t13 byref N004 ( 3, 3) [000176] DA--G------- * STORE_LCL_VAR byref V22 tmp21 d:1 N005 ( 1, 1) [000178] ------------ t178 = LCL_VAR byref V22 tmp21 u:1 Zero Fseq[X] $304 /--* t178 byref N006 ( 3, 2) [000179] n----------- t179 = * IND float /--* t179 float N008 ( 7, 7) [000180] DA---------- * STORE_LCL_VAR float V16 tmp15 d:1 N010 ( 1, 1) [000183] ------------ t183 = LCL_VAR byref V22 tmp21 u:1 $304 N011 ( 1, 1) [000184] ------------ t184 = CNS_INT long 4 Fseq[Y] $380 /--* t183 byref +--* t184 long N012 ( 2, 2) [000185] -------N---- t185 = * ADD byref $2c8 /--* t185 byref N013 ( 4, 4) [000186] n----------- t186 = * IND float /--* t186 float N015 ( 8, 9) [000187] DA---------- * STORE_LCL_VAR float V17 tmp16 d:1 N017 ( 1, 1) [000190] ------------ t190 = LCL_VAR byref V22 tmp21 u:1 $304 N018 ( 1, 1) [000191] ------------ t191 = CNS_INT long 8 Fseq[Z] $381 /--* t190 byref +--* t191 long N019 ( 2, 2) [000192] -------N---- t192 = * ADD byref $2c9 /--* t192 byref N020 ( 4, 4) [000193] n----------- t193 = * IND float /--* t193 float N022 ( 8, 9) [000194] DA---------- * STORE_LCL_VAR float V18 tmp17 d:1 N024 ( 1, 1) [000197] ------------ t197 = LCL_VAR byref V22 tmp21 u:1 (last use) $304 N025 ( 1, 1) [000198] ------------ t198 = CNS_INT long 12 Fseq[W] $382 /--* t197 byref +--* t198 long N026 ( 2, 2) [000199] -------N---- t199 = * ADD byref $2ca /--* t199 byref N027 ( 4, 4) [000200] n----------- t200 = * IND float /--* t200 float N029 ( 8, 9) [000201] DA---------- * STORE_LCL_VAR float V19 tmp18 d:1 N001 ( 3, 4) [000057] ------------ t57 = LCL_VAR float V12 tmp11 u:1 (last use) N002 ( 3, 4) [000060] ------------ t60 = LCL_VAR float V16 tmp15 u:1 (last use) /--* t57 float +--* t60 float N003 ( 7, 9) [000061] N------N-U-- t61 = * NE int /--* t61 int N004 ( 9, 11) [000062] ------------ * JTRUE void ------------ BB02 [000..000) -> BB05 (cond), preds={BB01} succs={BB03,BB05} N001 ( 3, 4) [000070] ------------ t70 = LCL_VAR float V13 tmp12 u:1 (last use) N002 ( 3, 4) [000073] ------------ t73 = LCL_VAR float V17 tmp16 u:1 (last use) /--* t70 float +--* t73 float N003 ( 7, 9) [000074] N------N-U-- t74 = * NE int /--* t74 int N004 ( 9, 11) [000075] ------------ * JTRUE void ------------ BB03 [000..000) -> BB05 (cond), preds={BB02} succs={BB04,BB05} N001 ( 3, 4) [000078] ------------ t78 = LCL_VAR float V14 tmp13 u:1 (last use) N002 ( 3, 4) [000081] ------------ t81 = LCL_VAR float V18 tmp17 u:1 (last use) /--* t78 float +--* t81 float N003 ( 7, 9) [000082] N------N-U-- t82 = * NE int /--* t82 int N004 ( 9, 11) [000083] ------------ * JTRUE void ------------ BB04 [000..000) -> BB06 (always), preds={BB03} succs={BB06} N001 ( 3, 4) [000086] ------------ t86 = LCL_VAR float V15 tmp14 u:1 (last use) N002 ( 3, 4) [000089] ------------ t89 = LCL_VAR float V19 tmp18 u:1 (last use) /--* t86 float +--* t89 float N003 ( 10, 9) [000090] ------------ t90 = * EQ int /--* t90 int N005 ( 14, 12) [000092] DA---------- * STORE_LCL_VAR int V05 tmp4 d:3 ------------ BB05 [000..000), preds={BB01,BB02,BB03} succs={BB06} N001 ( 1, 1) [000063] ------------ t63 = CNS_INT int 0 $40 /--* t63 int N003 ( 5, 4) [000066] DA---------- * STORE_LCL_VAR int V05 tmp4 d:2 ------------ BB06 [???..???) (return), preds={BB04,BB05} succs={} N001 ( 0, 0) [000207] ------------ t207 = PHI_ARG bool V05 tmp4 u:3 N002 ( 0, 0) [000206] ------------ t206 = PHI_ARG bool V05 tmp4 u:2 $40 /--* t207 bool +--* t206 bool N003 ( 0, 0) [000204] ------------ t204 = * PHI bool /--* t204 bool N005 ( 0, 0) [000205] DA---------- * STORE_LCL_VAR bool V05 tmp4 d:1 N001 ( 4, 3) [000093] ------------ t93 = LCL_VAR bool V05 tmp4 u:1 (last use) $4c0 /--* t93 bool N002 ( 5, 4) [000018] ------------ * RETURN int $442 ------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Lowering nodeinfo lowering store lcl var/field (before): N001 ( 1, 1) [000000] ------------ t0 = LCL_VAR byref V00 this u:1 (last use) $80 /--* t0 byref N002 ( 3, 2) [000001] ---XG------- t1 = * IND struct /--* t1 struct N004 ( 7, 5) [000005] DA-XG------- * STORE_LCL_VAR struct(AX) V02 tmp1 lowering store lcl var/field (before): N001 ( 1, 1) [000036] ------------ t36 = CNS_DBL float 0.00000000000000000 $240 /--* t36 float N003 ( 1, 3) [000038] DA---------- * STORE_LCL_VAR float V08 tmp7 d:1 lowering store lcl var/field (after): N001 ( 1, 1) [000036] ------------ t36 = CNS_DBL float 0.00000000000000000 $240 /--* t36 float N003 ( 1, 3) [000038] DA---------- * STORE_LCL_VAR float V08 tmp7 d:1 lowering store lcl var/field (before): N001 ( 1, 1) [000041] ------------ t41 = CNS_DBL float 0.00000000000000000 $240 /--* t41 float N003 ( 1, 3) [000043] DA---------- * STORE_LCL_VAR float V09 tmp8 d:1 lowering store lcl var/field (after): N001 ( 1, 1) [000041] ------------ t41 = CNS_DBL float 0.00000000000000000 $240 /--* t41 float N003 ( 1, 3) [000043] DA---------- * STORE_LCL_VAR float V09 tmp8 d:1 lowering store lcl var/field (before): N001 ( 1, 1) [000046] ------------ t46 = CNS_DBL float 0.00000000000000000 $240 /--* t46 float N003 ( 1, 3) [000048] DA---------- * STORE_LCL_VAR float V10 tmp9 d:1 lowering store lcl var/field (after): N001 ( 1, 1) [000046] ------------ t46 = CNS_DBL float 0.00000000000000000 $240 /--* t46 float N003 ( 1, 3) [000048] DA---------- * STORE_LCL_VAR float V10 tmp9 d:1 lowering store lcl var/field (before): N001 ( 1, 1) [000051] ------------ t51 = CNS_DBL float 1.0000000000000000 $241 /--* t51 float N003 ( 1, 3) [000053] DA---------- * STORE_LCL_VAR float V11 tmp10 d:1 lowering store lcl var/field (after): N001 ( 1, 1) [000051] ------------ t51 = CNS_DBL float 1.0000000000000000 $241 /--* t51 float N003 ( 1, 3) [000053] DA---------- * STORE_LCL_VAR float V11 tmp10 d:1 lowering store lcl var/field (before): N001 ( 3, 2) [000031] -------N---- t31 = LCL_VAR_ADDR byref V03 tmp2 /--* t31 byref N004 ( 3, 3) [000118] DA---------- * STORE_LCL_VAR byref V20 tmp19 d:1 lowering store lcl var/field (after): N001 ( 3, 2) [000031] -------N---- t31 = LCL_VAR_ADDR byref V03 tmp2 /--* t31 byref N004 ( 3, 3) [000118] DA---------- * STORE_LCL_VAR byref V20 tmp19 d:1 Addressing mode: Base N009 ( 1, 1) [000124] ------------ * LCL_VAR byref V20 tmp19 u:1 $300 + 4 Removing unused node: N010 ( 1, 1) [000125] -c---------- * CNS_INT long 4 Fseq[Y] $380 New addressing mode node: N011 ( 2, 2) [000126] ------------ * LEA(b+4) byref Addressing mode: Base N015 ( 1, 1) [000131] ------------ * LCL_VAR byref V20 tmp19 u:1 $300 + 8 Removing unused node: N016 ( 1, 1) [000132] -c---------- * CNS_INT long 8 Fseq[Z] $381 New addressing mode node: N017 ( 2, 2) [000133] ------------ * LEA(b+8) byref Addressing mode: Base N024 ( 1, 1) [000138] ------------ * LCL_VAR byref V20 tmp19 u:1 (last use) $300 + 12 Removing unused node: N025 ( 1, 1) [000139] -c---------- * CNS_INT long 12 Fseq[W] $382 New addressing mode node: N026 ( 2, 2) [000140] ------------ * LEA(b+12) byref lowering store lcl var/field (before): N001 ( 3, 2) [000015] -------N---- t15 = LCL_VAR_ADDR byref V02 tmp1 /--* t15 byref N004 ( 3, 3) [000147] DA---------- * STORE_LCL_VAR byref V21 tmp20 d:1 lowering store lcl var/field (after): N001 ( 3, 2) [000015] -------N---- t15 = LCL_VAR_ADDR byref V02 tmp1 /--* t15 byref N004 ( 3, 3) [000147] DA---------- * STORE_LCL_VAR byref V21 tmp20 d:1 lowering store lcl var/field (before): N005 ( 1, 1) [000149] ------------ t149 = LCL_VAR byref V21 tmp20 u:1 Zero Fseq[X] $302 /--* t149 byref N006 ( 3, 2) [000150] n----------- t150 = * IND float /--* t150 float N008 ( 7, 7) [000151] DA---------- * STORE_LCL_VAR float V12 tmp11 d:1 lowering store lcl var/field (after): N005 ( 1, 1) [000149] ------------ t149 = LCL_VAR byref V21 tmp20 u:1 Zero Fseq[X] $302 /--* t149 byref N006 ( 3, 2) [000150] n----------- t150 = * IND float /--* t150 float N008 ( 7, 7) [000151] DA---------- * STORE_LCL_VAR float V12 tmp11 d:1 Addressing mode: Base N010 ( 1, 1) [000154] ------------ * LCL_VAR byref V21 tmp20 u:1 $302 + 4 Removing unused node: N011 ( 1, 1) [000155] -c---------- * CNS_INT long 4 Fseq[Y] $380 New addressing mode node: N012 ( 2, 2) [000156] ------------ * LEA(b+4) byref lowering store lcl var/field (before): N010 ( 1, 1) [000154] ------------ t154 = LCL_VAR byref V21 tmp20 u:1 $302 /--* t154 byref N012 ( 2, 2) [000156] -c---------- t156 = * LEA(b+4) byref /--* t156 byref N013 ( 4, 4) [000157] n----------- t157 = * IND float /--* t157 float N015 ( 8, 9) [000158] DA---------- * STORE_LCL_VAR float V13 tmp12 d:1 lowering store lcl var/field (after): N010 ( 1, 1) [000154] ------------ t154 = LCL_VAR byref V21 tmp20 u:1 $302 /--* t154 byref N012 ( 2, 2) [000156] -c---------- t156 = * LEA(b+4) byref /--* t156 byref N013 ( 4, 4) [000157] n----------- t157 = * IND float /--* t157 float N015 ( 8, 9) [000158] DA---------- * STORE_LCL_VAR float V13 tmp12 d:1 Addressing mode: Base N017 ( 1, 1) [000161] ------------ * LCL_VAR byref V21 tmp20 u:1 $302 + 8 Removing unused node: N018 ( 1, 1) [000162] -c---------- * CNS_INT long 8 Fseq[Z] $381 New addressing mode node: N019 ( 2, 2) [000163] ------------ * LEA(b+8) byref lowering store lcl var/field (before): N017 ( 1, 1) [000161] ------------ t161 = LCL_VAR byref V21 tmp20 u:1 $302 /--* t161 byref N019 ( 2, 2) [000163] -c---------- t163 = * LEA(b+8) byref /--* t163 byref N020 ( 4, 4) [000164] n----------- t164 = * IND float /--* t164 float N022 ( 8, 9) [000165] DA---------- * STORE_LCL_VAR float V14 tmp13 d:1 lowering store lcl var/field (after): N017 ( 1, 1) [000161] ------------ t161 = LCL_VAR byref V21 tmp20 u:1 $302 /--* t161 byref N019 ( 2, 2) [000163] -c---------- t163 = * LEA(b+8) byref /--* t163 byref N020 ( 4, 4) [000164] n----------- t164 = * IND float /--* t164 float N022 ( 8, 9) [000165] DA---------- * STORE_LCL_VAR float V14 tmp13 d:1 Addressing mode: Base N024 ( 1, 1) [000168] ------------ * LCL_VAR byref V21 tmp20 u:1 (last use) $302 + 12 Removing unused node: N025 ( 1, 1) [000169] -c---------- * CNS_INT long 12 Fseq[W] $382 New addressing mode node: N026 ( 2, 2) [000170] ------------ * LEA(b+12) byref lowering store lcl var/field (before): N024 ( 1, 1) [000168] ------------ t168 = LCL_VAR byref V21 tmp20 u:1 (last use) $302 /--* t168 byref N026 ( 2, 2) [000170] -c---------- t170 = * LEA(b+12) byref /--* t170 byref N027 ( 4, 4) [000171] n----------- t171 = * IND float /--* t171 float N029 ( 8, 9) [000172] DA---------- * STORE_LCL_VAR float V15 tmp14 d:1 lowering store lcl var/field (after): N024 ( 1, 1) [000168] ------------ t168 = LCL_VAR byref V21 tmp20 u:1 (last use) $302 /--* t168 byref N026 ( 2, 2) [000170] -c---------- t170 = * LEA(b+12) byref /--* t170 byref N027 ( 4, 4) [000171] n----------- t171 = * IND float /--* t171 float N029 ( 8, 9) [000172] DA---------- * STORE_LCL_VAR float V15 tmp14 d:1 lowering store lcl var/field (before): N001 ( 3, 2) [000013] ----G--N---- t13 = LCL_VAR_ADDR byref V03 tmp2 /--* t13 byref N004 ( 3, 3) [000176] DA--G------- * STORE_LCL_VAR byref V22 tmp21 d:1 lowering store lcl var/field (after): N001 ( 3, 2) [000013] ----G--N---- t13 = LCL_VAR_ADDR byref V03 tmp2 /--* t13 byref N004 ( 3, 3) [000176] DA--G------- * STORE_LCL_VAR byref V22 tmp21 d:1 lowering store lcl var/field (before): N005 ( 1, 1) [000178] ------------ t178 = LCL_VAR byref V22 tmp21 u:1 Zero Fseq[X] $304 /--* t178 byref N006 ( 3, 2) [000179] n----------- t179 = * IND float /--* t179 float N008 ( 7, 7) [000180] DA---------- * STORE_LCL_VAR float V16 tmp15 d:1 lowering store lcl var/field (after): N005 ( 1, 1) [000178] ------------ t178 = LCL_VAR byref V22 tmp21 u:1 Zero Fseq[X] $304 /--* t178 byref N006 ( 3, 2) [000179] n----------- t179 = * IND float /--* t179 float N008 ( 7, 7) [000180] DA---------- * STORE_LCL_VAR float V16 tmp15 d:1 Addressing mode: Base N010 ( 1, 1) [000183] ------------ * LCL_VAR byref V22 tmp21 u:1 $304 + 4 Removing unused node: N011 ( 1, 1) [000184] -c---------- * CNS_INT long 4 Fseq[Y] $380 New addressing mode node: N012 ( 2, 2) [000185] ------------ * LEA(b+4) byref lowering store lcl var/field (before): N010 ( 1, 1) [000183] ------------ t183 = LCL_VAR byref V22 tmp21 u:1 $304 /--* t183 byref N012 ( 2, 2) [000185] -c---------- t185 = * LEA(b+4) byref /--* t185 byref N013 ( 4, 4) [000186] n----------- t186 = * IND float /--* t186 float N015 ( 8, 9) [000187] DA---------- * STORE_LCL_VAR float V17 tmp16 d:1 lowering store lcl var/field (after): N010 ( 1, 1) [000183] ------------ t183 = LCL_VAR byref V22 tmp21 u:1 $304 /--* t183 byref N012 ( 2, 2) [000185] -c---------- t185 = * LEA(b+4) byref /--* t185 byref N013 ( 4, 4) [000186] n----------- t186 = * IND float /--* t186 float N015 ( 8, 9) [000187] DA---------- * STORE_LCL_VAR float V17 tmp16 d:1 Addressing mode: Base N017 ( 1, 1) [000190] ------------ * LCL_VAR byref V22 tmp21 u:1 $304 + 8 Removing unused node: N018 ( 1, 1) [000191] -c---------- * CNS_INT long 8 Fseq[Z] $381 New addressing mode node: N019 ( 2, 2) [000192] ------------ * LEA(b+8) byref lowering store lcl var/field (before): N017 ( 1, 1) [000190] ------------ t190 = LCL_VAR byref V22 tmp21 u:1 $304 /--* t190 byref N019 ( 2, 2) [000192] -c---------- t192 = * LEA(b+8) byref /--* t192 byref N020 ( 4, 4) [000193] n----------- t193 = * IND float /--* t193 float N022 ( 8, 9) [000194] DA---------- * STORE_LCL_VAR float V18 tmp17 d:1 lowering store lcl var/field (after): N017 ( 1, 1) [000190] ------------ t190 = LCL_VAR byref V22 tmp21 u:1 $304 /--* t190 byref N019 ( 2, 2) [000192] -c---------- t192 = * LEA(b+8) byref /--* t192 byref N020 ( 4, 4) [000193] n----------- t193 = * IND float /--* t193 float N022 ( 8, 9) [000194] DA---------- * STORE_LCL_VAR float V18 tmp17 d:1 Addressing mode: Base N024 ( 1, 1) [000197] ------------ * LCL_VAR byref V22 tmp21 u:1 (last use) $304 + 12 Removing unused node: N025 ( 1, 1) [000198] -c---------- * CNS_INT long 12 Fseq[W] $382 New addressing mode node: N026 ( 2, 2) [000199] ------------ * LEA(b+12) byref lowering store lcl var/field (before): N024 ( 1, 1) [000197] ------------ t197 = LCL_VAR byref V22 tmp21 u:1 (last use) $304 /--* t197 byref N026 ( 2, 2) [000199] -c---------- t199 = * LEA(b+12) byref /--* t199 byref N027 ( 4, 4) [000200] n----------- t200 = * IND float /--* t200 float N029 ( 8, 9) [000201] DA---------- * STORE_LCL_VAR float V19 tmp18 d:1 lowering store lcl var/field (after): N024 ( 1, 1) [000197] ------------ t197 = LCL_VAR byref V22 tmp21 u:1 (last use) $304 /--* t197 byref N026 ( 2, 2) [000199] -c---------- t199 = * LEA(b+12) byref /--* t199 byref N027 ( 4, 4) [000200] n----------- t200 = * IND float /--* t200 float N029 ( 8, 9) [000201] DA---------- * STORE_LCL_VAR float V19 tmp18 d:1 lowering store lcl var/field (before): N001 ( 3, 4) [000086] ------------ t86 = LCL_VAR float V15 tmp14 u:1 (last use) N002 ( 3, 4) [000089] ------------ t89 = LCL_VAR float V19 tmp18 u:1 (last use) /--* t86 float +--* t89 float N003 ( 10, 9) [000090] ------------ t90 = * EQ int /--* t90 int N005 ( 14, 12) [000092] DA---------- * STORE_LCL_VAR int V05 tmp4 d:3 lowering store lcl var/field (after): N001 ( 3, 4) [000086] ------------ t86 = LCL_VAR float V15 tmp14 u:1 (last use) N002 ( 3, 4) [000089] ------------ t89 = LCL_VAR float V19 tmp18 u:1 (last use) /--* t86 float +--* t89 float N003 ( 10, 9) [000090] ------------ t90 = * EQ int /--* t90 int N005 ( 14, 12) [000092] DA---------- * STORE_LCL_VAR int V05 tmp4 d:3 lowering store lcl var/field (before): N001 ( 1, 1) [000063] ------------ t63 = CNS_INT int 0 $40 /--* t63 int N003 ( 5, 4) [000066] DA---------- * STORE_LCL_VAR int V05 tmp4 d:2 lowering store lcl var/field (after): N001 ( 1, 1) [000063] ------------ t63 = CNS_INT int 0 $40 /--* t63 int N003 ( 5, 4) [000066] DA---------- * STORE_LCL_VAR int V05 tmp4 d:2 lowering store lcl var/field (before): N001 ( 0, 0) [000207] ------------ t207 = PHI_ARG bool V05 tmp4 u:3 N002 ( 0, 0) [000206] ------------ t206 = PHI_ARG bool V05 tmp4 u:2 $40 /--* t207 bool +--* t206 bool N003 ( 0, 0) [000204] ------------ t204 = * PHI bool /--* t204 bool N005 ( 0, 0) [000205] DA---------- * STORE_LCL_VAR bool V05 tmp4 d:1 lowering store lcl var/field (after): N001 ( 0, 0) [000207] ------------ t207 = PHI_ARG bool V05 tmp4 u:3 N002 ( 0, 0) [000206] ------------ t206 = PHI_ARG bool V05 tmp4 u:2 $40 /--* t207 bool +--* t206 bool N003 ( 0, 0) [000204] ------------ t204 = * PHI bool /--* t204 bool N005 ( 0, 0) [000205] DA---------- * STORE_LCL_VAR bool V05 tmp4 d:1 lowering GT_RETURN N002 ( 5, 4) [000018] ------------ * RETURN int $442 ============Lower has completed modifying nodes. ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target LIR BB02 [0004] 1 BB01 0.25 [000..000)-> BB05 ( cond ) i internal LIR BB03 [0005] 1 BB02 0.25 [000..000)-> BB05 ( cond ) i internal LIR BB04 [0006] 1 BB03 0.50 [000..000)-> BB06 (always) i internal LIR BB05 [0007] 3 BB01,BB02,BB03 0.50 [000..000) i internal label target LIR BB06 [0008] 2 BB04,BB05 1 [???..???) (return) internal label target LIR ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..011) -> BB05 (cond), preds={} succs={BB02,BB05} [000218] ------------ IL_OFFSET void IL offset: 0x0 N001 ( 1, 1) [000000] ------------ t0 = LCL_VAR byref V00 this u:1 (last use) $80 /--* t0 byref N002 ( 3, 2) [000001] -c-XG------- t1 = * IND struct [000228] Dc-----N---- t228 = LCL_VAR_ADDR byref V02 tmp1 /--* t228 byref +--* t1 struct N004 ( 7, 5) [000005] sA---------- * STORE_BLK struct (copy) (Unroll) [000219] ------------ IL_OFFSET void IL offset: 0x0 [000220] ------------ IL_OFFSET void IL offset: 0x0 N001 ( 1, 1) [000036] ------------ t36 = CNS_DBL float 0.00000000000000000 $240 /--* t36 float N003 ( 1, 3) [000038] DA---------- * STORE_LCL_VAR float V08 tmp7 d:1 [000221] ------------ IL_OFFSET void IL offset: 0x0 N001 ( 1, 1) [000041] ------------ t41 = CNS_DBL float 0.00000000000000000 $240 /--* t41 float N003 ( 1, 3) [000043] DA---------- * STORE_LCL_VAR float V09 tmp8 d:1 [000222] ------------ IL_OFFSET void IL offset: 0x0 N001 ( 1, 1) [000046] ------------ t46 = CNS_DBL float 0.00000000000000000 $240 /--* t46 float N003 ( 1, 3) [000048] DA---------- * STORE_LCL_VAR float V10 tmp9 d:1 [000223] ------------ IL_OFFSET void IL offset: 0x0 N001 ( 1, 1) [000051] ------------ t51 = CNS_DBL float 1.0000000000000000 $241 /--* t51 float N003 ( 1, 3) [000053] DA---------- * STORE_LCL_VAR float V11 tmp10 d:1 N001 ( 3, 2) [000031] -------N---- t31 = LCL_VAR_ADDR byref V03 tmp2 /--* t31 byref N004 ( 3, 3) [000118] DA---------- * STORE_LCL_VAR byref V20 tmp19 d:1 N005 ( 1, 1) [000119] ------------ t119 = LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 N007 ( 1, 1) [000208] ------------ t208 = CNS_DBL float 0.00000000000000000 $240 /--* t119 byref +--* t208 float [000224] -A---------- * STOREIND float N009 ( 1, 1) [000124] ------------ t124 = LCL_VAR byref V20 tmp19 u:1 $300 /--* t124 byref N011 ( 2, 2) [000126] -c---------- t126 = * LEA(b+4) byref N013 ( 1, 1) [000209] ------------ t209 = CNS_DBL float 0.00000000000000000 $240 /--* t126 byref +--* t209 float [000225] -A---------- * STOREIND float N015 ( 1, 1) [000131] ------------ t131 = LCL_VAR byref V20 tmp19 u:1 $300 /--* t131 byref N017 ( 2, 2) [000133] -c---------- t133 = * LEA(b+8) byref N019 ( 1, 1) [000210] ------------ t210 = CNS_DBL float 0.00000000000000000 $240 /--* t133 byref +--* t210 float [000226] -A---------- * STOREIND float N024 ( 1, 1) [000138] ------------ t138 = LCL_VAR byref V20 tmp19 u:1 (last use) $300 /--* t138 byref N026 ( 2, 2) [000140] -c---------- t140 = * LEA(b+12) byref N028 ( 1, 1) [000211] ------------ t211 = CNS_DBL float 1.0000000000000000 $241 /--* t140 byref +--* t211 float [000227] -A---------- * STOREIND float N001 ( 3, 2) [000015] -------N---- t15 = LCL_VAR_ADDR byref V02 tmp1 /--* t15 byref N004 ( 3, 3) [000147] DA---------- * STORE_LCL_VAR byref V21 tmp20 d:1 N005 ( 1, 1) [000149] ------------ t149 = LCL_VAR byref V21 tmp20 u:1 Zero Fseq[X] $302 /--* t149 byref N006 ( 3, 2) [000150] n----------- t150 = * IND float /--* t150 float N008 ( 7, 7) [000151] DA---------- * STORE_LCL_VAR float V12 tmp11 d:1 N010 ( 1, 1) [000154] ------------ t154 = LCL_VAR byref V21 tmp20 u:1 $302 /--* t154 byref N012 ( 2, 2) [000156] -c---------- t156 = * LEA(b+4) byref /--* t156 byref N013 ( 4, 4) [000157] n----------- t157 = * IND float /--* t157 float N015 ( 8, 9) [000158] DA---------- * STORE_LCL_VAR float V13 tmp12 d:1 N017 ( 1, 1) [000161] ------------ t161 = LCL_VAR byref V21 tmp20 u:1 $302 /--* t161 byref N019 ( 2, 2) [000163] -c---------- t163 = * LEA(b+8) byref /--* t163 byref N020 ( 4, 4) [000164] n----------- t164 = * IND float /--* t164 float N022 ( 8, 9) [000165] DA---------- * STORE_LCL_VAR float V14 tmp13 d:1 N024 ( 1, 1) [000168] ------------ t168 = LCL_VAR byref V21 tmp20 u:1 (last use) $302 /--* t168 byref N026 ( 2, 2) [000170] -c---------- t170 = * LEA(b+12) byref /--* t170 byref N027 ( 4, 4) [000171] n----------- t171 = * IND float /--* t171 float N029 ( 8, 9) [000172] DA---------- * STORE_LCL_VAR float V15 tmp14 d:1 N001 ( 3, 2) [000013] ----G--N---- t13 = LCL_VAR_ADDR byref V03 tmp2 /--* t13 byref N004 ( 3, 3) [000176] DA--G------- * STORE_LCL_VAR byref V22 tmp21 d:1 N005 ( 1, 1) [000178] ------------ t178 = LCL_VAR byref V22 tmp21 u:1 Zero Fseq[X] $304 /--* t178 byref N006 ( 3, 2) [000179] n----------- t179 = * IND float /--* t179 float N008 ( 7, 7) [000180] DA---------- * STORE_LCL_VAR float V16 tmp15 d:1 N010 ( 1, 1) [000183] ------------ t183 = LCL_VAR byref V22 tmp21 u:1 $304 /--* t183 byref N012 ( 2, 2) [000185] -c---------- t185 = * LEA(b+4) byref /--* t185 byref N013 ( 4, 4) [000186] n----------- t186 = * IND float /--* t186 float N015 ( 8, 9) [000187] DA---------- * STORE_LCL_VAR float V17 tmp16 d:1 N017 ( 1, 1) [000190] ------------ t190 = LCL_VAR byref V22 tmp21 u:1 $304 /--* t190 byref N019 ( 2, 2) [000192] -c---------- t192 = * LEA(b+8) byref /--* t192 byref N020 ( 4, 4) [000193] n----------- t193 = * IND float /--* t193 float N022 ( 8, 9) [000194] DA---------- * STORE_LCL_VAR float V18 tmp17 d:1 N024 ( 1, 1) [000197] ------------ t197 = LCL_VAR byref V22 tmp21 u:1 (last use) $304 /--* t197 byref N026 ( 2, 2) [000199] -c---------- t199 = * LEA(b+12) byref /--* t199 byref N027 ( 4, 4) [000200] n----------- t200 = * IND float /--* t200 float N029 ( 8, 9) [000201] DA---------- * STORE_LCL_VAR float V19 tmp18 d:1 N001 ( 3, 4) [000057] ------------ t57 = LCL_VAR float V12 tmp11 u:1 (last use) N002 ( 3, 4) [000060] ------------ t60 = LCL_VAR float V16 tmp15 u:1 (last use) /--* t57 float +--* t60 float N003 ( 7, 9) [000061] N------N-U-- * NE void N004 ( 9, 11) [000062] ------------ * JTRUE void ------------ BB02 [000..000) -> BB05 (cond), preds={BB01} succs={BB03,BB05} N001 ( 3, 4) [000070] ------------ t70 = LCL_VAR float V13 tmp12 u:1 (last use) N002 ( 3, 4) [000073] ------------ t73 = LCL_VAR float V17 tmp16 u:1 (last use) /--* t70 float +--* t73 float N003 ( 7, 9) [000074] N------N-U-- * NE void N004 ( 9, 11) [000075] ------------ * JTRUE void ------------ BB03 [000..000) -> BB05 (cond), preds={BB02} succs={BB04,BB05} N001 ( 3, 4) [000078] ------------ t78 = LCL_VAR float V14 tmp13 u:1 (last use) N002 ( 3, 4) [000081] ------------ t81 = LCL_VAR float V18 tmp17 u:1 (last use) /--* t78 float +--* t81 float N003 ( 7, 9) [000082] N------N-U-- * NE void N004 ( 9, 11) [000083] ------------ * JTRUE void ------------ BB04 [000..000) -> BB06 (always), preds={BB03} succs={BB06} N001 ( 3, 4) [000086] ------------ t86 = LCL_VAR float V15 tmp14 u:1 (last use) N002 ( 3, 4) [000089] ------------ t89 = LCL_VAR float V19 tmp18 u:1 (last use) /--* t86 float +--* t89 float N003 ( 10, 9) [000090] ------------ t90 = * EQ int /--* t90 int N005 ( 14, 12) [000092] DA---------- * STORE_LCL_VAR int V05 tmp4 d:3 ------------ BB05 [000..000), preds={BB01,BB02,BB03} succs={BB06} N001 ( 1, 1) [000063] ------------ t63 = CNS_INT int 0 $40 /--* t63 int N003 ( 5, 4) [000066] DA---------- * STORE_LCL_VAR int V05 tmp4 d:2 ------------ BB06 [???..???) (return), preds={BB04,BB05} succs={} N001 ( 0, 0) [000207] ------------ t207 = PHI_ARG bool V05 tmp4 u:3 N002 ( 0, 0) [000206] ------------ t206 = PHI_ARG bool V05 tmp4 u:2 $40 /--* t207 bool +--* t206 bool N003 ( 0, 0) [000204] ------------ t204 = * PHI bool /--* t204 bool N005 ( 0, 0) [000205] DA---------- * STORE_LCL_VAR bool V05 tmp4 d:1 N001 ( 4, 3) [000093] ------------ t93 = LCL_VAR bool V05 tmp4 u:1 (last use) $4c0 /--* t93 bool N002 ( 5, 4) [000018] ------------ * RETURN int $442 ------------------------------------------------------------------------------------------------------------------- *** lvaComputeRefCounts *** *** lvaComputeRefCounts -- explicit counts *** New refCnts for V00: refCnt = 1, refCntWtd = 1 New refCnts for V02: refCnt = 1, refCntWtd = 2 New refCnts for V08: refCnt = 1, refCntWtd = 1 New refCnts for V09: refCnt = 1, refCntWtd = 1 New refCnts for V10: refCnt = 1, refCntWtd = 1 New refCnts for V11: refCnt = 1, refCntWtd = 1 New refCnts for V03: refCnt = 1, refCntWtd = 2 New refCnts for V20: refCnt = 1, refCntWtd = 2 New refCnts for V20: refCnt = 2, refCntWtd = 4 New refCnts for V20: refCnt = 3, refCntWtd = 6 New refCnts for V20: refCnt = 4, refCntWtd = 8 New refCnts for V20: refCnt = 5, refCntWtd = 10 New refCnts for V02: refCnt = 2, refCntWtd = 4 New refCnts for V21: refCnt = 1, refCntWtd = 2 New refCnts for V21: refCnt = 2, refCntWtd = 4 New refCnts for V12: refCnt = 1, refCntWtd = 1 New refCnts for V21: refCnt = 3, refCntWtd = 6 New refCnts for V13: refCnt = 1, refCntWtd = 1 New refCnts for V21: refCnt = 4, refCntWtd = 8 New refCnts for V14: refCnt = 1, refCntWtd = 1 New refCnts for V21: refCnt = 5, refCntWtd = 10 New refCnts for V15: refCnt = 1, refCntWtd = 1 New refCnts for V03: refCnt = 2, refCntWtd = 4 New refCnts for V22: refCnt = 1, refCntWtd = 2 New refCnts for V22: refCnt = 2, refCntWtd = 4 New refCnts for V16: refCnt = 1, refCntWtd = 1 New refCnts for V22: refCnt = 3, refCntWtd = 6 New refCnts for V17: refCnt = 1, refCntWtd = 1 New refCnts for V22: refCnt = 4, refCntWtd = 8 New refCnts for V18: refCnt = 1, refCntWtd = 1 New refCnts for V22: refCnt = 5, refCntWtd = 10 New refCnts for V19: refCnt = 1, refCntWtd = 1 New refCnts for V12: refCnt = 2, refCntWtd = 2 New refCnts for V16: refCnt = 2, refCntWtd = 2 New refCnts for V13: refCnt = 2, refCntWtd = 1.25 New refCnts for V17: refCnt = 2, refCntWtd = 1.25 New refCnts for V14: refCnt = 2, refCntWtd = 1.25 New refCnts for V18: refCnt = 2, refCntWtd = 1.25 New refCnts for V15: refCnt = 2, refCntWtd = 1.50 New refCnts for V19: refCnt = 2, refCntWtd = 1.50 New refCnts for V05: refCnt = 1, refCntWtd = 0.50 New refCnts for V05: refCnt = 2, refCntWtd = 1 New refCnts for V05: refCnt = 3, refCntWtd = 2 *** lvaComputeRefCounts -- implicit counts *** New refCnts for V00: refCnt = 2, refCntWtd = 2 New refCnts for V00: refCnt = 3, refCntWtd = 3 *************** In fgLocalVarLiveness() ; Initial local variable assignments ; ; V00 this byref this ; V01 OutArgs lclBlk <0> "OutgoingArgSpace" ; V02 tmp1 struct do-not-enreg[XSB] addr-exposed "impAppendStmt" ; V03 tmp2 struct do-not-enreg[XSB] addr-exposed "struct address for call/obj" ; V04 tmp3 struct "NewObj constructor temp" ; V05 tmp4 bool "Inline return value spill temp" ; V06 tmp5 struct "Inlining Arg" ; V07 tmp6 struct "Inlining Arg" ; V08 tmp7 float V04.X(offs=0x00) P-INDEP "field V04.X (fldOffset=0x0)" ; V09 tmp8 float V04.Y(offs=0x04) P-INDEP "field V04.Y (fldOffset=0x4)" ; V10 tmp9 float V04.Z(offs=0x08) P-INDEP "field V04.Z (fldOffset=0x8)" ; V11 tmp10 float V04.W(offs=0x0c) P-INDEP "field V04.W (fldOffset=0xc)" ; V12 tmp11 float V06.X(offs=0x00) P-INDEP "field V06.X (fldOffset=0x0)" ; V13 tmp12 float V06.Y(offs=0x04) P-INDEP "field V06.Y (fldOffset=0x4)" ; V14 tmp13 float V06.Z(offs=0x08) P-INDEP "field V06.Z (fldOffset=0x8)" ; V15 tmp14 float V06.W(offs=0x0c) P-INDEP "field V06.W (fldOffset=0xc)" ; V16 tmp15 float V07.X(offs=0x00) P-INDEP "field V07.X (fldOffset=0x0)" ; V17 tmp16 float V07.Y(offs=0x04) P-INDEP "field V07.Y (fldOffset=0x4)" ; V18 tmp17 float V07.Z(offs=0x08) P-INDEP "field V07.Z (fldOffset=0x8)" ; V19 tmp18 float V07.W(offs=0x0c) P-INDEP "field V07.W (fldOffset=0xc)" ; V20 tmp19 byref stack-byref "BlockOp address local" ; V21 tmp20 byref stack-byref "BlockOp address local" ; V22 tmp21 byref stack-byref "BlockOp address local" In fgLocalVarLivenessInit Tracked variable (17 out of 23) table: V20 tmp19 [ byref]: refCnt = 5, refCntWtd = 10 V21 tmp20 [ byref]: refCnt = 5, refCntWtd = 10 V22 tmp21 [ byref]: refCnt = 5, refCntWtd = 10 V00 this [ byref]: refCnt = 3, refCntWtd = 3 V05 tmp4 [ bool]: refCnt = 3, refCntWtd = 2 V12 tmp11 [ float]: refCnt = 2, refCntWtd = 2 V16 tmp15 [ float]: refCnt = 2, refCntWtd = 2 V15 tmp14 [ float]: refCnt = 2, refCntWtd = 1.50 V19 tmp18 [ float]: refCnt = 2, refCntWtd = 1.50 V13 tmp12 [ float]: refCnt = 2, refCntWtd = 1.25 V14 tmp13 [ float]: refCnt = 2, refCntWtd = 1.25 V17 tmp16 [ float]: refCnt = 2, refCntWtd = 1.25 V18 tmp17 [ float]: refCnt = 2, refCntWtd = 1.25 V08 tmp7 [ float]: refCnt = 1, refCntWtd = 1 V09 tmp8 [ float]: refCnt = 1, refCntWtd = 1 V10 tmp9 [ float]: refCnt = 1, refCntWtd = 1 V11 tmp10 [ float]: refCnt = 1, refCntWtd = 1 *************** In fgPerBlockLocalVarLiveness() BB01 USE(1)={ V00 } + ByrefExposed + GcHeap DEF(15)={V20 V21 V22 V12 V16 V15 V19 V13 V14 V17 V18 V08 V09 V10 V11} + ByrefExposed BB02 USE(2)={V13 V17} DEF(0)={ } BB03 USE(2)={V14 V18} DEF(0)={ } BB04 USE(2)={ V15 V19} DEF(1)={V05 } BB05 USE(0)={ } DEF(1)={V05} BB06 USE(1)={V05} DEF(0)={ } ** Memory liveness computed, GcHeap states and ByrefExposed states diverge *************** In fgInterBlockLocalVarLiveness() BB liveness after fgLiveVarAnalysis(): BB01 IN (1)={V00 } + ByrefExposed + GcHeap OUT(6)={ V15 V19 V13 V14 V17 V18} BB02 IN (6)={V15 V19 V13 V14 V17 V18} OUT(4)={V15 V19 V14 V18} BB03 IN (4)={V15 V19 V14 V18} OUT(2)={V15 V19 } BB04 IN (2)={ V15 V19} OUT(1)={V05 } BB05 IN (0)={ } OUT(1)={V05} BB06 IN (1)={V05} OUT(0)={ } Removing dead store: N003 ( 1, 3) [000053] DA---------- * STORE_LCL_VAR float V11 tmp10 d:1 (last use) Removing dead node: N001 ( 1, 1) [000051] ------------ * CNS_DBL float 1.0000000000000000 $241 Removing dead store: N003 ( 1, 3) [000048] DA---------- * STORE_LCL_VAR float V10 tmp9 d:1 (last use) Removing dead node: N001 ( 1, 1) [000046] ------------ * CNS_DBL float 0.00000000000000000 $240 Removing dead store: N003 ( 1, 3) [000043] DA---------- * STORE_LCL_VAR float V09 tmp8 d:1 (last use) Removing dead node: N001 ( 1, 1) [000041] ------------ * CNS_DBL float 0.00000000000000000 $240 Removing dead store: N003 ( 1, 3) [000038] DA---------- * STORE_LCL_VAR float V08 tmp7 d:1 (last use) Removing dead node: N001 ( 1, 1) [000036] ------------ * CNS_DBL float 0.00000000000000000 $240 *************** 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..011)-> BB05 ( cond ) i label target LIR BB02 [0004] 1 BB01 0.25 [000..000)-> BB05 ( cond ) i internal LIR BB03 [0005] 1 BB02 0.25 [000..000)-> BB05 ( cond ) i internal LIR BB04 [0006] 1 BB03 0.50 [000..000)-> BB06 (always) i internal LIR BB05 [0007] 3 BB01,BB02,BB03 0.50 [000..000) i internal label target LIR BB06 [0008] 2 BB04,BB05 1 [???..???) (return) internal label target LIR ----------------------------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist *** lvaComputeRefCounts *** *** lvaComputeRefCounts -- explicit counts *** New refCnts for V00: refCnt = 1, refCntWtd = 1 New refCnts for V02: refCnt = 1, refCntWtd = 2 New refCnts for V03: refCnt = 1, refCntWtd = 2 New refCnts for V20: refCnt = 1, refCntWtd = 2 New refCnts for V20: refCnt = 2, refCntWtd = 4 New refCnts for V20: refCnt = 3, refCntWtd = 6 New refCnts for V20: refCnt = 4, refCntWtd = 8 New refCnts for V20: refCnt = 5, refCntWtd = 10 New refCnts for V02: refCnt = 2, refCntWtd = 4 New refCnts for V21: refCnt = 1, refCntWtd = 2 New refCnts for V21: refCnt = 2, refCntWtd = 4 New refCnts for V12: refCnt = 1, refCntWtd = 1 New refCnts for V21: refCnt = 3, refCntWtd = 6 New refCnts for V13: refCnt = 1, refCntWtd = 1 New refCnts for V21: refCnt = 4, refCntWtd = 8 New refCnts for V14: refCnt = 1, refCntWtd = 1 New refCnts for V21: refCnt = 5, refCntWtd = 10 New refCnts for V15: refCnt = 1, refCntWtd = 1 New refCnts for V03: refCnt = 2, refCntWtd = 4 New refCnts for V22: refCnt = 1, refCntWtd = 2 New refCnts for V22: refCnt = 2, refCntWtd = 4 New refCnts for V16: refCnt = 1, refCntWtd = 1 New refCnts for V22: refCnt = 3, refCntWtd = 6 New refCnts for V17: refCnt = 1, refCntWtd = 1 New refCnts for V22: refCnt = 4, refCntWtd = 8 New refCnts for V18: refCnt = 1, refCntWtd = 1 New refCnts for V22: refCnt = 5, refCntWtd = 10 New refCnts for V19: refCnt = 1, refCntWtd = 1 New refCnts for V12: refCnt = 2, refCntWtd = 2 New refCnts for V16: refCnt = 2, refCntWtd = 2 New refCnts for V13: refCnt = 2, refCntWtd = 1.25 New refCnts for V17: refCnt = 2, refCntWtd = 1.25 New refCnts for V14: refCnt = 2, refCntWtd = 1.25 New refCnts for V18: refCnt = 2, refCntWtd = 1.25 New refCnts for V15: refCnt = 2, refCntWtd = 1.50 New refCnts for V19: refCnt = 2, refCntWtd = 1.50 New refCnts for V05: refCnt = 1, refCntWtd = 0.50 New refCnts for V05: refCnt = 2, refCntWtd = 1 New refCnts for V05: refCnt = 3, refCntWtd = 2 *** lvaComputeRefCounts -- implicit counts *** New refCnts for V00: refCnt = 2, refCntWtd = 2 New refCnts for V00: refCnt = 3, refCntWtd = 3 *************** Finishing PHASE Lowering nodeinfo Trees after Lowering nodeinfo ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target LIR BB02 [0004] 1 BB01 0.25 [000..000)-> BB05 ( cond ) i internal LIR BB03 [0005] 1 BB02 0.25 [000..000)-> BB05 ( cond ) i internal LIR BB04 [0006] 1 BB03 0.50 [000..000)-> BB06 (always) i internal LIR BB05 [0007] 3 BB01,BB02,BB03 0.50 [000..000) i internal label target LIR BB06 [0008] 2 BB04,BB05 1 [???..???) (return) internal label target LIR ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..011) -> BB05 (cond), preds={} succs={BB02,BB05} [000218] ------------ IL_OFFSET void IL offset: 0x0 N001 ( 1, 1) [000000] ------------ t0 = LCL_VAR byref V00 this u:1 (last use) $80 /--* t0 byref N002 ( 3, 2) [000001] -c-XG------- t1 = * IND struct [000228] Dc-----N---- t228 = LCL_VAR_ADDR byref V02 tmp1 /--* t228 byref +--* t1 struct N004 ( 7, 5) [000005] sA---------- * STORE_BLK struct (copy) (Unroll) [000219] ------------ IL_OFFSET void IL offset: 0x0 [000220] ------------ IL_OFFSET void IL offset: 0x0 [000221] ------------ IL_OFFSET void IL offset: 0x0 [000222] ------------ IL_OFFSET void IL offset: 0x0 [000223] ------------ IL_OFFSET void IL offset: 0x0 N001 ( 3, 2) [000031] -------N---- t31 = LCL_VAR_ADDR byref V03 tmp2 /--* t31 byref N004 ( 3, 3) [000118] DA---------- * STORE_LCL_VAR byref V20 tmp19 d:1 N005 ( 1, 1) [000119] ------------ t119 = LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 N007 ( 1, 1) [000208] ------------ t208 = CNS_DBL float 0.00000000000000000 $240 /--* t119 byref +--* t208 float [000224] -A---------- * STOREIND float N009 ( 1, 1) [000124] ------------ t124 = LCL_VAR byref V20 tmp19 u:1 $300 /--* t124 byref N011 ( 2, 2) [000126] -c---------- t126 = * LEA(b+4) byref N013 ( 1, 1) [000209] ------------ t209 = CNS_DBL float 0.00000000000000000 $240 /--* t126 byref +--* t209 float [000225] -A---------- * STOREIND float N015 ( 1, 1) [000131] ------------ t131 = LCL_VAR byref V20 tmp19 u:1 $300 /--* t131 byref N017 ( 2, 2) [000133] -c---------- t133 = * LEA(b+8) byref N019 ( 1, 1) [000210] ------------ t210 = CNS_DBL float 0.00000000000000000 $240 /--* t133 byref +--* t210 float [000226] -A---------- * STOREIND float N024 ( 1, 1) [000138] ------------ t138 = LCL_VAR byref V20 tmp19 u:1 (last use) $300 /--* t138 byref N026 ( 2, 2) [000140] -c---------- t140 = * LEA(b+12) byref N028 ( 1, 1) [000211] ------------ t211 = CNS_DBL float 1.0000000000000000 $241 /--* t140 byref +--* t211 float [000227] -A---------- * STOREIND float N001 ( 3, 2) [000015] -------N---- t15 = LCL_VAR_ADDR byref V02 tmp1 /--* t15 byref N004 ( 3, 3) [000147] DA---------- * STORE_LCL_VAR byref V21 tmp20 d:1 N005 ( 1, 1) [000149] ------------ t149 = LCL_VAR byref V21 tmp20 u:1 Zero Fseq[X] $302 /--* t149 byref N006 ( 3, 2) [000150] n----------- t150 = * IND float /--* t150 float N008 ( 7, 7) [000151] DA---------- * STORE_LCL_VAR float V12 tmp11 d:1 N010 ( 1, 1) [000154] ------------ t154 = LCL_VAR byref V21 tmp20 u:1 $302 /--* t154 byref N012 ( 2, 2) [000156] -c---------- t156 = * LEA(b+4) byref /--* t156 byref N013 ( 4, 4) [000157] n----------- t157 = * IND float /--* t157 float N015 ( 8, 9) [000158] DA---------- * STORE_LCL_VAR float V13 tmp12 d:1 N017 ( 1, 1) [000161] ------------ t161 = LCL_VAR byref V21 tmp20 u:1 $302 /--* t161 byref N019 ( 2, 2) [000163] -c---------- t163 = * LEA(b+8) byref /--* t163 byref N020 ( 4, 4) [000164] n----------- t164 = * IND float /--* t164 float N022 ( 8, 9) [000165] DA---------- * STORE_LCL_VAR float V14 tmp13 d:1 N024 ( 1, 1) [000168] ------------ t168 = LCL_VAR byref V21 tmp20 u:1 (last use) $302 /--* t168 byref N026 ( 2, 2) [000170] -c---------- t170 = * LEA(b+12) byref /--* t170 byref N027 ( 4, 4) [000171] n----------- t171 = * IND float /--* t171 float N029 ( 8, 9) [000172] DA---------- * STORE_LCL_VAR float V15 tmp14 d:1 N001 ( 3, 2) [000013] ----G--N---- t13 = LCL_VAR_ADDR byref V03 tmp2 /--* t13 byref N004 ( 3, 3) [000176] DA--G------- * STORE_LCL_VAR byref V22 tmp21 d:1 N005 ( 1, 1) [000178] ------------ t178 = LCL_VAR byref V22 tmp21 u:1 Zero Fseq[X] $304 /--* t178 byref N006 ( 3, 2) [000179] n----------- t179 = * IND float /--* t179 float N008 ( 7, 7) [000180] DA---------- * STORE_LCL_VAR float V16 tmp15 d:1 N010 ( 1, 1) [000183] ------------ t183 = LCL_VAR byref V22 tmp21 u:1 $304 /--* t183 byref N012 ( 2, 2) [000185] -c---------- t185 = * LEA(b+4) byref /--* t185 byref N013 ( 4, 4) [000186] n----------- t186 = * IND float /--* t186 float N015 ( 8, 9) [000187] DA---------- * STORE_LCL_VAR float V17 tmp16 d:1 N017 ( 1, 1) [000190] ------------ t190 = LCL_VAR byref V22 tmp21 u:1 $304 /--* t190 byref N019 ( 2, 2) [000192] -c---------- t192 = * LEA(b+8) byref /--* t192 byref N020 ( 4, 4) [000193] n----------- t193 = * IND float /--* t193 float N022 ( 8, 9) [000194] DA---------- * STORE_LCL_VAR float V18 tmp17 d:1 N024 ( 1, 1) [000197] ------------ t197 = LCL_VAR byref V22 tmp21 u:1 (last use) $304 /--* t197 byref N026 ( 2, 2) [000199] -c---------- t199 = * LEA(b+12) byref /--* t199 byref N027 ( 4, 4) [000200] n----------- t200 = * IND float /--* t200 float N029 ( 8, 9) [000201] DA---------- * STORE_LCL_VAR float V19 tmp18 d:1 N001 ( 3, 4) [000057] ------------ t57 = LCL_VAR float V12 tmp11 u:1 (last use) N002 ( 3, 4) [000060] ------------ t60 = LCL_VAR float V16 tmp15 u:1 (last use) /--* t57 float +--* t60 float N003 ( 7, 9) [000061] N------N-U-- * NE void N004 ( 9, 11) [000062] ------------ * JTRUE void ------------ BB02 [000..000) -> BB05 (cond), preds={BB01} succs={BB03,BB05} N001 ( 3, 4) [000070] ------------ t70 = LCL_VAR float V13 tmp12 u:1 (last use) N002 ( 3, 4) [000073] ------------ t73 = LCL_VAR float V17 tmp16 u:1 (last use) /--* t70 float +--* t73 float N003 ( 7, 9) [000074] N------N-U-- * NE void N004 ( 9, 11) [000075] ------------ * JTRUE void ------------ BB03 [000..000) -> BB05 (cond), preds={BB02} succs={BB04,BB05} N001 ( 3, 4) [000078] ------------ t78 = LCL_VAR float V14 tmp13 u:1 (last use) N002 ( 3, 4) [000081] ------------ t81 = LCL_VAR float V18 tmp17 u:1 (last use) /--* t78 float +--* t81 float N003 ( 7, 9) [000082] N------N-U-- * NE void N004 ( 9, 11) [000083] ------------ * JTRUE void ------------ BB04 [000..000) -> BB06 (always), preds={BB03} succs={BB06} N001 ( 3, 4) [000086] ------------ t86 = LCL_VAR float V15 tmp14 u:1 (last use) N002 ( 3, 4) [000089] ------------ t89 = LCL_VAR float V19 tmp18 u:1 (last use) /--* t86 float +--* t89 float N003 ( 10, 9) [000090] ------------ t90 = * EQ int /--* t90 int N005 ( 14, 12) [000092] DA---------- * STORE_LCL_VAR int V05 tmp4 d:3 ------------ BB05 [000..000), preds={BB01,BB02,BB03} succs={BB06} N001 ( 1, 1) [000063] ------------ t63 = CNS_INT int 0 $40 /--* t63 int N003 ( 5, 4) [000066] DA---------- * STORE_LCL_VAR int V05 tmp4 d:2 ------------ BB06 [???..???) (return), preds={BB04,BB05} succs={} N001 ( 0, 0) [000207] ------------ t207 = PHI_ARG bool V05 tmp4 u:3 N002 ( 0, 0) [000206] ------------ t206 = PHI_ARG bool V05 tmp4 u:2 $40 /--* t207 bool +--* t206 bool N003 ( 0, 0) [000204] ------------ t204 = * PHI bool /--* t204 bool N005 ( 0, 0) [000205] DA---------- * STORE_LCL_VAR bool V05 tmp4 d:1 N001 ( 4, 3) [000093] ------------ t93 = LCL_VAR bool V05 tmp4 u:1 (last use) $4c0 /--* t93 bool N002 ( 5, 4) [000018] ------------ * RETURN int $442 ------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist Trees before Calculate stack level slots ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target LIR BB02 [0004] 1 BB01 0.25 [000..000)-> BB05 ( cond ) i internal LIR BB03 [0005] 1 BB02 0.25 [000..000)-> BB05 ( cond ) i internal LIR BB04 [0006] 1 BB03 0.50 [000..000)-> BB06 (always) i internal LIR BB05 [0007] 3 BB01,BB02,BB03 0.50 [000..000) i internal label target LIR BB06 [0008] 2 BB04,BB05 1 [???..???) (return) internal label target LIR ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..011) -> BB05 (cond), preds={} succs={BB02,BB05} [000218] ------------ IL_OFFSET void IL offset: 0x0 N001 ( 1, 1) [000000] ------------ t0 = LCL_VAR byref V00 this u:1 (last use) $80 /--* t0 byref N002 ( 3, 2) [000001] -c-XG------- t1 = * IND struct [000228] Dc-----N---- t228 = LCL_VAR_ADDR byref V02 tmp1 /--* t228 byref +--* t1 struct N004 ( 7, 5) [000005] sA---------- * STORE_BLK struct (copy) (Unroll) [000219] ------------ IL_OFFSET void IL offset: 0x0 [000220] ------------ IL_OFFSET void IL offset: 0x0 [000221] ------------ IL_OFFSET void IL offset: 0x0 [000222] ------------ IL_OFFSET void IL offset: 0x0 [000223] ------------ IL_OFFSET void IL offset: 0x0 N001 ( 3, 2) [000031] -------N---- t31 = LCL_VAR_ADDR byref V03 tmp2 /--* t31 byref N004 ( 3, 3) [000118] DA---------- * STORE_LCL_VAR byref V20 tmp19 d:1 N005 ( 1, 1) [000119] ------------ t119 = LCL_VAR byref V20 tmp19 u:1 Zero Fseq[X] $300 N007 ( 1, 1) [000208] ------------ t208 = CNS_DBL float 0.00000000000000000 $240 /--* t119 byref +--* t208 float [000224] -A---------- * STOREIND float N009 ( 1, 1) [000124] ------------ t124 = LCL_VAR byref V20 tmp19 u:1 $300 /--* t124 byref N011 ( 2, 2) [000126] -c---------- t126 = * LEA(b+4) byref N013 ( 1, 1) [000209] ------------ t209 = CNS_DBL float 0.00000000000000000 $240 /--* t126 byref +--* t209 float [000225] -A---------- * STOREIND float N015 ( 1, 1) [000131] ------------ t131 = LCL_VAR byref V20 tmp19 u:1 $300 /--* t131 byref N017 ( 2, 2) [000133] -c---------- t133 = * LEA(b+8) byref N019 ( 1, 1) [000210] ------------ t210 = CNS_DBL float 0.00000000000000000 $240 /--* t133 byref +--* t210 float [000226] -A---------- * STOREIND float N024 ( 1, 1) [000138] ------------ t138 = LCL_VAR byref V20 tmp19 u:1 (last use) $300 /--* t138 byref N026 ( 2, 2) [000140] -c---------- t140 = * LEA(b+12) byref N028 ( 1, 1) [000211] ------------ t211 = CNS_DBL float 1.0000000000000000 $241 /--* t140 byref +--* t211 float [000227] -A---------- * STOREIND float N001 ( 3, 2) [000015] -------N---- t15 = LCL_VAR_ADDR byref V02 tmp1 /--* t15 byref N004 ( 3, 3) [000147] DA---------- * STORE_LCL_VAR byref V21 tmp20 d:1 N005 ( 1, 1) [000149] ------------ t149 = LCL_VAR byref V21 tmp20 u:1 Zero Fseq[X] $302 /--* t149 byref N006 ( 3, 2) [000150] n----------- t150 = * IND float /--* t150 float N008 ( 7, 7) [000151] DA---------- * STORE_LCL_VAR float V12 tmp11 d:1 N010 ( 1, 1) [000154] ------------ t154 = LCL_VAR byref V21 tmp20 u:1 $302 /--* t154 byref N012 ( 2, 2) [000156] -c---------- t156 = * LEA(b+4) byref /--* t156 byref N013 ( 4, 4) [000157] n----------- t157 = * IND float /--* t157 float N015 ( 8, 9) [000158] DA---------- * STORE_LCL_VAR float V13 tmp12 d:1 N017 ( 1, 1) [000161] ------------ t161 = LCL_VAR byref V21 tmp20 u:1 $302 /--* t161 byref N019 ( 2, 2) [000163] -c---------- t163 = * LEA(b+8) byref /--* t163 byref N020 ( 4, 4) [000164] n----------- t164 = * IND float /--* t164 float N022 ( 8, 9) [000165] DA---------- * STORE_LCL_VAR float V14 tmp13 d:1 N024 ( 1, 1) [000168] ------------ t168 = LCL_VAR byref V21 tmp20 u:1 (last use) $302 /--* t168 byref N026 ( 2, 2) [000170] -c---------- t170 = * LEA(b+12) byref /--* t170 byref N027 ( 4, 4) [000171] n----------- t171 = * IND float /--* t171 float N029 ( 8, 9) [000172] DA---------- * STORE_LCL_VAR float V15 tmp14 d:1 N001 ( 3, 2) [000013] ----G--N---- t13 = LCL_VAR_ADDR byref V03 tmp2 /--* t13 byref N004 ( 3, 3) [000176] DA--G------- * STORE_LCL_VAR byref V22 tmp21 d:1 N005 ( 1, 1) [000178] ------------ t178 = LCL_VAR byref V22 tmp21 u:1 Zero Fseq[X] $304 /--* t178 byref N006 ( 3, 2) [000179] n----------- t179 = * IND float /--* t179 float N008 ( 7, 7) [000180] DA---------- * STORE_LCL_VAR float V16 tmp15 d:1 N010 ( 1, 1) [000183] ------------ t183 = LCL_VAR byref V22 tmp21 u:1 $304 /--* t183 byref N012 ( 2, 2) [000185] -c---------- t185 = * LEA(b+4) byref /--* t185 byref N013 ( 4, 4) [000186] n----------- t186 = * IND float /--* t186 float N015 ( 8, 9) [000187] DA---------- * STORE_LCL_VAR float V17 tmp16 d:1 N017 ( 1, 1) [000190] ------------ t190 = LCL_VAR byref V22 tmp21 u:1 $304 /--* t190 byref N019 ( 2, 2) [000192] -c---------- t192 = * LEA(b+8) byref /--* t192 byref N020 ( 4, 4) [000193] n----------- t193 = * IND float /--* t193 float N022 ( 8, 9) [000194] DA---------- * STORE_LCL_VAR float V18 tmp17 d:1 N024 ( 1, 1) [000197] ------------ t197 = LCL_VAR byref V22 tmp21 u:1 (last use) $304 /--* t197 byref N026 ( 2, 2) [000199] -c---------- t199 = * LEA(b+12) byref /--* t199 byref N027 ( 4, 4) [000200] n----------- t200 = * IND float /--* t200 float N029 ( 8, 9) [000201] DA---------- * STORE_LCL_VAR float V19 tmp18 d:1 N001 ( 3, 4) [000057] ------------ t57 = LCL_VAR float V12 tmp11 u:1 (last use) N002 ( 3, 4) [000060] ------------ t60 = LCL_VAR float V16 tmp15 u:1 (last use) /--* t57 float +--* t60 float N003 ( 7, 9) [000061] N------N-U-- * NE void N004 ( 9, 11) [000062] ------------ * JTRUE void ------------ BB02 [000..000) -> BB05 (cond), preds={BB01} succs={BB03,BB05} N001 ( 3, 4) [000070] ------------ t70 = LCL_VAR float V13 tmp12 u:1 (last use) N002 ( 3, 4) [000073] ------------ t73 = LCL_VAR float V17 tmp16 u:1 (last use) /--* t70 float +--* t73 float N003 ( 7, 9) [000074] N------N-U-- * NE void N004 ( 9, 11) [000075] ------------ * JTRUE void ------------ BB03 [000..000) -> BB05 (cond), preds={BB02} succs={BB04,BB05} N001 ( 3, 4) [000078] ------------ t78 = LCL_VAR float V14 tmp13 u:1 (last use) N002 ( 3, 4) [000081] ------------ t81 = LCL_VAR float V18 tmp17 u:1 (last use) /--* t78 float +--* t81 float N003 ( 7, 9) [000082] N------N-U-- * NE void N004 ( 9, 11) [000083] ------------ * JTRUE void ------------ BB04 [000..000) -> BB06 (always), preds={BB03} succs={BB06} N001 ( 3, 4) [000086] ------------ t86 = LCL_VAR float V15 tmp14 u:1 (last use) N002 ( 3, 4) [000089] ------------ t89 = LCL_VAR float V19 tmp18 u:1 (last use) /--* t86 float +--* t89 float N003 ( 10, 9) [000090] ------------ t90 = * EQ int /--* t90 int N005 ( 14, 12) [000092] DA---------- * STORE_LCL_VAR int V05 tmp4 d:3 ------------ BB05 [000..000), preds={BB01,BB02,BB03} succs={BB06} N001 ( 1, 1) [000063] ------------ t63 = CNS_INT int 0 $40 /--* t63 int N003 ( 5, 4) [000066] DA---------- * STORE_LCL_VAR int V05 tmp4 d:2 ------------ BB06 [???..???) (return), preds={BB04,BB05} succs={} N001 ( 0, 0) [000207] ------------ t207 = PHI_ARG bool V05 tmp4 u:3 N002 ( 0, 0) [000206] ------------ t206 = PHI_ARG bool V05 tmp4 u:2 $40 /--* t207 bool +--* t206 bool N003 ( 0, 0) [000204] ------------ t204 = * PHI bool /--* t204 bool N005 ( 0, 0) [000205] DA---------- * STORE_LCL_VAR bool V05 tmp4 d:1 N001 ( 4, 3) [000093] ------------ t93 = LCL_VAR bool V05 tmp4 u:1 (last use) $4c0 /--* t93 bool N002 ( 5, 4) [000018] ------------ * RETURN int $442 ------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Calculate stack level slots *************** Finishing PHASE Calculate stack level slots [no changes] *************** Starting PHASE Linear scan register alloc Clearing modified regs. buildIntervals ======== ----------------- LIVENESS: ----------------- BB01 use def in out {V00} {V08 V09 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20 V21 V22} {V00} {V13 V14 V15 V17 V18 V19} BB02 use def in out {V13 V17} {} {V13 V14 V15 V17 V18 V19} {V14 V15 V18 V19} BB03 use def in out {V14 V18} {} {V14 V15 V18 V19} {V15 V19} BB04 use def in out {V15 V19} {V05} {V15 V19} {V05} BB05 use def in out {} {V05} {} {V05} BB06 use def in out {V05} {} {V05} {} Interval 0: byref RefPositions {} physReg:NA Preferences=[allInt] Interval 0: (V00) byref RefPositions {} physReg:NA Preferences=[allInt] Interval 1: int RefPositions {} physReg:NA Preferences=[allInt] Interval 1: (V05) int RefPositions {} physReg:NA Preferences=[allInt] Interval 2: float RefPositions {} physReg:NA Preferences=[allFloat] Interval 2: (V12) float (field) RefPositions {} physReg:NA Preferences=[allFloat] Interval 3: float RefPositions {} physReg:NA Preferences=[allFloat] Interval 3: (V13) float (field) RefPositions {} physReg:NA Preferences=[allFloat] Interval 4: float RefPositions {} physReg:NA Preferences=[allFloat] Interval 4: (V14) float (field) RefPositions {} physReg:NA Preferences=[allFloat] Interval 5: float RefPositions {} physReg:NA Preferences=[allFloat] Interval 5: (V15) float (field) RefPositions {} physReg:NA Preferences=[allFloat] Interval 6: float RefPositions {} physReg:NA Preferences=[allFloat] Interval 6: (V16) float (field) RefPositions {} physReg:NA Preferences=[allFloat] Interval 7: float RefPositions {} physReg:NA Preferences=[allFloat] Interval 7: (V17) float (field) RefPositions {} physReg:NA Preferences=[allFloat] Interval 8: float RefPositions {} physReg:NA Preferences=[allFloat] Interval 8: (V18) float (field) RefPositions {} physReg:NA Preferences=[allFloat] Interval 9: float RefPositions {} physReg:NA Preferences=[allFloat] Interval 9: (V19) float (field) RefPositions {} physReg:NA Preferences=[allFloat] Interval 10: byref RefPositions {} physReg:NA Preferences=[allInt] Interval 10: (V20) byref RefPositions {} physReg:NA Preferences=[allInt] Interval 11: byref RefPositions {} physReg:NA Preferences=[allInt] Interval 11: (V21) byref RefPositions {} physReg:NA Preferences=[allInt] Interval 12: byref RefPositions {} physReg:NA Preferences=[allInt] Interval 12: (V22) byref RefPositions {} physReg:NA Preferences=[allInt] FP callee save candidate vars: None floatVarCount = 8; hasLoops = 0, singleExit = 1 TUPLE STYLE DUMP BEFORE LSRA LSRA Block Sequence: BB01( 1 ) BB02( 0.25) BB03( 0.25) BB04( 0.50) BB05( 0.50) BB06( 1 ) BB01 [000..011) -> BB05 (cond), preds={} succs={BB02,BB05} ===== N000. IL_OFFSET IL offset: 0x0 N001. V00(t0*) N002. t1 = IND ; t0* N000. LCL_VAR_ADDR V02 tmp1 N004. STORE_BLK; t1 N000. IL_OFFSET IL offset: 0x0 N000. IL_OFFSET IL offset: 0x0 N000. IL_OFFSET IL offset: 0x0 N000. IL_OFFSET IL offset: 0x0 N000. IL_OFFSET IL offset: 0x0 N001. t31 = LCL_VAR_ADDR V03 tmp2 N004. V20(t118); t31 N005. V20(t119) N007. t208 = CNS_DBL 0.00000000000000000 N000. STOREIND ; t119,t208 N009. V20(t124) N011. t126 = LEA(b+4) ; t124 N013. t209 = CNS_DBL 0.00000000000000000 N000. STOREIND ; t126,t209 N015. V20(t131) N017. t133 = LEA(b+8) ; t131 N019. t210 = CNS_DBL 0.00000000000000000 N000. STOREIND ; t133,t210 N024. V20(t138*) N026. t140 = LEA(b+12); t138* N028. t211 = CNS_DBL 1.0000000000000000 N000. STOREIND ; t140,t211 N001. t15 = LCL_VAR_ADDR V02 tmp1 N004. V21(t147); t15 N005. V21(t149) N006. t150 = IND ; t149 N008. V12(t151); t150 N010. V21(t154) N012. t156 = LEA(b+4) ; t154 N013. t157 = IND ; t156 N015. V13(t158); t157 N017. V21(t161) N019. t163 = LEA(b+8) ; t161 N020. t164 = IND ; t163 N022. V14(t165); t164 N024. V21(t168*) N026. t170 = LEA(b+12); t168* N027. t171 = IND ; t170 N029. V15(t172); t171 N001. t13 = LCL_VAR_ADDR V03 tmp2 N004. V22(t176); t13 N005. V22(t178) N006. t179 = IND ; t178 N008. V16(t180); t179 N010. V22(t183) N012. t185 = LEA(b+4) ; t183 N013. t186 = IND ; t185 N015. V17(t187); t186 N017. V22(t190) N019. t192 = LEA(b+8) ; t190 N020. t193 = IND ; t192 N022. V18(t194); t193 N024. V22(t197*) N026. t199 = LEA(b+12); t197* N027. t200 = IND ; t199 N029. V19(t201); t200 N001. V12(t57*) N002. V16(t60*) N003. NE ; t57*,t60* N004. JTRUE BB02 [000..000) -> BB05 (cond), preds={BB01} succs={BB03,BB05} ===== N001. V13(t70*) N002. V17(t73*) N003. NE ; t70*,t73* N004. JTRUE BB03 [000..000) -> BB05 (cond), preds={BB02} succs={BB04,BB05} ===== N001. V14(t78*) N002. V18(t81*) N003. NE ; t78*,t81* N004. JTRUE BB04 [000..000) -> BB06 (always), preds={BB03} succs={BB06} ===== N001. V15(t86*) N002. V19(t89*) N003. t90 = EQ ; t86*,t89* N005. V05(t92); t90 BB05 [000..000), preds={BB01,BB02,BB03} succs={BB06} ===== N001. t63 = CNS_INT 0 N003. V05(t66); t63 BB06 [???..???) (return), preds={BB04,BB05} succs={} ===== N001. V05(t93*) N002. RETURN ; t93* buildIntervals second part ======== Int arg V00 in reg rcx BB00 regmask=[rcx] minReg=1 fixed> NEW BLOCK BB01 DefList: { } N003 (???,???) [000218] ------------ * IL_OFFSET void IL offset: 0x0 REG NA DefList: { } N005 ( 1, 1) [000000] ------------ * LCL_VAR byref V00 this u:1 NA (last use) REG NA $80 DefList: { } N007 ( 3, 2) [000001] -c-XG------- * IND struct REG NA Contained DefList: { } N009 (???,???) [000228] Dc-----N---- * LCL_VAR_ADDR byref V02 tmp1 NA REG NA Contained DefList: { } N011 ( 7, 5) [000005] sA---------- * STORE_BLK struct (copy) (Unroll) REG NA Interval 13: float RefPositions {} physReg:NA Preferences=[allFloat] STORE_BLK BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1 last> STORE_BLK BB01 regmask=[allFloat] minReg=1 last> DefList: { } N013 (???,???) [000219] ------------ * IL_OFFSET void IL offset: 0x0 REG NA DefList: { } N015 (???,???) [000220] ------------ * IL_OFFSET void IL offset: 0x0 REG NA DefList: { } N017 (???,???) [000221] ------------ * IL_OFFSET void IL offset: 0x0 REG NA DefList: { } N019 (???,???) [000222] ------------ * IL_OFFSET void IL offset: 0x0 REG NA DefList: { } N021 (???,???) [000223] ------------ * IL_OFFSET void IL offset: 0x0 REG NA DefList: { } N023 ( 3, 2) [000031] -------N---- * LCL_VAR_ADDR byref V03 tmp2 NA REG NA Interval 14: byref RefPositions {} physReg:NA Preferences=[allInt] LCL_VAR_ADDR BB01 regmask=[allInt] minReg=1> DefList: { N023.t31. LCL_VAR_ADDR } N025 ( 3, 3) [000118] DA---------- * STORE_LCL_VAR byref V20 tmp19 d:1 NA REG NA BB01 regmask=[allInt] minReg=1 last> Assigning related to STORE_LCL_VAR BB01 regmask=[allInt] minReg=1 last> DefList: { } N027 ( 1, 1) [000119] ------------ * LCL_VAR byref V20 tmp19 u:1 NA Zero Fseq[X] REG NA $300 DefList: { } N029 ( 1, 1) [000208] ------------ * CNS_DBL float 0.00000000000000000 REG NA $240 Interval 15: float RefPositions {} physReg:NA Preferences=[allFloat] CNS_DBL BB01 regmask=[allFloat] minReg=1> DefList: { N029.t208. CNS_DBL } N031 (???,???) [000224] -A---------- * STOREIND float REG NA LCL_VAR BB01 regmask=[allInt] minReg=1 last> BB01 regmask=[allFloat] minReg=1 last> DefList: { } N033 ( 1, 1) [000124] ------------ * LCL_VAR byref V20 tmp19 u:1 NA REG NA $300 DefList: { } N035 ( 2, 2) [000126] -c---------- * LEA(b+4) byref REG NA Contained DefList: { } N037 ( 1, 1) [000209] ------------ * CNS_DBL float 0.00000000000000000 REG NA $240 Interval 16: float RefPositions {} physReg:NA Preferences=[allFloat] CNS_DBL BB01 regmask=[allFloat] minReg=1> DefList: { N037.t209. CNS_DBL } N039 (???,???) [000225] -A---------- * STOREIND float REG NA LCL_VAR BB01 regmask=[allInt] minReg=1 last> BB01 regmask=[allFloat] minReg=1 last> DefList: { } N041 ( 1, 1) [000131] ------------ * LCL_VAR byref V20 tmp19 u:1 NA REG NA $300 DefList: { } N043 ( 2, 2) [000133] -c---------- * LEA(b+8) byref REG NA Contained DefList: { } N045 ( 1, 1) [000210] ------------ * CNS_DBL float 0.00000000000000000 REG NA $240 Interval 17: float RefPositions {} physReg:NA Preferences=[allFloat] CNS_DBL BB01 regmask=[allFloat] minReg=1> DefList: { N045.t210. CNS_DBL } N047 (???,???) [000226] -A---------- * STOREIND float REG NA LCL_VAR BB01 regmask=[allInt] minReg=1 last> BB01 regmask=[allFloat] minReg=1 last> DefList: { } N049 ( 1, 1) [000138] ------------ * LCL_VAR byref V20 tmp19 u:1 NA (last use) REG NA $300 DefList: { } N051 ( 2, 2) [000140] -c---------- * LEA(b+12) byref REG NA Contained DefList: { } N053 ( 1, 1) [000211] ------------ * CNS_DBL float 1.0000000000000000 REG NA $241 Interval 18: float RefPositions {} physReg:NA Preferences=[allFloat] CNS_DBL BB01 regmask=[allFloat] minReg=1> DefList: { N053.t211. CNS_DBL } N055 (???,???) [000227] -A---------- * STOREIND float REG NA LCL_VAR BB01 regmask=[allInt] minReg=1 last> BB01 regmask=[allFloat] minReg=1 last> DefList: { } N057 ( 3, 2) [000015] -------N---- * LCL_VAR_ADDR byref V02 tmp1 NA REG NA Interval 19: byref RefPositions {} physReg:NA Preferences=[allInt] LCL_VAR_ADDR BB01 regmask=[allInt] minReg=1> DefList: { N057.t15. LCL_VAR_ADDR } N059 ( 3, 3) [000147] DA---------- * STORE_LCL_VAR byref V21 tmp20 d:1 NA REG NA BB01 regmask=[allInt] minReg=1 last> Assigning related to STORE_LCL_VAR BB01 regmask=[allInt] minReg=1 last> DefList: { } N061 ( 1, 1) [000149] ------------ * LCL_VAR byref V21 tmp20 u:1 NA Zero Fseq[X] REG NA $302 DefList: { } N063 ( 3, 2) [000150] n----------- * IND float REG NA LCL_VAR BB01 regmask=[allInt] minReg=1 last> Interval 20: float RefPositions {} physReg:NA Preferences=[allFloat] IND BB01 regmask=[allFloat] minReg=1> DefList: { N063.t150. IND } N065 ( 7, 7) [000151] DA---------- * STORE_LCL_VAR float V12 tmp11 d:1 NA REG NA BB01 regmask=[allFloat] minReg=1 last> Assigning related to STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1 last> DefList: { } N067 ( 1, 1) [000154] ------------ * LCL_VAR byref V21 tmp20 u:1 NA REG NA $302 DefList: { } N069 ( 2, 2) [000156] -c---------- * LEA(b+4) byref REG NA Contained DefList: { } N071 ( 4, 4) [000157] n----------- * IND float REG NA LCL_VAR BB01 regmask=[allInt] minReg=1 last> Interval 21: float RefPositions {} physReg:NA Preferences=[allFloat] IND BB01 regmask=[allFloat] minReg=1> DefList: { N071.t157. IND } N073 ( 8, 9) [000158] DA---------- * STORE_LCL_VAR float V13 tmp12 d:1 NA REG NA BB01 regmask=[allFloat] minReg=1 last> Assigning related to STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1 last> DefList: { } N075 ( 1, 1) [000161] ------------ * LCL_VAR byref V21 tmp20 u:1 NA REG NA $302 DefList: { } N077 ( 2, 2) [000163] -c---------- * LEA(b+8) byref REG NA Contained DefList: { } N079 ( 4, 4) [000164] n----------- * IND float REG NA LCL_VAR BB01 regmask=[allInt] minReg=1 last> Interval 22: float RefPositions {} physReg:NA Preferences=[allFloat] IND BB01 regmask=[allFloat] minReg=1> DefList: { N079.t164. IND } N081 ( 8, 9) [000165] DA---------- * STORE_LCL_VAR float V14 tmp13 d:1 NA REG NA BB01 regmask=[allFloat] minReg=1 last> Assigning related to STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1 last> DefList: { } N083 ( 1, 1) [000168] ------------ * LCL_VAR byref V21 tmp20 u:1 NA (last use) REG NA $302 DefList: { } N085 ( 2, 2) [000170] -c---------- * LEA(b+12) byref REG NA Contained DefList: { } N087 ( 4, 4) [000171] n----------- * IND float REG NA LCL_VAR BB01 regmask=[allInt] minReg=1 last> Interval 23: float RefPositions {} physReg:NA Preferences=[allFloat] IND BB01 regmask=[allFloat] minReg=1> DefList: { N087.t171. IND } N089 ( 8, 9) [000172] DA---------- * STORE_LCL_VAR float V15 tmp14 d:1 NA REG NA BB01 regmask=[allFloat] minReg=1 last> Assigning related to STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1 last> DefList: { } N091 ( 3, 2) [000013] ----G--N---- * LCL_VAR_ADDR byref V03 tmp2 NA REG NA Interval 24: byref RefPositions {} physReg:NA Preferences=[allInt] LCL_VAR_ADDR BB01 regmask=[allInt] minReg=1> DefList: { N091.t13. LCL_VAR_ADDR } N093 ( 3, 3) [000176] DA--G------- * STORE_LCL_VAR byref V22 tmp21 d:1 NA REG NA BB01 regmask=[allInt] minReg=1 last> Assigning related to STORE_LCL_VAR BB01 regmask=[allInt] minReg=1 last> DefList: { } N095 ( 1, 1) [000178] ------------ * LCL_VAR byref V22 tmp21 u:1 NA Zero Fseq[X] REG NA $304 DefList: { } N097 ( 3, 2) [000179] n----------- * IND float REG NA LCL_VAR BB01 regmask=[allInt] minReg=1 last> Interval 25: float RefPositions {} physReg:NA Preferences=[allFloat] IND BB01 regmask=[allFloat] minReg=1> DefList: { N097.t179. IND } N099 ( 7, 7) [000180] DA---------- * STORE_LCL_VAR float V16 tmp15 d:1 NA REG NA BB01 regmask=[allFloat] minReg=1 last> Assigning related to STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1 last> DefList: { } N101 ( 1, 1) [000183] ------------ * LCL_VAR byref V22 tmp21 u:1 NA REG NA $304 DefList: { } N103 ( 2, 2) [000185] -c---------- * LEA(b+4) byref REG NA Contained DefList: { } N105 ( 4, 4) [000186] n----------- * IND float REG NA LCL_VAR BB01 regmask=[allInt] minReg=1 last> Interval 26: float RefPositions {} physReg:NA Preferences=[allFloat] IND BB01 regmask=[allFloat] minReg=1> DefList: { N105.t186. IND } N107 ( 8, 9) [000187] DA---------- * STORE_LCL_VAR float V17 tmp16 d:1 NA REG NA BB01 regmask=[allFloat] minReg=1 last> Assigning related to STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1 last> DefList: { } N109 ( 1, 1) [000190] ------------ * LCL_VAR byref V22 tmp21 u:1 NA REG NA $304 DefList: { } N111 ( 2, 2) [000192] -c---------- * LEA(b+8) byref REG NA Contained DefList: { } N113 ( 4, 4) [000193] n----------- * IND float REG NA LCL_VAR BB01 regmask=[allInt] minReg=1 last> Interval 27: float RefPositions {} physReg:NA Preferences=[allFloat] IND BB01 regmask=[allFloat] minReg=1> DefList: { N113.t193. IND } N115 ( 8, 9) [000194] DA---------- * STORE_LCL_VAR float V18 tmp17 d:1 NA REG NA BB01 regmask=[allFloat] minReg=1 last> Assigning related to STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1 last> DefList: { } N117 ( 1, 1) [000197] ------------ * LCL_VAR byref V22 tmp21 u:1 NA (last use) REG NA $304 DefList: { } N119 ( 2, 2) [000199] -c---------- * LEA(b+12) byref REG NA Contained DefList: { } N121 ( 4, 4) [000200] n----------- * IND float REG NA LCL_VAR BB01 regmask=[allInt] minReg=1 last> Interval 28: float RefPositions {} physReg:NA Preferences=[allFloat] IND BB01 regmask=[allFloat] minReg=1> DefList: { N121.t200. IND } N123 ( 8, 9) [000201] DA---------- * STORE_LCL_VAR float V19 tmp18 d:1 NA REG NA BB01 regmask=[allFloat] minReg=1 last> Assigning related to STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1 last> DefList: { } N125 ( 3, 4) [000057] ------------ * LCL_VAR float V12 tmp11 u:1 NA (last use) REG NA DefList: { } N127 ( 3, 4) [000060] ------------ * LCL_VAR float V16 tmp15 u:1 NA (last use) REG NA DefList: { } N129 ( 7, 9) [000061] N------N-U-- * NE void REG NA LCL_VAR BB01 regmask=[allFloat] minReg=1 last> LCL_VAR BB01 regmask=[allFloat] minReg=1 last> DefList: { } N131 ( 9, 11) [000062] ------------ * JTRUE void REG NA CHECKING LAST USES for BB01, liveout={V13 V14 V15 V17 V18 V19} ============================== use: {V00} def: {V08 V09 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20 V21 V22} NEW BLOCK BB02 Setting BB01 as the predecessor for determining incoming variable registers of BB02 DefList: { } N135 ( 3, 4) [000070] ------------ * LCL_VAR float V13 tmp12 u:1 NA (last use) REG NA DefList: { } N137 ( 3, 4) [000073] ------------ * LCL_VAR float V17 tmp16 u:1 NA (last use) REG NA DefList: { } N139 ( 7, 9) [000074] N------N-U-- * NE void REG NA LCL_VAR BB02 regmask=[allFloat] minReg=1 last> LCL_VAR BB02 regmask=[allFloat] minReg=1 last> DefList: { } N141 ( 9, 11) [000075] ------------ * JTRUE void REG NA CHECKING LAST USES for BB02, liveout={V14 V15 V18 V19} ============================== use: {V13 V17} def: {} NEW BLOCK BB03 Setting BB02 as the predecessor for determining incoming variable registers of BB03 DefList: { } N145 ( 3, 4) [000078] ------------ * LCL_VAR float V14 tmp13 u:1 NA (last use) REG NA DefList: { } N147 ( 3, 4) [000081] ------------ * LCL_VAR float V18 tmp17 u:1 NA (last use) REG NA DefList: { } N149 ( 7, 9) [000082] N------N-U-- * NE void REG NA LCL_VAR BB03 regmask=[allFloat] minReg=1 last> LCL_VAR BB03 regmask=[allFloat] minReg=1 last> DefList: { } N151 ( 9, 11) [000083] ------------ * JTRUE void REG NA CHECKING LAST USES for BB03, liveout={V15 V19} ============================== use: {V14 V18} def: {} NEW BLOCK BB04 Setting BB03 as the predecessor for determining incoming variable registers of BB04 DefList: { } N155 ( 3, 4) [000086] ------------ * LCL_VAR float V15 tmp14 u:1 NA (last use) REG NA DefList: { } N157 ( 3, 4) [000089] ------------ * LCL_VAR float V19 tmp18 u:1 NA (last use) REG NA DefList: { } N159 ( 10, 9) [000090] ------------ * EQ int REG NA LCL_VAR BB04 regmask=[allFloat] minReg=1 last> LCL_VAR BB04 regmask=[allFloat] minReg=1 last> Interval 29: int RefPositions {} physReg:NA Preferences=[allInt] EQ BB04 regmask=[allInt] minReg=1> DefList: { N159.t90. EQ } N161 ( 14, 12) [000092] DA---------- * STORE_LCL_VAR int V05 tmp4 d:3 NA REG NA BB04 regmask=[allInt] minReg=1 last> Assigning related to STORE_LCL_VAR BB04 regmask=[allInt] minReg=1 last> CHECKING LAST USES for BB04, liveout={V05} ============================== use: {V15 V19} def: {V05} NEW BLOCK BB05 Setting BB01 as the predecessor for determining incoming variable registers of BB05 DefList: { } N165 ( 1, 1) [000063] ------------ * CNS_INT int 0 REG NA $40 Interval 30: int RefPositions {} physReg:NA Preferences=[allInt] CNS_INT BB05 regmask=[allInt] minReg=1> DefList: { N165.t63. CNS_INT } N167 ( 5, 4) [000066] DA---------- * STORE_LCL_VAR int V05 tmp4 d:2 NA REG NA BB05 regmask=[allInt] minReg=1 last> Assigning related to STORE_LCL_VAR BB05 regmask=[allInt] minReg=1 last> CHECKING LAST USES for BB05, liveout={V05} ============================== use: {} def: {V05} NEW BLOCK BB06 Setting BB04 as the predecessor for determining incoming variable registers of BB06 DefList: { } N171 ( 4, 3) [000093] ------------ * LCL_VAR bool V05 tmp4 u:1 NA (last use) REG NA $4c0 DefList: { } N173 ( 5, 4) [000018] ------------ * RETURN int REG NA $442 BB06 regmask=[rax] minReg=1> LCL_VAR BB06 regmask=[rax] minReg=1 last fixed> CHECKING LAST USES for BB06, liveout={} ============================== use: {V05} def: {} Linear scan intervals BEFORE VALIDATING INTERVALS: Interval 0: (V00) byref RefPositions {#0@0 #3@11} physReg:rcx Preferences=[rcx] Interval 1: (V05) int RefPositions {#71@162 #75@168 #78@173} physReg:NA Preferences=[rax] Interval 2: (V12) float (field) RefPositions {#26@66 #58@129} physReg:NA Preferences=[allFloat] Interval 3: (V13) float (field) RefPositions {#30@74 #61@139} physReg:NA Preferences=[allFloat] Interval 4: (V14) float (field) RefPositions {#34@82 #64@149} physReg:NA Preferences=[allFloat] Interval 5: (V15) float (field) RefPositions {#38@90 #67@159} physReg:NA Preferences=[allFloat] Interval 6: (V16) float (field) RefPositions {#45@100 #59@129} physReg:NA Preferences=[allFloat] Interval 7: (V17) float (field) RefPositions {#49@108 #62@139} physReg:NA Preferences=[allFloat] Interval 8: (V18) float (field) RefPositions {#53@116 #65@149} physReg:NA Preferences=[allFloat] Interval 9: (V19) float (field) RefPositions {#57@124 #68@159} physReg:NA Preferences=[allFloat] Interval 10: (V20) byref RefPositions {#7@26 #9@31 #12@39 #15@47 #18@55} physReg:NA Preferences=[allInt] Interval 11: (V21) byref RefPositions {#22@60 #23@63 #27@71 #31@79 #35@87} physReg:NA Preferences=[allInt] Interval 12: (V22) byref RefPositions {#41@94 #42@97 #46@105 #50@113 #54@121} physReg:NA Preferences=[allInt] Interval 13: float (INTERNAL) RefPositions {#2@11 #4@11} physReg:NA Preferences=[allFloat] Interval 14: byref RefPositions {#5@24 #6@25} physReg:NA Preferences=[allInt] RelatedInterval Interval 15: float (constant) RefPositions {#8@30 #10@31} physReg:NA Preferences=[allFloat] Interval 16: float (constant) RefPositions {#11@38 #13@39} physReg:NA Preferences=[allFloat] Interval 17: float (constant) RefPositions {#14@46 #16@47} physReg:NA Preferences=[allFloat] Interval 18: float (constant) RefPositions {#17@54 #19@55} physReg:NA Preferences=[allFloat] Interval 19: byref RefPositions {#20@58 #21@59} physReg:NA Preferences=[allInt] RelatedInterval Interval 20: float RefPositions {#24@64 #25@65} physReg:NA Preferences=[allFloat] RelatedInterval Interval 21: float RefPositions {#28@72 #29@73} physReg:NA Preferences=[allFloat] RelatedInterval Interval 22: float RefPositions {#32@80 #33@81} physReg:NA Preferences=[allFloat] RelatedInterval Interval 23: float RefPositions {#36@88 #37@89} physReg:NA Preferences=[allFloat] RelatedInterval Interval 24: byref RefPositions {#39@92 #40@93} physReg:NA Preferences=[allInt] RelatedInterval Interval 25: float RefPositions {#43@98 #44@99} physReg:NA Preferences=[allFloat] RelatedInterval Interval 26: float RefPositions {#47@106 #48@107} physReg:NA Preferences=[allFloat] RelatedInterval Interval 27: float RefPositions {#51@114 #52@115} physReg:NA Preferences=[allFloat] RelatedInterval Interval 28: float RefPositions {#55@122 #56@123} physReg:NA Preferences=[allFloat] RelatedInterval Interval 29: int RefPositions {#69@160 #70@161} physReg:NA Preferences=[allInt] RelatedInterval Interval 30: int (constant) RefPositions {#73@166 #74@167} physReg:NA Preferences=[allInt] RelatedInterval ------------ REFPOSITIONS BEFORE VALIDATING INTERVALS: ------------ BB00 regmask=[rcx] minReg=1 fixed regOptional> STORE_BLK BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1 last> STORE_BLK BB01 regmask=[allFloat] minReg=1 last> LCL_VAR_ADDR BB01 regmask=[allInt] minReg=1> BB01 regmask=[allInt] minReg=1 last> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> CNS_DBL BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> BB01 regmask=[allFloat] minReg=1 last> CNS_DBL BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> BB01 regmask=[allFloat] minReg=1 last> CNS_DBL BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> BB01 regmask=[allFloat] minReg=1 last> CNS_DBL BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1 last> BB01 regmask=[allFloat] minReg=1 last> LCL_VAR_ADDR BB01 regmask=[allInt] minReg=1> BB01 regmask=[allInt] minReg=1 last> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> IND BB01 regmask=[allFloat] minReg=1> BB01 regmask=[allFloat] minReg=1 last> STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> IND BB01 regmask=[allFloat] minReg=1> BB01 regmask=[allFloat] minReg=1 last> STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> IND BB01 regmask=[allFloat] minReg=1> BB01 regmask=[allFloat] minReg=1 last> STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1 last> IND BB01 regmask=[allFloat] minReg=1> BB01 regmask=[allFloat] minReg=1 last> STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR_ADDR BB01 regmask=[allInt] minReg=1> BB01 regmask=[allInt] minReg=1 last> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> IND BB01 regmask=[allFloat] minReg=1> BB01 regmask=[allFloat] minReg=1 last> STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> IND BB01 regmask=[allFloat] minReg=1> BB01 regmask=[allFloat] minReg=1 last> STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> IND BB01 regmask=[allFloat] minReg=1> BB01 regmask=[allFloat] minReg=1 last> STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1 last> IND BB01 regmask=[allFloat] minReg=1> BB01 regmask=[allFloat] minReg=1 last> STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allFloat] minReg=1 last> LCL_VAR BB01 regmask=[allFloat] minReg=1 last regOptional> LCL_VAR BB02 regmask=[allFloat] minReg=1 last> LCL_VAR BB02 regmask=[allFloat] minReg=1 last regOptional> LCL_VAR BB03 regmask=[allFloat] minReg=1 last> LCL_VAR BB03 regmask=[allFloat] minReg=1 last regOptional> LCL_VAR BB04 regmask=[allFloat] minReg=1 last> LCL_VAR BB04 regmask=[allFloat] minReg=1 last regOptional> EQ BB04 regmask=[allInt] minReg=1> BB04 regmask=[allInt] minReg=1 last> STORE_LCL_VAR BB04 regmask=[allInt] minReg=1> CNS_INT BB05 regmask=[allInt] minReg=1> BB05 regmask=[allInt] minReg=1 last> STORE_LCL_VAR BB05 regmask=[allInt] minReg=1> BB06 regmask=[rax] minReg=1> LCL_VAR BB06 regmask=[rax] minReg=1 last fixed> ----------------- STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1 last> ----------------- STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1 last> ----------------- STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1 last> ----------------- BB00 regmask=[rcx] minReg=1 fixed regOptional> LCL_VAR BB01 regmask=[allInt] minReg=1 last> ----------------- STORE_LCL_VAR BB04 regmask=[allInt] minReg=1> STORE_LCL_VAR BB05 regmask=[allInt] minReg=1> LCL_VAR BB06 regmask=[rax] minReg=1 last fixed> ----------------- STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allFloat] minReg=1 last> ----------------- STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allFloat] minReg=1 last regOptional> ----------------- STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB04 regmask=[allFloat] minReg=1 last> ----------------- STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB04 regmask=[allFloat] minReg=1 last regOptional> ----------------- STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB02 regmask=[allFloat] minReg=1 last> ----------------- STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB03 regmask=[allFloat] minReg=1 last> ----------------- STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB02 regmask=[allFloat] minReg=1 last regOptional> ----------------- STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB03 regmask=[allFloat] minReg=1 last regOptional> TUPLE STYLE DUMP WITH REF POSITIONS Incoming Parameters: V00 BB01 [000..011) -> BB05 (cond), preds={} succs={BB02,BB05} ===== N003. IL_OFFSET IL offset: 0x0 N005. V00(L0) N007. IND N009. LCL_VAR_ADDR V02 tmp1 NA N011. STORE_BLK Def:(#2) Use:(#3) * Use:(#4) * N013. IL_OFFSET IL offset: 0x0 N015. IL_OFFSET IL offset: 0x0 N017. IL_OFFSET IL offset: 0x0 N019. IL_OFFSET IL offset: 0x0 N021. IL_OFFSET IL offset: 0x0 N023. LCL_VAR_ADDR V03 tmp2 NA Def:(#5) Pref: N025. V20(L10) Use:(#6) * Def:(#7) N027. V20(L10) N029. CNS_DBL 0.00000000000000000 Def:(#8) N031. STOREIND Use:(#9) Use:(#10) * N033. V20(L10) N035. LEA(b+4) N037. CNS_DBL 0.00000000000000000 Def:(#11) N039. STOREIND Use:(#12) Use:(#13) * N041. V20(L10) N043. LEA(b+8) N045. CNS_DBL 0.00000000000000000 Def:(#14) N047. STOREIND Use:(#15) Use:(#16) * N049. V20(L10) N051. LEA(b+12) N053. CNS_DBL 1.0000000000000000 Def:(#17) N055. STOREIND Use:(#18) * Use:(#19) * N057. LCL_VAR_ADDR V02 tmp1 NA Def:(#20) Pref: N059. V21(L11) Use:(#21) * Def:(#22) N061. V21(L11) N063. IND Use:(#23) Def:(#24) Pref: N065. V12(L2) Use:(#25) * Def:(#26) N067. V21(L11) N069. LEA(b+4) N071. IND Use:(#27) Def:(#28) Pref: N073. V13(L3) Use:(#29) * Def:(#30) N075. V21(L11) N077. LEA(b+8) N079. IND Use:(#31) Def:(#32) Pref: N081. V14(L4) Use:(#33) * Def:(#34) N083. V21(L11) N085. LEA(b+12) N087. IND Use:(#35) * Def:(#36) Pref: N089. V15(L5) Use:(#37) * Def:(#38) N091. LCL_VAR_ADDR V03 tmp2 NA Def:(#39) Pref: N093. V22(L12) Use:(#40) * Def:(#41) N095. V22(L12) N097. IND Use:(#42) Def:(#43) Pref: N099. V16(L6) Use:(#44) * Def:(#45) N101. V22(L12) N103. LEA(b+4) N105. IND Use:(#46) Def:(#47) Pref: N107. V17(L7) Use:(#48) * Def:(#49) N109. V22(L12) N111. LEA(b+8) N113. IND Use:(#50) Def:(#51) Pref: N115. V18(L8) Use:(#52) * Def:(#53) N117. V22(L12) N119. LEA(b+12) N121. IND Use:(#54) * Def:(#55) Pref: N123. V19(L9) Use:(#56) * Def:(#57) N125. V12(L2) N127. V16(L6) N129. NE Use:(#58) * Use:(#59) * N131. JTRUE BB02 [000..000) -> BB05 (cond), preds={BB01} succs={BB03,BB05} ===== N135. V13(L3) N137. V17(L7) N139. NE Use:(#61) * Use:(#62) * N141. JTRUE BB03 [000..000) -> BB05 (cond), preds={BB02} succs={BB04,BB05} ===== N145. V14(L4) N147. V18(L8) N149. NE Use:(#64) * Use:(#65) * N151. JTRUE BB04 [000..000) -> BB06 (always), preds={BB03} succs={BB06} ===== N155. V15(L5) N157. V19(L9) N159. EQ Use:(#67) * Use:(#68) * Def:(#69) Pref: N161. V05(L1) Use:(#70) * Def:(#71) BB05 [000..000), preds={BB01,BB02,BB03} succs={BB06} ===== N165. CNS_INT 0 Def:(#73) Pref: N167. V05(L1) Use:(#74) * Def:(#75) BB06 [???..???) (return), preds={BB04,BB05} succs={} ===== N171. V05(L1) N173. RETURN Use:(#78) Fixed:rax(#77) * Linear scan intervals after buildIntervals: Interval 0: (V00) byref RefPositions {#0@0 #3@11} physReg:rcx Preferences=[rcx] Interval 1: (V05) int RefPositions {#71@162 #75@168 #78@173} physReg:NA Preferences=[rax] Interval 2: (V12) float (field) RefPositions {#26@66 #58@129} physReg:NA Preferences=[allFloat] Interval 3: (V13) float (field) RefPositions {#30@74 #61@139} physReg:NA Preferences=[allFloat] Interval 4: (V14) float (field) RefPositions {#34@82 #64@149} physReg:NA Preferences=[allFloat] Interval 5: (V15) float (field) RefPositions {#38@90 #67@159} physReg:NA Preferences=[allFloat] Interval 6: (V16) float (field) RefPositions {#45@100 #59@129} physReg:NA Preferences=[allFloat] Interval 7: (V17) float (field) RefPositions {#49@108 #62@139} physReg:NA Preferences=[allFloat] Interval 8: (V18) float (field) RefPositions {#53@116 #65@149} physReg:NA Preferences=[allFloat] Interval 9: (V19) float (field) RefPositions {#57@124 #68@159} physReg:NA Preferences=[allFloat] Interval 10: (V20) byref RefPositions {#7@26 #9@31 #12@39 #15@47 #18@55} physReg:NA Preferences=[allInt] Interval 11: (V21) byref RefPositions {#22@60 #23@63 #27@71 #31@79 #35@87} physReg:NA Preferences=[allInt] Interval 12: (V22) byref RefPositions {#41@94 #42@97 #46@105 #50@113 #54@121} physReg:NA Preferences=[allInt] Interval 13: float (INTERNAL) RefPositions {#2@11 #4@11} physReg:NA Preferences=[allFloat] Interval 14: byref RefPositions {#5@24 #6@25} physReg:NA Preferences=[allInt] RelatedInterval Interval 15: float (constant) RefPositions {#8@30 #10@31} physReg:NA Preferences=[allFloat] Interval 16: float (constant) RefPositions {#11@38 #13@39} physReg:NA Preferences=[allFloat] Interval 17: float (constant) RefPositions {#14@46 #16@47} physReg:NA Preferences=[allFloat] Interval 18: float (constant) RefPositions {#17@54 #19@55} physReg:NA Preferences=[allFloat] Interval 19: byref RefPositions {#20@58 #21@59} physReg:NA Preferences=[allInt] RelatedInterval Interval 20: float RefPositions {#24@64 #25@65} physReg:NA Preferences=[allFloat] RelatedInterval Interval 21: float RefPositions {#28@72 #29@73} physReg:NA Preferences=[allFloat] RelatedInterval Interval 22: float RefPositions {#32@80 #33@81} physReg:NA Preferences=[allFloat] RelatedInterval Interval 23: float RefPositions {#36@88 #37@89} physReg:NA Preferences=[allFloat] RelatedInterval Interval 24: byref RefPositions {#39@92 #40@93} physReg:NA Preferences=[allInt] RelatedInterval Interval 25: float RefPositions {#43@98 #44@99} physReg:NA Preferences=[allFloat] RelatedInterval Interval 26: float RefPositions {#47@106 #48@107} physReg:NA Preferences=[allFloat] RelatedInterval Interval 27: float RefPositions {#51@114 #52@115} physReg:NA Preferences=[allFloat] RelatedInterval Interval 28: float RefPositions {#55@122 #56@123} physReg:NA Preferences=[allFloat] RelatedInterval Interval 29: int RefPositions {#69@160 #70@161} physReg:NA Preferences=[allInt] RelatedInterval Interval 30: int (constant) RefPositions {#73@166 #74@167} physReg:NA Preferences=[allInt] RelatedInterval *************** In LinearScan::allocateRegisters() Linear scan intervals before allocateRegisters: Interval 0: (V00) byref RefPositions {#0@0 #3@11} physReg:rcx Preferences=[rcx] Interval 1: (V05) int RefPositions {#71@162 #75@168 #78@173} physReg:NA Preferences=[rax] Interval 2: (V12) float (field) RefPositions {#26@66 #58@129} physReg:NA Preferences=[allFloat] Interval 3: (V13) float (field) RefPositions {#30@74 #61@139} physReg:NA Preferences=[allFloat] Interval 4: (V14) float (field) RefPositions {#34@82 #64@149} physReg:NA Preferences=[allFloat] Interval 5: (V15) float (field) RefPositions {#38@90 #67@159} physReg:NA Preferences=[allFloat] Interval 6: (V16) float (field) RefPositions {#45@100 #59@129} physReg:NA Preferences=[allFloat] Interval 7: (V17) float (field) RefPositions {#49@108 #62@139} physReg:NA Preferences=[allFloat] Interval 8: (V18) float (field) RefPositions {#53@116 #65@149} physReg:NA Preferences=[allFloat] Interval 9: (V19) float (field) RefPositions {#57@124 #68@159} physReg:NA Preferences=[allFloat] Interval 10: (V20) byref RefPositions {#7@26 #9@31 #12@39 #15@47 #18@55} physReg:NA Preferences=[allInt] Interval 11: (V21) byref RefPositions {#22@60 #23@63 #27@71 #31@79 #35@87} physReg:NA Preferences=[allInt] Interval 12: (V22) byref RefPositions {#41@94 #42@97 #46@105 #50@113 #54@121} physReg:NA Preferences=[allInt] Interval 13: float (INTERNAL) RefPositions {#2@11 #4@11} physReg:NA Preferences=[allFloat] Interval 14: byref RefPositions {#5@24 #6@25} physReg:NA Preferences=[allInt] RelatedInterval Interval 15: float (constant) RefPositions {#8@30 #10@31} physReg:NA Preferences=[allFloat] Interval 16: float (constant) RefPositions {#11@38 #13@39} physReg:NA Preferences=[allFloat] Interval 17: float (constant) RefPositions {#14@46 #16@47} physReg:NA Preferences=[allFloat] Interval 18: float (constant) RefPositions {#17@54 #19@55} physReg:NA Preferences=[allFloat] Interval 19: byref RefPositions {#20@58 #21@59} physReg:NA Preferences=[allInt] RelatedInterval Interval 20: float RefPositions {#24@64 #25@65} physReg:NA Preferences=[allFloat] RelatedInterval Interval 21: float RefPositions {#28@72 #29@73} physReg:NA Preferences=[allFloat] RelatedInterval Interval 22: float RefPositions {#32@80 #33@81} physReg:NA Preferences=[allFloat] RelatedInterval Interval 23: float RefPositions {#36@88 #37@89} physReg:NA Preferences=[allFloat] RelatedInterval Interval 24: byref RefPositions {#39@92 #40@93} physReg:NA Preferences=[allInt] RelatedInterval Interval 25: float RefPositions {#43@98 #44@99} physReg:NA Preferences=[allFloat] RelatedInterval Interval 26: float RefPositions {#47@106 #48@107} physReg:NA Preferences=[allFloat] RelatedInterval Interval 27: float RefPositions {#51@114 #52@115} physReg:NA Preferences=[allFloat] RelatedInterval Interval 28: float RefPositions {#55@122 #56@123} physReg:NA Preferences=[allFloat] RelatedInterval Interval 29: int RefPositions {#69@160 #70@161} physReg:NA Preferences=[allInt] RelatedInterval Interval 30: int (constant) RefPositions {#73@166 #74@167} physReg:NA Preferences=[allInt] RelatedInterval ------------ REFPOSITIONS BEFORE ALLOCATION: ------------ BB00 regmask=[rcx] minReg=1 fixed regOptional> STORE_BLK BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1 last> STORE_BLK BB01 regmask=[allFloat] minReg=1 last> LCL_VAR_ADDR BB01 regmask=[allInt] minReg=1> BB01 regmask=[allInt] minReg=1 last> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> CNS_DBL BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> BB01 regmask=[allFloat] minReg=1 last> CNS_DBL BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> BB01 regmask=[allFloat] minReg=1 last> CNS_DBL BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> BB01 regmask=[allFloat] minReg=1 last> CNS_DBL BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1 last> BB01 regmask=[allFloat] minReg=1 last> LCL_VAR_ADDR BB01 regmask=[allInt] minReg=1> BB01 regmask=[allInt] minReg=1 last> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> IND BB01 regmask=[allFloat] minReg=1> BB01 regmask=[allFloat] minReg=1 last> STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> IND BB01 regmask=[allFloat] minReg=1> BB01 regmask=[allFloat] minReg=1 last> STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> IND BB01 regmask=[allFloat] minReg=1> BB01 regmask=[allFloat] minReg=1 last> STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1 last> IND BB01 regmask=[allFloat] minReg=1> BB01 regmask=[allFloat] minReg=1 last> STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR_ADDR BB01 regmask=[allInt] minReg=1> BB01 regmask=[allInt] minReg=1 last> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> IND BB01 regmask=[allFloat] minReg=1> BB01 regmask=[allFloat] minReg=1 last> STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> IND BB01 regmask=[allFloat] minReg=1> BB01 regmask=[allFloat] minReg=1 last> STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> IND BB01 regmask=[allFloat] minReg=1> BB01 regmask=[allFloat] minReg=1 last> STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1 last> IND BB01 regmask=[allFloat] minReg=1> BB01 regmask=[allFloat] minReg=1 last> STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allFloat] minReg=1 last> LCL_VAR BB01 regmask=[allFloat] minReg=1 last regOptional> LCL_VAR BB02 regmask=[allFloat] minReg=1 last> LCL_VAR BB02 regmask=[allFloat] minReg=1 last regOptional> LCL_VAR BB03 regmask=[allFloat] minReg=1 last> LCL_VAR BB03 regmask=[allFloat] minReg=1 last regOptional> LCL_VAR BB04 regmask=[allFloat] minReg=1 last> LCL_VAR BB04 regmask=[allFloat] minReg=1 last regOptional> EQ BB04 regmask=[allInt] minReg=1> BB04 regmask=[allInt] minReg=1 last> STORE_LCL_VAR BB04 regmask=[allInt] minReg=1> CNS_INT BB05 regmask=[allInt] minReg=1> BB05 regmask=[allInt] minReg=1 last> STORE_LCL_VAR BB05 regmask=[allInt] minReg=1> BB06 regmask=[rax] minReg=1> LCL_VAR BB06 regmask=[rax] minReg=1 last fixed> VAR REFPOSITIONS BEFORE ALLOCATION --- V00 (Interval 0) BB00 regmask=[rcx] minReg=1 fixed regOptional> LCL_VAR BB01 regmask=[allInt] minReg=1 last> --- V01 --- V02 --- V03 --- V04 --- V05 (Interval 1) STORE_LCL_VAR BB04 regmask=[allInt] minReg=1> STORE_LCL_VAR BB05 regmask=[allInt] minReg=1> LCL_VAR BB06 regmask=[rax] minReg=1 last fixed> --- V06 --- V07 --- V08 --- V09 --- V10 --- V11 --- V12 (Interval 2) STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allFloat] minReg=1 last> --- V13 (Interval 3) STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB02 regmask=[allFloat] minReg=1 last> --- V14 (Interval 4) STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB03 regmask=[allFloat] minReg=1 last> --- V15 (Interval 5) STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB04 regmask=[allFloat] minReg=1 last> --- V16 (Interval 6) STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB01 regmask=[allFloat] minReg=1 last regOptional> --- V17 (Interval 7) STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB02 regmask=[allFloat] minReg=1 last regOptional> --- V18 (Interval 8) STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB03 regmask=[allFloat] minReg=1 last regOptional> --- V19 (Interval 9) STORE_LCL_VAR BB01 regmask=[allFloat] minReg=1> LCL_VAR BB04 regmask=[allFloat] minReg=1 last regOptional> --- V20 (Interval 10) STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1 last> --- V21 (Interval 11) STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1 last> --- V22 (Interval 12) STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1> LCL_VAR BB01 regmask=[allInt] minReg=1 last> Allocating Registers -------------------- The following table has one or more rows for each RefPosition that is handled during allocation. The first column provides the basic information about the RefPosition, with its type (e.g. Def, Use, Fixd) followed by a '*' if it is a last use, and a 'D' if it is delayRegFree, and then the action taken during allocation (e.g. Alloc a new register, or Keep an existing one). The subsequent columns show the Interval occupying each register, if any, followed by 'a' if it is active, a 'p' if it is a large vector that has been partially spilled, and 'i'if it is inactive. Columns are only printed up to the last modifed register, which may increase during allocation, in which case additional columns will appear. Registers which are not marked modified have ---- in their column. -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm6 |mm7 | -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ | |V0 a| | | | | | | | | | | | | 0.#0 V0 Parm Keep rcx | |V0 a| | | | | | | | | | | | | 1.#1 BB1 PredBB0 | |V0 a| | | | | | | | | | | | | 11.#2 I13 Def Alloc mm0 | |V0 a| | | | | | | |I13a| | | | | 11.#3 V0 Use * Keep rcx | |V0 a| | | | | | | |I13a| | | | | 11.#4 I13 Use * Keep mm0 | |V0 a| | | | | | | |I13a| | | | | 24.#5 I14 Def Alloc rax |I14a| | | | | | | | | | | | | | 25.#6 I14 Use * Keep rax |I14a| | | | | | | | | | | | | | 26.#7 V20 Def Alloc rax |V20a| | | | | | | | | | | | | | 30.#8 C15 Def Alloc mm0 |V20a| | | | | | | | |C15a| | | | | 31.#9 V20 Use Keep rax |V20a| | | | | | | | |C15a| | | | | 31.#10 C15 Use * Keep mm0 |V20a| | | | | | | | |C15a| | | | | 38.#11 C16 Def Reuse mm0 |V20a| | | | | | | | |C16a| | | | | 39.#12 V20 Use Keep rax |V20a| | | | | | | | |C16a| | | | | 39.#13 C16 Use * Keep mm0 |V20a| | | | | | | | |C16a| | | | | 46.#14 C17 Def Reuse mm0 |V20a| | | | | | | | |C17a| | | | | 47.#15 V20 Use Keep rax |V20a| | | | | | | | |C17a| | | | | 47.#16 C17 Use * Keep mm0 |V20a| | | | | | | | |C17a| | | | | 54.#17 C18 Def Alloc mm0 |V20a| | | | | | | | |C18a| | | | | 55.#18 V20 Use * Keep rax |V20a| | | | | | | | |C18a| | | | | 55.#19 C18 Use * Keep mm0 |V20a| | | | | | | | |C18a| | | | | 58.#20 I19 Def Alloc rax |I19a| | | | | | | | |C18i| | | | | 59.#21 I19 Use * Keep rax |I19a| | | | | | | | |C18i| | | | | 60.#22 V21 Def Alloc rax |V21a| | | | | | | | |C18i| | | | | 63.#23 V21 Use Keep rax |V21a| | | | | | | | |C18i| | | | | 64.#24 I20 Def Alloc mm0 |V21a| | | | | | | | |I20a| | | | | 65.#25 I20 Use * Keep mm0 |V21a| | | | | | | | |I20a| | | | | 66.#26 V12 Def Alloc mm0 |V21a| | | | | | | | |V12a| | | | | 71.#27 V21 Use Keep rax |V21a| | | | | | | | |V12a| | | | | 72.#28 I21 Def Alloc mm1 |V21a| | | | | | | | |V12a|I21a| | | | 73.#29 I21 Use * Keep mm1 |V21a| | | | | | | | |V12a|I21a| | | | 74.#30 V13 Def Alloc mm1 |V21a| | | | | | | | |V12a|V13a| | | | 79.#31 V21 Use Keep rax |V21a| | | | | | | | |V12a|V13a| | | | 80.#32 I22 Def Alloc mm2 |V21a| | | | | | | | |V12a|V13a|I22a| | | 81.#33 I22 Use * Keep mm2 |V21a| | | | | | | | |V12a|V13a|I22a| | | 82.#34 V14 Def Alloc mm2 |V21a| | | | | | | | |V12a|V13a|V14a| | | 87.#35 V21 Use * Keep rax |V21a| | | | | | | | |V12a|V13a|V14a| | | -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm3 |mm6 |mm7 | -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ 88.#36 I23 Def Alloc mm3 | | | | | | | | | |V12a|V13a|V14a|I23a| | | 89.#37 I23 Use * Keep mm3 | | | | | | | | | |V12a|V13a|V14a|I23a| | | 90.#38 V15 Def Alloc mm3 | | | | | | | | | |V12a|V13a|V14a|V15a| | | 92.#39 I24 Def Alloc rax |I24a| | | | | | | | |V12a|V13a|V14a|V15a| | | 93.#40 I24 Use * Keep rax |I24a| | | | | | | | |V12a|V13a|V14a|V15a| | | 94.#41 V22 Def Alloc rax |V22a| | | | | | | | |V12a|V13a|V14a|V15a| | | 97.#42 V22 Use Keep rax |V22a| | | | | | | | |V12a|V13a|V14a|V15a| | | -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm3 |mm4 |mm6 |mm7 | -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ 98.#43 I25 Def Alloc mm4 |V22a| | | | | | | | |V12a|V13a|V14a|V15a|I25a| | | 99.#44 I25 Use * Keep mm4 |V22a| | | | | | | | |V12a|V13a|V14a|V15a|I25a| | | 100.#45 V16 Def Alloc mm4 |V22a| | | | | | | | |V12a|V13a|V14a|V15a|V16a| | | 105.#46 V22 Use Keep rax |V22a| | | | | | | | |V12a|V13a|V14a|V15a|V16a| | | -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm3 |mm4 |mm5 |mm6 |mm7 | -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ 106.#47 I26 Def Alloc mm5 |V22a| | | | | | | | |V12a|V13a|V14a|V15a|V16a|I26a| | | 107.#48 I26 Use * Keep mm5 |V22a| | | | | | | | |V12a|V13a|V14a|V15a|V16a|I26a| | | 108.#49 V17 Def Alloc mm5 |V22a| | | | | | | | |V12a|V13a|V14a|V15a|V16a|V17a| | | 113.#50 V22 Use Keep rax |V22a| | | | | | | | |V12a|V13a|V14a|V15a|V16a|V17a| | | 114.#51 I27 Def Alloc mm6 |V22a| | | | | | | | |V12a|V13a|V14a|V15a|V16a|V17a|I27a| | 115.#52 I27 Use * Keep mm6 |V22a| | | | | | | | |V12a|V13a|V14a|V15a|V16a|V17a|I27a| | 116.#53 V18 Def Alloc mm6 |V22a| | | | | | | | |V12a|V13a|V14a|V15a|V16a|V17a|V18a| | 121.#54 V22 Use * Keep rax |V22a| | | | | | | | |V12a|V13a|V14a|V15a|V16a|V17a|V18a| | 122.#55 I28 Def Alloc mm7 | | | | | | | | | |V12a|V13a|V14a|V15a|V16a|V17a|V18a|I28a| 123.#56 I28 Use * Keep mm7 | | | | | | | | | |V12a|V13a|V14a|V15a|V16a|V17a|V18a|I28a| 124.#57 V19 Def Alloc mm7 | | | | | | | | | |V12a|V13a|V14a|V15a|V16a|V17a|V18a|V19a| 129.#58 V12 Use * Keep mm0 | | | | | | | | | |V12a|V13a|V14a|V15a|V16a|V17a|V18a|V19a| 129.#59 V16 Use * Keep mm4 | | | | | | | | | |V12a|V13a|V14a|V15a|V16a|V17a|V18a|V19a| -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm3 |mm4 |mm5 |mm6 |mm7 | -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ 133.#60 BB2 PredBB1 | | | | | | | | | | |V13a|V14a|V15a| |V17a|V18a|V19a| 139.#61 V13 Use * Keep mm1 | | | | | | | | | | |V13a|V14a|V15a| |V17a|V18a|V19a| 139.#62 V17 Use * Keep mm5 | | | | | | | | | | |V13a|V14a|V15a| |V17a|V18a|V19a| -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm3 |mm4 |mm5 |mm6 |mm7 | -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ 143.#63 BB3 PredBB2 | | | | | | | | | | | |V14a|V15a| | |V18a|V19a| 149.#64 V14 Use * Keep mm2 | | | | | | | | | | | |V14a|V15a| | |V18a|V19a| 149.#65 V18 Use * Keep mm6 | | | | | | | | | | | |V14a|V15a| | |V18a|V19a| -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm3 |mm4 |mm5 |mm6 |mm7 | -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ 153.#66 BB4 PredBB3 | | | | | | | | | | | | |V15a| | | |V19a| 159.#67 V15 Use * Keep mm3 | | | | | | | | | | | | |V15a| | | |V19a| 159.#68 V19 Use * Keep mm7 | | | | | | | | | | | | |V15a| | | |V19a| 160.#69 I29 Def Alloc rax |I29a| | | | | | | | | | | | | | | | | 161.#70 I29 Use * Keep rax |I29a| | | | | | | | | | | | | | | | | 162.#71 V5 Def Alloc rax |V5 a| | | | | | | | | | | | | | | | | -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm3 |mm4 |mm5 |mm6 |mm7 | -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ 163.#72 BB5 PredBB1 |V5 i| | | | | | | | | | | | | | | | | 166.#73 C30 Def Alloc rax |C30a| | | | | | | | | | | | | | | | | 167.#74 C30 Use * Keep rax |C30a| | | | | | | | | | | | | | | | | 168.#75 V5 Def Restr rax |V5 i| | | | | | | | | | | | | | | | | Alloc rax |V5 a| | | | | | | | | | | | | | | | | -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm3 |mm4 |mm5 |mm6 |mm7 | -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ 169.#76 BB6 PredBB4 |V5 a| | | | | | | | | | | | | | | | | 173.#77 rax Fixd Keep rax |V5 a| | | | | | | | | | | | | | | | | 173.#78 V5 Use * Keep rax | | | | | | | | | | | | | | | | | | ------------ REFPOSITIONS AFTER ALLOCATION: ------------ BB00 regmask=[rcx] minReg=1 fixed regOptional> STORE_BLK BB01 regmask=[mm0] minReg=1> LCL_VAR BB01 regmask=[rcx] minReg=1 last> STORE_BLK BB01 regmask=[mm0] minReg=1 last> LCL_VAR_ADDR BB01 regmask=[rax] minReg=1> BB01 regmask=[rax] minReg=1 last> STORE_LCL_VAR BB01 regmask=[rax] minReg=1> CNS_DBL BB01 regmask=[mm0] minReg=1> LCL_VAR BB01 regmask=[rax] minReg=1> BB01 regmask=[mm0] minReg=1 last> CNS_DBL BB01 regmask=[mm0] minReg=1> LCL_VAR BB01 regmask=[rax] minReg=1> BB01 regmask=[mm0] minReg=1 last> CNS_DBL BB01 regmask=[mm0] minReg=1> LCL_VAR BB01 regmask=[rax] minReg=1> BB01 regmask=[mm0] minReg=1 last> CNS_DBL BB01 regmask=[mm0] minReg=1> LCL_VAR BB01 regmask=[rax] minReg=1 last> BB01 regmask=[mm0] minReg=1 last> LCL_VAR_ADDR BB01 regmask=[rax] minReg=1> BB01 regmask=[rax] minReg=1 last> STORE_LCL_VAR BB01 regmask=[rax] minReg=1> LCL_VAR BB01 regmask=[rax] minReg=1> IND BB01 regmask=[mm0] minReg=1> BB01 regmask=[mm0] minReg=1 last> STORE_LCL_VAR BB01 regmask=[mm0] minReg=1> LCL_VAR BB01 regmask=[rax] minReg=1> IND BB01 regmask=[mm1] minReg=1> BB01 regmask=[mm1] minReg=1 last> STORE_LCL_VAR BB01 regmask=[mm1] minReg=1> LCL_VAR BB01 regmask=[rax] minReg=1> IND BB01 regmask=[mm2] minReg=1> BB01 regmask=[mm2] minReg=1 last> STORE_LCL_VAR BB01 regmask=[mm2] minReg=1> LCL_VAR BB01 regmask=[rax] minReg=1 last> IND BB01 regmask=[mm3] minReg=1> BB01 regmask=[mm3] minReg=1 last> STORE_LCL_VAR BB01 regmask=[mm3] minReg=1> LCL_VAR_ADDR BB01 regmask=[rax] minReg=1> BB01 regmask=[rax] minReg=1 last> STORE_LCL_VAR BB01 regmask=[rax] minReg=1> LCL_VAR BB01 regmask=[rax] minReg=1> IND BB01 regmask=[mm4] minReg=1> BB01 regmask=[mm4] minReg=1 last> STORE_LCL_VAR BB01 regmask=[mm4] minReg=1> LCL_VAR BB01 regmask=[rax] minReg=1> IND BB01 regmask=[mm5] minReg=1> BB01 regmask=[mm5] minReg=1 last> STORE_LCL_VAR BB01 regmask=[mm5] minReg=1> LCL_VAR BB01 regmask=[rax] minReg=1> IND BB01 regmask=[mm6] minReg=1> BB01 regmask=[mm6] minReg=1 last> STORE_LCL_VAR BB01 regmask=[mm6] minReg=1> LCL_VAR BB01 regmask=[rax] minReg=1 last> IND BB01 regmask=[mm7] minReg=1> BB01 regmask=[mm7] minReg=1 last> STORE_LCL_VAR BB01 regmask=[mm7] minReg=1> LCL_VAR BB01 regmask=[mm0] minReg=1 last> LCL_VAR BB01 regmask=[mm4] minReg=1 last regOptional> LCL_VAR BB02 regmask=[mm1] minReg=1 last> LCL_VAR BB02 regmask=[mm5] minReg=1 last regOptional> LCL_VAR BB03 regmask=[mm2] minReg=1 last> LCL_VAR BB03 regmask=[mm6] minReg=1 last regOptional> LCL_VAR BB04 regmask=[mm3] minReg=1 last> LCL_VAR BB04 regmask=[mm7] minReg=1 last regOptional> EQ BB04 regmask=[rax] minReg=1> BB04 regmask=[rax] minReg=1 last> STORE_LCL_VAR BB04 regmask=[rax] minReg=1> CNS_INT BB05 regmask=[rax] minReg=1> BB05 regmask=[rax] minReg=1 last> STORE_LCL_VAR BB05 regmask=[rax] minReg=1> BB06 regmask=[rax] minReg=1> LCL_VAR BB06 regmask=[rax] minReg=1 last fixed> VAR REFPOSITIONS AFTER ALLOCATION --- V00 (Interval 0) BB00 regmask=[rcx] minReg=1 fixed regOptional> LCL_VAR BB01 regmask=[rcx] minReg=1 last> --- V01 --- V02 --- V03 --- V04 --- V05 (Interval 1) STORE_LCL_VAR BB04 regmask=[rax] minReg=1> STORE_LCL_VAR BB05 regmask=[rax] minReg=1> LCL_VAR BB06 regmask=[rax] minReg=1 last fixed> --- V06 --- V07 --- V08 --- V09 --- V10 --- V11 --- V12 (Interval 2) STORE_LCL_VAR BB01 regmask=[mm0] minReg=1> LCL_VAR BB01 regmask=[mm0] minReg=1 last> --- V13 (Interval 3) STORE_LCL_VAR BB01 regmask=[mm1] minReg=1> LCL_VAR BB02 regmask=[mm1] minReg=1 last> --- V14 (Interval 4) STORE_LCL_VAR BB01 regmask=[mm2] minReg=1> LCL_VAR BB03 regmask=[mm2] minReg=1 last> --- V15 (Interval 5) STORE_LCL_VAR BB01 regmask=[mm3] minReg=1> LCL_VAR BB04 regmask=[mm3] minReg=1 last> --- V16 (Interval 6) STORE_LCL_VAR BB01 regmask=[mm4] minReg=1> LCL_VAR BB01 regmask=[mm4] minReg=1 last regOptional> --- V17 (Interval 7) STORE_LCL_VAR BB01 regmask=[mm5] minReg=1> LCL_VAR BB02 regmask=[mm5] minReg=1 last regOptional> --- V18 (Interval 8) STORE_LCL_VAR BB01 regmask=[mm6] minReg=1> LCL_VAR BB03 regmask=[mm6] minReg=1 last regOptional> --- V19 (Interval 9) STORE_LCL_VAR BB01 regmask=[mm7] minReg=1> LCL_VAR BB04 regmask=[mm7] minReg=1 last regOptional> --- V20 (Interval 10) STORE_LCL_VAR BB01 regmask=[rax] minReg=1> LCL_VAR BB01 regmask=[rax] minReg=1> LCL_VAR BB01 regmask=[rax] minReg=1> LCL_VAR BB01 regmask=[rax] minReg=1> LCL_VAR BB01 regmask=[rax] minReg=1 last> --- V21 (Interval 11) STORE_LCL_VAR BB01 regmask=[rax] minReg=1> LCL_VAR BB01 regmask=[rax] minReg=1> LCL_VAR BB01 regmask=[rax] minReg=1> LCL_VAR BB01 regmask=[rax] minReg=1> LCL_VAR BB01 regmask=[rax] minReg=1 last> --- V22 (Interval 12) STORE_LCL_VAR BB01 regmask=[rax] minReg=1> LCL_VAR BB01 regmask=[rax] minReg=1> LCL_VAR BB01 regmask=[rax] minReg=1> LCL_VAR BB01 regmask=[rax] minReg=1> LCL_VAR BB01 regmask=[rax] minReg=1 last> Active intervals at end of allocation: ----------------------- RESOLVING BB BOUNDARIES ----------------------- Resolution Candidates: {V00 V05 V13 V14 V15 V17 V18 V19} Has Critical Edges Prior to Resolution BB01 use def in out {V00} {V08 V09 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20 V21 V22} {V00} {V13 V14 V15 V17 V18 V19} Var=Reg beg of BB01: V00=rcx Var=Reg end of BB01: V15=mm3 V19=mm7 V13=mm1 V14=mm2 V17=mm5 V18=mm6 BB02 use def in out {V13 V17} {} {V13 V14 V15 V17 V18 V19} {V14 V15 V18 V19} Var=Reg beg of BB02: V15=mm3 V19=mm7 V13=mm1 V14=mm2 V17=mm5 V18=mm6 Var=Reg end of BB02: V15=mm3 V19=mm7 V14=mm2 V18=mm6 BB03 use def in out {V14 V18} {} {V14 V15 V18 V19} {V15 V19} Var=Reg beg of BB03: V15=mm3 V19=mm7 V14=mm2 V18=mm6 Var=Reg end of BB03: V15=mm3 V19=mm7 BB04 use def in out {V15 V19} {V05} {V15 V19} {V05} Var=Reg beg of BB04: V15=mm3 V19=mm7 Var=Reg end of BB04: V05=rax BB05 use def in out {} {V05} {} {V05} Var=Reg beg of BB05: none Var=Reg end of BB05: V05=rax BB06 use def in out {V05} {} {V05} {} Var=Reg beg of BB06: V05=rax Var=Reg end of BB06: none RESOLVING EDGES Set V00 argument initial register to rcx Trees after linear scan register allocator (LSRA) ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target LIR BB02 [0004] 1 BB01 0.25 [000..000)-> BB05 ( cond ) i internal LIR BB03 [0005] 1 BB02 0.25 [000..000)-> BB05 ( cond ) i internal LIR BB04 [0006] 1 BB03 0.50 [000..000)-> BB06 (always) i internal LIR BB05 [0007] 3 BB01,BB02,BB03 0.50 [000..000) i internal label target LIR BB06 [0008] 2 BB04,BB05 1 [???..???) (return) internal label target LIR ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..011) -> BB05 (cond), preds={} succs={BB02,BB05} N003 (???,???) [000218] ------------ IL_OFFSET void IL offset: 0x0 REG NA N005 ( 1, 1) [000000] ------------ t0 = LCL_VAR byref V00 this u:1 rcx (last use) REG rcx $80 /--* t0 byref N007 ( 3, 2) [000001] -c-XG------- t1 = * IND struct REG NA N009 (???,???) [000228] Dc-----N---- t228 = LCL_VAR_ADDR byref V02 tmp1 NA REG NA /--* t228 byref +--* t1 struct N011 ( 7, 5) [000005] sA---------- * STORE_BLK struct (copy) (Unroll) REG NA N013 (???,???) [000219] ------------ IL_OFFSET void IL offset: 0x0 REG NA N015 (???,???) [000220] ------------ IL_OFFSET void IL offset: 0x0 REG NA N017 (???,???) [000221] ------------ IL_OFFSET void IL offset: 0x0 REG NA N019 (???,???) [000222] ------------ IL_OFFSET void IL offset: 0x0 REG NA N021 (???,???) [000223] ------------ IL_OFFSET void IL offset: 0x0 REG NA N023 ( 3, 2) [000031] -------N---- t31 = LCL_VAR_ADDR byref V03 tmp2 rax REG rax /--* t31 byref N025 ( 3, 3) [000118] DA---------- * STORE_LCL_VAR byref V20 tmp19 d:1 rax REG rax N027 ( 1, 1) [000119] ------------ t119 = LCL_VAR byref V20 tmp19 u:1 rax Zero Fseq[X] REG rax $300 N029 ( 1, 1) [000208] ------------ t208 = CNS_DBL float 0.00000000000000000 REG mm0 $240 /--* t119 byref +--* t208 float N031 (???,???) [000224] -A---------- * STOREIND float REG NA N033 ( 1, 1) [000124] ------------ t124 = LCL_VAR byref V20 tmp19 u:1 rax REG rax $300 /--* t124 byref N035 ( 2, 2) [000126] -c---------- t126 = * LEA(b+4) byref REG NA N037 ( 1, 1) [000209] ------------ t209 = CNS_DBL float 0.00000000000000000 REG mm0 $240 /--* t126 byref +--* t209 float N039 (???,???) [000225] -A---------- * STOREIND float REG NA N041 ( 1, 1) [000131] ------------ t131 = LCL_VAR byref V20 tmp19 u:1 rax REG rax $300 /--* t131 byref N043 ( 2, 2) [000133] -c---------- t133 = * LEA(b+8) byref REG NA N045 ( 1, 1) [000210] ------------ t210 = CNS_DBL float 0.00000000000000000 REG mm0 $240 /--* t133 byref +--* t210 float N047 (???,???) [000226] -A---------- * STOREIND float REG NA N049 ( 1, 1) [000138] ------------ t138 = LCL_VAR byref V20 tmp19 u:1 rax (last use) REG rax $300 /--* t138 byref N051 ( 2, 2) [000140] -c---------- t140 = * LEA(b+12) byref REG NA N053 ( 1, 1) [000211] ------------ t211 = CNS_DBL float 1.0000000000000000 REG mm0 $241 /--* t140 byref +--* t211 float N055 (???,???) [000227] -A---------- * STOREIND float REG NA N057 ( 3, 2) [000015] -------N---- t15 = LCL_VAR_ADDR byref V02 tmp1 rax REG rax /--* t15 byref N059 ( 3, 3) [000147] DA---------- * STORE_LCL_VAR byref V21 tmp20 d:1 rax REG rax N061 ( 1, 1) [000149] ------------ t149 = LCL_VAR byref V21 tmp20 u:1 rax Zero Fseq[X] REG rax $302 /--* t149 byref N063 ( 3, 2) [000150] n----------- t150 = * IND float REG mm0 /--* t150 float N065 ( 7, 7) [000151] DA---------- * STORE_LCL_VAR float V12 tmp11 d:1 mm0 REG mm0 N067 ( 1, 1) [000154] ------------ t154 = LCL_VAR byref V21 tmp20 u:1 rax REG rax $302 /--* t154 byref N069 ( 2, 2) [000156] -c---------- t156 = * LEA(b+4) byref REG NA /--* t156 byref N071 ( 4, 4) [000157] n----------- t157 = * IND float REG mm1 /--* t157 float N073 ( 8, 9) [000158] DA---------- * STORE_LCL_VAR float V13 tmp12 d:1 mm1 REG mm1 N075 ( 1, 1) [000161] ------------ t161 = LCL_VAR byref V21 tmp20 u:1 rax REG rax $302 /--* t161 byref N077 ( 2, 2) [000163] -c---------- t163 = * LEA(b+8) byref REG NA /--* t163 byref N079 ( 4, 4) [000164] n----------- t164 = * IND float REG mm2 /--* t164 float N081 ( 8, 9) [000165] DA---------- * STORE_LCL_VAR float V14 tmp13 d:1 mm2 REG mm2 N083 ( 1, 1) [000168] ------------ t168 = LCL_VAR byref V21 tmp20 u:1 rax (last use) REG rax $302 /--* t168 byref N085 ( 2, 2) [000170] -c---------- t170 = * LEA(b+12) byref REG NA /--* t170 byref N087 ( 4, 4) [000171] n----------- t171 = * IND float REG mm3 /--* t171 float N089 ( 8, 9) [000172] DA---------- * STORE_LCL_VAR float V15 tmp14 d:1 mm3 REG mm3 N091 ( 3, 2) [000013] ----G--N---- t13 = LCL_VAR_ADDR byref V03 tmp2 rax REG rax /--* t13 byref N093 ( 3, 3) [000176] DA--G------- * STORE_LCL_VAR byref V22 tmp21 d:1 rax REG rax N095 ( 1, 1) [000178] ------------ t178 = LCL_VAR byref V22 tmp21 u:1 rax Zero Fseq[X] REG rax $304 /--* t178 byref N097 ( 3, 2) [000179] n----------- t179 = * IND float REG mm4 /--* t179 float N099 ( 7, 7) [000180] DA---------- * STORE_LCL_VAR float V16 tmp15 d:1 mm4 REG mm4 N101 ( 1, 1) [000183] ------------ t183 = LCL_VAR byref V22 tmp21 u:1 rax REG rax $304 /--* t183 byref N103 ( 2, 2) [000185] -c---------- t185 = * LEA(b+4) byref REG NA /--* t185 byref N105 ( 4, 4) [000186] n----------- t186 = * IND float REG mm5 /--* t186 float N107 ( 8, 9) [000187] DA---------- * STORE_LCL_VAR float V17 tmp16 d:1 mm5 REG mm5 N109 ( 1, 1) [000190] ------------ t190 = LCL_VAR byref V22 tmp21 u:1 rax REG rax $304 /--* t190 byref N111 ( 2, 2) [000192] -c---------- t192 = * LEA(b+8) byref REG NA /--* t192 byref N113 ( 4, 4) [000193] n----------- t193 = * IND float REG mm6 /--* t193 float N115 ( 8, 9) [000194] DA---------- * STORE_LCL_VAR float V18 tmp17 d:1 mm6 REG mm6 N117 ( 1, 1) [000197] ------------ t197 = LCL_VAR byref V22 tmp21 u:1 rax (last use) REG rax $304 /--* t197 byref N119 ( 2, 2) [000199] -c---------- t199 = * LEA(b+12) byref REG NA /--* t199 byref N121 ( 4, 4) [000200] n----------- t200 = * IND float REG mm7 /--* t200 float N123 ( 8, 9) [000201] DA---------- * STORE_LCL_VAR float V19 tmp18 d:1 mm7 REG mm7 N125 ( 3, 4) [000057] ------------ t57 = LCL_VAR float V12 tmp11 u:1 mm0 (last use) REG mm0 N127 ( 3, 4) [000060] ------------ t60 = LCL_VAR float V16 tmp15 u:1 mm4 (last use) REG mm4 /--* t57 float +--* t60 float N129 ( 7, 9) [000061] N------N-U-- * NE void REG NA N131 ( 9, 11) [000062] ------------ * JTRUE void REG NA ------------ BB02 [000..000) -> BB05 (cond), preds={BB01} succs={BB03,BB05} N135 ( 3, 4) [000070] ------------ t70 = LCL_VAR float V13 tmp12 u:1 mm1 (last use) REG mm1 N137 ( 3, 4) [000073] ------------ t73 = LCL_VAR float V17 tmp16 u:1 mm5 (last use) REG mm5 /--* t70 float +--* t73 float N139 ( 7, 9) [000074] N------N-U-- * NE void REG NA N141 ( 9, 11) [000075] ------------ * JTRUE void REG NA ------------ BB03 [000..000) -> BB05 (cond), preds={BB02} succs={BB04,BB05} N145 ( 3, 4) [000078] ------------ t78 = LCL_VAR float V14 tmp13 u:1 mm2 (last use) REG mm2 N147 ( 3, 4) [000081] ------------ t81 = LCL_VAR float V18 tmp17 u:1 mm6 (last use) REG mm6 /--* t78 float +--* t81 float N149 ( 7, 9) [000082] N------N-U-- * NE void REG NA N151 ( 9, 11) [000083] ------------ * JTRUE void REG NA ------------ BB04 [000..000) -> BB06 (always), preds={BB03} succs={BB06} N155 ( 3, 4) [000086] ------------ t86 = LCL_VAR float V15 tmp14 u:1 mm3 (last use) REG mm3 N157 ( 3, 4) [000089] ------------ t89 = LCL_VAR float V19 tmp18 u:1 mm7 (last use) REG mm7 /--* t86 float +--* t89 float N159 ( 10, 9) [000090] ------------ t90 = * EQ int REG rax /--* t90 int N161 ( 14, 12) [000092] DA---------- * STORE_LCL_VAR int V05 tmp4 d:3 rax REG rax ------------ BB05 [000..000), preds={BB01,BB02,BB03} succs={BB06} N165 ( 1, 1) [000063] ------------ t63 = CNS_INT int 0 REG rax $40 /--* t63 int N167 ( 5, 4) [000066] DA---------- * STORE_LCL_VAR int V05 tmp4 d:2 rax REG rax ------------ BB06 [???..???) (return), preds={BB04,BB05} succs={} N001 ( 0, 0) [000207] ------------ t207 = PHI_ARG bool V05 tmp4 u:3 rax N002 ( 0, 0) [000206] ------------ t206 = PHI_ARG bool V05 tmp4 u:2 rax $40 /--* t207 bool +--* t206 bool N003 ( 0, 0) [000204] ------------ t204 = * PHI bool /--* t204 bool N005 ( 0, 0) [000205] DA---------- * STORE_LCL_VAR bool V05 tmp4 d:1 rax N171 ( 4, 3) [000093] ------------ t93 = LCL_VAR bool V05 tmp4 u:1 rax (last use) REG rax $4c0 /--* t93 bool N173 ( 5, 4) [000018] ------------ * RETURN int REG NA $442 ------------------------------------------------------------------------------------------------------------------- Final allocation -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm3 |mm4 |mm5 |mm6 |mm7 | -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ 0.#0 V0 Parm Alloc rcx | |V0 a| | | | | | | | | | | | | | | | 1.#1 BB1 PredBB0 | |V0 a| | | | | | | | | | | | | | | | 11.#2 I13 Def Alloc mm0 | |V0 a| | | | | | | |I13a| | | | | | | | 11.#3 V0 Use * Keep rcx | |V0 i| | | | | | | |I13a| | | | | | | | 11.#4 I13 Use * Keep mm0 | | | | | | | | | |I13i| | | | | | | | 24.#5 I14 Def Alloc rax |I14a| | | | | | | | | | | | | | | | | 25.#6 I14 Use * Keep rax |I14i| | | | | | | | | | | | | | | | | 26.#7 V20 Def Alloc rax |V20a| | | | | | | | | | | | | | | | | 30.#8 C15 Def Alloc mm0 |V20a| | | | | | | | |C15a| | | | | | | | 31.#9 V20 Use Keep rax |V20a| | | | | | | | |C15a| | | | | | | | 31.#10 C15 Use * Keep mm0 |V20a| | | | | | | | |C15i| | | | | | | | 38.#11 C16 Def Reuse mm0 |V20a| | | | | | | | |C16a| | | | | | | | 39.#12 V20 Use Keep rax |V20a| | | | | | | | |C16a| | | | | | | | 39.#13 C16 Use * Keep mm0 |V20a| | | | | | | | |C16i| | | | | | | | 46.#14 C17 Def Reuse mm0 |V20a| | | | | | | | |C17a| | | | | | | | 47.#15 V20 Use Keep rax |V20a| | | | | | | | |C17a| | | | | | | | 47.#16 C17 Use * Keep mm0 |V20a| | | | | | | | |C17i| | | | | | | | 54.#17 C18 Def Alloc mm0 |V20a| | | | | | | | |C18a| | | | | | | | 55.#18 V20 Use * Keep rax |V20i| | | | | | | | |C18a| | | | | | | | 55.#19 C18 Use * Keep mm0 | | | | | | | | | |C18i| | | | | | | | 58.#20 I19 Def Alloc rax |I19a| | | | | | | | | | | | | | | | | 59.#21 I19 Use * Keep rax |I19i| | | | | | | | | | | | | | | | | 60.#22 V21 Def Alloc rax |V21a| | | | | | | | | | | | | | | | | 63.#23 V21 Use Keep rax |V21a| | | | | | | | | | | | | | | | | 64.#24 I20 Def Alloc mm0 |V21a| | | | | | | | |I20a| | | | | | | | 65.#25 I20 Use * Keep mm0 |V21a| | | | | | | | |I20i| | | | | | | | 66.#26 V12 Def Alloc mm0 |V21a| | | | | | | | |V12a| | | | | | | | 71.#27 V21 Use Keep rax |V21a| | | | | | | | |V12a| | | | | | | | 72.#28 I21 Def Alloc mm1 |V21a| | | | | | | | |V12a|I21a| | | | | | | 73.#29 I21 Use * Keep mm1 |V21a| | | | | | | | |V12a|I21i| | | | | | | 74.#30 V13 Def Alloc mm1 |V21a| | | | | | | | |V12a|V13a| | | | | | | 79.#31 V21 Use Keep rax |V21a| | | | | | | | |V12a|V13a| | | | | | | 80.#32 I22 Def Alloc mm2 |V21a| | | | | | | | |V12a|V13a|I22a| | | | | | 81.#33 I22 Use * Keep mm2 |V21a| | | | | | | | |V12a|V13a|I22i| | | | | | 82.#34 V14 Def Alloc mm2 |V21a| | | | | | | | |V12a|V13a|V14a| | | | | | 87.#35 V21 Use * Keep rax |V21i| | | | | | | | |V12a|V13a|V14a| | | | | | 88.#36 I23 Def Alloc mm3 | | | | | | | | | |V12a|V13a|V14a|I23a| | | | | 89.#37 I23 Use * Keep mm3 | | | | | | | | | |V12a|V13a|V14a|I23i| | | | | 90.#38 V15 Def Alloc mm3 | | | | | | | | | |V12a|V13a|V14a|V15a| | | | | 92.#39 I24 Def Alloc rax |I24a| | | | | | | | |V12a|V13a|V14a|V15a| | | | | 93.#40 I24 Use * Keep rax |I24i| | | | | | | | |V12a|V13a|V14a|V15a| | | | | 94.#41 V22 Def Alloc rax |V22a| | | | | | | | |V12a|V13a|V14a|V15a| | | | | 97.#42 V22 Use Keep rax |V22a| | | | | | | | |V12a|V13a|V14a|V15a| | | | | 98.#43 I25 Def Alloc mm4 |V22a| | | | | | | | |V12a|V13a|V14a|V15a|I25a| | | | 99.#44 I25 Use * Keep mm4 |V22a| | | | | | | | |V12a|V13a|V14a|V15a|I25i| | | | 100.#45 V16 Def Alloc mm4 |V22a| | | | | | | | |V12a|V13a|V14a|V15a|V16a| | | | 105.#46 V22 Use Keep rax |V22a| | | | | | | | |V12a|V13a|V14a|V15a|V16a| | | | 106.#47 I26 Def Alloc mm5 |V22a| | | | | | | | |V12a|V13a|V14a|V15a|V16a|I26a| | | 107.#48 I26 Use * Keep mm5 |V22a| | | | | | | | |V12a|V13a|V14a|V15a|V16a|I26i| | | 108.#49 V17 Def Alloc mm5 |V22a| | | | | | | | |V12a|V13a|V14a|V15a|V16a|V17a| | | 113.#50 V22 Use Keep rax |V22a| | | | | | | | |V12a|V13a|V14a|V15a|V16a|V17a| | | 114.#51 I27 Def Alloc mm6 |V22a| | | | | | | | |V12a|V13a|V14a|V15a|V16a|V17a|I27a| | 115.#52 I27 Use * Keep mm6 |V22a| | | | | | | | |V12a|V13a|V14a|V15a|V16a|V17a|I27i| | 116.#53 V18 Def Alloc mm6 |V22a| | | | | | | | |V12a|V13a|V14a|V15a|V16a|V17a|V18a| | 121.#54 V22 Use * Keep rax |V22i| | | | | | | | |V12a|V13a|V14a|V15a|V16a|V17a|V18a| | 122.#55 I28 Def Alloc mm7 | | | | | | | | | |V12a|V13a|V14a|V15a|V16a|V17a|V18a|I28a| 123.#56 I28 Use * Keep mm7 | | | | | | | | | |V12a|V13a|V14a|V15a|V16a|V17a|V18a|I28i| 124.#57 V19 Def Alloc mm7 | | | | | | | | | |V12a|V13a|V14a|V15a|V16a|V17a|V18a|V19a| 129.#58 V12 Use * Keep mm0 | | | | | | | | | |V12i|V13a|V14a|V15a|V16a|V17a|V18a|V19a| 129.#59 V16 Use * Keep mm4 | | | | | | | | | | |V13a|V14a|V15a|V16i|V17a|V18a|V19a| -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm3 |mm4 |mm5 |mm6 |mm7 | -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ 133.#60 BB2 PredBB1 | | | | | | | | | | |V13a|V14a|V15a| |V17a|V18a|V19a| 139.#61 V13 Use * Keep mm1 | | | | | | | | | | |V13i|V14a|V15a| |V17a|V18a|V19a| 139.#62 V17 Use * Keep mm5 | | | | | | | | | | | |V14a|V15a| |V17i|V18a|V19a| -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm3 |mm4 |mm5 |mm6 |mm7 | -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ 143.#63 BB3 PredBB2 | | | | | | | | | | | |V14a|V15a| | |V18a|V19a| 149.#64 V14 Use * Keep mm2 | | | | | | | | | | | |V14i|V15a| | |V18a|V19a| 149.#65 V18 Use * Keep mm6 | | | | | | | | | | | | |V15a| | |V18i|V19a| -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm3 |mm4 |mm5 |mm6 |mm7 | -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ 153.#66 BB4 PredBB3 | | | | | | | | | | | | |V15a| | | |V19a| 159.#67 V15 Use * Keep mm3 | | | | | | | | | | | | |V15i| | | |V19a| 159.#68 V19 Use * Keep mm7 | | | | | | | | | | | | | | | | |V19i| 160.#69 I29 Def Alloc rax |I29a| | | | | | | | | | | | | | | | | 161.#70 I29 Use * Keep rax |I29i| | | | | | | | | | | | | | | | | 162.#71 V5 Def Alloc rax |V5 a| | | | | | | | | | | | | | | | | -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm3 |mm4 |mm5 |mm6 |mm7 | -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ 163.#72 BB5 PredBB1 | | | | | | | | | | | | | | | | | | 166.#73 C30 Def Alloc rax |C30a| | | | | | | | | | | | | | | | | 167.#74 C30 Use * Keep rax |C30i| | | | | | | | | | | | | | | | | 168.#75 V5 Def Alloc rax |V5 a| | | | | | | | | | | | | | | | | -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm3 |mm4 |mm5 |mm6 |mm7 | -------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ 169.#76 BB6 PredBB4 |V5 a| | | | | | | | | | | | | | | | | 173.#77 rax Fixd Keep rax |V5 a| | | | | | | | | | | | | | | | | 173.#78 V5 Use * Keep rax |V5 i| | | | | | | | | | | | | | | | | Recording the maximum number of concurrent spills: ---------- LSRA Stats ---------- Total Tracked Vars: 17 Total Reg Cand Vars: 13 Total number of Intervals: 30 Total number of RefPositions: 78 Total Spill Count: 0 Weighted: 0.000000 Total CopyReg Count: 0 Weighted: 0.000000 Total ResolutionMov Count: 0 Weighted: 0.000000 Total number of split edges: 0 Total Number of spill temps created: 0 TUPLE STYLE DUMP WITH REGISTER ASSIGNMENTS Incoming Parameters: V00(rcx) BB01 [000..011) -> BB05 (cond), preds={} succs={BB02,BB05} ===== N003. IL_OFFSET IL offset: 0x0 N005. V00(rcx*) N007. STK = IND ; rcx* N009. LCL_VAR_ADDR V02 tmp1 NA N011. STORE_BLK; STK N013. IL_OFFSET IL offset: 0x0 N015. IL_OFFSET IL offset: 0x0 N017. IL_OFFSET IL offset: 0x0 N019. IL_OFFSET IL offset: 0x0 N021. IL_OFFSET IL offset: 0x0 N023. rax = LCL_VAR_ADDR V03 tmp2 rax * N025. V20(rax); rax N027. V20(rax) N029. mm0 = CNS_DBL 0.00000000000000000 N031. STOREIND ; rax,mm0 N033. V20(rax) N035. STK = LEA(b+4) ; rax N037. mm0 = CNS_DBL 0.00000000000000000 N039. STOREIND ; STK,mm0 N041. V20(rax) N043. STK = LEA(b+8) ; rax N045. mm0 = CNS_DBL 0.00000000000000000 N047. STOREIND ; STK,mm0 N049. V20(rax*) N051. STK = LEA(b+12); rax* N053. mm0 = CNS_DBL 1.0000000000000000 N055. STOREIND ; STK,mm0 N057. rax = LCL_VAR_ADDR V02 tmp1 rax * N059. V21(rax); rax N061. V21(rax) N063. mm0 = IND ; rax * N065. V12(mm0); mm0 N067. V21(rax) N069. STK = LEA(b+4) ; rax N071. mm1 = IND ; STK * N073. V13(mm1); mm1 N075. V21(rax) N077. STK = LEA(b+8) ; rax N079. mm2 = IND ; STK * N081. V14(mm2); mm2 N083. V21(rax*) N085. STK = LEA(b+12); rax* N087. mm3 = IND ; STK * N089. V15(mm3); mm3 N091. rax = LCL_VAR_ADDR V03 tmp2 rax * N093. V22(rax); rax N095. V22(rax) N097. mm4 = IND ; rax * N099. V16(mm4); mm4 N101. V22(rax) N103. STK = LEA(b+4) ; rax N105. mm5 = IND ; STK * N107. V17(mm5); mm5 N109. V22(rax) N111. STK = LEA(b+8) ; rax N113. mm6 = IND ; STK * N115. V18(mm6); mm6 N117. V22(rax*) N119. STK = LEA(b+12); rax* N121. mm7 = IND ; STK * N123. V19(mm7); mm7 N125. V12(mm0*) N127. V16(mm4*) N129. NE ; mm0*,mm4* N131. JTRUE Var=Reg end of BB01: V15=mm3 V19=mm7 V13=mm1 V14=mm2 V17=mm5 V18=mm6 BB02 [000..000) -> BB05 (cond), preds={BB01} succs={BB03,BB05} ===== Predecessor for variable locations: BB01 Var=Reg beg of BB02: V15=mm3 V19=mm7 V13=mm1 V14=mm2 V17=mm5 V18=mm6 N135. V13(mm1*) N137. V17(mm5*) N139. NE ; mm1*,mm5* N141. JTRUE Var=Reg end of BB02: V15=mm3 V19=mm7 V14=mm2 V18=mm6 BB03 [000..000) -> BB05 (cond), preds={BB02} succs={BB04,BB05} ===== Predecessor for variable locations: BB02 Var=Reg beg of BB03: V15=mm3 V19=mm7 V14=mm2 V18=mm6 N145. V14(mm2*) N147. V18(mm6*) N149. NE ; mm2*,mm6* N151. JTRUE Var=Reg end of BB03: V15=mm3 V19=mm7 BB04 [000..000) -> BB06 (always), preds={BB03} succs={BB06} ===== Predecessor for variable locations: BB03 Var=Reg beg of BB04: V15=mm3 V19=mm7 N155. V15(mm3*) N157. V19(mm7*) N159. rax = EQ ; mm3*,mm7* * N161. V05(rax); rax Var=Reg end of BB04: V05=rax BB05 [000..000), preds={BB01,BB02,BB03} succs={BB06} ===== Predecessor for variable locations: BB01 Var=Reg beg of BB05: none N165. rax = CNS_INT 0 * N167. V05(rax); rax Var=Reg end of BB05: V05=rax BB06 [???..???) (return), preds={BB04,BB05} succs={} ===== Predecessor for variable locations: BB04 Var=Reg beg of BB06: V05=rax N171. V05(rax*) N173. RETURN ; rax* Var=Reg end of BB06: none *************** Finishing PHASE Linear scan register alloc *************** In genGenerateCode() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target LIR BB02 [0004] 1 BB01 0.25 [000..000)-> BB05 ( cond ) i internal LIR BB03 [0005] 1 BB02 0.25 [000..000)-> BB05 ( cond ) i internal LIR BB04 [0006] 1 BB03 0.50 [000..000)-> BB06 (always) i internal LIR BB05 [0007] 3 BB01,BB02,BB03 0.50 [000..000) i internal label target LIR BB06 [0008] 2 BB04,BB05 1 [???..???) (return) internal label target LIR ----------------------------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Generate code *************** In fgDebugCheckBBlist Finalizing stack frame Recording Var Locations at start of BB01 V00(rcx) Modified regs: [rax rcx mm0-mm7] Callee-saved registers pushed: 0 [] *************** In lvaAssignFrameOffsets(FINAL_FRAME_LAYOUT) Assign V02 tmp1, size=16, stkOffs=-0x40 Assign V03 tmp2, size=16, stkOffs=-0x50 --- delta bump 8 for RA --- delta bump 72 for RSP frame --- virtual stack offset to actual stack offset delta is 80 -- V00 was 0, now 80 -- V01 was 0, now 80 -- V02 was -64, now 16 -- V03 was -80, now 0 ; Final local variable assignments ; ; V00 this [V00,T03] ( 3, 3 ) byref -> rcx this ;# V01 OutArgs [V01 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00] "OutgoingArgSpace" ; V02 tmp1 [V02 ] ( 2, 4 ) struct (16) [rsp+0x10] do-not-enreg[XSB] addr-exposed "impAppendStmt" ; V03 tmp2 [V03 ] ( 2, 4 ) struct (16) [rsp+0x00] do-not-enreg[XSB] addr-exposed "struct address for call/obj" ;* V04 tmp3 [V04 ] ( 0, 0 ) struct (16) zero-ref "NewObj constructor temp" ; V05 tmp4 [V05,T04] ( 3, 2 ) bool -> rax "Inline return value spill temp" ;* V06 tmp5 [V06 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V07 tmp6 [V07 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V08 tmp7 [V08,T13] ( 0, 0 ) float -> zero-ref V04.X(offs=0x00) P-INDEP "field V04.X (fldOffset=0x0)" ;* V09 tmp8 [V09,T14] ( 0, 0 ) float -> zero-ref V04.Y(offs=0x04) P-INDEP "field V04.Y (fldOffset=0x4)" ;* V10 tmp9 [V10,T15] ( 0, 0 ) float -> zero-ref V04.Z(offs=0x08) P-INDEP "field V04.Z (fldOffset=0x8)" ;* V11 tmp10 [V11,T16] ( 0, 0 ) float -> zero-ref V04.W(offs=0x0c) P-INDEP "field V04.W (fldOffset=0xc)" ; V12 tmp11 [V12,T05] ( 2, 2 ) float -> mm0 V06.X(offs=0x00) P-INDEP "field V06.X (fldOffset=0x0)" ; V13 tmp12 [V13,T09] ( 2, 1.25) float -> mm1 V06.Y(offs=0x04) P-INDEP "field V06.Y (fldOffset=0x4)" ; V14 tmp13 [V14,T10] ( 2, 1.25) float -> mm2 V06.Z(offs=0x08) P-INDEP "field V06.Z (fldOffset=0x8)" ; V15 tmp14 [V15,T07] ( 2, 1.50) float -> mm3 V06.W(offs=0x0c) P-INDEP "field V06.W (fldOffset=0xc)" ; V16 tmp15 [V16,T06] ( 2, 2 ) float -> mm4 V07.X(offs=0x00) P-INDEP "field V07.X (fldOffset=0x0)" ; V17 tmp16 [V17,T11] ( 2, 1.25) float -> mm5 V07.Y(offs=0x04) P-INDEP "field V07.Y (fldOffset=0x4)" ; V18 tmp17 [V18,T12] ( 2, 1.25) float -> mm6 V07.Z(offs=0x08) P-INDEP "field V07.Z (fldOffset=0x8)" ; V19 tmp18 [V19,T08] ( 2, 1.50) float -> mm7 V07.W(offs=0x0c) P-INDEP "field V07.W (fldOffset=0xc)" ; V20 tmp19 [V20,T00] ( 5, 10 ) byref -> rax stack-byref "BlockOp address local" ; V21 tmp20 [V21,T01] ( 5, 10 ) byref -> rax stack-byref "BlockOp address local" ; V22 tmp21 [V22,T02] ( 5, 10 ) byref -> rax stack-byref "BlockOp address local" ; ; Lcl frame size = 72 Setting stack level from -572662307 to 0 =============== Generating BB01 [000..011) -> BB05 (cond), preds={} succs={BB02,BB05} flags=0x00000000.20030020: i label target LIR BB01 IN (1)={V00 } + ByrefExposed + GcHeap OUT(6)={ V15 V19 V13 V14 V17 V18} Recording Var Locations at start of BB01 V00(rcx) Change life 0000000000000000 {} -> 0000000000000008 {V00} V00 in reg rcx is becoming live [------] Live regs: 00000000 {} => 00000002 {rcx} Live regs: (unchanged) 00000002 {rcx} GC regs: (unchanged) 00000000 {} Byref regs: (unchanged) 00000002 {rcx} L_M51825_BB01: Label: IG02, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000002 {rcx} Scope info: begin block BB01, IL range [000..011) Scope info: open scopes = 0 (V00 this) [000..011) Added IP mapping: 0x0000 STACK_EMPTY (G_M51825_IG02,ins#0,ofs#0) label Generating: N003 (???,???) [000218] ------------ IL_OFFSET void IL offset: 0x0 REG NA Generating: N005 ( 1, 1) [000000] ------------ t0 = LCL_VAR byref V00 this u:1 rcx (last use) REG rcx $80 /--* t0 byref Generating: N007 ( 3, 2) [000001] -c-XG------- t1 = * IND struct REG NA Generating: N009 (???,???) [000228] Dc-----N---- t228 = LCL_VAR_ADDR byref V02 tmp1 NA REG NA /--* t228 byref +--* t1 struct Generating: N011 ( 7, 5) [000005] sA---------- * STORE_BLK struct (copy) (Unroll) REG NA V00 in reg rcx is becoming dead [000000] Live regs: 00000002 {rcx} => 00000000 {} Live vars: {V00} => {} Byref regs: 00000002 {rcx} => 00000000 {} IN0001: movups xmm0, xmmword ptr [rcx] IN0002: movups xmmword ptr [V02 rsp+10H], xmm0 genIPmappingAdd: ignoring duplicate IL offset 0x0 Generating: N013 (???,???) [000219] ------------ IL_OFFSET void IL offset: 0x0 REG NA genIPmappingAdd: ignoring duplicate IL offset 0x0 Generating: N015 (???,???) [000220] ------------ IL_OFFSET void IL offset: 0x0 REG NA genIPmappingAdd: ignoring duplicate IL offset 0x0 Generating: N017 (???,???) [000221] ------------ IL_OFFSET void IL offset: 0x0 REG NA genIPmappingAdd: ignoring duplicate IL offset 0x0 Generating: N019 (???,???) [000222] ------------ IL_OFFSET void IL offset: 0x0 REG NA genIPmappingAdd: ignoring duplicate IL offset 0x0 Generating: N021 (???,???) [000223] ------------ IL_OFFSET void IL offset: 0x0 REG NA Generating: N023 ( 3, 2) [000031] -------N---- t31 = LCL_VAR_ADDR byref V03 tmp2 rax REG rax IN0003: lea rax, bword ptr [V03 rsp] Byref regs: 00000000 {} => 00000001 {rax} /--* t31 byref Generating: N025 ( 3, 3) [000118] DA---------- * STORE_LCL_VAR byref V20 tmp19 d:1 rax REG rax Byref regs: 00000001 {rax} => 00000000 {} V20 in reg rax is becoming live [000118] Live regs: 00000000 {} => 00000001 {rax} Live vars: {} => {V20} Byref regs: 00000000 {} => 00000001 {rax} Generating: N027 ( 1, 1) [000119] ------------ t119 = LCL_VAR byref V20 tmp19 u:1 rax Zero Fseq[X] REG rax $300 Generating: N029 ( 1, 1) [000208] ------------ t208 = CNS_DBL float 0.00000000000000000 REG mm0 $240 IN0004: xorps xmm0, xmm0 /--* t119 byref +--* t208 float Generating: N031 (???,???) [000224] -A---------- * STOREIND float REG NA IN0005: movss dword ptr [rax], xmm0 Generating: N033 ( 1, 1) [000124] ------------ t124 = LCL_VAR byref V20 tmp19 u:1 rax REG rax $300 /--* t124 byref Generating: N035 ( 2, 2) [000126] -c---------- t126 = * LEA(b+4) byref REG NA Generating: N037 ( 1, 1) [000209] ------------ t209 = CNS_DBL float 0.00000000000000000 REG mm0 $240 TreeNode is marked ReuseReg /--* t126 byref +--* t209 float Generating: N039 (???,???) [000225] -A---------- * STOREIND float REG NA IN0006: movss dword ptr [rax+4], xmm0 Generating: N041 ( 1, 1) [000131] ------------ t131 = LCL_VAR byref V20 tmp19 u:1 rax REG rax $300 /--* t131 byref Generating: N043 ( 2, 2) [000133] -c---------- t133 = * LEA(b+8) byref REG NA Generating: N045 ( 1, 1) [000210] ------------ t210 = CNS_DBL float 0.00000000000000000 REG mm0 $240 TreeNode is marked ReuseReg /--* t133 byref +--* t210 float Generating: N047 (???,???) [000226] -A---------- * STOREIND float REG NA IN0007: movss dword ptr [rax+8], xmm0 Generating: N049 ( 1, 1) [000138] ------------ t138 = LCL_VAR byref V20 tmp19 u:1 rax (last use) REG rax $300 /--* t138 byref Generating: N051 ( 2, 2) [000140] -c---------- t140 = * LEA(b+12) byref REG NA Generating: N053 ( 1, 1) [000211] ------------ t211 = CNS_DBL float 1.0000000000000000 REG mm0 $241 IN0008: movss xmm0, dword ptr [reloc @RWD00] /--* t140 byref +--* t211 float Generating: N055 (???,???) [000227] -A---------- * STOREIND float REG NA V20 in reg rax is becoming dead [000138] Live regs: 00000001 {rax} => 00000000 {} Live vars: {V20} => {} Byref regs: 00000001 {rax} => 00000000 {} IN0009: movss dword ptr [rax+12], xmm0 Generating: N057 ( 3, 2) [000015] -------N---- t15 = LCL_VAR_ADDR byref V02 tmp1 rax REG rax IN000a: lea rax, bword ptr [V02 rsp+10H] Byref regs: 00000000 {} => 00000001 {rax} /--* t15 byref Generating: N059 ( 3, 3) [000147] DA---------- * STORE_LCL_VAR byref V21 tmp20 d:1 rax REG rax Byref regs: 00000001 {rax} => 00000000 {} V21 in reg rax is becoming live [000147] Live regs: 00000000 {} => 00000001 {rax} Live vars: {} => {V21} Byref regs: 00000000 {} => 00000001 {rax} Generating: N061 ( 1, 1) [000149] ------------ t149 = LCL_VAR byref V21 tmp20 u:1 rax Zero Fseq[X] REG rax $302 /--* t149 byref Generating: N063 ( 3, 2) [000150] n----------- t150 = * IND float REG mm0 IN000b: movss xmm0, dword ptr [rax] /--* t150 float Generating: N065 ( 7, 7) [000151] DA---------- * STORE_LCL_VAR float V12 tmp11 d:1 mm0 REG mm0 V12 in reg mm0 is becoming live [000151] Live regs: 00000001 {rax} => 00000001 {rax xmm0} Live vars: {V21} => {V12 V21} Generating: N067 ( 1, 1) [000154] ------------ t154 = LCL_VAR byref V21 tmp20 u:1 rax REG rax $302 /--* t154 byref Generating: N069 ( 2, 2) [000156] -c---------- t156 = * LEA(b+4) byref REG NA /--* t156 byref Generating: N071 ( 4, 4) [000157] n----------- t157 = * IND float REG mm1 IN000c: movss xmm1, dword ptr [rax+4] /--* t157 float Generating: N073 ( 8, 9) [000158] DA---------- * STORE_LCL_VAR float V13 tmp12 d:1 mm1 REG mm1 V13 in reg mm1 is becoming live [000158] Live regs: 00000001 {rax xmm0} => 00000001 {rax xmm0 xmm1} Live vars: {V12 V21} => {V12 V13 V21} Generating: N075 ( 1, 1) [000161] ------------ t161 = LCL_VAR byref V21 tmp20 u:1 rax REG rax $302 /--* t161 byref Generating: N077 ( 2, 2) [000163] -c---------- t163 = * LEA(b+8) byref REG NA /--* t163 byref Generating: N079 ( 4, 4) [000164] n----------- t164 = * IND float REG mm2 IN000d: movss xmm2, dword ptr [rax+8] /--* t164 float Generating: N081 ( 8, 9) [000165] DA---------- * STORE_LCL_VAR float V14 tmp13 d:1 mm2 REG mm2 V14 in reg mm2 is becoming live [000165] Live regs: 00000001 {rax xmm0 xmm1} => 00000001 {rax xmm0 xmm1 xmm2} Live vars: {V12 V13 V21} => {V12 V13 V14 V21} Generating: N083 ( 1, 1) [000168] ------------ t168 = LCL_VAR byref V21 tmp20 u:1 rax (last use) REG rax $302 /--* t168 byref Generating: N085 ( 2, 2) [000170] -c---------- t170 = * LEA(b+12) byref REG NA /--* t170 byref Generating: N087 ( 4, 4) [000171] n----------- t171 = * IND float REG mm3 V21 in reg rax is becoming dead [000168] Live regs: 00000001 {rax xmm0 xmm1 xmm2} => 00000000 {xmm0 xmm1 xmm2} Live vars: {V12 V13 V14 V21} => {V12 V13 V14} Byref regs: 00000001 {rax} => 00000000 {} IN000e: movss xmm3, dword ptr [rax+12] /--* t171 float Generating: N089 ( 8, 9) [000172] DA---------- * STORE_LCL_VAR float V15 tmp14 d:1 mm3 REG mm3 V15 in reg mm3 is becoming live [000172] Live regs: 00000000 {xmm0 xmm1 xmm2} => 00000000 {xmm0 xmm1 xmm2 xmm3} Live vars: {V12 V13 V14} => {V12 V13 V14 V15} Generating: N091 ( 3, 2) [000013] ----G--N---- t13 = LCL_VAR_ADDR byref V03 tmp2 rax REG rax IN000f: lea rax, bword ptr [V03 rsp] Byref regs: 00000000 {} => 00000001 {rax} /--* t13 byref Generating: N093 ( 3, 3) [000176] DA--G------- * STORE_LCL_VAR byref V22 tmp21 d:1 rax REG rax Byref regs: 00000001 {rax} => 00000000 {} V22 in reg rax is becoming live [000176] Live regs: 00000000 {xmm0 xmm1 xmm2 xmm3} => 00000001 {rax xmm0 xmm1 xmm2 xmm3} Live vars: {V12 V13 V14 V15} => {V12 V13 V14 V15 V22} Byref regs: 00000000 {} => 00000001 {rax} Generating: N095 ( 1, 1) [000178] ------------ t178 = LCL_VAR byref V22 tmp21 u:1 rax Zero Fseq[X] REG rax $304 /--* t178 byref Generating: N097 ( 3, 2) [000179] n----------- t179 = * IND float REG mm4 IN0010: movss xmm4, dword ptr [rax] /--* t179 float Generating: N099 ( 7, 7) [000180] DA---------- * STORE_LCL_VAR float V16 tmp15 d:1 mm4 REG mm4 V16 in reg mm4 is becoming live [000180] Live regs: 00000001 {rax xmm0 xmm1 xmm2 xmm3} => 00000001 {rax xmm0 xmm1 xmm2 xmm3 xmm4} Live vars: {V12 V13 V14 V15 V22} => {V12 V13 V14 V15 V16 V22} Generating: N101 ( 1, 1) [000183] ------------ t183 = LCL_VAR byref V22 tmp21 u:1 rax REG rax $304 /--* t183 byref Generating: N103 ( 2, 2) [000185] -c---------- t185 = * LEA(b+4) byref REG NA /--* t185 byref Generating: N105 ( 4, 4) [000186] n----------- t186 = * IND float REG mm5 IN0011: movss xmm5, dword ptr [rax+4] /--* t186 float Generating: N107 ( 8, 9) [000187] DA---------- * STORE_LCL_VAR float V17 tmp16 d:1 mm5 REG mm5 V17 in reg mm5 is becoming live [000187] Live regs: 00000001 {rax xmm0 xmm1 xmm2 xmm3 xmm4} => 00000001 {rax xmm0 xmm1 xmm2 xmm3 xmm4 xmm5} Live vars: {V12 V13 V14 V15 V16 V22} => {V12 V13 V14 V15 V16 V17 V22} Generating: N109 ( 1, 1) [000190] ------------ t190 = LCL_VAR byref V22 tmp21 u:1 rax REG rax $304 /--* t190 byref Generating: N111 ( 2, 2) [000192] -c---------- t192 = * LEA(b+8) byref REG NA /--* t192 byref Generating: N113 ( 4, 4) [000193] n----------- t193 = * IND float REG mm6 IN0012: movss xmm6, dword ptr [rax+8] /--* t193 float Generating: N115 ( 8, 9) [000194] DA---------- * STORE_LCL_VAR float V18 tmp17 d:1 mm6 REG mm6 V18 in reg mm6 is becoming live [000194] Live regs: 00000001 {rax xmm0 xmm1 xmm2 xmm3 xmm4 xmm5} => 00000001 {rax xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6} Live vars: {V12 V13 V14 V15 V16 V17 V22} => {V12 V13 V14 V15 V16 V17 V18 V22} Generating: N117 ( 1, 1) [000197] ------------ t197 = LCL_VAR byref V22 tmp21 u:1 rax (last use) REG rax $304 /--* t197 byref Generating: N119 ( 2, 2) [000199] -c---------- t199 = * LEA(b+12) byref REG NA /--* t199 byref Generating: N121 ( 4, 4) [000200] n----------- t200 = * IND float REG mm7 V22 in reg rax is becoming dead [000197] Live regs: 00000001 {rax xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6} => 00000000 {xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6} Live vars: {V12 V13 V14 V15 V16 V17 V18 V22} => {V12 V13 V14 V15 V16 V17 V18} Byref regs: 00000001 {rax} => 00000000 {} IN0013: movss xmm7, dword ptr [rax+12] /--* t200 float Generating: N123 ( 8, 9) [000201] DA---------- * STORE_LCL_VAR float V19 tmp18 d:1 mm7 REG mm7 V19 in reg mm7 is becoming live [000201] Live regs: 00000000 {xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6} => 00000000 {xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7} Live vars: {V12 V13 V14 V15 V16 V17 V18} => {V12 V13 V14 V15 V16 V17 V18 V19} Generating: N125 ( 3, 4) [000057] ------------ t57 = LCL_VAR float V12 tmp11 u:1 mm0 (last use) REG mm0 Generating: N127 ( 3, 4) [000060] ------------ t60 = LCL_VAR float V16 tmp15 u:1 mm4 (last use) REG mm4 /--* t57 float +--* t60 float Generating: N129 ( 7, 9) [000061] N------N-U-- * NE void REG NA V12 in reg mm0 is becoming dead [000057] Live regs: 00000000 {xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7} => 00000000 {xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7} Live vars: {V12 V13 V14 V15 V16 V17 V18 V19} => {V13 V14 V15 V16 V17 V18 V19} V16 in reg mm4 is becoming dead [000060] Live regs: 00000000 {xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7} => 00000000 {xmm1 xmm2 xmm3 xmm5 xmm6 xmm7} Live vars: {V13 V14 V15 V16 V17 V18 V19} => {V13 V14 V15 V17 V18 V19} IN0014: ucomiss xmm0, xmm4 Generating: N131 ( 9, 11) [000062] ------------ * JTRUE void REG NA IN0015: jp L_M51825_BB05 IN0016: jne L_M51825_BB05 Scope info: end block BB01, IL range [000..011) Scope info: ending scope, LVnum=0 [000..011) Scope info: open scopes = =============== Generating BB02 [000..000) -> BB05 (cond), preds={BB01} succs={BB03,BB05} flags=0x00000000.20000060: i internal LIR BB02 IN (6)={V15 V19 V13 V14 V17 V18} OUT(4)={V15 V19 V14 V18} Recording Var Locations at start of BB02 V15(mm3) V19(mm7) V13(mm1) V14(mm2) V17(mm5) V18(mm6) Liveness not changing: 0000000000001F80 {V13 V14 V15 V17 V18 V19} Live regs: 00000000 {} => 00000000 {xmm1 xmm2 xmm3 xmm5 xmm6 xmm7} GC regs: (unchanged) 00000000 {} Byref regs: (unchanged) 00000000 {} L_M51825_BB02: G_M51825_IG02: ; offs=000000H, funclet=00, bbWeight=1 Label: IG03, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {} Scope info: begin block BB02, IL range [000..000) Scope info: open scopes = Added IP mapping: NO_MAP STACK_EMPTY (G_M51825_IG03,ins#0,ofs#0) label Generating: N135 ( 3, 4) [000070] ------------ t70 = LCL_VAR float V13 tmp12 u:1 mm1 (last use) REG mm1 Generating: N137 ( 3, 4) [000073] ------------ t73 = LCL_VAR float V17 tmp16 u:1 mm5 (last use) REG mm5 /--* t70 float +--* t73 float Generating: N139 ( 7, 9) [000074] N------N-U-- * NE void REG NA V13 in reg mm1 is becoming dead [000070] Live regs: 00000000 {xmm1 xmm2 xmm3 xmm5 xmm6 xmm7} => 00000000 {xmm2 xmm3 xmm5 xmm6 xmm7} Live vars: {V13 V14 V15 V17 V18 V19} => {V14 V15 V17 V18 V19} V17 in reg mm5 is becoming dead [000073] Live regs: 00000000 {xmm2 xmm3 xmm5 xmm6 xmm7} => 00000000 {xmm2 xmm3 xmm6 xmm7} Live vars: {V14 V15 V17 V18 V19} => {V14 V15 V18 V19} IN0017: ucomiss xmm1, xmm5 Generating: N141 ( 9, 11) [000075] ------------ * JTRUE void REG NA IN0018: jp L_M51825_BB05 IN0019: jne L_M51825_BB05 Scope info: end block BB02, IL range [000..000) Scope info: open scopes = =============== Generating BB03 [000..000) -> BB05 (cond), preds={BB02} succs={BB04,BB05} flags=0x00000000.20000060: i internal LIR BB03 IN (4)={V15 V19 V14 V18} OUT(2)={V15 V19 } Recording Var Locations at start of BB03 V15(mm3) V19(mm7) V14(mm2) V18(mm6) Liveness not changing: 0000000000001580 {V14 V15 V18 V19} Live regs: 00000000 {} => 00000000 {xmm2 xmm3 xmm6 xmm7} GC regs: (unchanged) 00000000 {} Byref regs: (unchanged) 00000000 {} L_M51825_BB03: Scope info: begin block BB03, IL range [000..000) Scope info: open scopes = genIPmappingAdd: ignoring duplicate IL offset 0xffffffff Generating: N145 ( 3, 4) [000078] ------------ t78 = LCL_VAR float V14 tmp13 u:1 mm2 (last use) REG mm2 Generating: N147 ( 3, 4) [000081] ------------ t81 = LCL_VAR float V18 tmp17 u:1 mm6 (last use) REG mm6 /--* t78 float +--* t81 float Generating: N149 ( 7, 9) [000082] N------N-U-- * NE void REG NA V14 in reg mm2 is becoming dead [000078] Live regs: 00000000 {xmm2 xmm3 xmm6 xmm7} => 00000000 {xmm3 xmm6 xmm7} Live vars: {V14 V15 V18 V19} => {V15 V18 V19} V18 in reg mm6 is becoming dead [000081] Live regs: 00000000 {xmm3 xmm6 xmm7} => 00000000 {xmm3 xmm7} Live vars: {V15 V18 V19} => {V15 V19} IN001a: ucomiss xmm2, xmm6 Generating: N151 ( 9, 11) [000083] ------------ * JTRUE void REG NA IN001b: jp L_M51825_BB05 IN001c: jne L_M51825_BB05 Scope info: end block BB03, IL range [000..000) Scope info: open scopes = =============== Generating BB04 [000..000) -> BB06 (always), preds={BB03} succs={BB06} flags=0x00000000.20000060: i internal LIR BB04 IN (2)={ V15 V19} OUT(1)={V05 } Recording Var Locations at start of BB04 V15(mm3) V19(mm7) Liveness not changing: 0000000000000180 {V15 V19} Live regs: 00000000 {} => 00000000 {xmm3 xmm7} GC regs: (unchanged) 00000000 {} Byref regs: (unchanged) 00000000 {} L_M51825_BB04: G_M51825_IG03: ; offs=000068H, funclet=00, bbWeight=0.25 Label: IG04, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {} Scope info: begin block BB04, IL range [000..000) Scope info: open scopes = genIPmappingAdd: ignoring duplicate IL offset 0xffffffff Generating: N155 ( 3, 4) [000086] ------------ t86 = LCL_VAR float V15 tmp14 u:1 mm3 (last use) REG mm3 Generating: N157 ( 3, 4) [000089] ------------ t89 = LCL_VAR float V19 tmp18 u:1 mm7 (last use) REG mm7 /--* t86 float +--* t89 float Generating: N159 ( 10, 9) [000090] ------------ t90 = * EQ int REG rax V15 in reg mm3 is becoming dead [000086] Live regs: 00000000 {xmm3 xmm7} => 00000000 {xmm7} Live vars: {V15 V19} => {V19} V19 in reg mm7 is becoming dead [000089] Live regs: 00000000 {xmm7} => 00000000 {} Live vars: {V19} => {} IN001d: ucomiss xmm3, xmm7 IN001e: setnp al New Basic Block BB07 [0009] created. IN001f: jp L_M51825_BB07 IN0020: sete al L_M51825_BB07: G_M51825_IG04: ; offs=000086H, funclet=00, bbWeight=0.50 Label: IG05, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {} IN0021: movzx rax, al /--* t90 int Generating: N161 ( 14, 12) [000092] DA---------- * STORE_LCL_VAR int V05 tmp4 d:3 rax REG rax V05 in reg rax is becoming live [000092] Live regs: 00000000 {} => 00000001 {rax} Live vars: {} => {V05} Scope info: end block BB04, IL range [000..000) Scope info: open scopes = IN0022: jmp L_M51825_BB06 =============== Generating BB05 [000..000), preds={BB01,BB02,BB03} succs={BB06} flags=0x00000000.20030060: i internal label target LIR BB05 IN (0)={ } OUT(1)={V05} Recording Var Locations at start of BB05 Change life 0000000000000010 {V05} -> 0000000000000000 {} V05 in reg rax is becoming dead [------] Live regs: (unchanged) 00000000 {} Live regs: (unchanged) 00000000 {} GC regs: (unchanged) 00000000 {} Byref regs: (unchanged) 00000000 {} L_M51825_BB05: G_M51825_IG05: ; offs=000095H, funclet=00, bbWeight=0.50 Label: IG06, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {} Scope info: begin block BB05, IL range [000..000) Scope info: open scopes = genIPmappingAdd: ignoring duplicate IL offset 0xffffffff Generating: N165 ( 1, 1) [000063] ------------ t63 = CNS_INT int 0 REG rax $40 IN0023: xor eax, eax /--* t63 int Generating: N167 ( 5, 4) [000066] DA---------- * STORE_LCL_VAR int V05 tmp4 d:2 rax REG rax V05 in reg rax is becoming live [000066] Live regs: 00000000 {} => 00000001 {rax} Live vars: {} => {V05} Scope info: end block BB05, IL range [000..000) Scope info: open scopes = =============== Generating BB06 [???..???) (return), preds={BB04,BB05} succs={} flags=0x00000000.20030040: internal label target LIR BB06 IN (1)={V05} OUT(0)={ } Recording Var Locations at start of BB06 V05(rax) Liveness not changing: 0000000000000010 {V05} Live regs: 00000000 {} => 00000001 {rax} GC regs: (unchanged) 00000000 {} Byref regs: (unchanged) 00000000 {} L_M51825_BB06: G_M51825_IG06: ; offs=00009DH, funclet=00, bbWeight=0.50 Label: IG07, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {} Scope info: begin block BB06, IL range [???..???) Scope info: ignoring block beginning genIPmappingAdd: ignoring duplicate IL offset 0xffffffff Generating: N171 ( 4, 3) [000093] ------------ t93 = LCL_VAR bool V05 tmp4 u:1 rax (last use) REG rax $4c0 /--* t93 bool Generating: N173 ( 5, 4) [000018] ------------ * RETURN int REG NA $442 V05 in reg rax is becoming dead [000093] Live regs: 00000001 {rax} => 00000000 {} Live vars: {V05} => {} Scope info: end block BB06, IL range [???..???) Scope info: ignoring block end Added IP mapping: EPILOG STACK_EMPTY (G_M51825_IG07,ins#0,ofs#0) label Reserving epilog IG for block BB06 *************** After placeholder IG creation G_M51825_IG01: ; func=00, offs=000000H, size=0000H, gcrefRegs=00000000 {} <-- Prolog IG G_M51825_IG02: ; offs=000000H, size=0068H, gcrefRegs=00000000 {}, byrefRegs=00000002 {rcx}, byref G_M51825_IG03: ; offs=000068H, size=001EH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref G_M51825_IG04: ; offs=000086H, size=000FH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref G_M51825_IG05: ; offs=000095H, size=0008H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref G_M51825_IG06: ; offs=00009DH, size=0002H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref G_M51825_IG07: ; epilog placeholder, next placeholder=, BB06 [0008], epilog <-- First placeholder <-- Last placeholder ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=00000000 {}, PrevByrefRegs=00000000 {} ; InitGCVars=0000000000000000 {}, InitGCrefRegs=00000000 {}, InitByrefRegs=00000000 {} Liveness not changing: 0000000000000000 {} # compCycleEstimate = 156, compSizeEstimate = 169 System.Numerics.Quaternion:get_IsIdentity():bool:this ; Final local variable assignments ; ; V00 this [V00,T03] ( 3, 3 ) byref -> rcx this ;# V01 OutArgs [V01 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00] "OutgoingArgSpace" ; V02 tmp1 [V02 ] ( 2, 4 ) struct (16) [rsp+0x10] do-not-enreg[XSB] addr-exposed "impAppendStmt" ; V03 tmp2 [V03 ] ( 2, 4 ) struct (16) [rsp+0x00] do-not-enreg[XSB] addr-exposed "struct address for call/obj" ;* V04 tmp3 [V04 ] ( 0, 0 ) struct (16) zero-ref "NewObj constructor temp" ; V05 tmp4 [V05,T04] ( 3, 2 ) bool -> rax "Inline return value spill temp" ;* V06 tmp5 [V06 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V07 tmp6 [V07 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V08 tmp7 [V08,T13] ( 0, 0 ) float -> zero-ref V04.X(offs=0x00) P-INDEP "field V04.X (fldOffset=0x0)" ;* V09 tmp8 [V09,T14] ( 0, 0 ) float -> zero-ref V04.Y(offs=0x04) P-INDEP "field V04.Y (fldOffset=0x4)" ;* V10 tmp9 [V10,T15] ( 0, 0 ) float -> zero-ref V04.Z(offs=0x08) P-INDEP "field V04.Z (fldOffset=0x8)" ;* V11 tmp10 [V11,T16] ( 0, 0 ) float -> zero-ref V04.W(offs=0x0c) P-INDEP "field V04.W (fldOffset=0xc)" ; V12 tmp11 [V12,T05] ( 2, 2 ) float -> mm0 V06.X(offs=0x00) P-INDEP "field V06.X (fldOffset=0x0)" ; V13 tmp12 [V13,T09] ( 2, 1.25) float -> mm1 V06.Y(offs=0x04) P-INDEP "field V06.Y (fldOffset=0x4)" ; V14 tmp13 [V14,T10] ( 2, 1.25) float -> mm2 V06.Z(offs=0x08) P-INDEP "field V06.Z (fldOffset=0x8)" ; V15 tmp14 [V15,T07] ( 2, 1.50) float -> mm3 V06.W(offs=0x0c) P-INDEP "field V06.W (fldOffset=0xc)" ; V16 tmp15 [V16,T06] ( 2, 2 ) float -> mm4 V07.X(offs=0x00) P-INDEP "field V07.X (fldOffset=0x0)" ; V17 tmp16 [V17,T11] ( 2, 1.25) float -> mm5 V07.Y(offs=0x04) P-INDEP "field V07.Y (fldOffset=0x4)" ; V18 tmp17 [V18,T12] ( 2, 1.25) float -> mm6 V07.Z(offs=0x08) P-INDEP "field V07.Z (fldOffset=0x8)" ; V19 tmp18 [V19,T08] ( 2, 1.50) float -> mm7 V07.W(offs=0x0c) P-INDEP "field V07.W (fldOffset=0xc)" ; V20 tmp19 [V20,T00] ( 5, 10 ) byref -> rax stack-byref "BlockOp address local" ; V21 tmp20 [V21,T01] ( 5, 10 ) byref -> rax stack-byref "BlockOp address local" ; V22 tmp21 [V22,T02] ( 5, 10 ) byref -> rax stack-byref "BlockOp address local" ; ; Lcl frame size = 72 *************** Before prolog / epilog generation G_M51825_IG01: ; func=00, offs=000000H, size=0000H, gcrefRegs=00000000 {} <-- Prolog IG G_M51825_IG02: ; offs=000000H, size=0068H, gcrefRegs=00000000 {}, byrefRegs=00000002 {rcx}, byref G_M51825_IG03: ; offs=000068H, size=001EH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref G_M51825_IG04: ; offs=000086H, size=000FH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref G_M51825_IG05: ; offs=000095H, size=0008H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref G_M51825_IG06: ; offs=00009DH, size=0002H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref G_M51825_IG07: ; epilog placeholder, next placeholder=, BB06 [0008], epilog <-- First placeholder <-- Last placeholder ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=00000000 {}, PrevByrefRegs=00000000 {} ; InitGCVars=0000000000000000 {}, InitGCrefRegs=00000000 {}, InitByrefRegs=00000000 {} Recording Var Locations at start of BB01 V00(rcx) *************** In genFnProlog() Added IP mapping to front: PROLOG STACK_EMPTY (G_M51825_IG01,ins#0,ofs#0) label __prolog: IN0024: sub rsp, 72 IN0025: movaps qword ptr [rsp+30H], xmm6 IN0026: movaps qword ptr [rsp+20H], xmm7 *************** In genFnPrologCalleeRegArgs() for int regs *************** In genEnregisterIncomingStackArgs() G_M51825_IG01: ; offs=000000H, funclet=00, bbWeight=1 *************** In genFnEpilog() __epilog: gcVarPtrSetCur=0000000000000000 {}, gcRegGCrefSetCur=00000000 {}, gcRegByrefSetCur=00000000 {} IN0027: movaps xmm6, qword ptr [rsp+30H] IN0028: movaps xmm7, qword ptr [rsp+20H] IN0029: add rsp, 72 IN002a: ret G_M51825_IG07: ; offs=00009FH, funclet=00, bbWeight=1 0 prologs, 1 epilogs, 0 funclet prologs, 0 funclet epilogs *************** After prolog / epilog generation G_M51825_IG01: ; func=00, offs=000000H, size=000EH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG G_M51825_IG02: ; offs=00000EH, size=0068H, gcrefRegs=00000000 {}, byrefRegs=00000002 {rcx}, byref G_M51825_IG03: ; offs=000076H, size=001EH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref G_M51825_IG04: ; offs=000094H, size=000FH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref G_M51825_IG05: ; offs=0000A3H, size=0008H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref G_M51825_IG06: ; offs=0000ABH, size=0002H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref G_M51825_IG07: ; offs=0000ADH, size=000FH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc *************** In emitJumpDistBind() Binding: IN0015: 000000 jp L_M51825_BB05 Binding L_M51825_BB05 to G_M51825_IG06 Estimate of fwd jump [D1FFAB1E/021]: 006A -> 00AB = 003F Shrinking jump [D1FFAB1E/021] Binding: IN0016: 000000 jne L_M51825_BB05 Binding L_M51825_BB05 to G_M51825_IG06 Estimate of fwd jump [D1FFAB1E/022]: 006C -> 00A7 = 0039 Shrinking jump [D1FFAB1E/022] Adjusted offset of BB03 from 0076 to 006E Binding: IN0018: 000000 jp L_M51825_BB05 Binding L_M51825_BB05 to G_M51825_IG06 Estimate of fwd jump [D1FFAB1E/024]: 0071 -> 00A3 = 0030 Shrinking jump [D1FFAB1E/024] Binding: IN0019: 000000 jne L_M51825_BB05 Binding L_M51825_BB05 to G_M51825_IG06 Estimate of fwd jump [D1FFAB1E/025]: 0073 -> 009F = 002A Shrinking jump [D1FFAB1E/025] Binding: IN001b: 000000 jp L_M51825_BB05 Binding L_M51825_BB05 to G_M51825_IG06 Estimate of fwd jump [D1FFAB1E/027]: 0078 -> 009B = 0021 Shrinking jump [D1FFAB1E/027] Binding: IN001c: 000000 jne L_M51825_BB05 Binding L_M51825_BB05 to G_M51825_IG06 Estimate of fwd jump [D1FFAB1E/028]: 007A -> 0097 = 001B Shrinking jump [D1FFAB1E/028] Adjusted offset of BB04 from 0094 to 007C Binding: IN001f: 000000 jp L_M51825_BB07 Binding L_M51825_BB07 to G_M51825_IG05 Estimate of fwd jump [D1FFAB1E/031]: 0082 -> 008B = 0007 Shrinking jump [D1FFAB1E/031] Adjusted offset of BB05 from 00A3 to 0087 Binding: IN0022: 000000 jmp L_M51825_BB06 Binding L_M51825_BB06 to G_M51825_IG07 Estimate of fwd jump [D1FFAB1E/034]: 008A -> 0091 = 0005 Shrinking jump [D1FFAB1E/034] Adjusted offset of BB06 from 00AB to 008C Adjusted offset of BB07 from 00AD to 008E Total shrinkage = 31, min extra jump size = 4294967295 *************** Finishing PHASE Generate code *************** Starting PHASE Emit code Hot code size = 0x9D bytes Cold code size = 0x0 bytes reserveUnwindInfo(isFunclet=FALSE, isColdCode=FALSE, unwindSize=0xe) *************** In emitEndCodeGen() Converting emitMaxStackDepth from bytes (0) to elements (0) *************************************************************************** Instructions as they come out of the scheduler G_M51825_IG01: ; func=00, offs=000000H, size=000EH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG IN0024: 000000 sub rsp, 72 IN0025: 000004 movaps qword ptr [rsp+30H], xmm6 IN0026: 000009 movaps qword ptr [rsp+20H], xmm7 ;; bbWeight=1 PerfScore 6.25 G_M51825_IG02: ; func=00, offs=00000EH, size=0060H, gcrefRegs=00000000 {}, byrefRegs=00000002 {rcx}, byref, isz ; byrRegs +[rcx] IN0001: 00000E movups xmm0, xmmword ptr [rcx] IN0002: 000011 movups xmmword ptr [rsp+10H], xmm0 IN0003: 000016 lea rax, bword ptr [rsp] ; byrRegs +[rax] IN0004: 00001A xorps xmm0, xmm0 IN0005: 00001D movss dword ptr [rax], xmm0 IN0006: 000021 movss dword ptr [rax+4], xmm0 IN0007: 000026 movss dword ptr [rax+8], xmm0 IN0008: 00002B movss xmm0, dword ptr [reloc @RWD00] IN0009: 000033 movss dword ptr [rax+12], xmm0 IN000a: 000038 lea rax, bword ptr [rsp+10H] IN000b: 00003D movss xmm0, dword ptr [rax] IN000c: 000041 movss xmm1, dword ptr [rax+4] IN000d: 000046 movss xmm2, dword ptr [rax+8] IN000e: 00004B movss xmm3, dword ptr [rax+12] IN000f: 000050 lea rax, bword ptr [rsp] IN0010: 000054 movss xmm4, dword ptr [rax] IN0011: 000058 movss xmm5, dword ptr [rax+4] IN0012: 00005D movss xmm6, dword ptr [rax+8] IN0013: 000062 movss xmm7, dword ptr [rax+12] IN0014: 000067 ucomiss xmm0, xmm4 IN0015: 00006A jp SHORT G_M51825_IG06 IN0016: 00006C jne SHORT G_M51825_IG06 ;; bbWeight=1 PerfScore 30.83 G_M51825_IG03: ; func=00, offs=00006EH, size=000EH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz ; byrRegs -[rax rcx] IN0017: 00006E ucomiss xmm1, xmm5 IN0018: 000071 jp SHORT G_M51825_IG06 IN0019: 000073 jne SHORT G_M51825_IG06 IN001a: 000075 ucomiss xmm2, xmm6 IN001b: 000078 jp SHORT G_M51825_IG06 IN001c: 00007A jne SHORT G_M51825_IG06 ;; bbWeight=0.25 PerfScore 1.50 G_M51825_IG04: ; func=00, offs=00007CH, size=000BH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz IN001d: 00007C ucomiss xmm3, xmm7 IN001e: 00007F setnp al IN001f: 000082 jp SHORT G_M51825_IG05 IN0020: 000084 sete al ;; bbWeight=0.50 PerfScore 2.00 G_M51825_IG05: ; func=00, offs=000087H, size=0005H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz IN0021: 000087 movzx rax, al IN0022: 00008A jmp SHORT G_M51825_IG07 ;; bbWeight=0.50 PerfScore 1.13 G_M51825_IG06: ; func=00, offs=00008CH, size=0002H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref IN0023: 00008C xor eax, eax ;; bbWeight=0.50 PerfScore 0.13 G_M51825_IG07: ; func=00, offs=00008EH, size=000FH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc IN0027: 00008E movaps xmm6, qword ptr [rsp+30H] IN0028: 000093 movaps xmm7, qword ptr [rsp+20H] IN0029: 000098 add rsp, 72 IN002a: 00009C ret ;; bbWeight=1 PerfScore 9.25 Emitting data sections: 4 total bytes section 0, size 4, RWD 0: 00 00 80 3f ; float 1 Allocated method code size = 157 , actual size = 157, unused size = 0 ; Total bytes of code 157, prolog size 14, PerfScore 66.78, instruction count 42, allocated bytes for code 157 (MethodHash=46a9358e) for method System.Numerics.Quaternion:get_IsIdentity():bool:this ; ============================================================ *************** After end code gen, before unwindEmit() G_M51825_IG01: ; func=00, offs=000000H, size=000EH, bbWeight=1 PerfScore 6.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG IN0024: 000000 sub rsp, 72 IN0025: 000004 movaps qword ptr [rsp+30H], xmm6 IN0026: 000009 movaps qword ptr [rsp+20H], xmm7 G_M51825_IG02: ; offs=00000EH, size=0060H, bbWeight=1 PerfScore 30.83, gcrefRegs=00000000 {}, byrefRegs=00000002 {rcx}, byref, isz IN0001: 00000E movups xmm0, xmmword ptr [rcx] IN0002: 000011 movups xmmword ptr [V02 rsp+10H], xmm0 IN0003: 000016 lea rax, bword ptr [V03 rsp] IN0004: 00001A xorps xmm0, xmm0 IN0005: 00001D movss dword ptr [rax], xmm0 IN0006: 000021 movss dword ptr [rax+4], xmm0 IN0007: 000026 movss dword ptr [rax+8], xmm0 IN0008: 00002B movss xmm0, dword ptr [reloc @RWD00] IN0009: 000033 movss dword ptr [rax+12], xmm0 IN000a: 000038 lea rax, bword ptr [V02 rsp+10H] IN000b: 00003D movss xmm0, dword ptr [rax] IN000c: 000041 movss xmm1, dword ptr [rax+4] IN000d: 000046 movss xmm2, dword ptr [rax+8] IN000e: 00004B movss xmm3, dword ptr [rax+12] IN000f: 000050 lea rax, bword ptr [V03 rsp] IN0010: 000054 movss xmm4, dword ptr [rax] IN0011: 000058 movss xmm5, dword ptr [rax+4] IN0012: 00005D movss xmm6, dword ptr [rax+8] IN0013: 000062 movss xmm7, dword ptr [rax+12] IN0014: 000067 ucomiss xmm0, xmm4 IN0015: 00006A jp SHORT G_M51825_IG06 IN0016: 00006C jne SHORT G_M51825_IG06 G_M51825_IG03: ; offs=00006EH, size=000EH, bbWeight=0.25 PerfScore 1.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz IN0017: 00006E ucomiss xmm1, xmm5 IN0018: 000071 jp SHORT G_M51825_IG06 IN0019: 000073 jne SHORT G_M51825_IG06 IN001a: 000075 ucomiss xmm2, xmm6 IN001b: 000078 jp SHORT G_M51825_IG06 IN001c: 00007A jne SHORT G_M51825_IG06 G_M51825_IG04: ; offs=00007CH, size=000BH, bbWeight=0.50 PerfScore 2.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz IN001d: 00007C ucomiss xmm3, xmm7 IN001e: 00007F setnp al IN001f: 000082 jp SHORT G_M51825_IG05 IN0020: 000084 sete al G_M51825_IG05: ; offs=000087H, size=0005H, bbWeight=0.50 PerfScore 1.13, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz IN0021: 000087 movzx rax, al IN0022: 00008A jmp SHORT G_M51825_IG07 G_M51825_IG06: ; offs=00008CH, size=0002H, bbWeight=0.50 PerfScore 0.13, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref IN0023: 00008C xor eax, eax G_M51825_IG07: ; offs=00008EH, size=000FH, bbWeight=1 PerfScore 9.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc IN0027: 00008E movaps xmm6, qword ptr [rsp+30H] IN0028: 000093 movaps xmm7, qword ptr [rsp+20H] IN0029: 000098 add rsp, 72 IN002a: 00009C ret *************** Finishing PHASE Emit code *************** Starting PHASE Emit GC+EH tables Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00 SizeOfProlog : 0x0E CountOfUnwindCodes: 5 FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes : CodeOffset: 0x0E UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM7 (7) Scaled Small Offset: 2 * 16 = 32 = 0x00020 CodeOffset: 0x09 UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM6 (6) Scaled Small Offset: 3 * 16 = 48 = 0x00030 CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 8 * 8 + 8 = 72 = 0x48 allocUnwindInfo(pHotCode=0x00000000D1FFAB1E, pColdCode=0x0000000000000000, startOffset=0x0, endOffset=0x9d, unwindSize=0xe, pUnwindBlock=0x00000000D1FFAB1E, funKind=0 (main function)) *************** In genIPmappingGen() IP mapping count : 4 IL offs PROLOG : 0x00000000 ( STACK_EMPTY ) IL offs 0x0000 : 0x0000000E ( STACK_EMPTY ) IL offs NO_MAP : 0x0000006E ( STACK_EMPTY ) IL offs EPILOG : 0x0000008E ( STACK_EMPTY ) *************** In genSetScopeInfo() VarLocInfo count is 1 ; Variable debug info: 1 live range(s), 1 var(s) for method System.Numerics.Quaternion:get_IsIdentity():bool:this 0( UNKNOWN) : From 00000000h to 0000000Eh, in rcx *************** In gcInfoBlockHdrSave() Set code length to 157. Set ReturnKind to Scalar. Set Outgoing stack arg area size to 0. Defining 0 call sites: *************** Finishing PHASE Emit GC+EH tables Method code size: 157 Allocations for System.Numerics.Quaternion:get_IsIdentity():bool:this (MethodHash=46a9358e) count: 1959, size: 149091, max = 3072 allocateMemory: 196608, nraUsed: 155232 Alloc'd bytes by kind: kind | size | pct ---------------------+------------+-------- AssertionProp | 6460 | 4.33% ASTNode | 28392 | 19.04% InstDesc | 5292 | 3.55% ImpStack | 384 | 0.26% BasicBlock | 3352 | 2.25% fgArgInfo | 0 | 0.00% fgArgInfoPtrArr | 0 | 0.00% FlowList | 288 | 0.19% TreeStatementList | 0 | 0.00% SiScope | 272 | 0.18% DominatorMemory | 336 | 0.23% LSRA | 3976 | 2.67% LSRA_Interval | 2480 | 1.66% LSRA_RefPosition | 5056 | 3.39% Reachability | 16 | 0.01% SSA | 2104 | 1.41% ValueNumber | 14327 | 9.61% LvaTable | 5012 | 3.36% UnwindInfo | 0 | 0.00% hashBv | 240 | 0.16% bitset | 728 | 0.49% FixedBitVect | 36 | 0.02% Generic | 2866 | 1.92% LocalAddressVisitor | 0 | 0.00% FieldSeqStore | 320 | 0.21% ZeroOffsetFieldMap | 304 | 0.20% ArrayInfoMap | 80 | 0.05% MemoryPhiArg | 0 | 0.00% CSE | 2032 | 1.36% GC | 1376 | 0.92% CorTailCallInfo | 0 | 0.00% Inlining | 2504 | 1.68% ArrayStack | 0 | 0.00% DebugInfo | 168 | 0.11% DebugOnly | 55201 | 37.03% Codegen | 1176 | 0.79% LoopOpt | 0 | 0.00% LoopHoist | 0 | 0.00% Unknown | 345 | 0.23% RangeCheck | 0 | 0.00% CopyProp | 2384 | 1.60% SideEffects | 0 | 0.00% ObjectAllocator | 0 | 0.00% VariableLiveRanges | 0 | 0.00% ClassLayout | 72 | 0.05% TailMergeThrows | 0 | 0.00% EarlyProp | 0 | 0.00% ZeroInit | 1512 | 1.01% Pgo | 0 | 0.00% ****** DONE compiling System.Numerics.Quaternion:get_IsIdentity():bool:this