Skip to content

Instantly share code, notes, and snippets.

@damageboy
Created August 21, 2018 11:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save damageboy/b4500d6b7157051551346107786ae4fa to your computer and use it in GitHub Desktop.
Save damageboy/b4500d6b7157051551346107786ae4fa to your computer and use it in GitHub Desktop.
****** START compiling Program:POPCNTButNoBMI2(int):int (MethodHash=622404b0)
Generating code for Unix x64
OPTIONS: compCodeOpt = BLENDED_CODE
OPTIONS: compDbgCode = false
OPTIONS: compDbgInfo = true
OPTIONS: compDbgEnC = false
OPTIONS: compProcedureSplitting = false
OPTIONS: compProcedureSplittingEH = false
OPTIONS: Stack probing is DISABLED
IL to import:
IL_0000 7e 03 00 00 04 ldsfld 0x4000003
IL_0005 20 00 04 00 00 ldc.i4 0x400
IL_000a 02 ldarg.0
IL_000b 28 12 00 00 0a call 0xA000012
IL_0010 2a ret
Arg #0 passed in register(s) rdi
lvaGrabTemp returning 1 (V01 tmp0) (a long lifetime temp) called for OutgoingArgSpace.
; Initial local variable assignments
;
; V00 arg0 int
; V01 OutArgs lclBlk (na)
*************** In compInitDebuggingInfo() for Program:POPCNTButNoBMI2(int):int
getVars() returned cVars = 0, extendOthers = true
info.compVarScopesCount = 1
VarNum LVNum Name Beg End
0: 00h 00h V00 arg0 000h 011h
info.compStmtOffsetsCount = 0
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE )
*************** In fgFindBasicBlocks() for Program:POPCNTButNoBMI2(int):int
Jump targets:
none
New Basic Block BB01 [0000] created.
BB01 [000..011)
IL Code Size,Instr 17, 5, Basic Block count 1, Local Variable Num,Ref count 2, 1 for method Program:POPCNTButNoBMI2(int):int
OPTIONS: opts.MinOpts() == false
Basic block list for 'Program:POPCNTButNoBMI2(int):int'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Program:POPCNTButNoBMI2(int):int
impImportBlockPending for BB01
Importing BB01 (PC=000) of 'Program:POPCNTButNoBMI2(int):int'
[ 0] 0 (0x000) ldsfld 04000003
[ 1] 5 (0x005) ldc.i4 1024
[ 2] 10 (0x00a) ldarg.0
[ 3] 11 (0x00b) call 0A000012 (Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT)
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
info.compCompHnd->canTailCall returned false for call [000004]
[000008] ------------ * STMT void (IL 0x000... ???)
[000004] I-C-G------- \--* CALL int GetNthBitOffset.POPCNTButNoBMI2 (exactContextHnd=0x00007FE9BCFC7599)
[000001] ----G------- arg0 +--* FIELD long _bits
[000002] ------------ arg1 +--* CNS_INT int 0x400
[000003] ------------ arg2 \--* LCL_VAR int V00 arg0
[ 1] 16 (0x010) ret
[000011] ------------ * STMT void (IL ???... ???)
[000010] --C--------- \--* RETURN int
[000009] --C--------- \--* RET_EXPR int (inl return from call [000004])
New BlockSet epoch 1, # of blocks (including unused BB00): 2, bitset array size: 1 (short)
*************** In fgMorph()
*************** In fgDebugCheckBBlist
*************** In fgInline()
Expanding INLINE_CANDIDATE in statement [000008] in BB01:
[000008] ------------ * STMT void (IL 0x000...0x010)
[000004] I-C-G------- \--* CALL int GetNthBitOffset.POPCNTButNoBMI2 (exactContextHnd=0x00007FE9BCFC7599)
[000001] ----G------- arg0 +--* FIELD long _bits
[000002] ------------ arg1 +--* CNS_INT int 0x400
[000003] ------------ arg2 \--* LCL_VAR int V00 arg0
Argument #0: has global refs
[000001] ----G------- * FIELD long _bits
Argument #1: is a constant
[000002] ------------ * CNS_INT int 0x400
Argument #2: is a local var
[000003] ------------ * LCL_VAR int V00 arg0
INLINER: inlineInfo.tokenLookupContextHandle for GetNthBitOffset:POPCNTButNoBMI2(long,int,int):int set to 0x00007FE9BCFC7599:
Invoking compiler for the inlinee method GetNthBitOffset:POPCNTButNoBMI2(long,int,int):int :
IL to import:
IL_0000 02 ldarg.0
IL_0001 0a stloc.0
IL_0002 04 ldarg.2
IL_0003 0b stloc.1
IL_0004 2b 12 br.s 18 (IL_0018)
IL_0006 04 ldarg.2
IL_0007 0b stloc.1
IL_0008 04 ldarg.2
IL_0009 06 ldloc.0
IL_000a 25 dup
IL_000b 1e ldc.i4.8
IL_000c 58 add
IL_000d 0a stloc.0
IL_000e 4c ldind.i8
IL_000f 28 0d 00 00 0a call 0xA00000D
IL_0014 69 conv.i4
IL_0015 59 sub
IL_0016 10 02 starg.s 0x2
IL_0018 04 ldarg.2
IL_0019 16 ldc.i4.0
IL_001a 30 ea bgt.s -22 (IL_0006)
IL_001c 06 ldloc.0
IL_001d 1e ldc.i4.8
IL_001e 59 sub
IL_001f 0c stloc.2
IL_0020 07 ldloc.1
IL_0021 08 ldloc.2
IL_0022 4b ldind.u4
IL_0023 28 11 00 00 0a call 0xA000011
IL_0028 59 sub
IL_0029 10 02 starg.s 0x2
IL_002b 04 ldarg.2
IL_002c 16 ldc.i4.0
IL_002d 31 06 ble.s 6 (IL_0035)
IL_002f 04 ldarg.2
IL_0030 0b stloc.1
IL_0031 08 ldloc.2
IL_0032 1a ldc.i4.4
IL_0033 58 add
IL_0034 0c stloc.2
IL_0035 08 ldloc.2
IL_0036 4b ldind.u4
IL_0037 0d stloc.3
IL_0038 08 ldloc.2
IL_0039 02 ldarg.0
IL_003a 59 sub
IL_003b 1a ldc.i4.4
IL_003c 5b div
IL_003d 6a conv.i8
IL_003e 1f 20 ldc.i4.s 0x20
IL_0040 6a conv.i8
IL_0041 5a mul
IL_0042 13 04 stloc.s 0x4
IL_0044 2b 1e br.s 30 (IL_0064)
IL_0046 09 ldloc.3
IL_0047 28 12 00 00 0a call 0xA000012
IL_004c 17 ldc.i4.1
IL_004d 58 add
IL_004e 13 05 stloc.s 0x5
IL_0050 11 04 ldloc.s 0x4
IL_0052 11 05 ldloc.s 0x5
IL_0054 6e conv.u8
IL_0055 58 add
IL_0056 13 04 stloc.s 0x4
IL_0058 07 ldloc.1
IL_0059 17 ldc.i4.1
IL_005a 59 sub
IL_005b 0b stloc.1
IL_005c 09 ldloc.3
IL_005d 11 05 ldloc.s 0x5
IL_005f 1f 1f ldc.i4.s 0x1F
IL_0061 5f and
IL_0062 64 shr.un
IL_0063 0d stloc.3
IL_0064 07 ldloc.1
IL_0065 16 ldc.i4.0
IL_0066 30 de bgt.s -34 (IL_0046)
IL_0068 11 04 ldloc.s 0x4
IL_006a 69 conv.i4
IL_006b 17 ldc.i4.1
IL_006c 59 sub
IL_006d 2a ret
INLINER impTokenLookupContextHandle for GetNthBitOffset:POPCNTButNoBMI2(long,int,int):int is 0x00007FE9BCFC7599.
*************** In fgFindBasicBlocks() for GetNthBitOffset:POPCNTButNoBMI2(long,int,int):int
Jump targets:
IL_0006
IL_0018
IL_0035
IL_0046
IL_0064
New Basic Block BB02 [0001] created.
BB02 [000..006)
New Basic Block BB03 [0002] created.
BB03 [006..018)
New Basic Block BB04 [0003] created.
BB04 [018..01C)
New Basic Block BB05 [0004] created.
BB05 [01C..02F)
New Basic Block BB06 [0005] created.
BB06 [02F..035)
New Basic Block BB07 [0006] created.
BB07 [035..046)
New Basic Block BB08 [0007] created.
BB08 [046..064)
New Basic Block BB09 [0008] created.
BB09 [064..068)
New Basic Block BB10 [0009] created.
BB10 [068..06E)
Basic block list for 'GetNthBitOffset:POPCNTButNoBMI2(long,int,int):int'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB02 [0001] 1 1 [000..006)-> BB04 (always)
BB03 [0002] 1 1 [006..018) bwd
BB04 [0003] 2 1 [018..01C)-> BB03 ( cond ) bwd
BB05 [0004] 1 1 [01C..02F)-> BB07 ( cond )
BB06 [0005] 1 1 [02F..035)
BB07 [0006] 2 1 [035..046)-> BB09 (always)
BB08 [0007] 1 1 [046..064) bwd
BB09 [0008] 2 1 [064..068)-> BB08 ( cond ) bwd
BB10 [0009] 1 1 [068..06E) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for GetNthBitOffset:POPCNTButNoBMI2(long,int,int):int
impImportBlockPending for BB02
Importing BB02 (PC=000) of 'GetNthBitOffset:POPCNTButNoBMI2(long,int,int):int'
[ 0] 0 (0x000) ldarg.0
lvaGrabTemp returning 2 (V02 tmp1) called for Inlining Arg.
[ 1] 1 (0x001) stloc.0
lvaGrabTemp returning 3 (V03 tmp2) (a long lifetime temp) called for Inline stloc first use temp.
[000016] ------------ * STMT void
[000013] ------------ | /--* LCL_VAR long V02 tmp1
[000015] -A---------- \--* ASG long
[000014] D------N---- \--* LCL_VAR long V03 tmp2
[ 0] 2 (0x002) ldarg.2
lvaGrabTemp returning 4 (V04 tmp3) called for Inlining Arg.
[ 1] 3 (0x003) stloc.1
lvaGrabTemp returning 5 (V05 tmp4) (a long lifetime temp) called for Inline stloc first use temp.
[000020] ------------ * STMT void
[000017] ------------ | /--* LCL_VAR int V04 tmp3
[000019] -A---------- \--* ASG int
[000018] D------N---- \--* LCL_VAR int V05 tmp4
[ 0] 4 (0x004) br.s
impImportBlockPending for BB04
Importing BB04 (PC=024) of 'GetNthBitOffset:POPCNTButNoBMI2(long,int,int):int'
[ 0] 24 (0x018) ldarg.2
[ 1] 25 (0x019) ldc.i4.0 0
[ 2] 26 (0x01a) bgt.s
[000026] ------------ * STMT void
[000025] ------------ \--* JTRUE void
[000023] ------------ | /--* CNS_INT int 0
[000024] ------------ \--* GT int
[000022] ------------ \--* LCL_VAR int V04 tmp3
impImportBlockPending for BB05
impImportBlockPending for BB03
Importing BB03 (PC=006) of 'GetNthBitOffset:POPCNTButNoBMI2(long,int,int):int'
[ 0] 6 (0x006) ldarg.2
[ 1] 7 (0x007) stloc.1
[000031] ------------ * STMT void
[000028] ------------ | /--* LCL_VAR int V04 tmp3
[000030] -A---------- \--* ASG int
[000029] D------N---- \--* LCL_VAR int V05 tmp4
[ 0] 8 (0x008) ldarg.2
[ 1] 9 (0x009) ldloc.0
[ 2] 10 (0x00a) dup
[ 3] 11 (0x00b) ldc.i4.8 8
[ 4] 12 (0x00c) add
[ 3] 13 (0x00d) stloc.0
lvaGrabTemp returning 6 (V06 tmp5) called for impSpillLclRefs.
[000041] ------------ * STMT void
[000033] ------------ | /--* LCL_VAR long V03 tmp2
[000040] -A---------- \--* ASG long
[000039] D------N---- \--* LCL_VAR long V06 tmp5
[000044] ------------ * STMT void
[000036] ------------ | /--* CAST long <- int
[000035] ------------ | | \--* CNS_INT int 8
[000037] ------------ | /--* ADD long
[000034] ------------ | | \--* LCL_VAR long V03 tmp2
[000043] -A---------- \--* ASG long
[000038] D------N---- \--* LCL_VAR long V03 tmp2
[ 2] 14 (0x00e) ldind.i8
[ 2] 15 (0x00f) call 0A00000D
In Compiler::impImportCall: opcode is call, kind=0, callRetType is long, structSize is 0
[ 2] 20 (0x014) conv.i4
[ 2] 21 (0x015) sub
[ 1] 22 (0x016) starg.s 2
[000052] ------------ * STMT void
[000047] ---XG------- | /--* CAST int <- long
[000046] ---XG------- | | \--* HWIntrinsic long PopCount
[000045] *--XG------- | | \--* IND long
[000042] ------------ | | \--* LCL_VAR long V06 tmp5
[000048] ---XG------- | /--* SUB int
[000032] ------------ | | \--* LCL_VAR int V04 tmp3
[000051] -A-XG------- \--* ASG int
[000050] D------N---- \--* LCL_VAR int V04 tmp3
impImportBlockPending for BB04
Importing BB05 (PC=028) of 'GetNthBitOffset:POPCNTButNoBMI2(long,int,int):int'
[ 0] 28 (0x01c) ldloc.0
[ 1] 29 (0x01d) ldc.i4.8 8
[ 2] 30 (0x01e) sub
[ 1] 31 (0x01f) stloc.2
lvaGrabTemp returning 7 (V07 tmp6) (a long lifetime temp) called for Inline stloc first use temp.
[000060] ------------ * STMT void
[000056] ------------ | /--* CAST long <- int
[000055] ------------ | | \--* CNS_INT int 8
[000057] ------------ | /--* SUB long
[000054] ------------ | | \--* LCL_VAR long V03 tmp2
[000059] -A---------- \--* ASG long
[000058] D------N---- \--* LCL_VAR long V07 tmp6
[ 0] 32 (0x020) ldloc.1
[ 1] 33 (0x021) ldloc.2
[ 2] 34 (0x022) ldind.u4
[ 2] 35 (0x023) call 0A000011
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
[ 2] 40 (0x028) sub
[ 1] 41 (0x029) starg.s 2
[000069] ------------ * STMT void
[000064] ---XG------- | /--* HWIntrinsic int PopCount
[000063] *--XG------- | | \--* IND int
[000062] ------------ | | \--* LCL_VAR long V07 tmp6
[000065] ---XG------- | /--* SUB int
[000061] ------------ | | \--* LCL_VAR int V05 tmp4
[000068] -A-XG------- \--* ASG int
[000067] D------N---- \--* LCL_VAR int V04 tmp3
[ 0] 43 (0x02b) ldarg.2
[ 1] 44 (0x02c) ldc.i4.0 0
[ 2] 45 (0x02d) ble.s
[000074] ------------ * STMT void
[000073] ------------ \--* JTRUE void
[000071] ------------ | /--* CNS_INT int 0
[000072] ------------ \--* LE int
[000070] ------------ \--* LCL_VAR int V04 tmp3
impImportBlockPending for BB06
impImportBlockPending for BB07
Importing BB07 (PC=053) of 'GetNthBitOffset:POPCNTButNoBMI2(long,int,int):int'
[ 0] 53 (0x035) ldloc.2
[ 1] 54 (0x036) ldind.u4
[ 1] 55 (0x037) stloc.3
lvaGrabTemp returning 8 (V08 tmp7) (a long lifetime temp) called for Inline stloc first use temp.
[000080] ------------ * STMT void
[000077] *--XG------- | /--* IND int
[000076] ------------ | | \--* LCL_VAR long V07 tmp6
[000079] -A-XG------- \--* ASG int
[000078] D------N---- \--* LCL_VAR int V08 tmp7
[ 0] 56 (0x038) ldloc.2
[ 1] 57 (0x039) ldarg.0
[ 2] 58 (0x03a) sub
[ 1] 59 (0x03b) ldc.i4.4 4
[ 2] 60 (0x03c) div
[ 1] 61 (0x03d) conv.i8
[ 1] 62 (0x03e) ldc.i4.s 32
[ 2] 64 (0x040) conv.i8
[ 2] 65 (0x041) mul
[ 1] 66 (0x042) stloc.s 4
lvaGrabTemp returning 9 (V09 tmp8) (a long lifetime temp) called for Inline stloc first use temp.
[000092] ------------ * STMT void
[000088] ------------ | /--* CAST long <- int
[000087] ------------ | | \--* CNS_INT int 32
[000089] ---X-------- | /--* MUL long
[000085] ------------ | | | /--* CAST long <- int
[000084] ------------ | | | | \--* CNS_INT int 4
[000086] ---X-------- | | \--* DIV long
[000082] ------------ | | | /--* LCL_VAR long V02 tmp1
[000083] ------------ | | \--* SUB long
[000081] ------------ | | \--* LCL_VAR long V07 tmp6
[000091] -A-X-------- \--* ASG long
[000090] D------N---- \--* LCL_VAR long V09 tmp8
[ 0] 68 (0x044) br.s
impImportBlockPending for BB09
Importing BB09 (PC=100) of 'GetNthBitOffset:POPCNTButNoBMI2(long,int,int):int'
[ 0] 100 (0x064) ldloc.1
[ 1] 101 (0x065) ldc.i4.0 0
[ 2] 102 (0x066) bgt.s
[000098] ------------ * STMT void
[000097] ------------ \--* JTRUE void
[000095] ------------ | /--* CNS_INT int 0
[000096] ------------ \--* GT int
[000094] ------------ \--* LCL_VAR int V05 tmp4
impImportBlockPending for BB10
impImportBlockPending for BB08
Importing BB08 (PC=070) of 'GetNthBitOffset:POPCNTButNoBMI2(long,int,int):int'
[ 0] 70 (0x046) ldloc.3
[ 1] 71 (0x047) call 0A000012
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
[ 1] 76 (0x04c) ldc.i4.1 1
[ 2] 77 (0x04d) add
[ 1] 78 (0x04e) stloc.s 5
lvaGrabTemp returning 10 (V10 tmp9) (a long lifetime temp) called for Inline stloc first use temp.
[000106] ------------ * STMT void
[000102] ------------ | /--* CNS_INT int 1
[000103] ------------ | /--* ADD int
[000101] ------------ | | \--* HWIntrinsic int TrailingZeroCount
[000100] ------------ | | \--* LCL_VAR int V08 tmp7
[000105] -A---------- \--* ASG int
[000104] D------N---- \--* LCL_VAR int V10 tmp9
[ 0] 80 (0x050) ldloc.s 4
[ 1] 82 (0x052) ldloc.s 5
[ 2] 84 (0x054) conv.u8
[ 2] 85 (0x055) add
[ 1] 86 (0x056) stloc.s 4
[000113] ------------ * STMT void
[000109] ---------U-- | /--* CAST long <- ulong <- uint
[000108] ------------ | | \--* LCL_VAR int V10 tmp9
[000110] ------------ | /--* ADD long
[000107] ------------ | | \--* LCL_VAR long V09 tmp8
[000112] -A---------- \--* ASG long
[000111] D------N---- \--* LCL_VAR long V09 tmp8
[ 0] 88 (0x058) ldloc.1
[ 1] 89 (0x059) ldc.i4.1 1
[ 2] 90 (0x05a) sub
[ 1] 91 (0x05b) stloc.1
[000119] ------------ * STMT void
[000115] ------------ | /--* CNS_INT int 1
[000116] ------------ | /--* SUB int
[000114] ------------ | | \--* LCL_VAR int V05 tmp4
[000118] -A---------- \--* ASG int
[000117] D------N---- \--* LCL_VAR int V05 tmp4
[ 0] 92 (0x05c) ldloc.3
[ 1] 93 (0x05d) ldloc.s 5
[ 2] 95 (0x05f) ldc.i4.s 31
[ 3] 97 (0x061) and
[ 2] 98 (0x062) shr.un
[ 1] 99 (0x063) stloc.3
[000127] ------------ * STMT void
[000122] ------------ | /--* CNS_INT int 31
[000123] ------------ | /--* AND int
[000121] ------------ | | \--* LCL_VAR int V10 tmp9
[000124] ------------ | /--* RSZ int
[000120] ------------ | | \--* LCL_VAR int V08 tmp7
[000126] -A---------- \--* ASG int
[000125] D------N---- \--* LCL_VAR int V08 tmp7
impImportBlockPending for BB09
Importing BB10 (PC=104) of 'GetNthBitOffset:POPCNTButNoBMI2(long,int,int):int'
[ 0] 104 (0x068) ldloc.s 4
[ 1] 106 (0x06a) conv.i4
[ 1] 107 (0x06b) ldc.i4.1 1
[ 2] 108 (0x06c) sub
[ 1] 109 (0x06d) ret
Inlinee Return expression (before normalization) =>
[000131] ------------ /--* CNS_INT int 1
[000132] ------------ * SUB int
[000130] ------------ \--* CAST int <- long
[000129] ------------ \--* LCL_VAR long V09 tmp8
Inlinee Return expression (after normalization) =>
[000131] ------------ /--* CNS_INT int 1
[000132] ------------ * SUB int
[000130] ------------ \--* CAST int <- long
[000129] ------------ \--* LCL_VAR long V09 tmp8
Importing BB06 (PC=047) of 'GetNthBitOffset:POPCNTButNoBMI2(long,int,int):int'
[ 0] 47 (0x02f) ldarg.2
[ 1] 48 (0x030) stloc.1
[000137] ------------ * STMT void
[000134] ------------ | /--* LCL_VAR int V04 tmp3
[000136] -A---------- \--* ASG int
[000135] D------N---- \--* LCL_VAR int V05 tmp4
[ 0] 49 (0x031) ldloc.2
[ 1] 50 (0x032) ldc.i4.4 4
[ 2] 51 (0x033) add
[ 1] 52 (0x034) stloc.2
[000144] ------------ * STMT void
[000140] ------------ | /--* CAST long <- int
[000139] ------------ | | \--* CNS_INT int 4
[000141] ------------ | /--* ADD long
[000138] ------------ | | \--* LCL_VAR long V07 tmp6
[000143] -A---------- \--* ASG long
[000142] D------N---- \--* LCL_VAR long V07 tmp6
impImportBlockPending for BB07
----------- Statements (and blocks) added due to the inlining of call [000004] -----------
Arguments setup:
[000147] ------------ * STMT void (IL 0x000... ???)
[000001] ----G------- | /--* FIELD long _bits
[000146] -A--G------- \--* ASG long
[000145] D------N---- \--* LCL_VAR long V02 tmp1
[000150] ------------ * STMT void (IL 0x000... ???)
[000003] ------------ | /--* LCL_VAR int V00 arg0
[000149] -A---------- \--* ASG int
[000148] D------N---- \--* LCL_VAR int V04 tmp3
Zero init inlinee locals:
[000154] ------------ * STMT void (IL 0x000... ???)
[000151] ------------ | /--* CNS_INT long 0
[000153] -A---------- \--* ASG long
[000152] D------N---- \--* LCL_VAR long V03 tmp2
[000158] ------------ * STMT void (IL 0x000... ???)
[000155] ------------ | /--* CNS_INT int 0
[000157] -A---------- \--* ASG int
[000156] D------N---- \--* LCL_VAR int V05 tmp4
[000162] ------------ * STMT void (IL 0x000... ???)
[000159] ------------ | /--* CNS_INT long 0
[000161] -A---------- \--* ASG long
[000160] D------N---- \--* LCL_VAR long V07 tmp6
[000166] ------------ * STMT void (IL 0x000... ???)
[000163] ------------ | /--* CNS_INT int 0
[000165] -A---------- \--* ASG int
[000164] D------N---- \--* LCL_VAR int V08 tmp7
[000170] ------------ * STMT void (IL 0x000... ???)
[000167] ------------ | /--* CNS_INT long 0
[000169] -A---------- \--* ASG long
[000168] D------N---- \--* LCL_VAR long V09 tmp8
[000174] ------------ * STMT void (IL 0x000... ???)
[000171] ------------ | /--* CNS_INT int 0
[000173] -A---------- \--* ASG int
[000172] D------N---- \--* LCL_VAR int V10 tmp9
Inlinee method body:New Basic Block BB11 [0010] created.
Convert bbJumpKind of BB10 to BBJ_NONE
fgInlineAppendStatements: no gc ref inline locals.
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB02 [0001] 1 1 [000..001)-> BB04 (always) i
BB03 [0002] 1 0.50 [000..001) i bwd
BB04 [0003] 2 0.50 [000..001)-> BB03 ( cond ) i bwd
BB05 [0004] 1 0.50 [000..001)-> BB07 ( cond ) i
BB06 [0005] 1 0.50 [000..001) i
BB07 [0006] 2 0.50 [000..001)-> BB09 (always) i
BB08 [0007] 1 0.50 [000..001) i bwd
BB09 [0008] 2 0.50 [000..001)-> BB08 ( cond ) i bwd
BB10 [0009] 1 1 [000..001) i
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB02 [000..001) -> BB04 (always), preds={} succs={BB04}
***** BB02, stmt 1
[000016] ------------ * STMT void (IL 0x000... ???)
[000013] ------------ | /--* LCL_VAR long V02 tmp1
[000015] -A---------- \--* ASG long
[000014] D------N---- \--* LCL_VAR long V03 tmp2
***** BB02, stmt 2
[000020] ------------ * STMT void (IL 0x000... ???)
[000017] ------------ | /--* LCL_VAR int V04 tmp3
[000019] -A---------- \--* ASG int
[000018] D------N---- \--* LCL_VAR int V05 tmp4
------------ BB03 [000..001), preds={} succs={BB04}
***** BB03, stmt 3
[000031] ------------ * STMT void (IL 0x000... ???)
[000028] ------------ | /--* LCL_VAR int V04 tmp3
[000030] -A---------- \--* ASG int
[000029] D------N---- \--* LCL_VAR int V05 tmp4
***** BB03, stmt 4
[000041] ------------ * STMT void (IL 0x000... ???)
[000033] ------------ | /--* LCL_VAR long V03 tmp2
[000040] -A---------- \--* ASG long
[000039] D------N---- \--* LCL_VAR long V06 tmp5
***** BB03, stmt 5
[000044] ------------ * STMT void (IL 0x000... ???)
[000036] ------------ | /--* CAST long <- int
[000035] ------------ | | \--* CNS_INT int 8
[000037] ------------ | /--* ADD long
[000034] ------------ | | \--* LCL_VAR long V03 tmp2
[000043] -A---------- \--* ASG long
[000038] D------N---- \--* LCL_VAR long V03 tmp2
***** BB03, stmt 6
[000052] ------------ * STMT void (IL 0x000... ???)
[000047] ---XG------- | /--* CAST int <- long
[000046] ---XG------- | | \--* HWIntrinsic long PopCount
[000045] *--XG------- | | \--* IND long
[000042] ------------ | | \--* LCL_VAR long V06 tmp5
[000048] ---XG------- | /--* SUB int
[000032] ------------ | | \--* LCL_VAR int V04 tmp3
[000051] -A-XG------- \--* ASG int
[000050] D------N---- \--* LCL_VAR int V04 tmp3
------------ BB04 [000..001) -> BB03 (cond), preds={} succs={BB05,BB03}
***** BB04, stmt 7
[000026] ------------ * STMT void (IL 0x000... ???)
[000025] ------------ \--* JTRUE void
[000023] ------------ | /--* CNS_INT int 0
[000024] ------------ \--* GT int
[000022] ------------ \--* LCL_VAR int V04 tmp3
------------ BB05 [000..001) -> BB07 (cond), preds={} succs={BB06,BB07}
***** BB05, stmt 8
[000060] ------------ * STMT void (IL 0x000... ???)
[000056] ------------ | /--* CAST long <- int
[000055] ------------ | | \--* CNS_INT int 8
[000057] ------------ | /--* SUB long
[000054] ------------ | | \--* LCL_VAR long V03 tmp2
[000059] -A---------- \--* ASG long
[000058] D------N---- \--* LCL_VAR long V07 tmp6
***** BB05, stmt 9
[000069] ------------ * STMT void (IL 0x000... ???)
[000064] ---XG------- | /--* HWIntrinsic int PopCount
[000063] *--XG------- | | \--* IND int
[000062] ------------ | | \--* LCL_VAR long V07 tmp6
[000065] ---XG------- | /--* SUB int
[000061] ------------ | | \--* LCL_VAR int V05 tmp4
[000068] -A-XG------- \--* ASG int
[000067] D------N---- \--* LCL_VAR int V04 tmp3
***** BB05, stmt 10
[000074] ------------ * STMT void (IL 0x000... ???)
[000073] ------------ \--* JTRUE void
[000071] ------------ | /--* CNS_INT int 0
[000072] ------------ \--* LE int
[000070] ------------ \--* LCL_VAR int V04 tmp3
------------ BB06 [000..001), preds={} succs={BB07}
***** BB06, stmt 11
[000137] ------------ * STMT void (IL 0x000... ???)
[000134] ------------ | /--* LCL_VAR int V04 tmp3
[000136] -A---------- \--* ASG int
[000135] D------N---- \--* LCL_VAR int V05 tmp4
***** BB06, stmt 12
[000144] ------------ * STMT void (IL 0x000... ???)
[000140] ------------ | /--* CAST long <- int
[000139] ------------ | | \--* CNS_INT int 4
[000141] ------------ | /--* ADD long
[000138] ------------ | | \--* LCL_VAR long V07 tmp6
[000143] -A---------- \--* ASG long
[000142] D------N---- \--* LCL_VAR long V07 tmp6
------------ BB07 [000..001) -> BB09 (always), preds={} succs={BB09}
***** BB07, stmt 13
[000080] ------------ * STMT void (IL 0x000... ???)
[000077] *--XG------- | /--* IND int
[000076] ------------ | | \--* LCL_VAR long V07 tmp6
[000079] -A-XG------- \--* ASG int
[000078] D------N---- \--* LCL_VAR int V08 tmp7
***** BB07, stmt 14
[000092] ------------ * STMT void (IL 0x000... ???)
[000088] ------------ | /--* CAST long <- int
[000087] ------------ | | \--* CNS_INT int 32
[000089] ---X-------- | /--* MUL long
[000085] ------------ | | | /--* CAST long <- int
[000084] ------------ | | | | \--* CNS_INT int 4
[000086] ---X-------- | | \--* DIV long
[000082] ------------ | | | /--* LCL_VAR long V02 tmp1
[000083] ------------ | | \--* SUB long
[000081] ------------ | | \--* LCL_VAR long V07 tmp6
[000091] -A-X-------- \--* ASG long
[000090] D------N---- \--* LCL_VAR long V09 tmp8
------------ BB08 [000..001), preds={} succs={BB09}
***** BB08, stmt 15
[000106] ------------ * STMT void (IL 0x000... ???)
[000102] ------------ | /--* CNS_INT int 1
[000103] ------------ | /--* ADD int
[000101] ------------ | | \--* HWIntrinsic int TrailingZeroCount
[000100] ------------ | | \--* LCL_VAR int V08 tmp7
[000105] -A---------- \--* ASG int
[000104] D------N---- \--* LCL_VAR int V10 tmp9
***** BB08, stmt 16
[000113] ------------ * STMT void (IL 0x000... ???)
[000109] ---------U-- | /--* CAST long <- ulong <- uint
[000108] ------------ | | \--* LCL_VAR int V10 tmp9
[000110] ------------ | /--* ADD long
[000107] ------------ | | \--* LCL_VAR long V09 tmp8
[000112] -A---------- \--* ASG long
[000111] D------N---- \--* LCL_VAR long V09 tmp8
***** BB08, stmt 17
[000119] ------------ * STMT void (IL 0x000... ???)
[000115] ------------ | /--* CNS_INT int 1
[000116] ------------ | /--* SUB int
[000114] ------------ | | \--* LCL_VAR int V05 tmp4
[000118] -A---------- \--* ASG int
[000117] D------N---- \--* LCL_VAR int V05 tmp4
***** BB08, stmt 18
[000127] ------------ * STMT void (IL 0x000... ???)
[000122] ------------ | /--* CNS_INT int 31
[000123] ------------ | /--* AND int
[000121] ------------ | | \--* LCL_VAR int V10 tmp9
[000124] ------------ | /--* RSZ int
[000120] ------------ | | \--* LCL_VAR int V08 tmp7
[000126] -A---------- \--* ASG int
[000125] D------N---- \--* LCL_VAR int V08 tmp7
------------ BB09 [000..001) -> BB08 (cond), preds={} succs={BB10,BB08}
***** BB09, stmt 19
[000098] ------------ * STMT void (IL 0x000... ???)
[000097] ------------ \--* JTRUE void
[000095] ------------ | /--* CNS_INT int 0
[000096] ------------ \--* GT int
[000094] ------------ \--* LCL_VAR int V05 tmp4
------------ BB10 [000..001), preds={} succs={BB11}
-------------------------------------------------------------------------------------------------------------------
Return expression for call at [000004] is
[000131] ------------ /--* CNS_INT int 1
[000132] ------------ * SUB int
[000130] ------------ \--* CAST int <- long
[000129] ------------ \--* LCL_VAR long V09 tmp8
Successfully inlined GetNthBitOffset:POPCNTButNoBMI2(long,int,int):int (110 IL bytes) (depth 1) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Program:POPCNTButNoBMI2(int):int' calling 'GetNthBitOffset:POPCNTButNoBMI2(long,int,int):int'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000009] with [000132]
[000009] --C--------- * RET_EXPR int (inl return from call [000132])
Inserting the inline return expression
[000131] ------------ /--* CNS_INT int 1
[000132] ------------ * SUB int
[000130] ------------ \--* CAST int <- long
[000129] ------------ \--* LCL_VAR long V09 tmp8
*************** After fgInline()
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011) i
BB02 [0001] 1 1 [000..001)-> BB04 (always) i
BB03 [0002] 1 0.50 [000..001) i bwd
BB04 [0003] 2 0.50 [000..001)-> BB03 ( cond ) i bwd
BB05 [0004] 1 0.50 [000..001)-> BB07 ( cond ) i
BB06 [0005] 1 0.50 [000..001) i
BB07 [0006] 2 0.50 [000..001)-> BB09 (always) i
BB08 [0007] 1 0.50 [000..001) i bwd
BB09 [0008] 2 0.50 [000..001)-> BB08 ( cond ) i bwd
BB10 [0009] 1 1 [000..001) i
BB11 [0010] 1 1 [???..???) (return) internal
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011), preds={} succs={BB02}
***** BB01, stmt 1
[000147] ------------ * STMT void (IL 0x000... ???)
[000001] ----G------- | /--* FIELD long _bits
[000146] -A--G------- \--* ASG long
[000145] D------N---- \--* LCL_VAR long V02 tmp1
***** BB01, stmt 2
[000150] ------------ * STMT void (IL 0x000... ???)
[000003] ------------ | /--* LCL_VAR int V00 arg0
[000149] -A---------- \--* ASG int
[000148] D------N---- \--* LCL_VAR int V04 tmp3
***** BB01, stmt 3
[000154] ------------ * STMT void (IL 0x000... ???)
[000151] ------------ | /--* CNS_INT long 0
[000153] -A---------- \--* ASG long
[000152] D------N---- \--* LCL_VAR long V03 tmp2
***** BB01, stmt 4
[000158] ------------ * STMT void (IL 0x000... ???)
[000155] ------------ | /--* CNS_INT int 0
[000157] -A---------- \--* ASG int
[000156] D------N---- \--* LCL_VAR int V05 tmp4
***** BB01, stmt 5
[000162] ------------ * STMT void (IL 0x000... ???)
[000159] ------------ | /--* CNS_INT long 0
[000161] -A---------- \--* ASG long
[000160] D------N---- \--* LCL_VAR long V07 tmp6
***** BB01, stmt 6
[000166] ------------ * STMT void (IL 0x000... ???)
[000163] ------------ | /--* CNS_INT int 0
[000165] -A---------- \--* ASG int
[000164] D------N---- \--* LCL_VAR int V08 tmp7
***** BB01, stmt 7
[000170] ------------ * STMT void (IL 0x000... ???)
[000167] ------------ | /--* CNS_INT long 0
[000169] -A---------- \--* ASG long
[000168] D------N---- \--* LCL_VAR long V09 tmp8
***** BB01, stmt 8
[000174] ------------ * STMT void (IL 0x000... ???)
[000171] ------------ | /--* CNS_INT int 0
[000173] -A---------- \--* ASG int
[000172] D------N---- \--* LCL_VAR int V10 tmp9
------------ BB02 [000..001) -> BB04 (always), preds={} succs={BB04}
***** BB02, stmt 9
[000016] ------------ * STMT void (IL 0x000... ???)
[000013] ------------ | /--* LCL_VAR long V02 tmp1
[000015] -A---------- \--* ASG long
[000014] D------N---- \--* LCL_VAR long V03 tmp2
***** BB02, stmt 10
[000020] ------------ * STMT void (IL 0x000... ???)
[000017] ------------ | /--* LCL_VAR int V04 tmp3
[000019] -A---------- \--* ASG int
[000018] D------N---- \--* LCL_VAR int V05 tmp4
------------ BB03 [000..001), preds={} succs={BB04}
***** BB03, stmt 11
[000031] ------------ * STMT void (IL 0x000... ???)
[000028] ------------ | /--* LCL_VAR int V04 tmp3
[000030] -A---------- \--* ASG int
[000029] D------N---- \--* LCL_VAR int V05 tmp4
***** BB03, stmt 12
[000041] ------------ * STMT void (IL 0x000... ???)
[000033] ------------ | /--* LCL_VAR long V03 tmp2
[000040] -A---------- \--* ASG long
[000039] D------N---- \--* LCL_VAR long V06 tmp5
***** BB03, stmt 13
[000044] ------------ * STMT void (IL 0x000... ???)
[000036] ------------ | /--* CAST long <- int
[000035] ------------ | | \--* CNS_INT int 8
[000037] ------------ | /--* ADD long
[000034] ------------ | | \--* LCL_VAR long V03 tmp2
[000043] -A---------- \--* ASG long
[000038] D------N---- \--* LCL_VAR long V03 tmp2
***** BB03, stmt 14
[000052] ------------ * STMT void (IL 0x000... ???)
[000047] ---XG------- | /--* CAST int <- long
[000046] ---XG------- | | \--* HWIntrinsic long PopCount
[000045] *--XG------- | | \--* IND long
[000042] ------------ | | \--* LCL_VAR long V06 tmp5
[000048] ---XG------- | /--* SUB int
[000032] ------------ | | \--* LCL_VAR int V04 tmp3
[000051] -A-XG------- \--* ASG int
[000050] D------N---- \--* LCL_VAR int V04 tmp3
------------ BB04 [000..001) -> BB03 (cond), preds={} succs={BB05,BB03}
***** BB04, stmt 15
[000026] ------------ * STMT void (IL 0x000... ???)
[000025] ------------ \--* JTRUE void
[000023] ------------ | /--* CNS_INT int 0
[000024] ------------ \--* GT int
[000022] ------------ \--* LCL_VAR int V04 tmp3
------------ BB05 [000..001) -> BB07 (cond), preds={} succs={BB06,BB07}
***** BB05, stmt 16
[000060] ------------ * STMT void (IL 0x000... ???)
[000056] ------------ | /--* CAST long <- int
[000055] ------------ | | \--* CNS_INT int 8
[000057] ------------ | /--* SUB long
[000054] ------------ | | \--* LCL_VAR long V03 tmp2
[000059] -A---------- \--* ASG long
[000058] D------N---- \--* LCL_VAR long V07 tmp6
***** BB05, stmt 17
[000069] ------------ * STMT void (IL 0x000... ???)
[000064] ---XG------- | /--* HWIntrinsic int PopCount
[000063] *--XG------- | | \--* IND int
[000062] ------------ | | \--* LCL_VAR long V07 tmp6
[000065] ---XG------- | /--* SUB int
[000061] ------------ | | \--* LCL_VAR int V05 tmp4
[000068] -A-XG------- \--* ASG int
[000067] D------N---- \--* LCL_VAR int V04 tmp3
***** BB05, stmt 18
[000074] ------------ * STMT void (IL 0x000... ???)
[000073] ------------ \--* JTRUE void
[000071] ------------ | /--* CNS_INT int 0
[000072] ------------ \--* LE int
[000070] ------------ \--* LCL_VAR int V04 tmp3
------------ BB06 [000..001), preds={} succs={BB07}
***** BB06, stmt 19
[000137] ------------ * STMT void (IL 0x000... ???)
[000134] ------------ | /--* LCL_VAR int V04 tmp3
[000136] -A---------- \--* ASG int
[000135] D------N---- \--* LCL_VAR int V05 tmp4
***** BB06, stmt 20
[000144] ------------ * STMT void (IL 0x000... ???)
[000140] ------------ | /--* CAST long <- int
[000139] ------------ | | \--* CNS_INT int 4
[000141] ------------ | /--* ADD long
[000138] ------------ | | \--* LCL_VAR long V07 tmp6
[000143] -A---------- \--* ASG long
[000142] D------N---- \--* LCL_VAR long V07 tmp6
------------ BB07 [000..001) -> BB09 (always), preds={} succs={BB09}
***** BB07, stmt 21
[000080] ------------ * STMT void (IL 0x000... ???)
[000077] *--XG------- | /--* IND int
[000076] ------------ | | \--* LCL_VAR long V07 tmp6
[000079] -A-XG------- \--* ASG int
[000078] D------N---- \--* LCL_VAR int V08 tmp7
***** BB07, stmt 22
[000092] ------------ * STMT void (IL 0x000... ???)
[000088] ------------ | /--* CAST long <- int
[000087] ------------ | | \--* CNS_INT int 32
[000089] ---X-------- | /--* MUL long
[000085] ------------ | | | /--* CAST long <- int
[000084] ------------ | | | | \--* CNS_INT int 4
[000086] ---X-------- | | \--* DIV long
[000082] ------------ | | | /--* LCL_VAR long V02 tmp1
[000083] ------------ | | \--* SUB long
[000081] ------------ | | \--* LCL_VAR long V07 tmp6
[000091] -A-X-------- \--* ASG long
[000090] D------N---- \--* LCL_VAR long V09 tmp8
------------ BB08 [000..001), preds={} succs={BB09}
***** BB08, stmt 23
[000106] ------------ * STMT void (IL 0x000... ???)
[000102] ------------ | /--* CNS_INT int 1
[000103] ------------ | /--* ADD int
[000101] ------------ | | \--* HWIntrinsic int TrailingZeroCount
[000100] ------------ | | \--* LCL_VAR int V08 tmp7
[000105] -A---------- \--* ASG int
[000104] D------N---- \--* LCL_VAR int V10 tmp9
***** BB08, stmt 24
[000113] ------------ * STMT void (IL 0x000... ???)
[000109] ---------U-- | /--* CAST long <- ulong <- uint
[000108] ------------ | | \--* LCL_VAR int V10 tmp9
[000110] ------------ | /--* ADD long
[000107] ------------ | | \--* LCL_VAR long V09 tmp8
[000112] -A---------- \--* ASG long
[000111] D------N---- \--* LCL_VAR long V09 tmp8
***** BB08, stmt 25
[000119] ------------ * STMT void (IL 0x000... ???)
[000115] ------------ | /--* CNS_INT int 1
[000116] ------------ | /--* SUB int
[000114] ------------ | | \--* LCL_VAR int V05 tmp4
[000118] -A---------- \--* ASG int
[000117] D------N---- \--* LCL_VAR int V05 tmp4
***** BB08, stmt 26
[000127] ------------ * STMT void (IL 0x000... ???)
[000122] ------------ | /--* CNS_INT int 31
[000123] ------------ | /--* AND int
[000121] ------------ | | \--* LCL_VAR int V10 tmp9
[000124] ------------ | /--* RSZ int
[000120] ------------ | | \--* LCL_VAR int V08 tmp7
[000126] -A---------- \--* ASG int
[000125] D------N---- \--* LCL_VAR int V08 tmp7
------------ BB09 [000..001) -> BB08 (cond), preds={} succs={BB10,BB08}
***** BB09, stmt 27
[000098] ------------ * STMT void (IL 0x000... ???)
[000097] ------------ \--* JTRUE void
[000095] ------------ | /--* CNS_INT int 0
[000096] ------------ \--* GT int
[000094] ------------ \--* LCL_VAR int V05 tmp4
------------ BB10 [000..001), preds={} succs={BB11}
------------ BB11 [???..???) (return), preds={} succs={}
***** BB11, stmt 28
[000011] ------------ * STMT void (IL ???... ???)
[000010] --C--------- \--* RETURN int
[000131] ------------ | /--* CNS_INT int 1
[000132] ------------ \--* SUB int
[000130] ------------ \--* CAST int <- long
[000129] ------------ \--* LCL_VAR long V09 tmp8
-------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
**************** Inline Tree
Inlines into 06000005 Program:POPCNTButNoBMI2(int):int
[1 IL=0011 TR=000004 0600000A] [aggressive inline attribute] GetNthBitOffset:POPCNTButNoBMI2(long,int,int):int
Budget: initialTime=111, finalTime=317, initialBudget=1110, currentBudget=1316
Budget: increased by 206 because of force inlines
Budget: initialSize=518, finalSize=518
*************** After fgAddInternal()
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011) i
BB02 [0001] 1 1 [000..001)-> BB04 (always) i
BB03 [0002] 1 0.50 [000..001) i bwd
BB04 [0003] 2 0.50 [000..001)-> BB03 ( cond ) i bwd
BB05 [0004] 1 0.50 [000..001)-> BB07 ( cond ) i
BB06 [0005] 1 0.50 [000..001) i
BB07 [0006] 2 0.50 [000..001)-> BB09 (always) i
BB08 [0007] 1 0.50 [000..001) i bwd
BB09 [0008] 2 0.50 [000..001)-> BB08 ( cond ) i bwd
BB10 [0009] 1 1 [000..001) i
BB11 [0010] 1 1 [???..???) (return) internal
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
*************** In fgDebugCheckBBlist
*************** In fgRemoveEmptyTry()
No EH in this method, nothing to remove.
*************** In fgRemoveEmptyFinally()
No EH in this method, nothing to remove.
*************** In fgMergeFinallyChains()
No EH in this method, nothing to merge.
*************** In fgCloneFinally()
No EH in this method, no cloning.
*************** In fgPromoteStructs()
lvaTable before fgPromoteStructs
; Initial local variable assignments
;
; V00 arg0 int
; V01 OutArgs lclBlk (na)
; V02 tmp1 long
; V03 tmp2 long
; V04 tmp3 int
; V05 tmp4 int
; V06 tmp5 long
; V07 tmp6 long
; V08 tmp7 int
; V09 tmp8 long
; V10 tmp9 int
lvaTable after fgPromoteStructs
; Initial local variable assignments
;
; V00 arg0 int
; V01 OutArgs lclBlk (na)
; V02 tmp1 long
; V03 tmp2 long
; V04 tmp3 int
; V05 tmp4 int
; V06 tmp5 long
; V07 tmp6 long
; V08 tmp7 int
; V09 tmp8 long
; V10 tmp9 int
*************** In fgMarkAddressExposedLocals()
*************** In fgMorphBlocks()
Morphing BB01 of 'Program:POPCNTButNoBMI2(int):int'
fgMorphTree BB01, stmt 1 (before)
[000001] ----G------- /--* FIELD long _bits
[000146] -A--G------- * ASG long
[000145] D------N---- \--* LCL_VAR long V02 tmp1
fgMorphTree BB01, stmt 1 (after)
[000001] x---G+------ /--* IND long
[000176] -----+------ | \--* CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits]
[000146] -A--G+------ * ASG long
[000145] D----+-N---- \--* LCL_VAR long V02 tmp1
fgMorphTree BB01, stmt 2 (before)
[000003] ------------ /--* LCL_VAR int V00 arg0
[000149] -A---------- * ASG int
[000148] D------N---- \--* LCL_VAR int V04 tmp3
GenTreeNode creates assertion:
[000149] -A---------- * ASG int
In BB01 New Local Copy Assertion: V04 == V00 index=#01, mask=0000000000000001
fgMorphTree BB01, stmt 3 (before)
[000151] ------------ /--* CNS_INT long 0
[000153] -A---------- * ASG long
[000152] D------N---- \--* LCL_VAR long V03 tmp2
GenTreeNode creates assertion:
[000153] -A---------- * ASG long
In BB01 New Local Constant Assertion: V03 == 0 index=#02, mask=0000000000000002
fgMorphTree BB01, stmt 4 (before)
[000155] ------------ /--* CNS_INT int 0
[000157] -A---------- * ASG int
[000156] D------N---- \--* LCL_VAR int V05 tmp4
GenTreeNode creates assertion:
[000157] -A---------- * ASG int
In BB01 New Local Constant Assertion: V05 == 0 index=#03, mask=0000000000000004
fgMorphTree BB01, stmt 5 (before)
[000159] ------------ /--* CNS_INT long 0
[000161] -A---------- * ASG long
[000160] D------N---- \--* LCL_VAR long V07 tmp6
GenTreeNode creates assertion:
[000161] -A---------- * ASG long
In BB01 New Local Constant Assertion: V07 == 0 index=#04, mask=0000000000000008
fgMorphTree BB01, stmt 6 (before)
[000163] ------------ /--* CNS_INT int 0
[000165] -A---------- * ASG int
[000164] D------N---- \--* LCL_VAR int V08 tmp7
GenTreeNode creates assertion:
[000165] -A---------- * ASG int
In BB01 New Local Constant Assertion: V08 == 0 index=#05, mask=0000000000000010
fgMorphTree BB01, stmt 7 (before)
[000167] ------------ /--* CNS_INT long 0
[000169] -A---------- * ASG long
[000168] D------N---- \--* LCL_VAR long V09 tmp8
GenTreeNode creates assertion:
[000169] -A---------- * ASG long
In BB01 New Local Constant Assertion: V09 == 0 index=#06, mask=0000000000000020
fgMorphTree BB01, stmt 8 (before)
[000171] ------------ /--* CNS_INT int 0
[000173] -A---------- * ASG int
[000172] D------N---- \--* LCL_VAR int V10 tmp9
GenTreeNode creates assertion:
[000173] -A---------- * ASG int
In BB01 New Local Constant Assertion: V10 == 0 index=#07, mask=0000000000000040
Morphing BB02 of 'Program:POPCNTButNoBMI2(int):int'
fgMorphTree BB02, stmt 9 (before)
[000013] ------------ /--* LCL_VAR long V02 tmp1
[000015] -A---------- * ASG long
[000014] D------N---- \--* LCL_VAR long V03 tmp2
GenTreeNode creates assertion:
[000015] -A---------- * ASG long
In BB02 New Local Copy Assertion: V03 == V02 index=#01, mask=0000000000000001
fgMorphTree BB02, stmt 10 (before)
[000017] ------------ /--* LCL_VAR int V04 tmp3
[000019] -A---------- * ASG int
[000018] D------N---- \--* LCL_VAR int V05 tmp4
GenTreeNode creates assertion:
[000019] -A---------- * ASG int
In BB02 New Local Copy Assertion: V05 == V04 index=#02, mask=0000000000000002
Morphing BB03 of 'Program:POPCNTButNoBMI2(int):int'
fgMorphTree BB03, stmt 11 (before)
[000028] ------------ /--* LCL_VAR int V04 tmp3
[000030] -A---------- * ASG int
[000029] D------N---- \--* LCL_VAR int V05 tmp4
GenTreeNode creates assertion:
[000030] -A---------- * ASG int
In BB03 New Local Copy Assertion: V05 == V04 index=#01, mask=0000000000000001
fgMorphTree BB03, stmt 12 (before)
[000033] ------------ /--* LCL_VAR long V03 tmp2
[000040] -A---------- * ASG long
[000039] D------N---- \--* LCL_VAR long V06 tmp5
GenTreeNode creates assertion:
[000040] -A---------- * ASG long
In BB03 New Local Copy Assertion: V06 == V03 index=#02, mask=0000000000000002
fgMorphTree BB03, stmt 13 (before)
[000036] ------------ /--* CAST long <- int
[000035] ------------ | \--* CNS_INT int 8
[000037] ------------ /--* ADD long
[000034] ------------ | \--* LCL_VAR long V03 tmp2
[000043] -A---------- * ASG long
[000038] D------N---- \--* LCL_VAR long V03 tmp2
Folding long operator with constant nodes into a constant:
[000036] ------------ * CAST long <- int
[000035] -----+------ \--* CNS_INT int 8
Bashed to long constant:
[000036] ------------ * CNS_INT long 8
The assignment [000043] using V06 removes: Copy Assertion: V06 == V03
fgMorphTree BB03, stmt 13 (after)
[000036] -----+------ /--* CNS_INT long 8
[000037] -----+------ /--* ADD long
[000034] -----+------ | \--* LCL_VAR long V03 tmp2
[000043] -A---+------ * ASG long
[000038] D----+-N---- \--* LCL_VAR long V03 tmp2
fgMorphTree BB03, stmt 14 (before)
[000047] ---XG------- /--* CAST int <- long
[000046] ---XG------- | \--* HWIntrinsic long PopCount
[000045] *--XG------- | \--* IND long
[000042] ------------ | \--* LCL_VAR long V06 tmp5
[000048] ---XG------- /--* SUB int
[000032] ------------ | \--* LCL_VAR int V04 tmp3
[000051] -A-XG------- * ASG int
[000050] D------N---- \--* LCL_VAR int V04 tmp3
The assignment [000051] using V05 removes: Copy Assertion: V05 == V04
Morphing BB04 of 'Program:POPCNTButNoBMI2(int):int'
fgMorphTree BB04, stmt 15 (before)
[000025] ------------ * JTRUE void
[000023] ------------ | /--* CNS_INT int 0
[000024] ------------ \--* GT int
[000022] ------------ \--* LCL_VAR int V04 tmp3
Morphing BB05 of 'Program:POPCNTButNoBMI2(int):int'
fgMorphTree BB05, stmt 16 (before)
[000056] ------------ /--* CAST long <- int
[000055] ------------ | \--* CNS_INT int 8
[000057] ------------ /--* SUB long
[000054] ------------ | \--* LCL_VAR long V03 tmp2
[000059] -A---------- * ASG long
[000058] D------N---- \--* LCL_VAR long V07 tmp6
Folding long operator with constant nodes into a constant:
[000056] ------------ * CAST long <- int
[000055] -----+------ \--* CNS_INT int 8
Bashed to long constant:
[000056] ------------ * CNS_INT long 8
fgMorphTree BB05, stmt 16 (after)
[000056] -----+------ /--* CNS_INT long -8
[000057] -----+------ /--* ADD long
[000054] -----+------ | \--* LCL_VAR long V03 tmp2
[000059] -A---+------ * ASG long
[000058] D----+-N---- \--* LCL_VAR long V07 tmp6
fgMorphTree BB05, stmt 17 (before)
[000064] ---XG------- /--* HWIntrinsic int PopCount
[000063] *--XG------- | \--* IND int
[000062] ------------ | \--* LCL_VAR long V07 tmp6
[000065] ---XG------- /--* SUB int
[000061] ------------ | \--* LCL_VAR int V05 tmp4
[000068] -A-XG------- * ASG int
[000067] D------N---- \--* LCL_VAR int V04 tmp3
fgMorphTree BB05, stmt 18 (before)
[000073] ------------ * JTRUE void
[000071] ------------ | /--* CNS_INT int 0
[000072] ------------ \--* LE int
[000070] ------------ \--* LCL_VAR int V04 tmp3
Morphing BB06 of 'Program:POPCNTButNoBMI2(int):int'
fgMorphTree BB06, stmt 19 (before)
[000134] ------------ /--* LCL_VAR int V04 tmp3
[000136] -A---------- * ASG int
[000135] D------N---- \--* LCL_VAR int V05 tmp4
GenTreeNode creates assertion:
[000136] -A---------- * ASG int
In BB06 New Local Copy Assertion: V05 == V04 index=#01, mask=0000000000000001
fgMorphTree BB06, stmt 20 (before)
[000140] ------------ /--* CAST long <- int
[000139] ------------ | \--* CNS_INT int 4
[000141] ------------ /--* ADD long
[000138] ------------ | \--* LCL_VAR long V07 tmp6
[000143] -A---------- * ASG long
[000142] D------N---- \--* LCL_VAR long V07 tmp6
Folding long operator with constant nodes into a constant:
[000140] ------------ * CAST long <- int
[000139] -----+------ \--* CNS_INT int 4
Bashed to long constant:
[000140] ------------ * CNS_INT long 4
fgMorphTree BB06, stmt 20 (after)
[000140] -----+------ /--* CNS_INT long 4
[000141] -----+------ /--* ADD long
[000138] -----+------ | \--* LCL_VAR long V07 tmp6
[000143] -A---+------ * ASG long
[000142] D----+-N---- \--* LCL_VAR long V07 tmp6
Morphing BB07 of 'Program:POPCNTButNoBMI2(int):int'
fgMorphTree BB07, stmt 21 (before)
[000077] *--XG------- /--* IND int
[000076] ------------ | \--* LCL_VAR long V07 tmp6
[000079] -A-XG------- * ASG int
[000078] D------N---- \--* LCL_VAR int V08 tmp7
GenTreeNode creates assertion:
[000079] -A-XG------- * ASG int
In BB07 New Local Subrange Assertion: V08 in [-2147483648..2147483647] index=#01, mask=0000000000000001
fgMorphTree BB07, stmt 22 (before)
[000088] ------------ /--* CAST long <- int
[000087] ------------ | \--* CNS_INT int 32
[000089] ---X-------- /--* MUL long
[000085] ------------ | | /--* CAST long <- int
[000084] ------------ | | | \--* CNS_INT int 4
[000086] ---X-------- | \--* DIV long
[000082] ------------ | | /--* LCL_VAR long V02 tmp1
[000083] ------------ | \--* SUB long
[000081] ------------ | \--* LCL_VAR long V07 tmp6
[000091] -A-X-------- * ASG long
[000090] D------N---- \--* LCL_VAR long V09 tmp8
Folding long operator with constant nodes into a constant:
[000085] ------------ * CAST long <- int
[000084] ------------ \--* CNS_INT int 4
Bashed to long constant:
[000085] ------------ * CNS_INT long 4
Folding long operator with constant nodes into a constant:
[000088] ------------ * CAST long <- int
[000087] -----+------ \--* CNS_INT int 32
Bashed to long constant:
[000088] ------------ * CNS_INT long 32
fgMorphTree BB07, stmt 22 (after)
[000088] -----+------ /--* CNS_INT long 5
[000089] -----+------ /--* LSH long
[000085] -----+------ | | /--* CNS_INT long 4
[000086] -----+------ | \--* DIV long
[000082] -----+------ | | /--* LCL_VAR long V02 tmp1
[000083] -----+------ | \--* SUB long
[000081] -----+------ | \--* LCL_VAR long V07 tmp6
[000091] -A---+------ * ASG long
[000090] D----+-N---- \--* LCL_VAR long V09 tmp8
Morphing BB08 of 'Program:POPCNTButNoBMI2(int):int'
fgMorphTree BB08, stmt 23 (before)
[000102] ------------ /--* CNS_INT int 1
[000103] ------------ /--* ADD int
[000101] ------------ | \--* HWIntrinsic int TrailingZeroCount
[000100] ------------ | \--* LCL_VAR int V08 tmp7
[000105] -A---------- * ASG int
[000104] D------N---- \--* LCL_VAR int V10 tmp9
fgMorphTree BB08, stmt 24 (before)
[000109] ---------U-- /--* CAST long <- ulong <- uint
[000108] ------------ | \--* LCL_VAR int V10 tmp9
[000110] ------------ /--* ADD long
[000107] ------------ | \--* LCL_VAR long V09 tmp8
[000112] -A---------- * ASG long
[000111] D------N---- \--* LCL_VAR long V09 tmp8
fgMorphTree BB08, stmt 25 (before)
[000115] ------------ /--* CNS_INT int 1
[000116] ------------ /--* SUB int
[000114] ------------ | \--* LCL_VAR int V05 tmp4
[000118] -A---------- * ASG int
[000117] D------N---- \--* LCL_VAR int V05 tmp4
fgMorphTree BB08, stmt 25 (after)
[000115] -----+------ /--* CNS_INT int -1
[000116] -----+------ /--* ADD int
[000114] -----+------ | \--* LCL_VAR int V05 tmp4
[000118] -A---+------ * ASG int
[000117] D----+-N---- \--* LCL_VAR int V05 tmp4
fgMorphTree BB08, stmt 26 (before)
[000122] ------------ /--* CNS_INT int 31
[000123] ------------ /--* AND int
[000121] ------------ | \--* LCL_VAR int V10 tmp9
[000124] ------------ /--* RSZ int
[000120] ------------ | \--* LCL_VAR int V08 tmp7
[000126] -A---------- * ASG int
[000125] D------N---- \--* LCL_VAR int V08 tmp7
Morphing BB09 of 'Program:POPCNTButNoBMI2(int):int'
fgMorphTree BB09, stmt 27 (before)
[000097] ------------ * JTRUE void
[000095] ------------ | /--* CNS_INT int 0
[000096] ------------ \--* GT int
[000094] ------------ \--* LCL_VAR int V05 tmp4
Morphing BB10 of 'Program:POPCNTButNoBMI2(int):int'
Morphing BB11 of 'Program:POPCNTButNoBMI2(int):int'
fgMorphTree BB11, stmt 28 (before)
[000010] --C--------- * RETURN int
[000131] ------------ | /--* CNS_INT int 1
[000132] ------------ \--* SUB int
[000130] ------------ \--* CAST int <- long
[000129] ------------ \--* LCL_VAR long V09 tmp8
fgMorphTree BB11, stmt 28 (after)
[000010] -----+------ * RETURN int
[000131] -----+------ | /--* CNS_INT int -1
[000132] -----+------ \--* ADD int
[000129] C----+------ \--* LCL_VAR int V09 tmp8
Renumbering the basic blocks for fgComputePred
*************** Before renumbering the basic blocks
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011) i
BB02 [0001] 1 1 [000..001)-> BB04 (always) i
BB03 [0002] 1 0.50 [000..001) i bwd
BB04 [0003] 2 0.50 [000..001)-> BB03 ( cond ) i bwd
BB05 [0004] 1 0.50 [000..001)-> BB07 ( cond ) i
BB06 [0005] 1 0.50 [000..001) i
BB07 [0006] 2 0.50 [000..001)-> BB09 (always) i
BB08 [0007] 1 0.50 [000..001) i bwd
BB09 [0008] 2 0.50 [000..001)-> BB08 ( cond ) i bwd
BB10 [0009] 1 1 [000..001) i
BB11 [0010] 1 1 [???..???) (return) internal
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
*************** After renumbering the basic blocks
=============== No blocks renumbered!
New BlockSet epoch 2, # of blocks (including unused BB00): 12, bitset array size: 1 (short)
*************** In fgComputePreds()
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011) i
BB02 [0001] 1 1 [000..001)-> BB04 (always) i
BB03 [0002] 1 0.50 [000..001) i bwd
BB04 [0003] 2 0.50 [000..001)-> BB03 ( cond ) i bwd
BB05 [0004] 1 0.50 [000..001)-> BB07 ( cond ) i
BB06 [0005] 1 0.50 [000..001) i
BB07 [0006] 2 0.50 [000..001)-> BB09 (always) i
BB08 [0007] 1 0.50 [000..001) i bwd
BB09 [0008] 2 0.50 [000..001)-> BB08 ( cond ) i bwd
BB10 [0009] 1 1 [000..001) i
BB11 [0010] 1 1 [???..???) (return) internal
--------------------------------------------------------------------------------------------------------------------------------------
*************** After fgComputePreds()
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011) i label target
BB02 [0001] 1 BB01 1 [000..001)-> BB04 (always) i
BB03 [0002] 1 BB04 0.50 [000..001) i label target bwd
BB04 [0003] 2 BB02,BB03 0.50 [000..001)-> BB03 ( cond ) i label target bwd
BB05 [0004] 1 BB04 0.50 [000..001)-> BB07 ( cond ) i
BB06 [0005] 1 BB05 0.50 [000..001) i
BB07 [0006] 2 BB05,BB06 0.50 [000..001)-> BB09 (always) i label target
BB08 [0007] 1 BB09 0.50 [000..001) i label target bwd
BB09 [0008] 2 BB07,BB08 0.50 [000..001)-> BB08 ( cond ) i label target bwd
BB10 [0009] 1 BB09 1 [000..001) i
BB11 [0010] 1 BB10 1 [???..???) (return) internal
--------------------------------------------------------------------------------------------------------------------------------------
*************** In fgComputeEdgeWeights()
fgComputeEdgeWeights() we do not have any profile data so we are not using the edge weights
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011) i label target
BB02 [0001] 1 BB01 1 [000..001)-> BB04 (always) i
BB03 [0002] 1 BB04 0.50 [000..001) i label target bwd
BB04 [0003] 2 BB02,BB03 0.50 [000..001)-> BB03 ( cond ) i label target bwd
BB05 [0004] 1 BB04 0.50 [000..001)-> BB07 ( cond ) i
BB06 [0005] 1 BB05 0.50 [000..001) i
BB07 [0006] 2 BB05,BB06 0.50 [000..001)-> BB09 (always) i label target
BB08 [0007] 1 BB09 0.50 [000..001) i label target bwd
BB09 [0008] 2 BB07,BB08 0.50 [000..001)-> BB08 ( cond ) i label target bwd
BB10 [0009] 1 BB09 1 [000..001) i
BB11 [0010] 1 BB10 1 [???..???) (return) internal
--------------------------------------------------------------------------------------------------------------------------------------
fgComputeEdgeWeights() found inconsistent profile data, not using the edge weights
*************** In fgCreateFunclets()
After fgCreateFunclets()
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011) i label target
BB02 [0001] 1 BB01 1 [000..001)-> BB04 (always) i
BB03 [0002] 1 BB04 0.50 [000..001) i label target bwd
BB04 [0003] 2 BB02,BB03 0.50 [000..001)-> BB03 ( cond ) i label target bwd
BB05 [0004] 1 BB04 0.50 [000..001)-> BB07 ( cond ) i
BB06 [0005] 1 BB05 0.50 [000..001) i
BB07 [0006] 2 BB05,BB06 0.50 [000..001)-> BB09 (always) i label target
BB08 [0007] 1 BB09 0.50 [000..001) i label target bwd
BB09 [0008] 2 BB07,BB08 0.50 [000..001)-> BB08 ( cond ) i label target bwd
BB10 [0009] 1 BB09 1 [000..001) i
BB11 [0010] 1 BB10 1 [???..???) (return) internal
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
*************** In fgDebugCheckBBlist
*************** In optOptimizeLayout()
*************** Exception Handling table is empty
*************** In fgDebugCheckBBlist
Duplication of loop condition [000024] is performed, because the cost of duplication (4) is less or equal than 32,
loopIterations = 8.000, countOfHelpers = 0, validProfileWeights = false
Duplicating loop condition in BB02 for loop (BB03 - BB04)
Estimated code size expansion is 4
[000181] ------------ * STMT void (IL 0x000... ???)
[000180] ------------ \--* JTRUE void
( 1, 1) [000179] ------------ | /--* CNS_INT int 0
( 5, 4) [000177] J------N---- \--* LE int
( 3, 2) [000178] ------------ \--* LCL_VAR int V04 tmp3
Duplication of loop condition [000096] is performed, because the cost of duplication (4) is less or equal than 32,
loopIterations = 8.000, countOfHelpers = 0, validProfileWeights = false
Duplicating loop condition in BB07 for loop (BB08 - BB09)
Estimated code size expansion is 4
[000186] ------------ * STMT void (IL 0x000... ???)
[000185] ------------ \--* JTRUE void
( 1, 1) [000184] ------------ | /--* CNS_INT int 0
( 5, 4) [000182] J------N---- \--* LE int
( 3, 2) [000183] ------------ \--* LCL_VAR int V05 tmp4
*************** In fgComputeEdgeWeights()
fgComputeEdgeWeights() we do not have any profile data so we are not using the edge weights
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011) i label target
BB02 [0001] 1 BB01 1 [000..001)-> BB05 ( cond ) i
BB03 [0002] 2 BB02,BB04 0.50 [000..001) i label target bwd
BB04 [0003] 1 BB03 0.50 [000..001)-> BB03 ( cond ) i label target bwd
BB05 [0004] 2 BB02,BB04 0.50 [000..001)-> BB07 ( cond ) i label target
BB06 [0005] 1 BB05 0.50 [000..001) i
BB07 [0006] 2 BB05,BB06 0.50 [000..001)-> BB10 ( cond ) i label target
BB08 [0007] 2 BB07,BB09 0.50 [000..001) i label target bwd
BB09 [0008] 1 BB08 0.50 [000..001)-> BB08 ( cond ) i label target bwd
BB10 [0009] 2 BB07,BB09 1 [000..001) i label target
BB11 [0010] 1 BB10 1 [???..???) (return) internal
--------------------------------------------------------------------------------------------------------------------------------------
fgComputeEdgeWeights() found inconsistent profile data, not using the edge weights
*************** In fgUpdateFlowGraph()
Before updating the flow graph:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011) i label target
BB02 [0001] 1 BB01 1 [000..001)-> BB05 ( cond ) i
BB03 [0002] 2 BB02,BB04 0.50 [000..001) i label target bwd
BB04 [0003] 1 BB03 0.50 [000..001)-> BB03 ( cond ) i label target bwd
BB05 [0004] 2 BB02,BB04 0.50 [000..001)-> BB07 ( cond ) i label target
BB06 [0005] 1 BB05 0.50 [000..001) i
BB07 [0006] 2 BB05,BB06 0.50 [000..001)-> BB10 ( cond ) i label target
BB08 [0007] 2 BB07,BB09 0.50 [000..001) i label target bwd
BB09 [0008] 1 BB08 0.50 [000..001)-> BB08 ( cond ) i label target bwd
BB10 [0009] 2 BB07,BB09 1 [000..001) i label target
BB11 [0010] 1 BB10 1 [???..???) (return) internal
--------------------------------------------------------------------------------------------------------------------------------------
Compacting blocks BB01 and BB02:
*************** In fgDebugCheckBBlist
Compacting blocks BB03 and BB04:
*************** In fgDebugCheckBBlist
Compacting blocks BB08 and BB09:
*************** In fgDebugCheckBBlist
Compacting blocks BB10 and BB11:
*************** In fgDebugCheckBBlist
After updating the flow graph:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target
BB03 [0002] 2 BB01,BB03 0.50 [000..001)-> BB03 ( cond ) i label target bwd
BB05 [0004] 2 BB01,BB03 0.50 [000..001)-> BB07 ( cond ) i label target
BB06 [0005] 1 BB05 0.50 [000..001) i
BB07 [0006] 2 BB05,BB06 0.50 [000..001)-> BB10 ( cond ) i label target
BB08 [0007] 2 BB07,BB08 0.50 [000..001)-> BB08 ( cond ) i label target bwd
BB10 [0009] 2 BB07,BB08 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
*************** In fgDebugCheckBBlist
*************** In fgExpandRarelyRunBlocks()
*************** In fgReorderBlocks()
Initial BasicBlocks
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target
BB03 [0002] 2 BB01,BB03 0.50 [000..001)-> BB03 ( cond ) i label target bwd
BB05 [0004] 2 BB01,BB03 0.50 [000..001)-> BB07 ( cond ) i label target
BB06 [0005] 1 BB05 0.50 [000..001) i
BB07 [0006] 2 BB05,BB06 0.50 [000..001)-> BB10 ( cond ) i label target
BB08 [0007] 2 BB07,BB08 0.50 [000..001)-> BB08 ( cond ) i label target bwd
BB10 [0009] 2 BB07,BB08 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
*************** In fgUpdateFlowGraph()
Before updating the flow graph:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target
BB03 [0002] 2 BB01,BB03 0.50 [000..001)-> BB03 ( cond ) i label target bwd
BB05 [0004] 2 BB01,BB03 0.50 [000..001)-> BB07 ( cond ) i label target
BB06 [0005] 1 BB05 0.50 [000..001) i
BB07 [0006] 2 BB05,BB06 0.50 [000..001)-> BB10 ( cond ) i label target
BB08 [0007] 2 BB07,BB08 0.50 [000..001)-> BB08 ( cond ) i label target bwd
BB10 [0009] 2 BB07,BB08 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In fgComputeReachability
*************** In fgDebugCheckBBlist
Renumbering the basic blocks for fgComputeReachability pass #1
*************** Before renumbering the basic blocks
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB05 ( cond ) i label target
BB03 [0002] 2 BB01,BB03 0.50 [000..001)-> BB03 ( cond ) i label target bwd
BB05 [0004] 2 BB01,BB03 0.50 [000..001)-> BB07 ( cond ) i label target
BB06 [0005] 1 BB05 0.50 [000..001) i
BB07 [0006] 2 BB05,BB06 0.50 [000..001)-> BB10 ( cond ) i label target
BB08 [0007] 2 BB07,BB08 0.50 [000..001)-> BB08 ( cond ) i label target bwd
BB10 [0009] 2 BB07,BB08 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
Renumber BB03 to BB02
Renumber BB05 to BB03
Renumber BB06 to BB04
Renumber BB07 to BB05
Renumber BB08 to BB06
Renumber BB10 to BB07
*************** After renumbering the basic blocks
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target
BB02 [0002] 2 BB01,BB02 0.50 [000..001)-> BB02 ( cond ) i label target bwd
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target
BB04 [0005] 1 BB03 0.50 [000..001) i
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target
BB06 [0007] 2 BB05,BB06 0.50 [000..001)-> BB06 ( cond ) i label target bwd
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
New BlockSet epoch 3, # of blocks (including unused BB00): 8, 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 BB04 BB05
BB06 : BB01 BB02 BB03 BB04 BB05 BB06
BB07 : BB01 BB02 BB03 BB04 BB05 BB06 BB07
After computing reachability:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target
BB02 [0002] 2 BB01,BB02 0.50 [000..001)-> BB02 ( cond ) i Loop label target bwd
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target
BB04 [0005] 1 BB03 0.50 [000..001) i
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target
BB06 [0007] 2 BB05,BB06 0.50 [000..001)-> BB06 ( cond ) i Loop label target bwd
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i 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 BB01
BB04: BB04 BB03 BB01
BB05: BB05 BB03 BB01
BB06: BB06 BB05 BB03 BB01
BB07: BB07 BB05 BB03 BB01
Inside fgBuildDomTree
After computing the Dominance Tree:
BB01 : BB03 BB02
BB03 : BB05 BB04
BB05 : BB07 BB06
*************** In Allocate Objects
Trees before Allocate Objects
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target
BB02 [0002] 2 BB01,BB02 0.50 [000..001)-> BB02 ( cond ) i Loop label target bwd
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target
BB04 [0005] 1 BB03 0.50 [000..001) i
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target
BB06 [0007] 2 BB05,BB06 0.50 [000..001)-> BB06 ( cond ) i Loop label target bwd
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
[000147] ------------ * STMT void (IL 0x000... ???)
[000001] x---G+------ | /--* IND long
[000176] -----+------ | | \--* CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits]
[000146] -A--G+------ \--* ASG long
[000145] D----+-N---- \--* LCL_VAR long V02 tmp1
***** BB01, stmt 2
[000150] ------------ * STMT void (IL 0x000... ???)
[000003] -----+------ | /--* LCL_VAR int V00 arg0
[000149] -A---+------ \--* ASG int
[000148] D----+-N---- \--* LCL_VAR int V04 tmp3
***** BB01, stmt 3
[000154] ------------ * STMT void (IL 0x000... ???)
[000151] -----+------ | /--* CNS_INT long 0
[000153] -A---+------ \--* ASG long
[000152] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB01, stmt 4
[000158] ------------ * STMT void (IL 0x000... ???)
[000155] -----+------ | /--* CNS_INT int 0
[000157] -A---+------ \--* ASG int
[000156] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB01, stmt 5
[000162] ------------ * STMT void (IL 0x000... ???)
[000159] -----+------ | /--* CNS_INT long 0
[000161] -A---+------ \--* ASG long
[000160] D----+-N---- \--* LCL_VAR long V07 tmp6
***** BB01, stmt 6
[000166] ------------ * STMT void (IL 0x000... ???)
[000163] -----+------ | /--* CNS_INT int 0
[000165] -A---+------ \--* ASG int
[000164] D----+-N---- \--* LCL_VAR int V08 tmp7
***** BB01, stmt 7
[000170] ------------ * STMT void (IL 0x000... ???)
[000167] -----+------ | /--* CNS_INT long 0
[000169] -A---+------ \--* ASG long
[000168] D----+-N---- \--* LCL_VAR long V09 tmp8
***** BB01, stmt 8
[000174] ------------ * STMT void (IL 0x000... ???)
[000171] -----+------ | /--* CNS_INT int 0
[000173] -A---+------ \--* ASG int
[000172] D----+-N---- \--* LCL_VAR int V10 tmp9
***** BB01, stmt 9
[000016] ------------ * STMT void (IL 0x000... ???)
[000013] -----+------ | /--* LCL_VAR long V02 tmp1
[000015] -A---+------ \--* ASG long
[000014] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB01, stmt 10
[000020] ------------ * STMT void (IL 0x000... ???)
[000017] -----+------ | /--* LCL_VAR int V04 tmp3
[000019] -A---+------ \--* ASG int
[000018] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB01, stmt 11
[000181] ------------ * STMT void (IL 0x000... ???)
[000180] ------------ \--* JTRUE void
( 1, 1) [000179] ------------ | /--* CNS_INT int 0
( 5, 4) [000177] J------N---- \--* LE int
( 3, 2) [000178] ------------ \--* LCL_VAR int V04 tmp3
------------ BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
***** BB02, stmt 12
[000031] ------------ * STMT void (IL 0x000... ???)
[000028] -----+------ | /--* LCL_VAR int V04 tmp3
[000030] -A---+------ \--* ASG int
[000029] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB02, stmt 13
[000041] ------------ * STMT void (IL 0x000... ???)
[000033] -----+------ | /--* LCL_VAR long V03 tmp2
[000040] -A---+------ \--* ASG long
[000039] D----+-N---- \--* LCL_VAR long V06 tmp5
***** BB02, stmt 14
[000044] ------------ * STMT void (IL 0x000... ???)
[000036] -----+------ | /--* CNS_INT long 8
[000037] -----+------ | /--* ADD long
[000034] -----+------ | | \--* LCL_VAR long V03 tmp2
[000043] -A---+------ \--* ASG long
[000038] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB02, stmt 15
[000052] ------------ * STMT void (IL 0x000... ???)
[000047] ---XG+------ | /--* CAST int <- long
[000046] ---XG+------ | | \--* HWIntrinsic long PopCount
[000045] *--XG+------ | | \--* IND long
[000042] -----+------ | | \--* LCL_VAR long V06 tmp5
[000048] ---XG+------ | /--* SUB int
[000032] -----+------ | | \--* LCL_VAR int V04 tmp3
[000051] -A-XG+------ \--* ASG int
[000050] D----+-N---- \--* LCL_VAR int V04 tmp3
***** BB02, stmt 16
[000026] ------------ * STMT void (IL 0x000... ???)
[000025] -----+------ \--* JTRUE void
( 1, 1) [000023] ------------ | /--* CNS_INT int 0
( 5, 4) [000024] J------N---- \--* GT int
( 3, 2) [000022] ------------ \--* LCL_VAR int V04 tmp3
------------ BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 17
[000060] ------------ * STMT void (IL 0x000... ???)
[000056] -----+------ | /--* CNS_INT long -8
[000057] -----+------ | /--* ADD long
[000054] -----+------ | | \--* LCL_VAR long V03 tmp2
[000059] -A---+------ \--* ASG long
[000058] D----+-N---- \--* LCL_VAR long V07 tmp6
***** BB03, stmt 18
[000069] ------------ * STMT void (IL 0x000... ???)
[000064] ---XG+------ | /--* HWIntrinsic int PopCount
[000063] *--XG+------ | | \--* IND int
[000062] -----+------ | | \--* LCL_VAR long V07 tmp6
[000065] ---XG+------ | /--* SUB int
[000061] -----+------ | | \--* LCL_VAR int V05 tmp4
[000068] -A-XG+------ \--* ASG int
[000067] D----+-N---- \--* LCL_VAR int V04 tmp3
***** BB03, stmt 19
[000074] ------------ * STMT void (IL 0x000... ???)
[000073] -----+------ \--* JTRUE void
[000071] -----+------ | /--* CNS_INT int 0
[000072] J----+-N---- \--* LE int
[000070] -----+------ \--* LCL_VAR int V04 tmp3
------------ BB04 [000..001), preds={BB03} succs={BB05}
***** BB04, stmt 20
[000137] ------------ * STMT void (IL 0x000... ???)
[000134] -----+------ | /--* LCL_VAR int V04 tmp3
[000136] -A---+------ \--* ASG int
[000135] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB04, stmt 21
[000144] ------------ * STMT void (IL 0x000... ???)
[000140] -----+------ | /--* CNS_INT long 4
[000141] -----+------ | /--* ADD long
[000138] -----+------ | | \--* LCL_VAR long V07 tmp6
[000143] -A---+------ \--* ASG long
[000142] D----+-N---- \--* LCL_VAR long V07 tmp6
------------ BB05 [000..001) -> BB07 (cond), preds={BB03,BB04} succs={BB06,BB07}
***** BB05, stmt 22
[000080] ------------ * STMT void (IL 0x000... ???)
[000077] *--XG+------ | /--* IND int
[000076] -----+------ | | \--* LCL_VAR long V07 tmp6
[000079] -A-XG+------ \--* ASG int
[000078] D----+-N---- \--* LCL_VAR int V08 tmp7
***** BB05, stmt 23
[000092] ------------ * STMT void (IL 0x000... ???)
[000088] -----+------ | /--* CNS_INT long 5
[000089] -----+------ | /--* LSH long
[000085] -----+------ | | | /--* CNS_INT long 4
[000086] -----+------ | | \--* DIV long
[000082] -----+------ | | | /--* LCL_VAR long V02 tmp1
[000083] -----+------ | | \--* SUB long
[000081] -----+------ | | \--* LCL_VAR long V07 tmp6
[000091] -A---+------ \--* ASG long
[000090] D----+-N---- \--* LCL_VAR long V09 tmp8
***** BB05, stmt 24
[000186] ------------ * STMT void (IL 0x000... ???)
[000185] ------------ \--* JTRUE void
( 1, 1) [000184] ------------ | /--* CNS_INT int 0
( 5, 4) [000182] J------N---- \--* LE int
( 3, 2) [000183] ------------ \--* LCL_VAR int V05 tmp4
------------ BB06 [000..001) -> BB06 (cond), preds={BB05,BB06} succs={BB07,BB06}
***** BB06, stmt 25
[000106] ------------ * STMT void (IL 0x000... ???)
[000102] -----+------ | /--* CNS_INT int 1
[000103] -----+------ | /--* ADD int
[000101] -----+------ | | \--* HWIntrinsic int TrailingZeroCount
[000100] -----+------ | | \--* LCL_VAR int V08 tmp7
[000105] -A---+------ \--* ASG int
[000104] D----+-N---- \--* LCL_VAR int V10 tmp9
***** BB06, stmt 26
[000113] ------------ * STMT void (IL 0x000... ???)
[000109] -----+---U-- | /--* CAST long <- ulong <- uint
[000108] -----+------ | | \--* LCL_VAR int V10 tmp9
[000110] -----+------ | /--* ADD long
[000107] -----+------ | | \--* LCL_VAR long V09 tmp8
[000112] -A---+------ \--* ASG long
[000111] D----+-N---- \--* LCL_VAR long V09 tmp8
***** BB06, stmt 27
[000119] ------------ * STMT void (IL 0x000... ???)
[000115] -----+------ | /--* CNS_INT int -1
[000116] -----+------ | /--* ADD int
[000114] -----+------ | | \--* LCL_VAR int V05 tmp4
[000118] -A---+------ \--* ASG int
[000117] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB06, stmt 28
[000127] ------------ * STMT void (IL 0x000... ???)
[000122] -----+------ | /--* CNS_INT int 31
[000123] -----+------ | /--* AND int
[000121] -----+------ | | \--* LCL_VAR int V10 tmp9
[000124] -----+------ | /--* RSZ int
[000120] -----+------ | | \--* LCL_VAR int V08 tmp7
[000126] -A---+------ \--* ASG int
[000125] D----+-N---- \--* LCL_VAR int V08 tmp7
***** BB06, stmt 29
[000098] ------------ * STMT void (IL 0x000... ???)
[000097] -----+------ \--* JTRUE void
( 1, 1) [000095] ------------ | /--* CNS_INT int 0
( 5, 4) [000096] J------N---- \--* GT int
( 3, 2) [000094] ------------ \--* LCL_VAR int V05 tmp4
------------ BB07 [000..001) (return), preds={BB05,BB06} succs={}
***** BB07, stmt 30
[000011] ------------ * STMT void (IL ???... ???)
[000010] -----+------ \--* RETURN int
[000131] -----+------ | /--* CNS_INT int -1
[000132] -----+------ \--* ADD int
[000129] C----+------ \--* LCL_VAR int V09 tmp8
-------------------------------------------------------------------------------------------------------------------
*************** Exiting Allocate Objects
Trees after Allocate Objects
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target
BB02 [0002] 2 BB01,BB02 0.50 [000..001)-> BB02 ( cond ) i Loop label target bwd
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target
BB04 [0005] 1 BB03 0.50 [000..001) i
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target
BB06 [0007] 2 BB05,BB06 0.50 [000..001)-> BB06 ( cond ) i Loop label target bwd
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
[000147] ------------ * STMT void (IL 0x000... ???)
[000001] x---G+------ | /--* IND long
[000176] -----+------ | | \--* CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits]
[000146] -A--G+------ \--* ASG long
[000145] D----+-N---- \--* LCL_VAR long V02 tmp1
***** BB01, stmt 2
[000150] ------------ * STMT void (IL 0x000... ???)
[000003] -----+------ | /--* LCL_VAR int V00 arg0
[000149] -A---+------ \--* ASG int
[000148] D----+-N---- \--* LCL_VAR int V04 tmp3
***** BB01, stmt 3
[000154] ------------ * STMT void (IL 0x000... ???)
[000151] -----+------ | /--* CNS_INT long 0
[000153] -A---+------ \--* ASG long
[000152] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB01, stmt 4
[000158] ------------ * STMT void (IL 0x000... ???)
[000155] -----+------ | /--* CNS_INT int 0
[000157] -A---+------ \--* ASG int
[000156] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB01, stmt 5
[000162] ------------ * STMT void (IL 0x000... ???)
[000159] -----+------ | /--* CNS_INT long 0
[000161] -A---+------ \--* ASG long
[000160] D----+-N---- \--* LCL_VAR long V07 tmp6
***** BB01, stmt 6
[000166] ------------ * STMT void (IL 0x000... ???)
[000163] -----+------ | /--* CNS_INT int 0
[000165] -A---+------ \--* ASG int
[000164] D----+-N---- \--* LCL_VAR int V08 tmp7
***** BB01, stmt 7
[000170] ------------ * STMT void (IL 0x000... ???)
[000167] -----+------ | /--* CNS_INT long 0
[000169] -A---+------ \--* ASG long
[000168] D----+-N---- \--* LCL_VAR long V09 tmp8
***** BB01, stmt 8
[000174] ------------ * STMT void (IL 0x000... ???)
[000171] -----+------ | /--* CNS_INT int 0
[000173] -A---+------ \--* ASG int
[000172] D----+-N---- \--* LCL_VAR int V10 tmp9
***** BB01, stmt 9
[000016] ------------ * STMT void (IL 0x000... ???)
[000013] -----+------ | /--* LCL_VAR long V02 tmp1
[000015] -A---+------ \--* ASG long
[000014] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB01, stmt 10
[000020] ------------ * STMT void (IL 0x000... ???)
[000017] -----+------ | /--* LCL_VAR int V04 tmp3
[000019] -A---+------ \--* ASG int
[000018] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB01, stmt 11
[000181] ------------ * STMT void (IL 0x000... ???)
[000180] ------------ \--* JTRUE void
( 1, 1) [000179] ------------ | /--* CNS_INT int 0
( 5, 4) [000177] J------N---- \--* LE int
( 3, 2) [000178] ------------ \--* LCL_VAR int V04 tmp3
------------ BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
***** BB02, stmt 12
[000031] ------------ * STMT void (IL 0x000... ???)
[000028] -----+------ | /--* LCL_VAR int V04 tmp3
[000030] -A---+------ \--* ASG int
[000029] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB02, stmt 13
[000041] ------------ * STMT void (IL 0x000... ???)
[000033] -----+------ | /--* LCL_VAR long V03 tmp2
[000040] -A---+------ \--* ASG long
[000039] D----+-N---- \--* LCL_VAR long V06 tmp5
***** BB02, stmt 14
[000044] ------------ * STMT void (IL 0x000... ???)
[000036] -----+------ | /--* CNS_INT long 8
[000037] -----+------ | /--* ADD long
[000034] -----+------ | | \--* LCL_VAR long V03 tmp2
[000043] -A---+------ \--* ASG long
[000038] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB02, stmt 15
[000052] ------------ * STMT void (IL 0x000... ???)
[000047] ---XG+------ | /--* CAST int <- long
[000046] ---XG+------ | | \--* HWIntrinsic long PopCount
[000045] *--XG+------ | | \--* IND long
[000042] -----+------ | | \--* LCL_VAR long V06 tmp5
[000048] ---XG+------ | /--* SUB int
[000032] -----+------ | | \--* LCL_VAR int V04 tmp3
[000051] -A-XG+------ \--* ASG int
[000050] D----+-N---- \--* LCL_VAR int V04 tmp3
***** BB02, stmt 16
[000026] ------------ * STMT void (IL 0x000... ???)
[000025] -----+------ \--* JTRUE void
( 1, 1) [000023] ------------ | /--* CNS_INT int 0
( 5, 4) [000024] J------N---- \--* GT int
( 3, 2) [000022] ------------ \--* LCL_VAR int V04 tmp3
------------ BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 17
[000060] ------------ * STMT void (IL 0x000... ???)
[000056] -----+------ | /--* CNS_INT long -8
[000057] -----+------ | /--* ADD long
[000054] -----+------ | | \--* LCL_VAR long V03 tmp2
[000059] -A---+------ \--* ASG long
[000058] D----+-N---- \--* LCL_VAR long V07 tmp6
***** BB03, stmt 18
[000069] ------------ * STMT void (IL 0x000... ???)
[000064] ---XG+------ | /--* HWIntrinsic int PopCount
[000063] *--XG+------ | | \--* IND int
[000062] -----+------ | | \--* LCL_VAR long V07 tmp6
[000065] ---XG+------ | /--* SUB int
[000061] -----+------ | | \--* LCL_VAR int V05 tmp4
[000068] -A-XG+------ \--* ASG int
[000067] D----+-N---- \--* LCL_VAR int V04 tmp3
***** BB03, stmt 19
[000074] ------------ * STMT void (IL 0x000... ???)
[000073] -----+------ \--* JTRUE void
[000071] -----+------ | /--* CNS_INT int 0
[000072] J----+-N---- \--* LE int
[000070] -----+------ \--* LCL_VAR int V04 tmp3
------------ BB04 [000..001), preds={BB03} succs={BB05}
***** BB04, stmt 20
[000137] ------------ * STMT void (IL 0x000... ???)
[000134] -----+------ | /--* LCL_VAR int V04 tmp3
[000136] -A---+------ \--* ASG int
[000135] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB04, stmt 21
[000144] ------------ * STMT void (IL 0x000... ???)
[000140] -----+------ | /--* CNS_INT long 4
[000141] -----+------ | /--* ADD long
[000138] -----+------ | | \--* LCL_VAR long V07 tmp6
[000143] -A---+------ \--* ASG long
[000142] D----+-N---- \--* LCL_VAR long V07 tmp6
------------ BB05 [000..001) -> BB07 (cond), preds={BB03,BB04} succs={BB06,BB07}
***** BB05, stmt 22
[000080] ------------ * STMT void (IL 0x000... ???)
[000077] *--XG+------ | /--* IND int
[000076] -----+------ | | \--* LCL_VAR long V07 tmp6
[000079] -A-XG+------ \--* ASG int
[000078] D----+-N---- \--* LCL_VAR int V08 tmp7
***** BB05, stmt 23
[000092] ------------ * STMT void (IL 0x000... ???)
[000088] -----+------ | /--* CNS_INT long 5
[000089] -----+------ | /--* LSH long
[000085] -----+------ | | | /--* CNS_INT long 4
[000086] -----+------ | | \--* DIV long
[000082] -----+------ | | | /--* LCL_VAR long V02 tmp1
[000083] -----+------ | | \--* SUB long
[000081] -----+------ | | \--* LCL_VAR long V07 tmp6
[000091] -A---+------ \--* ASG long
[000090] D----+-N---- \--* LCL_VAR long V09 tmp8
***** BB05, stmt 24
[000186] ------------ * STMT void (IL 0x000... ???)
[000185] ------------ \--* JTRUE void
( 1, 1) [000184] ------------ | /--* CNS_INT int 0
( 5, 4) [000182] J------N---- \--* LE int
( 3, 2) [000183] ------------ \--* LCL_VAR int V05 tmp4
------------ BB06 [000..001) -> BB06 (cond), preds={BB05,BB06} succs={BB07,BB06}
***** BB06, stmt 25
[000106] ------------ * STMT void (IL 0x000... ???)
[000102] -----+------ | /--* CNS_INT int 1
[000103] -----+------ | /--* ADD int
[000101] -----+------ | | \--* HWIntrinsic int TrailingZeroCount
[000100] -----+------ | | \--* LCL_VAR int V08 tmp7
[000105] -A---+------ \--* ASG int
[000104] D----+-N---- \--* LCL_VAR int V10 tmp9
***** BB06, stmt 26
[000113] ------------ * STMT void (IL 0x000... ???)
[000109] -----+---U-- | /--* CAST long <- ulong <- uint
[000108] -----+------ | | \--* LCL_VAR int V10 tmp9
[000110] -----+------ | /--* ADD long
[000107] -----+------ | | \--* LCL_VAR long V09 tmp8
[000112] -A---+------ \--* ASG long
[000111] D----+-N---- \--* LCL_VAR long V09 tmp8
***** BB06, stmt 27
[000119] ------------ * STMT void (IL 0x000... ???)
[000115] -----+------ | /--* CNS_INT int -1
[000116] -----+------ | /--* ADD int
[000114] -----+------ | | \--* LCL_VAR int V05 tmp4
[000118] -A---+------ \--* ASG int
[000117] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB06, stmt 28
[000127] ------------ * STMT void (IL 0x000... ???)
[000122] -----+------ | /--* CNS_INT int 31
[000123] -----+------ | /--* AND int
[000121] -----+------ | | \--* LCL_VAR int V10 tmp9
[000124] -----+------ | /--* RSZ int
[000120] -----+------ | | \--* LCL_VAR int V08 tmp7
[000126] -A---+------ \--* ASG int
[000125] D----+-N---- \--* LCL_VAR int V08 tmp7
***** BB06, stmt 29
[000098] ------------ * STMT void (IL 0x000... ???)
[000097] -----+------ \--* JTRUE void
( 1, 1) [000095] ------------ | /--* CNS_INT int 0
( 5, 4) [000096] J------N---- \--* GT int
( 3, 2) [000094] ------------ \--* LCL_VAR int V05 tmp4
------------ BB07 [000..001) (return), preds={BB05,BB06} succs={}
***** BB07, stmt 30
[000011] ------------ * STMT void (IL ???... ???)
[000010] -----+------ \--* RETURN int
[000131] -----+------ | /--* CNS_INT int -1
[000132] -----+------ \--* ADD int
[000129] C----+------ \--* LCL_VAR int V09 tmp8
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In optOptimizeLoops()
After optSetBlockWeights:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target
BB02 [0002] 2 BB01,BB02 0.25 [000..001)-> BB02 ( cond ) i Loop label target bwd
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target
BB04 [0005] 1 BB03 0.25 [000..001) i
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target
BB06 [0007] 2 BB05,BB06 0.25 [000..001)-> BB06 ( cond ) i Loop label target bwd
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In optFindNaturalLoops()
Recorded loop L00, from BB02 to BB02 (Head=BB01, Entry=BB02, ExitCnt=1 at BB02)
Recorded loop L01, from BB06 to BB06 (Head=BB05, Entry=BB06, ExitCnt=1 at BB06)
Final natural loop table:
L00, from BB02 to BB02 (Head=BB01, Entry=BB02, ExitCnt=1 at BB02)
L01, from BB06 to BB06 (Head=BB05, Entry=BB06, ExitCnt=1 at BB06)
Marking loop L01
BB02(wt=2 )
Marking loop L02
BB06(wt=2 )
Found a total of 2 loops.
After loop weight marking:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target
BB02 [0002] 2 BB01,BB02 2 [000..001)-> BB02 ( cond ) i Loop label target bwd
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target
BB04 [0005] 1 BB03 0.25 [000..001) i
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target
BB06 [0007] 2 BB05,BB06 2 [000..001)-> BB06 ( cond ) i Loop label target bwd
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
*************** In optCloneLoops()
Blocks/Trees at start of phase
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target
BB02 [0002] 2 BB01,BB02 2 [000..001)-> BB02 ( cond ) i Loop label target bwd
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target
BB04 [0005] 1 BB03 0.25 [000..001) i
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target
BB06 [0007] 2 BB05,BB06 2 [000..001)-> BB06 ( cond ) i Loop label target bwd
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
[000147] ------------ * STMT void (IL 0x000... ???)
[000001] x---G+------ | /--* IND long
[000176] -----+------ | | \--* CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits]
[000146] -A--G+------ \--* ASG long
[000145] D----+-N---- \--* LCL_VAR long V02 tmp1
***** BB01, stmt 2
[000150] ------------ * STMT void (IL 0x000... ???)
[000003] -----+------ | /--* LCL_VAR int V00 arg0
[000149] -A---+------ \--* ASG int
[000148] D----+-N---- \--* LCL_VAR int V04 tmp3
***** BB01, stmt 3
[000154] ------------ * STMT void (IL 0x000... ???)
[000151] -----+------ | /--* CNS_INT long 0
[000153] -A---+------ \--* ASG long
[000152] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB01, stmt 4
[000158] ------------ * STMT void (IL 0x000... ???)
[000155] -----+------ | /--* CNS_INT int 0
[000157] -A---+------ \--* ASG int
[000156] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB01, stmt 5
[000162] ------------ * STMT void (IL 0x000... ???)
[000159] -----+------ | /--* CNS_INT long 0
[000161] -A---+------ \--* ASG long
[000160] D----+-N---- \--* LCL_VAR long V07 tmp6
***** BB01, stmt 6
[000166] ------------ * STMT void (IL 0x000... ???)
[000163] -----+------ | /--* CNS_INT int 0
[000165] -A---+------ \--* ASG int
[000164] D----+-N---- \--* LCL_VAR int V08 tmp7
***** BB01, stmt 7
[000170] ------------ * STMT void (IL 0x000... ???)
[000167] -----+------ | /--* CNS_INT long 0
[000169] -A---+------ \--* ASG long
[000168] D----+-N---- \--* LCL_VAR long V09 tmp8
***** BB01, stmt 8
[000174] ------------ * STMT void (IL 0x000... ???)
[000171] -----+------ | /--* CNS_INT int 0
[000173] -A---+------ \--* ASG int
[000172] D----+-N---- \--* LCL_VAR int V10 tmp9
***** BB01, stmt 9
[000016] ------------ * STMT void (IL 0x000... ???)
[000013] -----+------ | /--* LCL_VAR long V02 tmp1
[000015] -A---+------ \--* ASG long
[000014] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB01, stmt 10
[000020] ------------ * STMT void (IL 0x000... ???)
[000017] -----+------ | /--* LCL_VAR int V04 tmp3
[000019] -A---+------ \--* ASG int
[000018] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB01, stmt 11
[000181] ------------ * STMT void (IL 0x000... ???)
[000180] ------------ \--* JTRUE void
( 1, 1) [000179] ------------ | /--* CNS_INT int 0
( 5, 4) [000177] J------N---- \--* LE int
( 3, 2) [000178] ------------ \--* LCL_VAR int V04 tmp3
------------ BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
***** BB02, stmt 12
[000031] ------------ * STMT void (IL 0x000... ???)
[000028] -----+------ | /--* LCL_VAR int V04 tmp3
[000030] -A---+------ \--* ASG int
[000029] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB02, stmt 13
[000041] ------------ * STMT void (IL 0x000... ???)
[000033] -----+------ | /--* LCL_VAR long V03 tmp2
[000040] -A---+------ \--* ASG long
[000039] D----+-N---- \--* LCL_VAR long V06 tmp5
***** BB02, stmt 14
[000044] ------------ * STMT void (IL 0x000... ???)
[000036] -----+------ | /--* CNS_INT long 8
[000037] -----+------ | /--* ADD long
[000034] -----+------ | | \--* LCL_VAR long V03 tmp2
[000043] -A---+------ \--* ASG long
[000038] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB02, stmt 15
[000052] ------------ * STMT void (IL 0x000... ???)
[000047] ---XG+------ | /--* CAST int <- long
[000046] ---XG+------ | | \--* HWIntrinsic long PopCount
[000045] *--XG+------ | | \--* IND long
[000042] -----+------ | | \--* LCL_VAR long V06 tmp5
[000048] ---XG+------ | /--* SUB int
[000032] -----+------ | | \--* LCL_VAR int V04 tmp3
[000051] -A-XG+------ \--* ASG int
[000050] D----+-N---- \--* LCL_VAR int V04 tmp3
***** BB02, stmt 16
[000026] ------------ * STMT void (IL 0x000... ???)
[000025] -----+------ \--* JTRUE void
( 1, 1) [000023] ------------ | /--* CNS_INT int 0
( 5, 4) [000024] J------N---- \--* GT int
( 3, 2) [000022] ------------ \--* LCL_VAR int V04 tmp3
------------ BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 17
[000060] ------------ * STMT void (IL 0x000... ???)
[000056] -----+------ | /--* CNS_INT long -8
[000057] -----+------ | /--* ADD long
[000054] -----+------ | | \--* LCL_VAR long V03 tmp2
[000059] -A---+------ \--* ASG long
[000058] D----+-N---- \--* LCL_VAR long V07 tmp6
***** BB03, stmt 18
[000069] ------------ * STMT void (IL 0x000... ???)
[000064] ---XG+------ | /--* HWIntrinsic int PopCount
[000063] *--XG+------ | | \--* IND int
[000062] -----+------ | | \--* LCL_VAR long V07 tmp6
[000065] ---XG+------ | /--* SUB int
[000061] -----+------ | | \--* LCL_VAR int V05 tmp4
[000068] -A-XG+------ \--* ASG int
[000067] D----+-N---- \--* LCL_VAR int V04 tmp3
***** BB03, stmt 19
[000074] ------------ * STMT void (IL 0x000... ???)
[000073] -----+------ \--* JTRUE void
[000071] -----+------ | /--* CNS_INT int 0
[000072] J----+-N---- \--* LE int
[000070] -----+------ \--* LCL_VAR int V04 tmp3
------------ BB04 [000..001), preds={BB03} succs={BB05}
***** BB04, stmt 20
[000137] ------------ * STMT void (IL 0x000... ???)
[000134] -----+------ | /--* LCL_VAR int V04 tmp3
[000136] -A---+------ \--* ASG int
[000135] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB04, stmt 21
[000144] ------------ * STMT void (IL 0x000... ???)
[000140] -----+------ | /--* CNS_INT long 4
[000141] -----+------ | /--* ADD long
[000138] -----+------ | | \--* LCL_VAR long V07 tmp6
[000143] -A---+------ \--* ASG long
[000142] D----+-N---- \--* LCL_VAR long V07 tmp6
------------ BB05 [000..001) -> BB07 (cond), preds={BB03,BB04} succs={BB06,BB07}
***** BB05, stmt 22
[000080] ------------ * STMT void (IL 0x000... ???)
[000077] *--XG+------ | /--* IND int
[000076] -----+------ | | \--* LCL_VAR long V07 tmp6
[000079] -A-XG+------ \--* ASG int
[000078] D----+-N---- \--* LCL_VAR int V08 tmp7
***** BB05, stmt 23
[000092] ------------ * STMT void (IL 0x000... ???)
[000088] -----+------ | /--* CNS_INT long 5
[000089] -----+------ | /--* LSH long
[000085] -----+------ | | | /--* CNS_INT long 4
[000086] -----+------ | | \--* DIV long
[000082] -----+------ | | | /--* LCL_VAR long V02 tmp1
[000083] -----+------ | | \--* SUB long
[000081] -----+------ | | \--* LCL_VAR long V07 tmp6
[000091] -A---+------ \--* ASG long
[000090] D----+-N---- \--* LCL_VAR long V09 tmp8
***** BB05, stmt 24
[000186] ------------ * STMT void (IL 0x000... ???)
[000185] ------------ \--* JTRUE void
( 1, 1) [000184] ------------ | /--* CNS_INT int 0
( 5, 4) [000182] J------N---- \--* LE int
( 3, 2) [000183] ------------ \--* LCL_VAR int V05 tmp4
------------ BB06 [000..001) -> BB06 (cond), preds={BB05,BB06} succs={BB07,BB06}
***** BB06, stmt 25
[000106] ------------ * STMT void (IL 0x000... ???)
[000102] -----+------ | /--* CNS_INT int 1
[000103] -----+------ | /--* ADD int
[000101] -----+------ | | \--* HWIntrinsic int TrailingZeroCount
[000100] -----+------ | | \--* LCL_VAR int V08 tmp7
[000105] -A---+------ \--* ASG int
[000104] D----+-N---- \--* LCL_VAR int V10 tmp9
***** BB06, stmt 26
[000113] ------------ * STMT void (IL 0x000... ???)
[000109] -----+---U-- | /--* CAST long <- ulong <- uint
[000108] -----+------ | | \--* LCL_VAR int V10 tmp9
[000110] -----+------ | /--* ADD long
[000107] -----+------ | | \--* LCL_VAR long V09 tmp8
[000112] -A---+------ \--* ASG long
[000111] D----+-N---- \--* LCL_VAR long V09 tmp8
***** BB06, stmt 27
[000119] ------------ * STMT void (IL 0x000... ???)
[000115] -----+------ | /--* CNS_INT int -1
[000116] -----+------ | /--* ADD int
[000114] -----+------ | | \--* LCL_VAR int V05 tmp4
[000118] -A---+------ \--* ASG int
[000117] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB06, stmt 28
[000127] ------------ * STMT void (IL 0x000... ???)
[000122] -----+------ | /--* CNS_INT int 31
[000123] -----+------ | /--* AND int
[000121] -----+------ | | \--* LCL_VAR int V10 tmp9
[000124] -----+------ | /--* RSZ int
[000120] -----+------ | | \--* LCL_VAR int V08 tmp7
[000126] -A---+------ \--* ASG int
[000125] D----+-N---- \--* LCL_VAR int V08 tmp7
***** BB06, stmt 29
[000098] ------------ * STMT void (IL 0x000... ???)
[000097] -----+------ \--* JTRUE void
( 1, 1) [000095] ------------ | /--* CNS_INT int 0
( 5, 4) [000096] J------N---- \--* GT int
( 3, 2) [000094] ------------ \--* LCL_VAR int V05 tmp4
------------ BB07 [000..001) (return), preds={BB05,BB06} succs={}
***** BB07, stmt 30
[000011] ------------ * STMT void (IL ???... ???)
[000010] -----+------ \--* RETURN int
[000131] -----+------ | /--* CNS_INT int -1
[000132] -----+------ \--* ADD int
[000129] C----+------ \--* LCL_VAR int V09 tmp8
-------------------------------------------------------------------------------------------------------------------
Considering loop 0 to clone for optimizations.
> No iter flag on loop 0.
------------------------------------------------------------
Considering loop 1 to clone for optimizations.
> No iter flag on loop 1.
------------------------------------------------------------
After loop cloning:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target
BB02 [0002] 2 BB01,BB02 2 [000..001)-> BB02 ( cond ) i Loop label target bwd
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target
BB04 [0005] 1 BB03 0.25 [000..001) i
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target
BB06 [0007] 2 BB05,BB06 2 [000..001)-> BB06 ( cond ) i Loop label target bwd
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
[000147] ------------ * STMT void (IL 0x000... ???)
[000001] x---G+------ | /--* IND long
[000176] -----+------ | | \--* CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits]
[000146] -A--G+------ \--* ASG long
[000145] D----+-N---- \--* LCL_VAR long V02 tmp1
***** BB01, stmt 2
[000150] ------------ * STMT void (IL 0x000... ???)
[000003] -----+------ | /--* LCL_VAR int V00 arg0
[000149] -A---+------ \--* ASG int
[000148] D----+-N---- \--* LCL_VAR int V04 tmp3
***** BB01, stmt 3
[000154] ------------ * STMT void (IL 0x000... ???)
[000151] -----+------ | /--* CNS_INT long 0
[000153] -A---+------ \--* ASG long
[000152] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB01, stmt 4
[000158] ------------ * STMT void (IL 0x000... ???)
[000155] -----+------ | /--* CNS_INT int 0
[000157] -A---+------ \--* ASG int
[000156] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB01, stmt 5
[000162] ------------ * STMT void (IL 0x000... ???)
[000159] -----+------ | /--* CNS_INT long 0
[000161] -A---+------ \--* ASG long
[000160] D----+-N---- \--* LCL_VAR long V07 tmp6
***** BB01, stmt 6
[000166] ------------ * STMT void (IL 0x000... ???)
[000163] -----+------ | /--* CNS_INT int 0
[000165] -A---+------ \--* ASG int
[000164] D----+-N---- \--* LCL_VAR int V08 tmp7
***** BB01, stmt 7
[000170] ------------ * STMT void (IL 0x000... ???)
[000167] -----+------ | /--* CNS_INT long 0
[000169] -A---+------ \--* ASG long
[000168] D----+-N---- \--* LCL_VAR long V09 tmp8
***** BB01, stmt 8
[000174] ------------ * STMT void (IL 0x000... ???)
[000171] -----+------ | /--* CNS_INT int 0
[000173] -A---+------ \--* ASG int
[000172] D----+-N---- \--* LCL_VAR int V10 tmp9
***** BB01, stmt 9
[000016] ------------ * STMT void (IL 0x000... ???)
[000013] -----+------ | /--* LCL_VAR long V02 tmp1
[000015] -A---+------ \--* ASG long
[000014] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB01, stmt 10
[000020] ------------ * STMT void (IL 0x000... ???)
[000017] -----+------ | /--* LCL_VAR int V04 tmp3
[000019] -A---+------ \--* ASG int
[000018] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB01, stmt 11
[000181] ------------ * STMT void (IL 0x000... ???)
[000180] ------------ \--* JTRUE void
( 1, 1) [000179] ------------ | /--* CNS_INT int 0
( 5, 4) [000177] J------N---- \--* LE int
( 3, 2) [000178] ------------ \--* LCL_VAR int V04 tmp3
------------ BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
***** BB02, stmt 12
[000031] ------------ * STMT void (IL 0x000... ???)
[000028] -----+------ | /--* LCL_VAR int V04 tmp3
[000030] -A---+------ \--* ASG int
[000029] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB02, stmt 13
[000041] ------------ * STMT void (IL 0x000... ???)
[000033] -----+------ | /--* LCL_VAR long V03 tmp2
[000040] -A---+------ \--* ASG long
[000039] D----+-N---- \--* LCL_VAR long V06 tmp5
***** BB02, stmt 14
[000044] ------------ * STMT void (IL 0x000... ???)
[000036] -----+------ | /--* CNS_INT long 8
[000037] -----+------ | /--* ADD long
[000034] -----+------ | | \--* LCL_VAR long V03 tmp2
[000043] -A---+------ \--* ASG long
[000038] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB02, stmt 15
[000052] ------------ * STMT void (IL 0x000... ???)
[000047] ---XG+------ | /--* CAST int <- long
[000046] ---XG+------ | | \--* HWIntrinsic long PopCount
[000045] *--XG+------ | | \--* IND long
[000042] -----+------ | | \--* LCL_VAR long V06 tmp5
[000048] ---XG+------ | /--* SUB int
[000032] -----+------ | | \--* LCL_VAR int V04 tmp3
[000051] -A-XG+------ \--* ASG int
[000050] D----+-N---- \--* LCL_VAR int V04 tmp3
***** BB02, stmt 16
[000026] ------------ * STMT void (IL 0x000... ???)
[000025] -----+------ \--* JTRUE void
( 1, 1) [000023] ------------ | /--* CNS_INT int 0
( 5, 4) [000024] J------N---- \--* GT int
( 3, 2) [000022] ------------ \--* LCL_VAR int V04 tmp3
------------ BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 17
[000060] ------------ * STMT void (IL 0x000... ???)
[000056] -----+------ | /--* CNS_INT long -8
[000057] -----+------ | /--* ADD long
[000054] -----+------ | | \--* LCL_VAR long V03 tmp2
[000059] -A---+------ \--* ASG long
[000058] D----+-N---- \--* LCL_VAR long V07 tmp6
***** BB03, stmt 18
[000069] ------------ * STMT void (IL 0x000... ???)
[000064] ---XG+------ | /--* HWIntrinsic int PopCount
[000063] *--XG+------ | | \--* IND int
[000062] -----+------ | | \--* LCL_VAR long V07 tmp6
[000065] ---XG+------ | /--* SUB int
[000061] -----+------ | | \--* LCL_VAR int V05 tmp4
[000068] -A-XG+------ \--* ASG int
[000067] D----+-N---- \--* LCL_VAR int V04 tmp3
***** BB03, stmt 19
[000074] ------------ * STMT void (IL 0x000... ???)
[000073] -----+------ \--* JTRUE void
[000071] -----+------ | /--* CNS_INT int 0
[000072] J----+-N---- \--* LE int
[000070] -----+------ \--* LCL_VAR int V04 tmp3
------------ BB04 [000..001), preds={BB03} succs={BB05}
***** BB04, stmt 20
[000137] ------------ * STMT void (IL 0x000... ???)
[000134] -----+------ | /--* LCL_VAR int V04 tmp3
[000136] -A---+------ \--* ASG int
[000135] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB04, stmt 21
[000144] ------------ * STMT void (IL 0x000... ???)
[000140] -----+------ | /--* CNS_INT long 4
[000141] -----+------ | /--* ADD long
[000138] -----+------ | | \--* LCL_VAR long V07 tmp6
[000143] -A---+------ \--* ASG long
[000142] D----+-N---- \--* LCL_VAR long V07 tmp6
------------ BB05 [000..001) -> BB07 (cond), preds={BB03,BB04} succs={BB06,BB07}
***** BB05, stmt 22
[000080] ------------ * STMT void (IL 0x000... ???)
[000077] *--XG+------ | /--* IND int
[000076] -----+------ | | \--* LCL_VAR long V07 tmp6
[000079] -A-XG+------ \--* ASG int
[000078] D----+-N---- \--* LCL_VAR int V08 tmp7
***** BB05, stmt 23
[000092] ------------ * STMT void (IL 0x000... ???)
[000088] -----+------ | /--* CNS_INT long 5
[000089] -----+------ | /--* LSH long
[000085] -----+------ | | | /--* CNS_INT long 4
[000086] -----+------ | | \--* DIV long
[000082] -----+------ | | | /--* LCL_VAR long V02 tmp1
[000083] -----+------ | | \--* SUB long
[000081] -----+------ | | \--* LCL_VAR long V07 tmp6
[000091] -A---+------ \--* ASG long
[000090] D----+-N---- \--* LCL_VAR long V09 tmp8
***** BB05, stmt 24
[000186] ------------ * STMT void (IL 0x000... ???)
[000185] ------------ \--* JTRUE void
( 1, 1) [000184] ------------ | /--* CNS_INT int 0
( 5, 4) [000182] J------N---- \--* LE int
( 3, 2) [000183] ------------ \--* LCL_VAR int V05 tmp4
------------ BB06 [000..001) -> BB06 (cond), preds={BB05,BB06} succs={BB07,BB06}
***** BB06, stmt 25
[000106] ------------ * STMT void (IL 0x000... ???)
[000102] -----+------ | /--* CNS_INT int 1
[000103] -----+------ | /--* ADD int
[000101] -----+------ | | \--* HWIntrinsic int TrailingZeroCount
[000100] -----+------ | | \--* LCL_VAR int V08 tmp7
[000105] -A---+------ \--* ASG int
[000104] D----+-N---- \--* LCL_VAR int V10 tmp9
***** BB06, stmt 26
[000113] ------------ * STMT void (IL 0x000... ???)
[000109] -----+---U-- | /--* CAST long <- ulong <- uint
[000108] -----+------ | | \--* LCL_VAR int V10 tmp9
[000110] -----+------ | /--* ADD long
[000107] -----+------ | | \--* LCL_VAR long V09 tmp8
[000112] -A---+------ \--* ASG long
[000111] D----+-N---- \--* LCL_VAR long V09 tmp8
***** BB06, stmt 27
[000119] ------------ * STMT void (IL 0x000... ???)
[000115] -----+------ | /--* CNS_INT int -1
[000116] -----+------ | /--* ADD int
[000114] -----+------ | | \--* LCL_VAR int V05 tmp4
[000118] -A---+------ \--* ASG int
[000117] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB06, stmt 28
[000127] ------------ * STMT void (IL 0x000... ???)
[000122] -----+------ | /--* CNS_INT int 31
[000123] -----+------ | /--* AND int
[000121] -----+------ | | \--* LCL_VAR int V10 tmp9
[000124] -----+------ | /--* RSZ int
[000120] -----+------ | | \--* LCL_VAR int V08 tmp7
[000126] -A---+------ \--* ASG int
[000125] D----+-N---- \--* LCL_VAR int V08 tmp7
***** BB06, stmt 29
[000098] ------------ * STMT void (IL 0x000... ???)
[000097] -----+------ \--* JTRUE void
( 1, 1) [000095] ------------ | /--* CNS_INT int 0
( 5, 4) [000096] J------N---- \--* GT int
( 3, 2) [000094] ------------ \--* LCL_VAR int V05 tmp4
------------ BB07 [000..001) (return), preds={BB05,BB06} succs={}
***** BB07, stmt 30
[000011] ------------ * STMT void (IL ???... ???)
[000010] -----+------ \--* RETURN int
[000131] -----+------ | /--* CNS_INT int -1
[000132] -----+------ \--* ADD int
[000129] C----+------ \--* LCL_VAR int V09 tmp8
-------------------------------------------------------------------------------------------------------------------
*************** In optUnrollLoops()
*************** In fgDebugCheckBBlist
*************** In lvaMarkLocalVars()
*** marking local variables in block BB01 (weight=1 )
[000147] ------------ * STMT void (IL 0x000... ???)
[000001] x---G+------ | /--* IND long
[000176] -----+------ | | \--* CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits]
[000146] -A--G+------ \--* ASG long
[000145] D----+-N---- \--* LCL_VAR long V02 tmp1
New refCnts for V02: refCnt = 1, refCntWtd = 2
[000150] ------------ * STMT void (IL 0x000... ???)
[000003] -----+------ | /--* LCL_VAR int V00 arg0
[000149] -A---+------ \--* ASG int
[000148] D----+-N---- \--* LCL_VAR int V04 tmp3
New refCnts for V04: refCnt = 1, refCntWtd = 2
New refCnts for V00: refCnt = 1, refCntWtd = 1
[000154] ------------ * STMT void (IL 0x000... ???)
[000151] -----+------ | /--* CNS_INT long 0
[000153] -A---+------ \--* ASG long
[000152] D----+-N---- \--* LCL_VAR long V03 tmp2
New refCnts for V03: refCnt = 1, refCntWtd = 1
[000158] ------------ * STMT void (IL 0x000... ???)
[000155] -----+------ | /--* CNS_INT int 0
[000157] -A---+------ \--* ASG int
[000156] D----+-N---- \--* LCL_VAR int V05 tmp4
New refCnts for V05: refCnt = 1, refCntWtd = 1
[000162] ------------ * STMT void (IL 0x000... ???)
[000159] -----+------ | /--* CNS_INT long 0
[000161] -A---+------ \--* ASG long
[000160] D----+-N---- \--* LCL_VAR long V07 tmp6
New refCnts for V07: refCnt = 1, refCntWtd = 1
[000166] ------------ * STMT void (IL 0x000... ???)
[000163] -----+------ | /--* CNS_INT int 0
[000165] -A---+------ \--* ASG int
[000164] D----+-N---- \--* LCL_VAR int V08 tmp7
New refCnts for V08: refCnt = 1, refCntWtd = 1
[000170] ------------ * STMT void (IL 0x000... ???)
[000167] -----+------ | /--* CNS_INT long 0
[000169] -A---+------ \--* ASG long
[000168] D----+-N---- \--* LCL_VAR long V09 tmp8
New refCnts for V09: refCnt = 1, refCntWtd = 1
[000174] ------------ * STMT void (IL 0x000... ???)
[000171] -----+------ | /--* CNS_INT int 0
[000173] -A---+------ \--* ASG int
[000172] D----+-N---- \--* LCL_VAR int V10 tmp9
New refCnts for V10: refCnt = 1, refCntWtd = 1
[000016] ------------ * STMT void (IL 0x000... ???)
[000013] -----+------ | /--* LCL_VAR long V02 tmp1
[000015] -A---+------ \--* ASG long
[000014] D----+-N---- \--* LCL_VAR long V03 tmp2
New refCnts for V03: refCnt = 2, refCntWtd = 2
New refCnts for V02: refCnt = 2, refCntWtd = 4
[000020] ------------ * STMT void (IL 0x000... ???)
[000017] -----+------ | /--* LCL_VAR int V04 tmp3
[000019] -A---+------ \--* ASG int
[000018] D----+-N---- \--* LCL_VAR int V05 tmp4
New refCnts for V05: refCnt = 2, refCntWtd = 2
New refCnts for V04: refCnt = 2, refCntWtd = 4
[000181] ------------ * STMT void (IL 0x000... ???)
[000180] ------------ \--* JTRUE void
( 1, 1) [000179] ------------ | /--* CNS_INT int 0
( 5, 4) [000177] J------N---- \--* LE int
( 3, 2) [000178] ------------ \--* LCL_VAR int V04 tmp3
New refCnts for V04: refCnt = 3, refCntWtd = 6
*** marking local variables in block BB02 (weight=2 )
[000031] ------------ * STMT void (IL 0x000... ???)
[000028] -----+------ | /--* LCL_VAR int V04 tmp3
[000030] -A---+------ \--* ASG int
[000029] D----+-N---- \--* LCL_VAR int V05 tmp4
New refCnts for V05: refCnt = 3, refCntWtd = 4
New refCnts for V04: refCnt = 4, refCntWtd = 10
[000041] ------------ * STMT void (IL 0x000... ???)
[000033] -----+------ | /--* LCL_VAR long V03 tmp2
[000040] -A---+------ \--* ASG long
[000039] D----+-N---- \--* LCL_VAR long V06 tmp5
New refCnts for V06: refCnt = 1, refCntWtd = 4
New refCnts for V03: refCnt = 3, refCntWtd = 4
[000044] ------------ * STMT void (IL 0x000... ???)
[000036] -----+------ | /--* CNS_INT long 8
[000037] -----+------ | /--* ADD long
[000034] -----+------ | | \--* LCL_VAR long V03 tmp2
[000043] -A---+------ \--* ASG long
[000038] D----+-N---- \--* LCL_VAR long V03 tmp2
New refCnts for V03: refCnt = 4, refCntWtd = 6
New refCnts for V03: refCnt = 5, refCntWtd = 8
[000052] ------------ * STMT void (IL 0x000... ???)
[000047] ---XG+------ | /--* CAST int <- long
[000046] ---XG+------ | | \--* HWIntrinsic long PopCount
[000045] *--XG+------ | | \--* IND long
[000042] -----+------ | | \--* LCL_VAR long V06 tmp5
[000048] ---XG+------ | /--* SUB int
[000032] -----+------ | | \--* LCL_VAR int V04 tmp3
[000051] -A-XG+------ \--* ASG int
[000050] D----+-N---- \--* LCL_VAR int V04 tmp3
New refCnts for V04: refCnt = 5, refCntWtd = 14
New refCnts for V04: refCnt = 6, refCntWtd = 18
New refCnts for V06: refCnt = 2, refCntWtd = 8
[000026] ------------ * STMT void (IL 0x000... ???)
[000025] -----+------ \--* JTRUE void
( 1, 1) [000023] ------------ | /--* CNS_INT int 0
( 5, 4) [000024] J------N---- \--* GT int
( 3, 2) [000022] ------------ \--* LCL_VAR int V04 tmp3
New refCnts for V04: refCnt = 7, refCntWtd = 22
*** marking local variables in block BB03 (weight=0.50)
[000060] ------------ * STMT void (IL 0x000... ???)
[000056] -----+------ | /--* CNS_INT long -8
[000057] -----+------ | /--* ADD long
[000054] -----+------ | | \--* LCL_VAR long V03 tmp2
[000059] -A---+------ \--* ASG long
[000058] D----+-N---- \--* LCL_VAR long V07 tmp6
New refCnts for V07: refCnt = 2, refCntWtd = 1.50
New refCnts for V03: refCnt = 6, refCntWtd = 8.50
[000069] ------------ * STMT void (IL 0x000... ???)
[000064] ---XG+------ | /--* HWIntrinsic int PopCount
[000063] *--XG+------ | | \--* IND int
[000062] -----+------ | | \--* LCL_VAR long V07 tmp6
[000065] ---XG+------ | /--* SUB int
[000061] -----+------ | | \--* LCL_VAR int V05 tmp4
[000068] -A-XG+------ \--* ASG int
[000067] D----+-N---- \--* LCL_VAR int V04 tmp3
New refCnts for V04: refCnt = 8, refCntWtd = 23
New refCnts for V05: refCnt = 4, refCntWtd = 4.50
New refCnts for V07: refCnt = 3, refCntWtd = 2
[000074] ------------ * STMT void (IL 0x000... ???)
[000073] -----+------ \--* JTRUE void
[000071] -----+------ | /--* CNS_INT int 0
[000072] J----+-N---- \--* LE int
[000070] -----+------ \--* LCL_VAR int V04 tmp3
New refCnts for V04: refCnt = 9, refCntWtd = 24
*** marking local variables in block BB04 (weight=0.25)
[000137] ------------ * STMT void (IL 0x000... ???)
[000134] -----+------ | /--* LCL_VAR int V04 tmp3
[000136] -A---+------ \--* ASG int
[000135] D----+-N---- \--* LCL_VAR int V05 tmp4
New refCnts for V05: refCnt = 5, refCntWtd = 4.75
New refCnts for V04: refCnt = 10, refCntWtd = 24.50
[000144] ------------ * STMT void (IL 0x000... ???)
[000140] -----+------ | /--* CNS_INT long 4
[000141] -----+------ | /--* ADD long
[000138] -----+------ | | \--* LCL_VAR long V07 tmp6
[000143] -A---+------ \--* ASG long
[000142] D----+-N---- \--* LCL_VAR long V07 tmp6
New refCnts for V07: refCnt = 4, refCntWtd = 2.25
New refCnts for V07: refCnt = 5, refCntWtd = 2.50
*** marking local variables in block BB05 (weight=0.50)
[000080] ------------ * STMT void (IL 0x000... ???)
[000077] *--XG+------ | /--* IND int
[000076] -----+------ | | \--* LCL_VAR long V07 tmp6
[000079] -A-XG+------ \--* ASG int
[000078] D----+-N---- \--* LCL_VAR int V08 tmp7
New refCnts for V08: refCnt = 2, refCntWtd = 1.50
New refCnts for V07: refCnt = 6, refCntWtd = 3
[000092] ------------ * STMT void (IL 0x000... ???)
[000088] -----+------ | /--* CNS_INT long 5
[000089] -----+------ | /--* LSH long
[000085] -----+------ | | | /--* CNS_INT long 4
[000086] -----+------ | | \--* DIV long
[000082] -----+------ | | | /--* LCL_VAR long V02 tmp1
[000083] -----+------ | | \--* SUB long
[000081] -----+------ | | \--* LCL_VAR long V07 tmp6
[000091] -A---+------ \--* ASG long
[000090] D----+-N---- \--* LCL_VAR long V09 tmp8
New refCnts for V09: refCnt = 2, refCntWtd = 1.50
New refCnts for V07: refCnt = 7, refCntWtd = 3.50
New refCnts for V02: refCnt = 3, refCntWtd = 5
[000186] ------------ * STMT void (IL 0x000... ???)
[000185] ------------ \--* JTRUE void
( 1, 1) [000184] ------------ | /--* CNS_INT int 0
( 5, 4) [000182] J------N---- \--* LE int
( 3, 2) [000183] ------------ \--* LCL_VAR int V05 tmp4
New refCnts for V05: refCnt = 6, refCntWtd = 5.25
*** marking local variables in block BB06 (weight=2 )
[000106] ------------ * STMT void (IL 0x000... ???)
[000102] -----+------ | /--* CNS_INT int 1
[000103] -----+------ | /--* ADD int
[000101] -----+------ | | \--* HWIntrinsic int TrailingZeroCount
[000100] -----+------ | | \--* LCL_VAR int V08 tmp7
[000105] -A---+------ \--* ASG int
[000104] D----+-N---- \--* LCL_VAR int V10 tmp9
New refCnts for V10: refCnt = 2, refCntWtd = 3
New refCnts for V08: refCnt = 3, refCntWtd = 3.50
[000113] ------------ * STMT void (IL 0x000... ???)
[000109] -----+---U-- | /--* CAST long <- ulong <- uint
[000108] -----+------ | | \--* LCL_VAR int V10 tmp9
[000110] -----+------ | /--* ADD long
[000107] -----+------ | | \--* LCL_VAR long V09 tmp8
[000112] -A---+------ \--* ASG long
[000111] D----+-N---- \--* LCL_VAR long V09 tmp8
New refCnts for V09: refCnt = 3, refCntWtd = 3.50
New refCnts for V09: refCnt = 4, refCntWtd = 5.50
New refCnts for V10: refCnt = 3, refCntWtd = 5
[000119] ------------ * STMT void (IL 0x000... ???)
[000115] -----+------ | /--* CNS_INT int -1
[000116] -----+------ | /--* ADD int
[000114] -----+------ | | \--* LCL_VAR int V05 tmp4
[000118] -A---+------ \--* ASG int
[000117] D----+-N---- \--* LCL_VAR int V05 tmp4
New refCnts for V05: refCnt = 7, refCntWtd = 7.25
New refCnts for V05: refCnt = 8, refCntWtd = 9.25
[000127] ------------ * STMT void (IL 0x000... ???)
[000122] -----+------ | /--* CNS_INT int 31
[000123] -----+------ | /--* AND int
[000121] -----+------ | | \--* LCL_VAR int V10 tmp9
[000124] -----+------ | /--* RSZ int
[000120] -----+------ | | \--* LCL_VAR int V08 tmp7
[000126] -A---+------ \--* ASG int
[000125] D----+-N---- \--* LCL_VAR int V08 tmp7
New refCnts for V08: refCnt = 4, refCntWtd = 5.50
New refCnts for V08: refCnt = 5, refCntWtd = 7.50
New refCnts for V10: refCnt = 4, refCntWtd = 7
[000098] ------------ * STMT void (IL 0x000... ???)
[000097] -----+------ \--* JTRUE void
( 1, 1) [000095] ------------ | /--* CNS_INT int 0
( 5, 4) [000096] J------N---- \--* GT int
( 3, 2) [000094] ------------ \--* LCL_VAR int V05 tmp4
New refCnts for V05: refCnt = 9, refCntWtd = 11.25
*** marking local variables in block BB07 (weight=1 )
[000011] ------------ * STMT void (IL ???... ???)
[000010] -----+------ \--* RETURN int
[000131] -----+------ | /--* CNS_INT int -1
[000132] -----+------ \--* ADD int
[000129] C----+------ \--* LCL_VAR int V09 tmp8
New refCnts for V09: refCnt = 5, refCntWtd = 6.50
New refCnts for V00: refCnt = 2, refCntWtd = 2
New refCnts for V00: refCnt = 3, refCntWtd = 3
*************** In optAddCopies()
refCnt table for 'POPCNTButNoBMI2':
V04 tmp3 [ int]: refCnt = 10, refCntWtd = 24.50
V05 tmp4 [ int]: refCnt = 9, refCntWtd = 11.25
V03 tmp2 [ long]: refCnt = 6, refCntWtd = 8.50
V06 tmp5 [ long]: refCnt = 2, refCntWtd = 8
V08 tmp7 [ int]: refCnt = 5, refCntWtd = 7.50
V10 tmp9 [ int]: refCnt = 4, refCntWtd = 7
V09 tmp8 [ long]: refCnt = 5, refCntWtd = 6.50
V00 arg0 [ int]: refCnt = 3, refCntWtd = 3
V02 tmp1 [ long]: refCnt = 3, refCntWtd = 5
V07 tmp6 [ long]: refCnt = 7, refCntWtd = 3.50
V01 OutArgs [lclBlk]: refCnt = 1, refCntWtd = 1
*************** In optOptimizeBools()
*************** In fgDebugCheckBBlist
*************** In fgFindOperOrder()
*************** In fgSetBlockOrder()
fgMarkLoopHead: Checking loop head block BB02: no guaranteed callsite exits, marking method as fully interruptible
fgMarkLoopHead: Checking loop head block BB06: method is already fully interruptible
The biggest BB has 9 tree nodes
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target
BB02 [0002] 2 BB01,BB02 2 [000..001)-> BB02 ( cond ) i Loop Loop0 label target bwd
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target
BB04 [0005] 1 BB03 0.25 [000..001) i
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target
BB06 [0007] 2 BB05,BB06 2 [000..001)-> BB06 ( cond ) i Loop Loop0 label target bwd
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
( 5, 12) [000147] ------------ * STMT void (IL 0x000... ???)
N002 ( 5, 12) [000001] x---G------- | /--* IND long
N001 ( 3, 10) [000176] ------------ | | \--* CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits]
N004 ( 5, 12) [000146] -A--G---R--- \--* ASG long
N003 ( 1, 1) [000145] D------N---- \--* LCL_VAR long V02 tmp1
***** BB01, stmt 2
( 1, 3) [000150] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000003] ------------ | /--* LCL_VAR int V00 arg0
N003 ( 1, 3) [000149] -A------R--- \--* ASG int
N002 ( 1, 1) [000148] D------N---- \--* LCL_VAR int V04 tmp3
***** BB01, stmt 3
( 1, 3) [000154] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000151] ------------ | /--* CNS_INT long 0
N003 ( 1, 3) [000153] -A------R--- \--* ASG long
N002 ( 1, 1) [000152] D------N---- \--* LCL_VAR long V03 tmp2
***** BB01, stmt 4
( 1, 3) [000158] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000155] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000157] -A------R--- \--* ASG int
N002 ( 1, 1) [000156] D------N---- \--* LCL_VAR int V05 tmp4
***** BB01, stmt 5
( 1, 3) [000162] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000159] ------------ | /--* CNS_INT long 0
N003 ( 1, 3) [000161] -A------R--- \--* ASG long
N002 ( 1, 1) [000160] D------N---- \--* LCL_VAR long V07 tmp6
***** BB01, stmt 6
( 1, 3) [000166] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000163] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000165] -A------R--- \--* ASG int
N002 ( 1, 1) [000164] D------N---- \--* LCL_VAR int V08 tmp7
***** BB01, stmt 7
( 1, 3) [000170] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000167] ------------ | /--* CNS_INT long 0
N003 ( 1, 3) [000169] -A------R--- \--* ASG long
N002 ( 1, 1) [000168] D------N---- \--* LCL_VAR long V09 tmp8
***** BB01, stmt 8
( 1, 3) [000174] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000171] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000173] -A------R--- \--* ASG int
N002 ( 1, 1) [000172] D------N---- \--* LCL_VAR int V10 tmp9
***** BB01, stmt 9
( 1, 3) [000016] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000013] ------------ | /--* LCL_VAR long V02 tmp1
N003 ( 1, 3) [000015] -A------R--- \--* ASG long
N002 ( 1, 1) [000014] D------N---- \--* LCL_VAR long V03 tmp2
***** BB01, stmt 10
( 1, 3) [000020] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000017] ------------ | /--* LCL_VAR int V04 tmp3
N003 ( 1, 3) [000019] -A------R--- \--* ASG int
N002 ( 1, 1) [000018] D------N---- \--* LCL_VAR int V05 tmp4
***** BB01, stmt 11
( 5, 5) [000181] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000180] ------------ \--* JTRUE void
N002 ( 1, 1) [000179] ------------ | /--* CNS_INT int 0
N003 ( 3, 3) [000177] J------N---- \--* LE int
N001 ( 1, 1) [000178] ------------ \--* LCL_VAR int V04 tmp3
------------ BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
***** BB02, stmt 12
( 1, 3) [000031] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000028] ------------ | /--* LCL_VAR int V04 tmp3
N003 ( 1, 3) [000030] -A------R--- \--* ASG int
N002 ( 1, 1) [000029] D------N---- \--* LCL_VAR int V05 tmp4
***** BB02, stmt 13
( 1, 3) [000041] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000033] ------------ | /--* LCL_VAR long V03 tmp2
N003 ( 1, 3) [000040] -A------R--- \--* ASG long
N002 ( 1, 1) [000039] D------N---- \--* LCL_VAR long V06 tmp5
***** BB02, stmt 14
( 3, 3) [000044] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000036] ------------ | /--* CNS_INT long 8
N003 ( 3, 3) [000037] ------------ | /--* ADD long
N001 ( 1, 1) [000034] ------------ | | \--* LCL_VAR long V03 tmp2
N005 ( 3, 3) [000043] -A------R--- \--* ASG long
N004 ( 1, 1) [000038] D------N---- \--* LCL_VAR long V03 tmp2
***** BB02, stmt 15
( 7, 7) [000052] ------------ * STMT void (IL 0x000... ???)
N005 ( 5, 5) [000047] ---XG------- | /--* CAST int <- long
N004 ( 4, 3) [000046] ---XG------- | | \--* HWIntrinsic long PopCount
N003 ( 3, 2) [000045] *--XG------- | | \--* IND long
N002 ( 1, 1) [000042] ------------ | | \--* LCL_VAR long V06 tmp5
N006 ( 7, 7) [000048] ---XG------- | /--* SUB int
N001 ( 1, 1) [000032] ------------ | | \--* LCL_VAR int V04 tmp3
N008 ( 7, 7) [000051] -A-XG---R--- \--* ASG int
N007 ( 1, 1) [000050] D------N---- \--* LCL_VAR int V04 tmp3
***** BB02, stmt 16
( 5, 5) [000026] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000025] ------------ \--* JTRUE void
N002 ( 1, 1) [000023] ------------ | /--* CNS_INT int 0
N003 ( 3, 3) [000024] J------N---- \--* GT int
N001 ( 1, 1) [000022] ------------ \--* LCL_VAR int V04 tmp3
------------ BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 17
( 3, 3) [000060] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000056] ------------ | /--* CNS_INT long -8
N003 ( 3, 3) [000057] ------------ | /--* ADD long
N001 ( 1, 1) [000054] ------------ | | \--* LCL_VAR long V03 tmp2
N005 ( 3, 3) [000059] -A------R--- \--* ASG long
N004 ( 1, 1) [000058] D------N---- \--* LCL_VAR long V07 tmp6
***** BB03, stmt 18
( 6, 5) [000069] ------------ * STMT void (IL 0x000... ???)
N004 ( 4, 3) [000064] ---XG------- | /--* HWIntrinsic int PopCount
N003 ( 3, 2) [000063] *--XG------- | | \--* IND int
N002 ( 1, 1) [000062] ------------ | | \--* LCL_VAR long V07 tmp6
N005 ( 6, 5) [000065] ---XG------- | /--* SUB int
N001 ( 1, 1) [000061] ------------ | | \--* LCL_VAR int V05 tmp4
N007 ( 6, 5) [000068] -A-XG---R--- \--* ASG int
N006 ( 1, 1) [000067] D------N---- \--* LCL_VAR int V04 tmp3
***** BB03, stmt 19
( 5, 5) [000074] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000073] ------------ \--* JTRUE void
N002 ( 1, 1) [000071] ------------ | /--* CNS_INT int 0
N003 ( 3, 3) [000072] J------N---- \--* LE int
N001 ( 1, 1) [000070] ------------ \--* LCL_VAR int V04 tmp3
------------ BB04 [000..001), preds={BB03} succs={BB05}
***** BB04, stmt 20
( 1, 3) [000137] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000134] ------------ | /--* LCL_VAR int V04 tmp3
N003 ( 1, 3) [000136] -A------R--- \--* ASG int
N002 ( 1, 1) [000135] D------N---- \--* LCL_VAR int V05 tmp4
***** BB04, stmt 21
( 3, 3) [000144] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000140] ------------ | /--* CNS_INT long 4
N003 ( 3, 3) [000141] ------------ | /--* ADD long
N001 ( 1, 1) [000138] ------------ | | \--* LCL_VAR long V07 tmp6
N005 ( 3, 3) [000143] -A------R--- \--* ASG long
N004 ( 1, 1) [000142] D------N---- \--* LCL_VAR long V07 tmp6
------------ BB05 [000..001) -> BB07 (cond), preds={BB03,BB04} succs={BB06,BB07}
***** BB05, stmt 22
( 3, 3) [000080] ------------ * STMT void (IL 0x000... ???)
N002 ( 3, 2) [000077] *--XG------- | /--* IND int
N001 ( 1, 1) [000076] ------------ | | \--* LCL_VAR long V07 tmp6
N004 ( 3, 3) [000079] -A-XG---R--- \--* ASG int
N003 ( 1, 1) [000078] D------N---- \--* LCL_VAR int V08 tmp7
***** BB05, stmt 23
( 26, 9) [000092] ------------ * STMT void (IL 0x000... ???)
N006 ( 1, 1) [000088] ------------ | /--* CNS_INT long 5
N007 ( 26, 9) [000089] ------------ | /--* LSH long
N004 ( 1, 1) [000085] ------------ | | | /--* CNS_INT long 4
N005 ( 24, 7) [000086] ------------ | | \--* DIV long
N002 ( 1, 1) [000082] ------------ | | | /--* LCL_VAR long V02 tmp1
N003 ( 3, 3) [000083] ------------ | | \--* SUB long
N001 ( 1, 1) [000081] ------------ | | \--* LCL_VAR long V07 tmp6
N009 ( 26, 9) [000091] -A------R--- \--* ASG long
N008 ( 1, 1) [000090] D------N---- \--* LCL_VAR long V09 tmp8
***** BB05, stmt 24
( 5, 5) [000186] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000185] ------------ \--* JTRUE void
N002 ( 1, 1) [000184] ------------ | /--* CNS_INT int 0
N003 ( 3, 3) [000182] J------N---- \--* LE int
N001 ( 1, 1) [000183] ------------ \--* LCL_VAR int V05 tmp4
------------ BB06 [000..001) -> BB06 (cond), preds={BB05,BB06} succs={BB07,BB06}
***** BB06, stmt 25
( 4, 4) [000106] ------------ * STMT void (IL 0x000... ???)
N003 ( 1, 1) [000102] ------------ | /--* CNS_INT int 1
N004 ( 4, 4) [000103] ------------ | /--* ADD int
N002 ( 2, 2) [000101] ------------ | | \--* HWIntrinsic int TrailingZeroCount
N001 ( 1, 1) [000100] ------------ | | \--* LCL_VAR int V08 tmp7
N006 ( 4, 4) [000105] -A------R--- \--* ASG int
N005 ( 1, 1) [000104] D------N---- \--* LCL_VAR int V10 tmp9
***** BB06, stmt 26
( 4, 5) [000113] ------------ * STMT void (IL 0x000... ???)
N003 ( 2, 3) [000109] ---------U-- | /--* CAST long <- ulong <- uint
N002 ( 1, 1) [000108] ------------ | | \--* LCL_VAR int V10 tmp9
N004 ( 4, 5) [000110] ------------ | /--* ADD long
N001 ( 1, 1) [000107] ------------ | | \--* LCL_VAR long V09 tmp8
N006 ( 4, 5) [000112] -A------R--- \--* ASG long
N005 ( 1, 1) [000111] D------N---- \--* LCL_VAR long V09 tmp8
***** BB06, stmt 27
( 3, 3) [000119] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000115] ------------ | /--* CNS_INT int -1
N003 ( 3, 3) [000116] ------------ | /--* ADD int
N001 ( 1, 1) [000114] ------------ | | \--* LCL_VAR int V05 tmp4
N005 ( 3, 3) [000118] -A------R--- \--* ASG int
N004 ( 1, 1) [000117] D------N---- \--* LCL_VAR int V05 tmp4
***** BB06, stmt 28
( 8, 5) [000127] ------------ * STMT void (IL 0x000... ???)
N003 ( 1, 1) [000122] ------------ | /--* CNS_INT int 31
N004 ( 3, 3) [000123] ------------ | /--* AND int
N002 ( 1, 1) [000121] ------------ | | \--* LCL_VAR int V10 tmp9
N005 ( 8, 5) [000124] ------------ | /--* RSZ int
N001 ( 1, 1) [000120] ------------ | | \--* LCL_VAR int V08 tmp7
N007 ( 8, 5) [000126] -A------R--- \--* ASG int
N006 ( 1, 1) [000125] D------N---- \--* LCL_VAR int V08 tmp7
***** BB06, stmt 29
( 5, 5) [000098] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000097] ------------ \--* JTRUE void
N002 ( 1, 1) [000095] ------------ | /--* CNS_INT int 0
N003 ( 3, 3) [000096] J------N---- \--* GT int
N001 ( 1, 1) [000094] ------------ \--* LCL_VAR int V05 tmp4
------------ BB07 [000..001) (return), preds={BB05,BB06} succs={}
***** BB07, stmt 30
( 4, 4) [000011] ------------ * STMT void (IL ???... ???)
N004 ( 4, 4) [000010] ------------ \--* RETURN int
N002 ( 1, 1) [000131] ------------ | /--* CNS_INT int -1
N003 ( 3, 3) [000132] ------------ \--* ADD int
N001 ( 1, 1) [000129] C----------- \--* LCL_VAR int V09 tmp8
-------------------------------------------------------------------------------------------------------------------
*************** In SsaBuilder::Build()
[SsaBuilder] Max block count is 8.
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target
BB02 [0002] 2 BB01,BB02 2 [000..001)-> BB02 ( cond ) i Loop Loop0 label target bwd
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target
BB04 [0005] 1 BB03 0.25 [000..001) i
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target
BB06 [0007] 2 BB05,BB06 2 [000..001)-> BB06 ( cond ) i Loop Loop0 label target bwd
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
[SsaBuilder] Topologically sorted the graph.
[SsaBuilder::ComputeImmediateDom]
*************** In SsaBuilder::ComputeDominators(BasicBlock** postOrder, int count, ...)
*************** In SsaBuilder::InsertPhiFunctions()
*************** In fgLocalVarLiveness()
*************** In fgPerBlockLocalVarLiveness()
BB01 USE(1)={ V00 } + ByrefExposed + GcHeap
DEF(8)={V04 V05 V03 V08 V10 V09 V02 V07}
BB02 USE(2)={V04 V03 } + ByrefExposed + GcHeap
DEF(4)={V04 V05 V03 V06}
BB03 USE(2)={ V05 V03 } + ByrefExposed + GcHeap
DEF(2)={V04 V07}
BB04 USE(2)={V04 V07}
DEF(2)={ V05 V07}
BB05 USE(3)={V05 V02 V07} + ByrefExposed + GcHeap
DEF(2)={ V08 V09 }
BB06 USE(3)={V05 V08 V09}
DEF(4)={V05 V08 V10 V09}
BB07 USE(1)={V09}
DEF(0)={ }
** Memory liveness computed, GcHeap states and ByrefExposed states match
*************** In fgInterBlockLocalVarLiveness()
BB liveness after fgLiveVarAnalysis():
BB01 IN (1)={ V00 } + ByrefExposed + GcHeap
OUT(4)={V04 V05 V03 V02} + ByrefExposed + GcHeap
BB02 IN (3)={V04 V03 V02} + ByrefExposed + GcHeap
OUT(4)={V04 V05 V03 V02} + ByrefExposed + GcHeap
BB03 IN (3)={ V05 V03 V02 } + ByrefExposed + GcHeap
OUT(4)={V04 V05 V02 V07} + ByrefExposed + GcHeap
BB04 IN (3)={V04 V02 V07} + ByrefExposed + GcHeap
OUT(3)={ V05 V02 V07} + ByrefExposed + GcHeap
BB05 IN (3)={V05 V02 V07} + ByrefExposed + GcHeap
OUT(3)={V05 V08 V09 }
BB06 IN (3)={V05 V08 V09}
OUT(3)={V05 V08 V09}
BB07 IN (1)={V09}
OUT(0)={ }
top level assign
removing stmt with no side effects
Removing statement [000174] in BB01 as useless:
( 1, 3) [000174] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000171] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000173] -A------R--- \--* ASG int
N002 ( 1, 1) [000172] D------N---- \--* LCL_VAR int V10 tmp9
New refCnts for V10: refCnt = 3, refCntWtd = 6
top level assign
removing stmt with no side effects
Removing statement [000170] in BB01 as useless:
( 1, 3) [000170] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000167] ------------ | /--* CNS_INT long 0
N003 ( 1, 3) [000169] -A------R--- \--* ASG long
N002 ( 1, 1) [000168] D------N---- \--* LCL_VAR long V09 tmp8
New refCnts for V09: refCnt = 4, refCntWtd = 5.50
top level assign
removing stmt with no side effects
Removing statement [000166] in BB01 as useless:
( 1, 3) [000166] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000163] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000165] -A------R--- \--* ASG int
N002 ( 1, 1) [000164] D------N---- \--* LCL_VAR int V08 tmp7
New refCnts for V08: refCnt = 4, refCntWtd = 6.50
top level assign
removing stmt with no side effects
Removing statement [000162] in BB01 as useless:
( 1, 3) [000162] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000159] ------------ | /--* CNS_INT long 0
N003 ( 1, 3) [000161] -A------R--- \--* ASG long
N002 ( 1, 1) [000160] D------N---- \--* LCL_VAR long V07 tmp6
New refCnts for V07: refCnt = 6, refCntWtd = 2.50
top level assign
removing stmt with no side effects
Removing statement [000158] in BB01 as useless:
( 1, 3) [000158] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000155] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000157] -A------R--- \--* ASG int
N002 ( 1, 1) [000156] D------N---- \--* LCL_VAR int V05 tmp4
New refCnts for V05: refCnt = 8, refCntWtd = 10.25
top level assign
removing stmt with no side effects
Removing statement [000154] in BB01 as useless:
( 1, 3) [000154] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000151] ------------ | /--* CNS_INT long 0
N003 ( 1, 3) [000153] -A------R--- \--* ASG long
N002 ( 1, 1) [000152] D------N---- \--* LCL_VAR long V03 tmp2
New refCnts for V03: refCnt = 5, refCntWtd = 7.50
In fgLocalVarLiveness, setting lvaSortAgain back to false (set during dead-code removal)
Inserting phi functions:
Inserting phi definition for V05 at start of BB06.
Inserting phi definition for V08 at start of BB06.
Inserting phi definition for V09 at start of BB07.
Inserting phi definition for V09 at start of BB06.
Inserting phi definition for V05 at start of BB05.
Inserting phi definition for V07 at start of BB05.
Inserting phi definition for V04 at start of BB02.
Inserting phi definition for V05 at start of BB03.
Inserting phi definition for V03 at start of BB03.
Inserting phi definition for V03 at start of BB02.
*************** In SsaBuilder::RenameVariables()
After fgSsaBuild:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target
BB02 [0002] 2 BB01,BB02 2 [000..001)-> BB02 ( cond ) i Loop Loop0 label target bwd
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target
BB04 [0005] 1 BB03 0.25 [000..001) i
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target
BB06 [0007] 2 BB05,BB06 2 [000..001)-> BB06 ( cond ) i Loop Loop0 label target bwd
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
( 5, 12) [000147] ------------ * STMT void (IL 0x000... ???)
N002 ( 5, 12) [000001] x---G------- | /--* IND long
N001 ( 3, 10) [000176] ------------ | | \--* CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits]
N004 ( 5, 12) [000146] -A--G---R--- \--* ASG long
N003 ( 1, 1) [000145] D------N---- \--* LCL_VAR long V02 tmp1 d:2
***** BB01, stmt 2
( 1, 3) [000150] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000003] ------------ | /--* LCL_VAR int V00 arg0 u:2 (last use)
N003 ( 1, 3) [000149] -A------R--- \--* ASG int
N002 ( 1, 1) [000148] D------N---- \--* LCL_VAR int V04 tmp3 d:2
***** BB01, stmt 3
( 1, 3) [000016] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000013] ------------ | /--* LCL_VAR long V02 tmp1 u:2
N003 ( 1, 3) [000015] -A------R--- \--* ASG long
N002 ( 1, 1) [000014] D------N---- \--* LCL_VAR long V03 tmp2 d:2
***** BB01, stmt 4
( 1, 3) [000020] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000017] ------------ | /--* LCL_VAR int V04 tmp3 u:2
N003 ( 1, 3) [000019] -A------R--- \--* ASG int
N002 ( 1, 1) [000018] D------N---- \--* LCL_VAR int V05 tmp4 d:2
***** BB01, stmt 5
( 5, 5) [000181] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000180] ------------ \--* JTRUE void
N002 ( 1, 1) [000179] ------------ | /--* CNS_INT int 0
N003 ( 3, 3) [000177] J------N---- \--* LE int
N001 ( 1, 1) [000178] ------------ \--* LCL_VAR int V04 tmp3 u:2
------------ BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
***** BB02, stmt 6
( 2, 3) [000226] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000224] ------------ | * PHI long
N001 ( 0, 0) [000239] ------------ | /--* PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000227] ------------ | \--* PHI_ARG long V03 tmp2 u:2
N007 ( 2, 3) [000225] -A------R--- \--* ASG long
N006 ( 1, 1) [000223] D------N---- \--* LCL_VAR long V03 tmp2 d:3
***** BB02, stmt 7
( 2, 3) [000214] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000212] ------------ | * PHI int
N001 ( 0, 0) [000241] ------------ | /--* PHI_ARG int V04 tmp3 u:4
N002 ( 0, 0) [000229] ------------ | \--* PHI_ARG int V04 tmp3 u:2
N007 ( 2, 3) [000213] -A------R--- \--* ASG int
N006 ( 1, 1) [000211] D------N---- \--* LCL_VAR int V04 tmp3 d:3
***** BB02, stmt 8
( 1, 3) [000031] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000028] ------------ | /--* LCL_VAR int V04 tmp3 u:3
N003 ( 1, 3) [000030] -A------R--- \--* ASG int
N002 ( 1, 1) [000029] D------N---- \--* LCL_VAR int V05 tmp4 d:3
***** BB02, stmt 9
( 1, 3) [000041] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000033] ------------ | /--* LCL_VAR long V03 tmp2 u:3
N003 ( 1, 3) [000040] -A------R--- \--* ASG long
N002 ( 1, 1) [000039] D------N---- \--* LCL_VAR long V06 tmp5 d:2
***** BB02, stmt 10
( 3, 3) [000044] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000036] ------------ | /--* CNS_INT long 8
N003 ( 3, 3) [000037] ------------ | /--* ADD long
N001 ( 1, 1) [000034] ------------ | | \--* LCL_VAR long V03 tmp2 u:3 (last use)
N005 ( 3, 3) [000043] -A------R--- \--* ASG long
N004 ( 1, 1) [000038] D------N---- \--* LCL_VAR long V03 tmp2 d:4
***** BB02, stmt 11
( 7, 7) [000052] ------------ * STMT void (IL 0x000... ???)
N005 ( 5, 5) [000047] ---XG------- | /--* CAST int <- long
N004 ( 4, 3) [000046] ---XG------- | | \--* HWIntrinsic long PopCount
N003 ( 3, 2) [000045] *--XG------- | | \--* IND long
N002 ( 1, 1) [000042] ------------ | | \--* LCL_VAR long V06 tmp5 u:2 (last use)
N006 ( 7, 7) [000048] ---XG------- | /--* SUB int
N001 ( 1, 1) [000032] ------------ | | \--* LCL_VAR int V04 tmp3 u:3 (last use)
N008 ( 7, 7) [000051] -A-XG---R--- \--* ASG int
N007 ( 1, 1) [000050] D------N---- \--* LCL_VAR int V04 tmp3 d:4
***** BB02, stmt 12
( 5, 5) [000026] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000025] ------------ \--* JTRUE void
N002 ( 1, 1) [000023] ------------ | /--* CNS_INT int 0
N003 ( 3, 3) [000024] J------N---- \--* GT int
N001 ( 1, 1) [000022] ------------ \--* LCL_VAR int V04 tmp3 u:4
------------ BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 13
( 2, 3) [000222] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000220] ------------ | * PHI long
N001 ( 0, 0) [000235] ------------ | /--* PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000231] ------------ | \--* PHI_ARG long V03 tmp2 u:2
N007 ( 2, 3) [000221] -A------R--- \--* ASG long
N006 ( 1, 1) [000219] D------N---- \--* LCL_VAR long V03 tmp2 d:5
***** BB03, stmt 14
( 2, 3) [000218] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000216] ------------ | * PHI int
N001 ( 0, 0) [000237] ------------ | /--* PHI_ARG int V05 tmp4 u:3
N002 ( 0, 0) [000233] ------------ | \--* PHI_ARG int V05 tmp4 u:2
N007 ( 2, 3) [000217] -A------R--- \--* ASG int
N006 ( 1, 1) [000215] D------N---- \--* LCL_VAR int V05 tmp4 d:4
***** BB03, stmt 15
( 3, 3) [000060] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000056] ------------ | /--* CNS_INT long -8
N003 ( 3, 3) [000057] ------------ | /--* ADD long
N001 ( 1, 1) [000054] ------------ | | \--* LCL_VAR long V03 tmp2 u:5 (last use)
N005 ( 3, 3) [000059] -A------R--- \--* ASG long
N004 ( 1, 1) [000058] D------N---- \--* LCL_VAR long V07 tmp6 d:2
***** BB03, stmt 16
( 6, 5) [000069] ------------ * STMT void (IL 0x000... ???)
N004 ( 4, 3) [000064] ---XG------- | /--* HWIntrinsic int PopCount
N003 ( 3, 2) [000063] *--XG------- | | \--* IND int
N002 ( 1, 1) [000062] ------------ | | \--* LCL_VAR long V07 tmp6 u:2
N005 ( 6, 5) [000065] ---XG------- | /--* SUB int
N001 ( 1, 1) [000061] ------------ | | \--* LCL_VAR int V05 tmp4 u:4
N007 ( 6, 5) [000068] -A-XG---R--- \--* ASG int
N006 ( 1, 1) [000067] D------N---- \--* LCL_VAR int V04 tmp3 d:5
***** BB03, stmt 17
( 5, 5) [000074] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000073] ------------ \--* JTRUE void
N002 ( 1, 1) [000071] ------------ | /--* CNS_INT int 0
N003 ( 3, 3) [000072] J------N---- \--* LE int
N001 ( 1, 1) [000070] ------------ \--* LCL_VAR int V04 tmp3 u:5
------------ BB04 [000..001), preds={BB03} succs={BB05}
***** BB04, stmt 18
( 1, 3) [000137] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000134] ------------ | /--* LCL_VAR int V04 tmp3 u:5 (last use)
N003 ( 1, 3) [000136] -A------R--- \--* ASG int
N002 ( 1, 1) [000135] D------N---- \--* LCL_VAR int V05 tmp4 d:5
***** BB04, stmt 19
( 3, 3) [000144] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000140] ------------ | /--* CNS_INT long 4
N003 ( 3, 3) [000141] ------------ | /--* ADD long
N001 ( 1, 1) [000138] ------------ | | \--* LCL_VAR long V07 tmp6 u:2 (last use)
N005 ( 3, 3) [000143] -A------R--- \--* ASG long
N004 ( 1, 1) [000142] D------N---- \--* LCL_VAR long V07 tmp6 d:3
------------ BB05 [000..001) -> BB07 (cond), preds={BB03,BB04} succs={BB06,BB07}
***** BB05, stmt 20
( 6, 5) [000210] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000208] ------------ | * PHI long
N001 ( 0, 0) [000247] ------------ | /--* PHI_ARG long V07 tmp6 u:3
N002 ( 0, 0) [000243] ------------ | \--* PHI_ARG long V07 tmp6 u:2
N007 ( 6, 5) [000209] -A------R--- \--* ASG long
N006 ( 3, 2) [000207] D------N---- \--* LCL_VAR long V07 tmp6 d:4
***** BB05, stmt 21
( 2, 3) [000206] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000204] ------------ | * PHI int
N001 ( 0, 0) [000249] ------------ | /--* PHI_ARG int V05 tmp4 u:5
N002 ( 0, 0) [000245] ------------ | \--* PHI_ARG int V05 tmp4 u:4
N007 ( 2, 3) [000205] -A------R--- \--* ASG int
N006 ( 1, 1) [000203] D------N---- \--* LCL_VAR int V05 tmp4 d:6
***** BB05, stmt 22
( 3, 3) [000080] ------------ * STMT void (IL 0x000... ???)
N002 ( 3, 2) [000077] *--XG------- | /--* IND int
N001 ( 1, 1) [000076] ------------ | | \--* LCL_VAR long V07 tmp6 u:4
N004 ( 3, 3) [000079] -A-XG---R--- \--* ASG int
N003 ( 1, 1) [000078] D------N---- \--* LCL_VAR int V08 tmp7 d:2
***** BB05, stmt 23
( 26, 9) [000092] ------------ * STMT void (IL 0x000... ???)
N006 ( 1, 1) [000088] ------------ | /--* CNS_INT long 5
N007 ( 26, 9) [000089] ------------ | /--* LSH long
N004 ( 1, 1) [000085] ------------ | | | /--* CNS_INT long 4
N005 ( 24, 7) [000086] ------------ | | \--* DIV long
N002 ( 1, 1) [000082] ------------ | | | /--* LCL_VAR long V02 tmp1 u:2 (last use)
N003 ( 3, 3) [000083] ------------ | | \--* SUB long
N001 ( 1, 1) [000081] ------------ | | \--* LCL_VAR long V07 tmp6 u:4 (last use)
N009 ( 26, 9) [000091] -A------R--- \--* ASG long
N008 ( 1, 1) [000090] D------N---- \--* LCL_VAR long V09 tmp8 d:2
***** BB05, stmt 24
( 5, 5) [000186] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000185] ------------ \--* JTRUE void
N002 ( 1, 1) [000184] ------------ | /--* CNS_INT int 0
N003 ( 3, 3) [000182] J------N---- \--* LE int
N001 ( 1, 1) [000183] ------------ \--* LCL_VAR int V05 tmp4 u:6
------------ BB06 [000..001) -> BB06 (cond), preds={BB05,BB06} succs={BB07,BB06}
***** BB06, stmt 25
( 2, 3) [000202] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000200] ------------ | * PHI long
N001 ( 0, 0) [000261] ------------ | /--* PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000251] ------------ | \--* PHI_ARG long V09 tmp8 u:2
N007 ( 2, 3) [000201] -A------R--- \--* ASG long
N006 ( 1, 1) [000199] D------N---- \--* LCL_VAR long V09 tmp8 d:3
***** BB06, stmt 26
( 2, 3) [000194] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000192] ------------ | * PHI int
N001 ( 0, 0) [000263] ------------ | /--* PHI_ARG int V08 tmp7 u:4
N002 ( 0, 0) [000253] ------------ | \--* PHI_ARG int V08 tmp7 u:2
N007 ( 2, 3) [000193] -A------R--- \--* ASG int
N006 ( 1, 1) [000191] D------N---- \--* LCL_VAR int V08 tmp7 d:3
***** BB06, stmt 27
( 2, 3) [000190] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000188] ------------ | * PHI int
N001 ( 0, 0) [000265] ------------ | /--* PHI_ARG int V05 tmp4 u:8
N002 ( 0, 0) [000255] ------------ | \--* PHI_ARG int V05 tmp4 u:6
N007 ( 2, 3) [000189] -A------R--- \--* ASG int
N006 ( 1, 1) [000187] D------N---- \--* LCL_VAR int V05 tmp4 d:7
***** BB06, stmt 28
( 4, 4) [000106] ------------ * STMT void (IL 0x000... ???)
N003 ( 1, 1) [000102] ------------ | /--* CNS_INT int 1
N004 ( 4, 4) [000103] ------------ | /--* ADD int
N002 ( 2, 2) [000101] ------------ | | \--* HWIntrinsic int TrailingZeroCount
N001 ( 1, 1) [000100] ------------ | | \--* LCL_VAR int V08 tmp7 u:3
N006 ( 4, 4) [000105] -A------R--- \--* ASG int
N005 ( 1, 1) [000104] D------N---- \--* LCL_VAR int V10 tmp9 d:2
***** BB06, stmt 29
( 4, 5) [000113] ------------ * STMT void (IL 0x000... ???)
N003 ( 2, 3) [000109] ---------U-- | /--* CAST long <- ulong <- uint
N002 ( 1, 1) [000108] ------------ | | \--* LCL_VAR int V10 tmp9 u:2
N004 ( 4, 5) [000110] ------------ | /--* ADD long
N001 ( 1, 1) [000107] ------------ | | \--* LCL_VAR long V09 tmp8 u:3 (last use)
N006 ( 4, 5) [000112] -A------R--- \--* ASG long
N005 ( 1, 1) [000111] D------N---- \--* LCL_VAR long V09 tmp8 d:4
***** BB06, stmt 30
( 3, 3) [000119] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000115] ------------ | /--* CNS_INT int -1
N003 ( 3, 3) [000116] ------------ | /--* ADD int
N001 ( 1, 1) [000114] ------------ | | \--* LCL_VAR int V05 tmp4 u:7 (last use)
N005 ( 3, 3) [000118] -A------R--- \--* ASG int
N004 ( 1, 1) [000117] D------N---- \--* LCL_VAR int V05 tmp4 d:8
***** BB06, stmt 31
( 8, 5) [000127] ------------ * STMT void (IL 0x000... ???)
N003 ( 1, 1) [000122] ------------ | /--* CNS_INT int 31
N004 ( 3, 3) [000123] ------------ | /--* AND int
N002 ( 1, 1) [000121] ------------ | | \--* LCL_VAR int V10 tmp9 u:2 (last use)
N005 ( 8, 5) [000124] ------------ | /--* RSZ int
N001 ( 1, 1) [000120] ------------ | | \--* LCL_VAR int V08 tmp7 u:3 (last use)
N007 ( 8, 5) [000126] -A------R--- \--* ASG int
N006 ( 1, 1) [000125] D------N---- \--* LCL_VAR int V08 tmp7 d:4
***** BB06, stmt 32
( 5, 5) [000098] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000097] ------------ \--* JTRUE void
N002 ( 1, 1) [000095] ------------ | /--* CNS_INT int 0
N003 ( 3, 3) [000096] J------N---- \--* GT int
N001 ( 1, 1) [000094] ------------ \--* LCL_VAR int V05 tmp4 u:8
------------ BB07 [000..001) (return), preds={BB05,BB06} succs={}
***** BB07, stmt 33
( 2, 3) [000198] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000196] ------------ | * PHI long
N001 ( 0, 0) [000259] ------------ | /--* PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000257] ------------ | \--* PHI_ARG long V09 tmp8 u:2
N007 ( 2, 3) [000197] -A------R--- \--* ASG long
N006 ( 1, 1) [000195] D------N---- \--* LCL_VAR long V09 tmp8 d:5
***** BB07, stmt 34
( 4, 4) [000011] ------------ * STMT void (IL ???... ???)
N004 ( 4, 4) [000010] ------------ \--* RETURN int
N002 ( 1, 1) [000131] ------------ | /--* CNS_INT int -1
N003 ( 3, 3) [000132] ------------ \--* ADD int
N001 ( 1, 1) [000129] C----------- \--* LCL_VAR int V09 tmp8 u:5 (last use)
-------------------------------------------------------------------------------------------------------------------
*************** In optEarlyProp()
*************** In fgValueNumber()
Memory Initial Value in BB01 is: $c0
The SSA definition for ByrefExposed (#2) at start of BB01 is $c0 {InitVal($41)}
The SSA definition for GcHeap (#2) at start of BB01 is $c0 {InitVal($41)}
***** BB01, stmt 1 (before)
N002 ( 5, 12) [000001] x---G------- /--* IND long
N001 ( 3, 10) [000176] ------------ | \--* CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits]
N004 ( 5, 12) [000146] -A--G---R--- * ASG long
N003 ( 1, 1) [000145] D------N---- \--* LCL_VAR long V02 tmp1 d:2
N001 [000176] CNS_INT(h) 0x7fe9bcfc4498 static Fseq[_bits] => $100 {Hnd const: 0x00007FE9BCFC4498}
N002 [000001] IND => <l:$140 {ByrefExposedLoad($42, $100, $c0)}, c:$180 {180}>
N003 [000145] LCL_VAR V02 tmp1 d:2 => <l:$140 {ByrefExposedLoad($42, $100, $c0)}, c:$180 {180}>
N004 [000146] ASG => <l:$140 {ByrefExposedLoad($42, $100, $c0)}, c:$180 {180}>
***** BB01, stmt 1 (after)
N002 ( 5, 12) [000001] x---G------- /--* IND long <l:$140, c:$180>
N001 ( 3, 10) [000176] ------------ | \--* CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits] $100
N004 ( 5, 12) [000146] -A--G---R--- * ASG long <l:$140, c:$180>
N003 ( 1, 1) [000145] D------N---- \--* LCL_VAR long V02 tmp1 d:2 <l:$140, c:$180>
---------
***** BB01, stmt 2 (before)
N001 ( 1, 1) [000003] ------------ /--* LCL_VAR int V00 arg0 u:2 (last use)
N003 ( 1, 3) [000149] -A------R--- * ASG int
N002 ( 1, 1) [000148] D------N---- \--* LCL_VAR int V04 tmp3 d:2
N001 [000003] LCL_VAR V00 arg0 u:2 (last use) => $80 {InitVal($40)}
N002 [000148] LCL_VAR V04 tmp3 d:2 => $80 {InitVal($40)}
N003 [000149] ASG => $80 {InitVal($40)}
***** BB01, stmt 2 (after)
N001 ( 1, 1) [000003] ------------ /--* LCL_VAR int V00 arg0 u:2 (last use) $80
N003 ( 1, 3) [000149] -A------R--- * ASG int $80
N002 ( 1, 1) [000148] D------N---- \--* LCL_VAR int V04 tmp3 d:2 $80
---------
***** BB01, stmt 3 (before)
N001 ( 1, 1) [000013] ------------ /--* LCL_VAR long V02 tmp1 u:2
N003 ( 1, 3) [000015] -A------R--- * ASG long
N002 ( 1, 1) [000014] D------N---- \--* LCL_VAR long V03 tmp2 d:2
N001 [000013] LCL_VAR V02 tmp1 u:2 => <l:$140 {ByrefExposedLoad($42, $100, $c0)}, c:$180 {180}>
N002 [000014] LCL_VAR V03 tmp2 d:2 => <l:$140 {ByrefExposedLoad($42, $100, $c0)}, c:$180 {180}>
N003 [000015] ASG => <l:$140 {ByrefExposedLoad($42, $100, $c0)}, c:$180 {180}>
***** BB01, stmt 3 (after)
N001 ( 1, 1) [000013] ------------ /--* LCL_VAR long V02 tmp1 u:2 <l:$140, c:$180>
N003 ( 1, 3) [000015] -A------R--- * ASG long <l:$140, c:$180>
N002 ( 1, 1) [000014] D------N---- \--* LCL_VAR long V03 tmp2 d:2 <l:$140, c:$180>
---------
***** BB01, stmt 4 (before)
N001 ( 1, 1) [000017] ------------ /--* LCL_VAR int V04 tmp3 u:2
N003 ( 1, 3) [000019] -A------R--- * ASG int
N002 ( 1, 1) [000018] D------N---- \--* LCL_VAR int V05 tmp4 d:2
N001 [000017] LCL_VAR V04 tmp3 u:2 => $80 {InitVal($40)}
N002 [000018] LCL_VAR V05 tmp4 d:2 => $80 {InitVal($40)}
N003 [000019] ASG => $80 {InitVal($40)}
***** BB01, stmt 4 (after)
N001 ( 1, 1) [000017] ------------ /--* LCL_VAR int V04 tmp3 u:2 $80
N003 ( 1, 3) [000019] -A------R--- * ASG int $80
N002 ( 1, 1) [000018] D------N---- \--* LCL_VAR int V05 tmp4 d:2 $80
---------
***** BB01, stmt 5 (before)
N004 ( 5, 5) [000180] ------------ * JTRUE void
N002 ( 1, 1) [000179] ------------ | /--* CNS_INT int 0
N003 ( 3, 3) [000177] J------N---- \--* LE int
N001 ( 1, 1) [000178] ------------ \--* LCL_VAR int V04 tmp3 u:2
N001 [000178] LCL_VAR V04 tmp3 u:2 => $80 {InitVal($40)}
N002 [000179] CNS_INT 0 => $40 {IntCns 0}
N003 [000177] LE => $200 {LE($80, $40)}
***** BB01, stmt 5 (after)
N004 ( 5, 5) [000180] ------------ * JTRUE void
N002 ( 1, 1) [000179] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000177] J------N---- \--* LE int $200
N001 ( 1, 1) [000178] ------------ \--* LCL_VAR int V04 tmp3 u:2 $80
finish(BB01).
Succ(BB02).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
Was necessary.
Succ(BB03).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
Was necessary.
SSA definition: set VN of local 3/3 to $141 {PhiDef($3, $3, $240)}.
SSA definition: set VN of local 4/3 to $280 {PhiDef($4, $3, $240)}.
The SSA definition for ByrefExposed (#2) at start of BB02 is $c0 {InitVal($41)}
The SSA definition for GcHeap (#2) at start of BB02 is $c0 {InitVal($41)}
***** BB02, stmt 6 (before)
N001 ( 1, 1) [000028] ------------ /--* LCL_VAR int V04 tmp3 u:3
N003 ( 1, 3) [000030] -A------R--- * ASG int
N002 ( 1, 1) [000029] D------N---- \--* LCL_VAR int V05 tmp4 d:3
N001 [000028] LCL_VAR V04 tmp3 u:3 => $280 {PhiDef($4, $3, $240)}
N002 [000029] LCL_VAR V05 tmp4 d:3 => $280 {PhiDef($4, $3, $240)}
N003 [000030] ASG => $280 {PhiDef($4, $3, $240)}
***** BB02, stmt 6 (after)
N001 ( 1, 1) [000028] ------------ /--* LCL_VAR int V04 tmp3 u:3 $280
N003 ( 1, 3) [000030] -A------R--- * ASG int $280
N002 ( 1, 1) [000029] D------N---- \--* LCL_VAR int V05 tmp4 d:3 $280
---------
***** BB02, stmt 7 (before)
N001 ( 1, 1) [000033] ------------ /--* LCL_VAR long V03 tmp2 u:3
N003 ( 1, 3) [000040] -A------R--- * ASG long
N002 ( 1, 1) [000039] D------N---- \--* LCL_VAR long V06 tmp5 d:2
N001 [000033] LCL_VAR V03 tmp2 u:3 => $141 {PhiDef($3, $3, $240)}
N002 [000039] LCL_VAR V06 tmp5 d:2 => $141 {PhiDef($3, $3, $240)}
N003 [000040] ASG => $141 {PhiDef($3, $3, $240)}
***** BB02, stmt 7 (after)
N001 ( 1, 1) [000033] ------------ /--* LCL_VAR long V03 tmp2 u:3 $141
N003 ( 1, 3) [000040] -A------R--- * ASG long $141
N002 ( 1, 1) [000039] D------N---- \--* LCL_VAR long V06 tmp5 d:2 $141
---------
***** BB02, stmt 8 (before)
N002 ( 1, 1) [000036] ------------ /--* CNS_INT long 8
N003 ( 3, 3) [000037] ------------ /--* ADD long
N001 ( 1, 1) [000034] ------------ | \--* LCL_VAR long V03 tmp2 u:3 (last use)
N005 ( 3, 3) [000043] -A------R--- * ASG long
N004 ( 1, 1) [000038] D------N---- \--* LCL_VAR long V03 tmp2 d:4
N001 [000034] LCL_VAR V03 tmp2 u:3 (last use) => $141 {PhiDef($3, $3, $240)}
N002 [000036] CNS_INT 8 => $340 {LngCns: 8}
N003 [000037] ADD => $241 {ADD($141, $340)}
N004 [000038] LCL_VAR V03 tmp2 d:4 => $241 {ADD($141, $340)}
N005 [000043] ASG => $241 {ADD($141, $340)}
***** BB02, stmt 8 (after)
N002 ( 1, 1) [000036] ------------ /--* CNS_INT long 8 $340
N003 ( 3, 3) [000037] ------------ /--* ADD long $241
N001 ( 1, 1) [000034] ------------ | \--* LCL_VAR long V03 tmp2 u:3 (last use) $141
N005 ( 3, 3) [000043] -A------R--- * ASG long $241
N004 ( 1, 1) [000038] D------N---- \--* LCL_VAR long V03 tmp2 d:4 $241
---------
***** BB02, stmt 9 (before)
N005 ( 5, 5) [000047] ---XG------- /--* CAST int <- long
N004 ( 4, 3) [000046] ---XG------- | \--* HWIntrinsic long PopCount
N003 ( 3, 2) [000045] *--XG------- | \--* IND long
N002 ( 1, 1) [000042] ------------ | \--* LCL_VAR long V06 tmp5 u:2 (last use)
N006 ( 7, 7) [000048] ---XG------- /--* SUB int
N001 ( 1, 1) [000032] ------------ | \--* LCL_VAR int V04 tmp3 u:3 (last use)
N008 ( 7, 7) [000051] -A-XG---R--- * ASG int
N007 ( 1, 1) [000050] D------N---- \--* LCL_VAR int V04 tmp3 d:4
N001 [000032] LCL_VAR V04 tmp3 u:3 (last use) => $280 {PhiDef($4, $3, $240)}
N002 [000042] LCL_VAR V06 tmp5 u:2 (last use) => $141 {PhiDef($3, $3, $240)}
N003 [000045] IND => <l:$142 {ByrefExposedLoad($42, $141, $c0)}, c:$302 {302}>
VNForCastOper(int) is $45
N005 [000047] CAST => $201 {Cast($380, $45)}
N006 [000048] SUB => $202 {SUB($280, $201)}
N007 [000050] LCL_VAR V04 tmp3 d:4 => $202 {SUB($280, $201)}
N008 [000051] ASG => $202 {SUB($280, $201)}
***** BB02, stmt 9 (after)
N005 ( 5, 5) [000047] ---XG------- /--* CAST int <- long $201
N004 ( 4, 3) [000046] ---XG------- | \--* HWIntrinsic long PopCount $380
N003 ( 3, 2) [000045] *--XG------- | \--* IND long <l:$142, c:$302>
N002 ( 1, 1) [000042] ------------ | \--* LCL_VAR long V06 tmp5 u:2 (last use) $141
N006 ( 7, 7) [000048] ---XG------- /--* SUB int $202
N001 ( 1, 1) [000032] ------------ | \--* LCL_VAR int V04 tmp3 u:3 (last use) $280
N008 ( 7, 7) [000051] -A-XG---R--- * ASG int $202
N007 ( 1, 1) [000050] D------N---- \--* LCL_VAR int V04 tmp3 d:4 $202
---------
***** BB02, stmt 10 (before)
N004 ( 5, 5) [000025] ------------ * JTRUE void
N002 ( 1, 1) [000023] ------------ | /--* CNS_INT int 0
N003 ( 3, 3) [000024] J------N---- \--* GT int
N001 ( 1, 1) [000022] ------------ \--* LCL_VAR int V04 tmp3 u:4
N001 [000022] LCL_VAR V04 tmp3 u:4 => $202 {SUB($280, $201)}
N002 [000023] CNS_INT 0 => $40 {IntCns 0}
N003 [000024] GT => $203 {GT($202, $40)}
***** BB02, stmt 10 (after)
N004 ( 5, 5) [000025] ------------ * JTRUE void
N002 ( 1, 1) [000023] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000024] J------N---- \--* GT int $203
N001 ( 1, 1) [000022] ------------ \--* LCL_VAR int V04 tmp3 u:4 $202
finish(BB02).
Succ(BB03).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB02).
SSA definition: set VN of local 3/5 to $143 {PhiDef($3, $5, $240)}.
SSA definition: set VN of local 5/4 to $281 {PhiDef($5, $4, $204)}.
The SSA definition for ByrefExposed (#2) at start of BB03 is $c0 {InitVal($41)}
The SSA definition for GcHeap (#2) at start of BB03 is $c0 {InitVal($41)}
***** BB03, stmt 13 (before)
N002 ( 1, 1) [000056] ------------ /--* CNS_INT long -8
N003 ( 3, 3) [000057] ------------ /--* ADD long
N001 ( 1, 1) [000054] ------------ | \--* LCL_VAR long V03 tmp2 u:5 (last use)
N005 ( 3, 3) [000059] -A------R--- * ASG long
N004 ( 1, 1) [000058] D------N---- \--* LCL_VAR long V07 tmp6 d:2
N001 [000054] LCL_VAR V03 tmp2 u:5 (last use) => $143 {PhiDef($3, $5, $240)}
N002 [000056] CNS_INT -8 => $342 {LngCns: -8}
N003 [000057] ADD => $242 {ADD($143, $342)}
N004 [000058] LCL_VAR V07 tmp6 d:2 => $242 {ADD($143, $342)}
N005 [000059] ASG => $242 {ADD($143, $342)}
***** BB03, stmt 13 (after)
N002 ( 1, 1) [000056] ------------ /--* CNS_INT long -8 $342
N003 ( 3, 3) [000057] ------------ /--* ADD long $242
N001 ( 1, 1) [000054] ------------ | \--* LCL_VAR long V03 tmp2 u:5 (last use) $143
N005 ( 3, 3) [000059] -A------R--- * ASG long $242
N004 ( 1, 1) [000058] D------N---- \--* LCL_VAR long V07 tmp6 d:2 $242
---------
***** BB03, stmt 14 (before)
N004 ( 4, 3) [000064] ---XG------- /--* HWIntrinsic int PopCount
N003 ( 3, 2) [000063] *--XG------- | \--* IND int
N002 ( 1, 1) [000062] ------------ | \--* LCL_VAR long V07 tmp6 u:2
N005 ( 6, 5) [000065] ---XG------- /--* SUB int
N001 ( 1, 1) [000061] ------------ | \--* LCL_VAR int V05 tmp4 u:4
N007 ( 6, 5) [000068] -A-XG---R--- * ASG int
N006 ( 1, 1) [000067] D------N---- \--* LCL_VAR int V04 tmp3 d:5
N001 [000061] LCL_VAR V05 tmp4 u:4 => $281 {PhiDef($5, $4, $204)}
N002 [000062] LCL_VAR V07 tmp6 u:2 => $242 {ADD($143, $342)}
N003 [000063] IND => <l:$282 {ByrefExposedLoad($47, $242, $c0)}, c:$1c2 {1c2}>
N005 [000065] SUB => $205 {SUB($281, $3c0)}
N006 [000067] LCL_VAR V04 tmp3 d:5 => $205 {SUB($281, $3c0)}
N007 [000068] ASG => $205 {SUB($281, $3c0)}
***** BB03, stmt 14 (after)
N004 ( 4, 3) [000064] ---XG------- /--* HWIntrinsic int PopCount $3c0
N003 ( 3, 2) [000063] *--XG------- | \--* IND int <l:$282, c:$1c2>
N002 ( 1, 1) [000062] ------------ | \--* LCL_VAR long V07 tmp6 u:2 $242
N005 ( 6, 5) [000065] ---XG------- /--* SUB int $205
N001 ( 1, 1) [000061] ------------ | \--* LCL_VAR int V05 tmp4 u:4 $281
N007 ( 6, 5) [000068] -A-XG---R--- * ASG int $205
N006 ( 1, 1) [000067] D------N---- \--* LCL_VAR int V04 tmp3 d:5 $205
---------
***** BB03, stmt 15 (before)
N004 ( 5, 5) [000073] ------------ * JTRUE void
N002 ( 1, 1) [000071] ------------ | /--* CNS_INT int 0
N003 ( 3, 3) [000072] J------N---- \--* LE int
N001 ( 1, 1) [000070] ------------ \--* LCL_VAR int V04 tmp3 u:5
N001 [000070] LCL_VAR V04 tmp3 u:5 => $205 {SUB($281, $3c0)}
N002 [000071] CNS_INT 0 => $40 {IntCns 0}
N003 [000072] LE => $206 {LE($205, $40)}
***** BB03, stmt 15 (after)
N004 ( 5, 5) [000073] ------------ * JTRUE void
N002 ( 1, 1) [000071] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000072] J------N---- \--* LE int $206
N001 ( 1, 1) [000070] ------------ \--* LCL_VAR int V04 tmp3 u:5 $205
finish(BB03).
Succ(BB04).
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 BB04 is $c0 {InitVal($41)}
The SSA definition for GcHeap (#2) at start of BB04 is $c0 {InitVal($41)}
***** BB04, stmt 18 (before)
N001 ( 1, 1) [000134] ------------ /--* LCL_VAR int V04 tmp3 u:5 (last use)
N003 ( 1, 3) [000136] -A------R--- * ASG int
N002 ( 1, 1) [000135] D------N---- \--* LCL_VAR int V05 tmp4 d:5
N001 [000134] LCL_VAR V04 tmp3 u:5 (last use) => $205 {SUB($281, $3c0)}
N002 [000135] LCL_VAR V05 tmp4 d:5 => $205 {SUB($281, $3c0)}
N003 [000136] ASG => $205 {SUB($281, $3c0)}
***** BB04, stmt 18 (after)
N001 ( 1, 1) [000134] ------------ /--* LCL_VAR int V04 tmp3 u:5 (last use) $205
N003 ( 1, 3) [000136] -A------R--- * ASG int $205
N002 ( 1, 1) [000135] D------N---- \--* LCL_VAR int V05 tmp4 d:5 $205
---------
***** BB04, stmt 19 (before)
N002 ( 1, 1) [000140] ------------ /--* CNS_INT long 4
N003 ( 3, 3) [000141] ------------ /--* ADD long
N001 ( 1, 1) [000138] ------------ | \--* LCL_VAR long V07 tmp6 u:2 (last use)
N005 ( 3, 3) [000143] -A------R--- * ASG long
N004 ( 1, 1) [000142] D------N---- \--* LCL_VAR long V07 tmp6 d:3
N001 [000138] LCL_VAR V07 tmp6 u:2 (last use) => $242 {ADD($143, $342)}
N002 [000140] CNS_INT 4 => $343 {LngCns: 4}
N003 [000141] ADD => $243 {ADD($242, $343)}
N004 [000142] LCL_VAR V07 tmp6 d:3 => $243 {ADD($242, $343)}
N005 [000143] ASG => $243 {ADD($242, $343)}
***** BB04, stmt 19 (after)
N002 ( 1, 1) [000140] ------------ /--* CNS_INT long 4 $343
N003 ( 3, 3) [000141] ------------ /--* ADD long $243
N001 ( 1, 1) [000138] ------------ | \--* LCL_VAR long V07 tmp6 u:2 (last use) $242
N005 ( 3, 3) [000143] -A------R--- * ASG long $243
N004 ( 1, 1) [000142] D------N---- \--* LCL_VAR long V07 tmp6 d:3 $243
finish(BB04).
Succ(BB05).
Not yet completed.
All preds complete, adding to allDone.
SSA definition: set VN of local 7/4 to $144 {PhiDef($7, $4, $204)}.
SSA definition: set VN of local 5/6 to $283 {PhiDef($5, $6, $207)}.
The SSA definition for ByrefExposed (#2) at start of BB05 is $c0 {InitVal($41)}
The SSA definition for GcHeap (#2) at start of BB05 is $c0 {InitVal($41)}
***** BB05, stmt 20 (before)
N002 ( 3, 2) [000077] *--XG------- /--* IND int
N001 ( 1, 1) [000076] ------------ | \--* LCL_VAR long V07 tmp6 u:4
N004 ( 3, 3) [000079] -A-XG---R--- * ASG int
N003 ( 1, 1) [000078] D------N---- \--* LCL_VAR int V08 tmp7 d:2
N001 [000076] LCL_VAR V07 tmp6 u:4 => $144 {PhiDef($7, $4, $204)}
N002 [000077] IND => <l:$284 {ByrefExposedLoad($47, $144, $c0)}, c:$1c5 {1c5}>
N003 [000078] LCL_VAR V08 tmp7 d:2 => <l:$284 {ByrefExposedLoad($47, $144, $c0)}, c:$1c5 {1c5}>
N004 [000079] ASG => <l:$284 {ByrefExposedLoad($47, $144, $c0)}, c:$1c5 {1c5}>
***** BB05, stmt 20 (after)
N002 ( 3, 2) [000077] *--XG------- /--* IND int <l:$284, c:$1c5>
N001 ( 1, 1) [000076] ------------ | \--* LCL_VAR long V07 tmp6 u:4 $144
N004 ( 3, 3) [000079] -A-XG---R--- * ASG int <l:$284, c:$1c5>
N003 ( 1, 1) [000078] D------N---- \--* LCL_VAR int V08 tmp7 d:2 <l:$284, c:$1c5>
---------
***** BB05, stmt 21 (before)
N006 ( 1, 1) [000088] ------------ /--* CNS_INT long 5
N007 ( 26, 9) [000089] ------------ /--* LSH long
N004 ( 1, 1) [000085] ------------ | | /--* CNS_INT long 4
N005 ( 24, 7) [000086] ------------ | \--* DIV long
N002 ( 1, 1) [000082] ------------ | | /--* LCL_VAR long V02 tmp1 u:2 (last use)
N003 ( 3, 3) [000083] ------------ | \--* SUB long
N001 ( 1, 1) [000081] ------------ | \--* LCL_VAR long V07 tmp6 u:4 (last use)
N009 ( 26, 9) [000091] -A------R--- * ASG long
N008 ( 1, 1) [000090] D------N---- \--* LCL_VAR long V09 tmp8 d:2
N001 [000081] LCL_VAR V07 tmp6 u:4 (last use) => $144 {PhiDef($7, $4, $204)}
N002 [000082] LCL_VAR V02 tmp1 u:2 (last use) => <l:$140 {ByrefExposedLoad($42, $100, $c0)}, c:$180 {180}>
N003 [000083] SUB => <l:$244 {SUB($144, $140)}, c:$245 {SUB($144, $180)}>
N004 [000085] CNS_INT 4 => $343 {LngCns: 4}
N005 [000086] DIV => <l:$246 {DIV($244, $343)}, c:$247 {DIV($245, $343)}>
N006 [000088] CNS_INT 5 => $345 {LngCns: 5}
N007 [000089] LSH => <l:$248 {LSH($246, $345)}, c:$249 {LSH($247, $345)}>
N008 [000090] LCL_VAR V09 tmp8 d:2 => <l:$248 {LSH($246, $345)}, c:$249 {LSH($247, $345)}>
N009 [000091] ASG => <l:$248 {LSH($246, $345)}, c:$249 {LSH($247, $345)}>
***** BB05, stmt 21 (after)
N006 ( 1, 1) [000088] ------------ /--* CNS_INT long 5 $345
N007 ( 26, 9) [000089] ------------ /--* LSH long <l:$248, c:$249>
N004 ( 1, 1) [000085] ------------ | | /--* CNS_INT long 4 $343
N005 ( 24, 7) [000086] ------------ | \--* DIV long <l:$246, c:$247>
N002 ( 1, 1) [000082] ------------ | | /--* LCL_VAR long V02 tmp1 u:2 (last use) <l:$140, c:$180>
N003 ( 3, 3) [000083] ------------ | \--* SUB long <l:$244, c:$245>
N001 ( 1, 1) [000081] ------------ | \--* LCL_VAR long V07 tmp6 u:4 (last use) $144
N009 ( 26, 9) [000091] -A------R--- * ASG long <l:$248, c:$249>
N008 ( 1, 1) [000090] D------N---- \--* LCL_VAR long V09 tmp8 d:2 <l:$248, c:$249>
---------
***** BB05, stmt 22 (before)
N004 ( 5, 5) [000185] ------------ * JTRUE void
N002 ( 1, 1) [000184] ------------ | /--* CNS_INT int 0
N003 ( 3, 3) [000182] J------N---- \--* LE int
N001 ( 1, 1) [000183] ------------ \--* LCL_VAR int V05 tmp4 u:6
N001 [000183] LCL_VAR V05 tmp4 u:6 => $283 {PhiDef($5, $6, $207)}
N002 [000184] CNS_INT 0 => $40 {IntCns 0}
N003 [000182] LE => $208 {LE($283, $40)}
***** BB05, stmt 22 (after)
N004 ( 5, 5) [000185] ------------ * JTRUE void
N002 ( 1, 1) [000184] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000182] J------N---- \--* LE int $208
N001 ( 1, 1) [000183] ------------ \--* LCL_VAR int V05 tmp4 u:6 $283
finish(BB05).
Succ(BB06).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
Was necessary.
Succ(BB07).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
Was necessary.
SSA definition: set VN of local 9/3 to $145 {PhiDef($9, $3, $240)}.
SSA definition: set VN of local 8/3 to $285 {PhiDef($8, $3, $240)}.
SSA definition: set VN of local 5/7 to $286 {PhiDef($5, $7, $209)}.
The SSA definition for ByrefExposed (#2) at start of BB06 is $c0 {InitVal($41)}
The SSA definition for GcHeap (#2) at start of BB06 is $c0 {InitVal($41)}
***** BB06, stmt 25 (before)
N003 ( 1, 1) [000102] ------------ /--* CNS_INT int 1
N004 ( 4, 4) [000103] ------------ /--* ADD int
N002 ( 2, 2) [000101] ------------ | \--* HWIntrinsic int TrailingZeroCount
N001 ( 1, 1) [000100] ------------ | \--* LCL_VAR int V08 tmp7 u:3
N006 ( 4, 4) [000105] -A------R--- * ASG int
N005 ( 1, 1) [000104] D------N---- \--* LCL_VAR int V10 tmp9 d:2
N001 [000100] LCL_VAR V08 tmp7 u:3 => $285 {PhiDef($8, $3, $240)}
N003 [000102] CNS_INT 1 => $4b {IntCns 1}
N004 [000103] ADD => $20a {ADD($4b, $400)}
N005 [000104] LCL_VAR V10 tmp9 d:2 => $20a {ADD($4b, $400)}
N006 [000105] ASG => $20a {ADD($4b, $400)}
***** BB06, stmt 25 (after)
N003 ( 1, 1) [000102] ------------ /--* CNS_INT int 1 $4b
N004 ( 4, 4) [000103] ------------ /--* ADD int $20a
N002 ( 2, 2) [000101] ------------ | \--* HWIntrinsic int TrailingZeroCount $400
N001 ( 1, 1) [000100] ------------ | \--* LCL_VAR int V08 tmp7 u:3 $285
N006 ( 4, 4) [000105] -A------R--- * ASG int $20a
N005 ( 1, 1) [000104] D------N---- \--* LCL_VAR int V10 tmp9 d:2 $20a
---------
***** BB06, stmt 26 (before)
N003 ( 2, 3) [000109] ---------U-- /--* CAST long <- ulong <- uint
N002 ( 1, 1) [000108] ------------ | \--* LCL_VAR int V10 tmp9 u:2
N004 ( 4, 5) [000110] ------------ /--* ADD long
N001 ( 1, 1) [000107] ------------ | \--* LCL_VAR long V09 tmp8 u:3 (last use)
N006 ( 4, 5) [000112] -A------R--- * ASG long
N005 ( 1, 1) [000111] D------N---- \--* LCL_VAR long V09 tmp8 d:4
N001 [000107] LCL_VAR V09 tmp8 u:3 (last use) => $145 {PhiDef($9, $3, $240)}
N002 [000108] LCL_VAR V10 tmp9 u:2 => $20a {ADD($4b, $400)}
VNForCastOper(ulong, unsignedSrc) is $4c
N003 [000109] CAST => $24a {Cast($20a, $4c)}
N004 [000110] ADD => $24b {ADD($145, $24a)}
N005 [000111] LCL_VAR V09 tmp8 d:4 => $24b {ADD($145, $24a)}
N006 [000112] ASG => $24b {ADD($145, $24a)}
***** BB06, stmt 26 (after)
N003 ( 2, 3) [000109] ---------U-- /--* CAST long <- ulong <- uint $24a
N002 ( 1, 1) [000108] ------------ | \--* LCL_VAR int V10 tmp9 u:2 $20a
N004 ( 4, 5) [000110] ------------ /--* ADD long $24b
N001 ( 1, 1) [000107] ------------ | \--* LCL_VAR long V09 tmp8 u:3 (last use) $145
N006 ( 4, 5) [000112] -A------R--- * ASG long $24b
N005 ( 1, 1) [000111] D------N---- \--* LCL_VAR long V09 tmp8 d:4 $24b
---------
***** BB06, stmt 27 (before)
N002 ( 1, 1) [000115] ------------ /--* CNS_INT int -1
N003 ( 3, 3) [000116] ------------ /--* ADD int
N001 ( 1, 1) [000114] ------------ | \--* LCL_VAR int V05 tmp4 u:7 (last use)
N005 ( 3, 3) [000118] -A------R--- * ASG int
N004 ( 1, 1) [000117] D------N---- \--* LCL_VAR int V05 tmp4 d:8
N001 [000114] LCL_VAR V05 tmp4 u:7 (last use) => $286 {PhiDef($5, $7, $209)}
N002 [000115] CNS_INT -1 => $41 {IntCns -1}
N003 [000116] ADD => $20b {ADD($41, $286)}
N004 [000117] LCL_VAR V05 tmp4 d:8 => $20b {ADD($41, $286)}
N005 [000118] ASG => $20b {ADD($41, $286)}
***** BB06, stmt 27 (after)
N002 ( 1, 1) [000115] ------------ /--* CNS_INT int -1 $41
N003 ( 3, 3) [000116] ------------ /--* ADD int $20b
N001 ( 1, 1) [000114] ------------ | \--* LCL_VAR int V05 tmp4 u:7 (last use) $286
N005 ( 3, 3) [000118] -A------R--- * ASG int $20b
N004 ( 1, 1) [000117] D------N---- \--* LCL_VAR int V05 tmp4 d:8 $20b
---------
***** BB06, stmt 28 (before)
N003 ( 1, 1) [000122] ------------ /--* CNS_INT int 31
N004 ( 3, 3) [000123] ------------ /--* AND int
N002 ( 1, 1) [000121] ------------ | \--* LCL_VAR int V10 tmp9 u:2 (last use)
N005 ( 8, 5) [000124] ------------ /--* RSZ int
N001 ( 1, 1) [000120] ------------ | \--* LCL_VAR int V08 tmp7 u:3 (last use)
N007 ( 8, 5) [000126] -A------R--- * ASG int
N006 ( 1, 1) [000125] D------N---- \--* LCL_VAR int V08 tmp7 d:4
N001 [000120] LCL_VAR V08 tmp7 u:3 (last use) => $285 {PhiDef($8, $3, $240)}
N002 [000121] LCL_VAR V10 tmp9 u:2 (last use) => $20a {ADD($4b, $400)}
N003 [000122] CNS_INT 31 => $4d {IntCns 31}
N004 [000123] AND => $20c {AND($4d, $20a)}
N005 [000124] RSZ => $20d {RSZ($285, $20c)}
N006 [000125] LCL_VAR V08 tmp7 d:4 => $20d {RSZ($285, $20c)}
N007 [000126] ASG => $20d {RSZ($285, $20c)}
***** BB06, stmt 28 (after)
N003 ( 1, 1) [000122] ------------ /--* CNS_INT int 31 $4d
N004 ( 3, 3) [000123] ------------ /--* AND int $20c
N002 ( 1, 1) [000121] ------------ | \--* LCL_VAR int V10 tmp9 u:2 (last use) $20a
N005 ( 8, 5) [000124] ------------ /--* RSZ int $20d
N001 ( 1, 1) [000120] ------------ | \--* LCL_VAR int V08 tmp7 u:3 (last use) $285
N007 ( 8, 5) [000126] -A------R--- * ASG int $20d
N006 ( 1, 1) [000125] D------N---- \--* LCL_VAR int V08 tmp7 d:4 $20d
---------
***** BB06, stmt 29 (before)
N004 ( 5, 5) [000097] ------------ * JTRUE void
N002 ( 1, 1) [000095] ------------ | /--* CNS_INT int 0
N003 ( 3, 3) [000096] J------N---- \--* GT int
N001 ( 1, 1) [000094] ------------ \--* LCL_VAR int V05 tmp4 u:8
N001 [000094] LCL_VAR V05 tmp4 u:8 => $20b {ADD($41, $286)}
N002 [000095] CNS_INT 0 => $40 {IntCns 0}
N003 [000096] GT => $20e {GT($20b, $40)}
***** BB06, stmt 29 (after)
N004 ( 5, 5) [000097] ------------ * JTRUE void
N002 ( 1, 1) [000095] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000096] J------N---- \--* GT int $20e
N001 ( 1, 1) [000094] ------------ \--* LCL_VAR int V05 tmp4 u:8 $20b
finish(BB06).
Succ(BB07).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB06).
SSA definition: set VN of local 9/5 to $146 {PhiDef($9, $5, $240)}.
The SSA definition for ByrefExposed (#2) at start of BB07 is $c0 {InitVal($41)}
The SSA definition for GcHeap (#2) at start of BB07 is $c0 {InitVal($41)}
***** BB07, stmt 33 (before)
N004 ( 4, 4) [000010] ------------ * RETURN int
N002 ( 1, 1) [000131] ------------ | /--* CNS_INT int -1
N003 ( 3, 3) [000132] ------------ \--* ADD int
N001 ( 1, 1) [000129] C----------- \--* LCL_VAR int V09 tmp8 u:5 (last use)
VNForCastOper(int) is $45
N001 [000129] LCL_VAR V09 tmp8 u:5 (last use) => $20f {Cast($146, $45)}
N002 [000131] CNS_INT -1 => $41 {IntCns -1}
N003 [000132] ADD => $210 {ADD($41, $20f)}
N004 [000010] RETURN => $1c7 {1c7}
***** BB07, stmt 33 (after)
N004 ( 4, 4) [000010] ------------ * RETURN int $1c7
N002 ( 1, 1) [000131] ------------ | /--* CNS_INT int -1 $41
N003 ( 3, 3) [000132] ------------ \--* ADD int $210
N001 ( 1, 1) [000129] C----------- \--* LCL_VAR int V09 tmp8 u:5 (last use) $20f
finish(BB07).
*************** In optHoistLoopCode()
Blocks/Trees before phase
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target
BB02 [0002] 2 BB01,BB02 2 [000..001)-> BB02 ( cond ) i Loop Loop0 label target bwd
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target
BB04 [0005] 1 BB03 0.25 [000..001) i
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target
BB06 [0007] 2 BB05,BB06 2 [000..001)-> BB06 ( cond ) i Loop Loop0 label target bwd
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
( 5, 12) [000147] ------------ * STMT void (IL 0x000... ???)
N002 ( 5, 12) [000001] x---G------- | /--* IND long <l:$140, c:$180>
N001 ( 3, 10) [000176] ------------ | | \--* CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits] $100
N004 ( 5, 12) [000146] -A--G---R--- \--* ASG long <l:$140, c:$180>
N003 ( 1, 1) [000145] D------N---- \--* LCL_VAR long V02 tmp1 d:2 <l:$140, c:$180>
***** BB01, stmt 2
( 1, 3) [000150] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000003] ------------ | /--* LCL_VAR int V00 arg0 u:2 (last use) $80
N003 ( 1, 3) [000149] -A------R--- \--* ASG int $80
N002 ( 1, 1) [000148] D------N---- \--* LCL_VAR int V04 tmp3 d:2 $80
***** BB01, stmt 3
( 1, 3) [000016] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000013] ------------ | /--* LCL_VAR long V02 tmp1 u:2 <l:$140, c:$180>
N003 ( 1, 3) [000015] -A------R--- \--* ASG long <l:$140, c:$180>
N002 ( 1, 1) [000014] D------N---- \--* LCL_VAR long V03 tmp2 d:2 <l:$140, c:$180>
***** BB01, stmt 4
( 1, 3) [000020] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000017] ------------ | /--* LCL_VAR int V04 tmp3 u:2 $80
N003 ( 1, 3) [000019] -A------R--- \--* ASG int $80
N002 ( 1, 1) [000018] D------N---- \--* LCL_VAR int V05 tmp4 d:2 $80
***** BB01, stmt 5
( 5, 5) [000181] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000180] ------------ \--* JTRUE void
N002 ( 1, 1) [000179] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000177] J------N---- \--* LE int $200
N001 ( 1, 1) [000178] ------------ \--* LCL_VAR int V04 tmp3 u:2 $80
------------ BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
***** BB02, stmt 6
( 2, 3) [000226] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000224] ------------ | * PHI long
N001 ( 0, 0) [000239] ------------ | /--* PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000227] ------------ | \--* PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
N007 ( 2, 3) [000225] -A------R--- \--* ASG long
N006 ( 1, 1) [000223] D------N---- \--* LCL_VAR long V03 tmp2 d:3
***** BB02, stmt 7
( 2, 3) [000214] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000212] ------------ | * PHI int
N001 ( 0, 0) [000241] ------------ | /--* PHI_ARG int V04 tmp3 u:4
N002 ( 0, 0) [000229] ------------ | \--* PHI_ARG int V04 tmp3 u:2 $80
N007 ( 2, 3) [000213] -A------R--- \--* ASG int
N006 ( 1, 1) [000211] D------N---- \--* LCL_VAR int V04 tmp3 d:3
***** BB02, stmt 8
( 1, 3) [000031] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000028] ------------ | /--* LCL_VAR int V04 tmp3 u:3 $280
N003 ( 1, 3) [000030] -A------R--- \--* ASG int $280
N002 ( 1, 1) [000029] D------N---- \--* LCL_VAR int V05 tmp4 d:3 $280
***** BB02, stmt 9
( 1, 3) [000041] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000033] ------------ | /--* LCL_VAR long V03 tmp2 u:3 $141
N003 ( 1, 3) [000040] -A------R--- \--* ASG long $141
N002 ( 1, 1) [000039] D------N---- \--* LCL_VAR long V06 tmp5 d:2 $141
***** BB02, stmt 10
( 3, 3) [000044] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000036] ------------ | /--* CNS_INT long 8 $340
N003 ( 3, 3) [000037] ------------ | /--* ADD long $241
N001 ( 1, 1) [000034] ------------ | | \--* LCL_VAR long V03 tmp2 u:3 (last use) $141
N005 ( 3, 3) [000043] -A------R--- \--* ASG long $241
N004 ( 1, 1) [000038] D------N---- \--* LCL_VAR long V03 tmp2 d:4 $241
***** BB02, stmt 11
( 7, 7) [000052] ------------ * STMT void (IL 0x000... ???)
N005 ( 5, 5) [000047] ---XG------- | /--* CAST int <- long $201
N004 ( 4, 3) [000046] ---XG------- | | \--* HWIntrinsic long PopCount $380
N003 ( 3, 2) [000045] *--XG------- | | \--* IND long <l:$142, c:$302>
N002 ( 1, 1) [000042] ------------ | | \--* LCL_VAR long V06 tmp5 u:2 (last use) $141
N006 ( 7, 7) [000048] ---XG------- | /--* SUB int $202
N001 ( 1, 1) [000032] ------------ | | \--* LCL_VAR int V04 tmp3 u:3 (last use) $280
N008 ( 7, 7) [000051] -A-XG---R--- \--* ASG int $202
N007 ( 1, 1) [000050] D------N---- \--* LCL_VAR int V04 tmp3 d:4 $202
***** BB02, stmt 12
( 5, 5) [000026] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000025] ------------ \--* JTRUE void
N002 ( 1, 1) [000023] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000024] J------N---- \--* GT int $203
N001 ( 1, 1) [000022] ------------ \--* LCL_VAR int V04 tmp3 u:4 $202
------------ BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 13
( 2, 3) [000222] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000220] ------------ | * PHI long
N001 ( 0, 0) [000235] ------------ | /--* PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000231] ------------ | \--* PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
N007 ( 2, 3) [000221] -A------R--- \--* ASG long
N006 ( 1, 1) [000219] D------N---- \--* LCL_VAR long V03 tmp2 d:5
***** BB03, stmt 14
( 2, 3) [000218] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000216] ------------ | * PHI int
N001 ( 0, 0) [000237] ------------ | /--* PHI_ARG int V05 tmp4 u:3
N002 ( 0, 0) [000233] ------------ | \--* PHI_ARG int V05 tmp4 u:2 $80
N007 ( 2, 3) [000217] -A------R--- \--* ASG int
N006 ( 1, 1) [000215] D------N---- \--* LCL_VAR int V05 tmp4 d:4
***** BB03, stmt 15
( 3, 3) [000060] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000056] ------------ | /--* CNS_INT long -8 $342
N003 ( 3, 3) [000057] ------------ | /--* ADD long $242
N001 ( 1, 1) [000054] ------------ | | \--* LCL_VAR long V03 tmp2 u:5 (last use) $143
N005 ( 3, 3) [000059] -A------R--- \--* ASG long $242
N004 ( 1, 1) [000058] D------N---- \--* LCL_VAR long V07 tmp6 d:2 $242
***** BB03, stmt 16
( 6, 5) [000069] ------------ * STMT void (IL 0x000... ???)
N004 ( 4, 3) [000064] ---XG------- | /--* HWIntrinsic int PopCount $3c0
N003 ( 3, 2) [000063] *--XG------- | | \--* IND int <l:$282, c:$1c2>
N002 ( 1, 1) [000062] ------------ | | \--* LCL_VAR long V07 tmp6 u:2 $242
N005 ( 6, 5) [000065] ---XG------- | /--* SUB int $205
N001 ( 1, 1) [000061] ------------ | | \--* LCL_VAR int V05 tmp4 u:4 $281
N007 ( 6, 5) [000068] -A-XG---R--- \--* ASG int $205
N006 ( 1, 1) [000067] D------N---- \--* LCL_VAR int V04 tmp3 d:5 $205
***** BB03, stmt 17
( 5, 5) [000074] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000073] ------------ \--* JTRUE void
N002 ( 1, 1) [000071] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000072] J------N---- \--* LE int $206
N001 ( 1, 1) [000070] ------------ \--* LCL_VAR int V04 tmp3 u:5 $205
------------ BB04 [000..001), preds={BB03} succs={BB05}
***** BB04, stmt 18
( 1, 3) [000137] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000134] ------------ | /--* LCL_VAR int V04 tmp3 u:5 (last use) $205
N003 ( 1, 3) [000136] -A------R--- \--* ASG int $205
N002 ( 1, 1) [000135] D------N---- \--* LCL_VAR int V05 tmp4 d:5 $205
***** BB04, stmt 19
( 3, 3) [000144] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000140] ------------ | /--* CNS_INT long 4 $343
N003 ( 3, 3) [000141] ------------ | /--* ADD long $243
N001 ( 1, 1) [000138] ------------ | | \--* LCL_VAR long V07 tmp6 u:2 (last use) $242
N005 ( 3, 3) [000143] -A------R--- \--* ASG long $243
N004 ( 1, 1) [000142] D------N---- \--* LCL_VAR long V07 tmp6 d:3 $243
------------ BB05 [000..001) -> BB07 (cond), preds={BB03,BB04} succs={BB06,BB07}
***** BB05, stmt 20
( 6, 5) [000210] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000208] ------------ | * PHI long
N001 ( 0, 0) [000247] ------------ | /--* PHI_ARG long V07 tmp6 u:3
N002 ( 0, 0) [000243] ------------ | \--* PHI_ARG long V07 tmp6 u:2 $242
N007 ( 6, 5) [000209] -A------R--- \--* ASG long
N006 ( 3, 2) [000207] D------N---- \--* LCL_VAR long V07 tmp6 d:4
***** BB05, stmt 21
( 2, 3) [000206] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000204] ------------ | * PHI int
N001 ( 0, 0) [000249] ------------ | /--* PHI_ARG int V05 tmp4 u:5
N002 ( 0, 0) [000245] ------------ | \--* PHI_ARG int V05 tmp4 u:4 $281
N007 ( 2, 3) [000205] -A------R--- \--* ASG int
N006 ( 1, 1) [000203] D------N---- \--* LCL_VAR int V05 tmp4 d:6
***** BB05, stmt 22
( 3, 3) [000080] ------------ * STMT void (IL 0x000... ???)
N002 ( 3, 2) [000077] *--XG------- | /--* IND int <l:$284, c:$1c5>
N001 ( 1, 1) [000076] ------------ | | \--* LCL_VAR long V07 tmp6 u:4 $144
N004 ( 3, 3) [000079] -A-XG---R--- \--* ASG int <l:$284, c:$1c5>
N003 ( 1, 1) [000078] D------N---- \--* LCL_VAR int V08 tmp7 d:2 <l:$284, c:$1c5>
***** BB05, stmt 23
( 26, 9) [000092] ------------ * STMT void (IL 0x000... ???)
N006 ( 1, 1) [000088] ------------ | /--* CNS_INT long 5 $345
N007 ( 26, 9) [000089] ------------ | /--* LSH long <l:$248, c:$249>
N004 ( 1, 1) [000085] ------------ | | | /--* CNS_INT long 4 $343
N005 ( 24, 7) [000086] ------------ | | \--* DIV long <l:$246, c:$247>
N002 ( 1, 1) [000082] ------------ | | | /--* LCL_VAR long V02 tmp1 u:2 (last use) <l:$140, c:$180>
N003 ( 3, 3) [000083] ------------ | | \--* SUB long <l:$244, c:$245>
N001 ( 1, 1) [000081] ------------ | | \--* LCL_VAR long V07 tmp6 u:4 (last use) $144
N009 ( 26, 9) [000091] -A------R--- \--* ASG long <l:$248, c:$249>
N008 ( 1, 1) [000090] D------N---- \--* LCL_VAR long V09 tmp8 d:2 <l:$248, c:$249>
***** BB05, stmt 24
( 5, 5) [000186] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000185] ------------ \--* JTRUE void
N002 ( 1, 1) [000184] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000182] J------N---- \--* LE int $208
N001 ( 1, 1) [000183] ------------ \--* LCL_VAR int V05 tmp4 u:6 $283
------------ BB06 [000..001) -> BB06 (cond), preds={BB05,BB06} succs={BB07,BB06}
***** BB06, stmt 25
( 2, 3) [000202] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000200] ------------ | * PHI long
N001 ( 0, 0) [000261] ------------ | /--* PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000251] ------------ | \--* PHI_ARG long V09 tmp8 u:2 <l:$248, c:$249>
N007 ( 2, 3) [000201] -A------R--- \--* ASG long
N006 ( 1, 1) [000199] D------N---- \--* LCL_VAR long V09 tmp8 d:3
***** BB06, stmt 26
( 2, 3) [000194] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000192] ------------ | * PHI int
N001 ( 0, 0) [000263] ------------ | /--* PHI_ARG int V08 tmp7 u:4
N002 ( 0, 0) [000253] ------------ | \--* PHI_ARG int V08 tmp7 u:2 <l:$284, c:$1c5>
N007 ( 2, 3) [000193] -A------R--- \--* ASG int
N006 ( 1, 1) [000191] D------N---- \--* LCL_VAR int V08 tmp7 d:3
***** BB06, stmt 27
( 2, 3) [000190] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000188] ------------ | * PHI int
N001 ( 0, 0) [000265] ------------ | /--* PHI_ARG int V05 tmp4 u:8
N002 ( 0, 0) [000255] ------------ | \--* PHI_ARG int V05 tmp4 u:6 $283
N007 ( 2, 3) [000189] -A------R--- \--* ASG int
N006 ( 1, 1) [000187] D------N---- \--* LCL_VAR int V05 tmp4 d:7
***** BB06, stmt 28
( 4, 4) [000106] ------------ * STMT void (IL 0x000... ???)
N003 ( 1, 1) [000102] ------------ | /--* CNS_INT int 1 $4b
N004 ( 4, 4) [000103] ------------ | /--* ADD int $20a
N002 ( 2, 2) [000101] ------------ | | \--* HWIntrinsic int TrailingZeroCount $400
N001 ( 1, 1) [000100] ------------ | | \--* LCL_VAR int V08 tmp7 u:3 $285
N006 ( 4, 4) [000105] -A------R--- \--* ASG int $20a
N005 ( 1, 1) [000104] D------N---- \--* LCL_VAR int V10 tmp9 d:2 $20a
***** BB06, stmt 29
( 4, 5) [000113] ------------ * STMT void (IL 0x000... ???)
N003 ( 2, 3) [000109] ---------U-- | /--* CAST long <- ulong <- uint $24a
N002 ( 1, 1) [000108] ------------ | | \--* LCL_VAR int V10 tmp9 u:2 $20a
N004 ( 4, 5) [000110] ------------ | /--* ADD long $24b
N001 ( 1, 1) [000107] ------------ | | \--* LCL_VAR long V09 tmp8 u:3 (last use) $145
N006 ( 4, 5) [000112] -A------R--- \--* ASG long $24b
N005 ( 1, 1) [000111] D------N---- \--* LCL_VAR long V09 tmp8 d:4 $24b
***** BB06, stmt 30
( 3, 3) [000119] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000115] ------------ | /--* CNS_INT int -1 $41
N003 ( 3, 3) [000116] ------------ | /--* ADD int $20b
N001 ( 1, 1) [000114] ------------ | | \--* LCL_VAR int V05 tmp4 u:7 (last use) $286
N005 ( 3, 3) [000118] -A------R--- \--* ASG int $20b
N004 ( 1, 1) [000117] D------N---- \--* LCL_VAR int V05 tmp4 d:8 $20b
***** BB06, stmt 31
( 8, 5) [000127] ------------ * STMT void (IL 0x000... ???)
N003 ( 1, 1) [000122] ------------ | /--* CNS_INT int 31 $4d
N004 ( 3, 3) [000123] ------------ | /--* AND int $20c
N002 ( 1, 1) [000121] ------------ | | \--* LCL_VAR int V10 tmp9 u:2 (last use) $20a
N005 ( 8, 5) [000124] ------------ | /--* RSZ int $20d
N001 ( 1, 1) [000120] ------------ | | \--* LCL_VAR int V08 tmp7 u:3 (last use) $285
N007 ( 8, 5) [000126] -A------R--- \--* ASG int $20d
N006 ( 1, 1) [000125] D------N---- \--* LCL_VAR int V08 tmp7 d:4 $20d
***** BB06, stmt 32
( 5, 5) [000098] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000097] ------------ \--* JTRUE void
N002 ( 1, 1) [000095] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000096] J------N---- \--* GT int $20e
N001 ( 1, 1) [000094] ------------ \--* LCL_VAR int V05 tmp4 u:8 $20b
------------ BB07 [000..001) (return), preds={BB05,BB06} succs={}
***** BB07, stmt 33
( 2, 3) [000198] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000196] ------------ | * PHI long
N001 ( 0, 0) [000259] ------------ | /--* PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000257] ------------ | \--* PHI_ARG long V09 tmp8 u:2 <l:$248, c:$249>
N007 ( 2, 3) [000197] -A------R--- \--* ASG long
N006 ( 1, 1) [000195] D------N---- \--* LCL_VAR long V09 tmp8 d:5
***** BB07, stmt 34
( 4, 4) [000011] ------------ * STMT void (IL ???... ???)
N004 ( 4, 4) [000010] ------------ \--* RETURN int $1c7
N002 ( 1, 1) [000131] ------------ | /--* CNS_INT int -1 $41
N003 ( 3, 3) [000132] ------------ \--* ADD int $210
N001 ( 1, 1) [000129] C----------- \--* LCL_VAR int V09 tmp8 u:5 (last use) $20f
-------------------------------------------------------------------------------------------------------------------
optHoistLoopCode for loop L00 <BB02..BB02>:
Loop body does not contain a call
USEDEF (4)={V04 V05 V03 V06}
INOUT (4)={V04 V05 V03 V02}
LOOPVARS(3)={V04 V05 V03}
optHoistLoopExprsForBlock BB02 (weight= 2 ) of loop L00 <BB02..BB02>, firstBlock is true
optHoistLoopCode for loop L01 <BB06..BB06>:
Loop body does not contain a call
USEDEF (4)={V05 V08 V10 V09}
INOUT (3)={V05 V08 V09}
LOOPVARS(3)={V05 V08 V09}
optHoistLoopExprsForBlock BB06 (weight= 2 ) of loop L01 <BB06..BB06>, firstBlock is true
*************** In optVnCopyProp()
*************** In SsaBuilder::ComputeDominators(Compiler*, ...)
Copy Assertion for BB01
curSsaName stack: { }
Live vars: {V00} => {V00 V02}
Live vars: {V00 V02} => {V02}
Live vars: {V02} => {V02 V04}
Live vars: {V02 V04} => {V02 V03 V04}
Live vars: {V02 V03 V04} => {V02 V03 V04 V05}
VN based copy assertion for [000178] V04 @00000080 by [000018] V05 @00000080.
N001 ( 1, 1) [000178] ------------ * LCL_VAR int V04 tmp3 u:2 $80
New refCnts for V04: refCnt = 9, refCntWtd = 22.50
New refCnts for V05: refCnt = 9, refCntWtd = 11.25
copy propagated to:
N001 ( 1, 1) [000178] ------------ * LCL_VAR int V05 tmp4 u:2 $80
Copy Assertion for BB03
curSsaName stack: { 0-[000003]:V00 2-[000145]:V02 3-[000014]:V03 4-[000148]:V04 5-[000018]:V05 }
Live vars: {V02 V03 V05} => {V02 V05}
Live vars: {V02 V05} => {V02 V05 V07}
Live vars: {V02 V05 V07} => {V02 V04 V05 V07}
Copy Assertion for BB05
curSsaName stack: { 0-[000003]:V00 2-[000145]:V02 3-[000219]:V03 4-[000067]:V04 5-[000215]:V05 7-[000058]:V07 }
Live vars: {V02 V05 V07} => {V02 V05 V07 V08}
Live vars: {V02 V05 V07 V08} => {V02 V05 V08}
Live vars: {V02 V05 V08} => {V05 V08}
Live vars: {V05 V08} => {V05 V08 V09}
Copy Assertion for BB07
curSsaName stack: { 0-[000003]:V00 2-[000145]:V02 3-[000219]:V03 4-[000067]:V04 5-[000203]:V05 7-[000207]:V07 8-[000078]:V08 9-[000090]:V09 }
Live vars: {V09} => {}
Copy Assertion for BB06
curSsaName stack: { 0-[000003]:V00 2-[000145]:V02 3-[000219]:V03 4-[000067]:V04 5-[000203]:V05 7-[000207]:V07 8-[000078]:V08 9-[000090]:V09 }
Live vars: {V05 V08 V09} => {V05 V08 V09 V10}
Live vars: {V05 V08 V09 V10} => {V05 V08 V10}
Live vars: {V05 V08 V10} => {V05 V08 V09 V10}
Live vars: {V05 V08 V09 V10} => {V08 V09 V10}
Live vars: {V08 V09 V10} => {V05 V08 V09 V10}
Live vars: {V05 V08 V09 V10} => {V05 V09 V10}
Live vars: {V05 V09 V10} => {V05 V09}
Live vars: {V05 V09} => {V05 V08 V09}
Copy Assertion for BB04
curSsaName stack: { 0-[000003]:V00 2-[000145]:V02 3-[000219]:V03 4-[000067]:V04 5-[000215]:V05 7-[000058]:V07 }
Live vars: {V02 V04 V07} => {V02 V07}
Live vars: {V02 V07} => {V02 V05 V07}
Live vars: {V02 V05 V07} => {V02 V05}
Live vars: {V02 V05} => {V02 V05 V07}
Copy Assertion for BB02
curSsaName stack: { 0-[000003]:V00 2-[000145]:V02 3-[000014]:V03 4-[000148]:V04 5-[000018]:V05 }
Live vars: {V02 V03 V04} => {V02 V03 V04 V05}
Live vars: {V02 V03 V04 V05} => {V02 V03 V04 V05 V06}
Live vars: {V02 V03 V04 V05 V06} => {V02 V04 V05 V06}
VN based copy assertion for [000034] V03 @00000141 by [000039] V06 @00000141.
N001 ( 1, 1) [000034] ------------ * LCL_VAR long V03 tmp2 u:3 (last use) $141
New refCnts for V03: refCnt = 4, refCntWtd = 5.50
New refCnts for V06: refCnt = 3, refCntWtd = 12
copy propagated to:
N001 ( 1, 1) [000034] ------------ * LCL_VAR long V06 tmp5 u:2 (last use) $141
Live vars: {V02 V04 V05 V06} => {V02 V03 V04 V05 V06}
Live vars: {V02 V03 V04 V05 V06} => {V02 V03 V05 V06}
VN based copy assertion for [000032] V04 @00000280 by [000029] V05 @00000280.
N001 ( 1, 1) [000032] ------------ * LCL_VAR int V04 tmp3 u:3 (last use) $280
New refCnts for V04: refCnt = 8, refCntWtd = 18.50
New refCnts for V05: refCnt = 10, refCntWtd = 13.25
copy propagated to:
N001 ( 1, 1) [000032] ------------ * LCL_VAR int V05 tmp4 u:3 (last use) $280
Live vars: {V02 V03 V05 V06} => {V02 V03 V05}
Live vars: {V02 V03 V05} => {V02 V03 V04 V05}
*************** In optOptimizeCSEs()
Blocks/Trees at start of optOptimizeCSE phase
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target
BB02 [0002] 2 BB01,BB02 2 [000..001)-> BB02 ( cond ) i Loop Loop0 label target bwd
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target
BB04 [0005] 1 BB03 0.25 [000..001) i
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target
BB06 [0007] 2 BB05,BB06 2 [000..001)-> BB06 ( cond ) i Loop Loop0 label target bwd
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
( 5, 12) [000147] ------------ * STMT void (IL 0x000... ???)
N002 ( 5, 12) [000001] x---G------- | /--* IND long <l:$140, c:$180>
N001 ( 3, 10) [000176] ------------ | | \--* CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits] $100
N004 ( 5, 12) [000146] -A--G---R--- \--* ASG long <l:$140, c:$180>
N003 ( 1, 1) [000145] D------N---- \--* LCL_VAR long V02 tmp1 d:2 <l:$140, c:$180>
***** BB01, stmt 2
( 1, 3) [000150] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000003] ------------ | /--* LCL_VAR int V00 arg0 u:2 (last use) $80
N003 ( 1, 3) [000149] -A------R--- \--* ASG int $80
N002 ( 1, 1) [000148] D------N---- \--* LCL_VAR int V04 tmp3 d:2 $80
***** BB01, stmt 3
( 1, 3) [000016] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000013] ------------ | /--* LCL_VAR long V02 tmp1 u:2 <l:$140, c:$180>
N003 ( 1, 3) [000015] -A------R--- \--* ASG long <l:$140, c:$180>
N002 ( 1, 1) [000014] D------N---- \--* LCL_VAR long V03 tmp2 d:2 <l:$140, c:$180>
***** BB01, stmt 4
( 1, 3) [000020] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000017] ------------ | /--* LCL_VAR int V04 tmp3 u:2 $80
N003 ( 1, 3) [000019] -A------R--- \--* ASG int $80
N002 ( 1, 1) [000018] D------N---- \--* LCL_VAR int V05 tmp4 d:2 $80
***** BB01, stmt 5
( 5, 5) [000181] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000180] ------------ \--* JTRUE void
N002 ( 1, 1) [000179] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000177] J------N---- \--* LE int $200
N001 ( 1, 1) [000178] ------------ \--* LCL_VAR int V05 tmp4 u:2 $80
------------ BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
***** BB02, stmt 6
( 2, 3) [000226] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000224] ------------ | * PHI long
N001 ( 0, 0) [000239] ------------ | /--* PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000227] ------------ | \--* PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
N007 ( 2, 3) [000225] -A------R--- \--* ASG long
N006 ( 1, 1) [000223] D------N---- \--* LCL_VAR long V03 tmp2 d:3
***** BB02, stmt 7
( 2, 3) [000214] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000212] ------------ | * PHI int
N001 ( 0, 0) [000241] ------------ | /--* PHI_ARG int V04 tmp3 u:4
N002 ( 0, 0) [000229] ------------ | \--* PHI_ARG int V04 tmp3 u:2 $80
N007 ( 2, 3) [000213] -A------R--- \--* ASG int
N006 ( 1, 1) [000211] D------N---- \--* LCL_VAR int V04 tmp3 d:3
***** BB02, stmt 8
( 1, 3) [000031] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000028] ------------ | /--* LCL_VAR int V04 tmp3 u:3 $280
N003 ( 1, 3) [000030] -A------R--- \--* ASG int $280
N002 ( 1, 1) [000029] D------N---- \--* LCL_VAR int V05 tmp4 d:3 $280
***** BB02, stmt 9
( 1, 3) [000041] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000033] ------------ | /--* LCL_VAR long V03 tmp2 u:3 $141
N003 ( 1, 3) [000040] -A------R--- \--* ASG long $141
N002 ( 1, 1) [000039] D------N---- \--* LCL_VAR long V06 tmp5 d:2 $141
***** BB02, stmt 10
( 3, 3) [000044] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000036] ------------ | /--* CNS_INT long 8 $340
N003 ( 3, 3) [000037] ------------ | /--* ADD long $241
N001 ( 1, 1) [000034] ------------ | | \--* LCL_VAR long V06 tmp5 u:2 (last use) $141
N005 ( 3, 3) [000043] -A------R--- \--* ASG long $241
N004 ( 1, 1) [000038] D------N---- \--* LCL_VAR long V03 tmp2 d:4 $241
***** BB02, stmt 11
( 7, 7) [000052] ------------ * STMT void (IL 0x000... ???)
N005 ( 5, 5) [000047] ---XG------- | /--* CAST int <- long $201
N004 ( 4, 3) [000046] ---XG------- | | \--* HWIntrinsic long PopCount $380
N003 ( 3, 2) [000045] *--XG------- | | \--* IND long <l:$142, c:$302>
N002 ( 1, 1) [000042] ------------ | | \--* LCL_VAR long V06 tmp5 u:2 (last use) $141
N006 ( 7, 7) [000048] ---XG------- | /--* SUB int $202
N001 ( 1, 1) [000032] ------------ | | \--* LCL_VAR int V05 tmp4 u:3 (last use) $280
N008 ( 7, 7) [000051] -A-XG---R--- \--* ASG int $202
N007 ( 1, 1) [000050] D------N---- \--* LCL_VAR int V04 tmp3 d:4 $202
***** BB02, stmt 12
( 5, 5) [000026] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000025] ------------ \--* JTRUE void
N002 ( 1, 1) [000023] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000024] J------N---- \--* GT int $203
N001 ( 1, 1) [000022] ------------ \--* LCL_VAR int V04 tmp3 u:4 $202
------------ BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 13
( 2, 3) [000222] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000220] ------------ | * PHI long
N001 ( 0, 0) [000235] ------------ | /--* PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000231] ------------ | \--* PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
N007 ( 2, 3) [000221] -A------R--- \--* ASG long
N006 ( 1, 1) [000219] D------N---- \--* LCL_VAR long V03 tmp2 d:5
***** BB03, stmt 14
( 2, 3) [000218] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000216] ------------ | * PHI int
N001 ( 0, 0) [000237] ------------ | /--* PHI_ARG int V05 tmp4 u:3
N002 ( 0, 0) [000233] ------------ | \--* PHI_ARG int V05 tmp4 u:2 $80
N007 ( 2, 3) [000217] -A------R--- \--* ASG int
N006 ( 1, 1) [000215] D------N---- \--* LCL_VAR int V05 tmp4 d:4
***** BB03, stmt 15
( 3, 3) [000060] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000056] ------------ | /--* CNS_INT long -8 $342
N003 ( 3, 3) [000057] ------------ | /--* ADD long $242
N001 ( 1, 1) [000054] ------------ | | \--* LCL_VAR long V03 tmp2 u:5 (last use) $143
N005 ( 3, 3) [000059] -A------R--- \--* ASG long $242
N004 ( 1, 1) [000058] D------N---- \--* LCL_VAR long V07 tmp6 d:2 $242
***** BB03, stmt 16
( 6, 5) [000069] ------------ * STMT void (IL 0x000... ???)
N004 ( 4, 3) [000064] ---XG------- | /--* HWIntrinsic int PopCount $3c0
N003 ( 3, 2) [000063] *--XG------- | | \--* IND int <l:$282, c:$1c2>
N002 ( 1, 1) [000062] ------------ | | \--* LCL_VAR long V07 tmp6 u:2 $242
N005 ( 6, 5) [000065] ---XG------- | /--* SUB int $205
N001 ( 1, 1) [000061] ------------ | | \--* LCL_VAR int V05 tmp4 u:4 $281
N007 ( 6, 5) [000068] -A-XG---R--- \--* ASG int $205
N006 ( 1, 1) [000067] D------N---- \--* LCL_VAR int V04 tmp3 d:5 $205
***** BB03, stmt 17
( 5, 5) [000074] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000073] ------------ \--* JTRUE void
N002 ( 1, 1) [000071] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000072] J------N---- \--* LE int $206
N001 ( 1, 1) [000070] ------------ \--* LCL_VAR int V04 tmp3 u:5 $205
------------ BB04 [000..001), preds={BB03} succs={BB05}
***** BB04, stmt 18
( 1, 3) [000137] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000134] ------------ | /--* LCL_VAR int V04 tmp3 u:5 (last use) $205
N003 ( 1, 3) [000136] -A------R--- \--* ASG int $205
N002 ( 1, 1) [000135] D------N---- \--* LCL_VAR int V05 tmp4 d:5 $205
***** BB04, stmt 19
( 3, 3) [000144] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000140] ------------ | /--* CNS_INT long 4 $343
N003 ( 3, 3) [000141] ------------ | /--* ADD long $243
N001 ( 1, 1) [000138] ------------ | | \--* LCL_VAR long V07 tmp6 u:2 (last use) $242
N005 ( 3, 3) [000143] -A------R--- \--* ASG long $243
N004 ( 1, 1) [000142] D------N---- \--* LCL_VAR long V07 tmp6 d:3 $243
------------ BB05 [000..001) -> BB07 (cond), preds={BB03,BB04} succs={BB06,BB07}
***** BB05, stmt 20
( 6, 5) [000210] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000208] ------------ | * PHI long
N001 ( 0, 0) [000247] ------------ | /--* PHI_ARG long V07 tmp6 u:3
N002 ( 0, 0) [000243] ------------ | \--* PHI_ARG long V07 tmp6 u:2 $242
N007 ( 6, 5) [000209] -A------R--- \--* ASG long
N006 ( 3, 2) [000207] D------N---- \--* LCL_VAR long V07 tmp6 d:4
***** BB05, stmt 21
( 2, 3) [000206] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000204] ------------ | * PHI int
N001 ( 0, 0) [000249] ------------ | /--* PHI_ARG int V05 tmp4 u:5
N002 ( 0, 0) [000245] ------------ | \--* PHI_ARG int V05 tmp4 u:4 $281
N007 ( 2, 3) [000205] -A------R--- \--* ASG int
N006 ( 1, 1) [000203] D------N---- \--* LCL_VAR int V05 tmp4 d:6
***** BB05, stmt 22
( 3, 3) [000080] ------------ * STMT void (IL 0x000... ???)
N002 ( 3, 2) [000077] *--XG------- | /--* IND int <l:$284, c:$1c5>
N001 ( 1, 1) [000076] ------------ | | \--* LCL_VAR long V07 tmp6 u:4 $144
N004 ( 3, 3) [000079] -A-XG---R--- \--* ASG int <l:$284, c:$1c5>
N003 ( 1, 1) [000078] D------N---- \--* LCL_VAR int V08 tmp7 d:2 <l:$284, c:$1c5>
***** BB05, stmt 23
( 26, 9) [000092] ------------ * STMT void (IL 0x000... ???)
N006 ( 1, 1) [000088] ------------ | /--* CNS_INT long 5 $345
N007 ( 26, 9) [000089] ------------ | /--* LSH long <l:$248, c:$249>
N004 ( 1, 1) [000085] ------------ | | | /--* CNS_INT long 4 $343
N005 ( 24, 7) [000086] ------------ | | \--* DIV long <l:$246, c:$247>
N002 ( 1, 1) [000082] ------------ | | | /--* LCL_VAR long V02 tmp1 u:2 (last use) <l:$140, c:$180>
N003 ( 3, 3) [000083] ------------ | | \--* SUB long <l:$244, c:$245>
N001 ( 1, 1) [000081] ------------ | | \--* LCL_VAR long V07 tmp6 u:4 (last use) $144
N009 ( 26, 9) [000091] -A------R--- \--* ASG long <l:$248, c:$249>
N008 ( 1, 1) [000090] D------N---- \--* LCL_VAR long V09 tmp8 d:2 <l:$248, c:$249>
***** BB05, stmt 24
( 5, 5) [000186] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000185] ------------ \--* JTRUE void
N002 ( 1, 1) [000184] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000182] J------N---- \--* LE int $208
N001 ( 1, 1) [000183] ------------ \--* LCL_VAR int V05 tmp4 u:6 $283
------------ BB06 [000..001) -> BB06 (cond), preds={BB05,BB06} succs={BB07,BB06}
***** BB06, stmt 25
( 2, 3) [000202] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000200] ------------ | * PHI long
N001 ( 0, 0) [000261] ------------ | /--* PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000251] ------------ | \--* PHI_ARG long V09 tmp8 u:2 <l:$248, c:$249>
N007 ( 2, 3) [000201] -A------R--- \--* ASG long
N006 ( 1, 1) [000199] D------N---- \--* LCL_VAR long V09 tmp8 d:3
***** BB06, stmt 26
( 2, 3) [000194] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000192] ------------ | * PHI int
N001 ( 0, 0) [000263] ------------ | /--* PHI_ARG int V08 tmp7 u:4
N002 ( 0, 0) [000253] ------------ | \--* PHI_ARG int V08 tmp7 u:2 <l:$284, c:$1c5>
N007 ( 2, 3) [000193] -A------R--- \--* ASG int
N006 ( 1, 1) [000191] D------N---- \--* LCL_VAR int V08 tmp7 d:3
***** BB06, stmt 27
( 2, 3) [000190] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000188] ------------ | * PHI int
N001 ( 0, 0) [000265] ------------ | /--* PHI_ARG int V05 tmp4 u:8
N002 ( 0, 0) [000255] ------------ | \--* PHI_ARG int V05 tmp4 u:6 $283
N007 ( 2, 3) [000189] -A------R--- \--* ASG int
N006 ( 1, 1) [000187] D------N---- \--* LCL_VAR int V05 tmp4 d:7
***** BB06, stmt 28
( 4, 4) [000106] ------------ * STMT void (IL 0x000... ???)
N003 ( 1, 1) [000102] ------------ | /--* CNS_INT int 1 $4b
N004 ( 4, 4) [000103] ------------ | /--* ADD int $20a
N002 ( 2, 2) [000101] ------------ | | \--* HWIntrinsic int TrailingZeroCount $400
N001 ( 1, 1) [000100] ------------ | | \--* LCL_VAR int V08 tmp7 u:3 $285
N006 ( 4, 4) [000105] -A------R--- \--* ASG int $20a
N005 ( 1, 1) [000104] D------N---- \--* LCL_VAR int V10 tmp9 d:2 $20a
***** BB06, stmt 29
( 4, 5) [000113] ------------ * STMT void (IL 0x000... ???)
N003 ( 2, 3) [000109] ---------U-- | /--* CAST long <- ulong <- uint $24a
N002 ( 1, 1) [000108] ------------ | | \--* LCL_VAR int V10 tmp9 u:2 $20a
N004 ( 4, 5) [000110] ------------ | /--* ADD long $24b
N001 ( 1, 1) [000107] ------------ | | \--* LCL_VAR long V09 tmp8 u:3 (last use) $145
N006 ( 4, 5) [000112] -A------R--- \--* ASG long $24b
N005 ( 1, 1) [000111] D------N---- \--* LCL_VAR long V09 tmp8 d:4 $24b
***** BB06, stmt 30
( 3, 3) [000119] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000115] ------------ | /--* CNS_INT int -1 $41
N003 ( 3, 3) [000116] ------------ | /--* ADD int $20b
N001 ( 1, 1) [000114] ------------ | | \--* LCL_VAR int V05 tmp4 u:7 (last use) $286
N005 ( 3, 3) [000118] -A------R--- \--* ASG int $20b
N004 ( 1, 1) [000117] D------N---- \--* LCL_VAR int V05 tmp4 d:8 $20b
***** BB06, stmt 31
( 8, 5) [000127] ------------ * STMT void (IL 0x000... ???)
N003 ( 1, 1) [000122] ------------ | /--* CNS_INT int 31 $4d
N004 ( 3, 3) [000123] ------------ | /--* AND int $20c
N002 ( 1, 1) [000121] ------------ | | \--* LCL_VAR int V10 tmp9 u:2 (last use) $20a
N005 ( 8, 5) [000124] ------------ | /--* RSZ int $20d
N001 ( 1, 1) [000120] ------------ | | \--* LCL_VAR int V08 tmp7 u:3 (last use) $285
N007 ( 8, 5) [000126] -A------R--- \--* ASG int $20d
N006 ( 1, 1) [000125] D------N---- \--* LCL_VAR int V08 tmp7 d:4 $20d
***** BB06, stmt 32
( 5, 5) [000098] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000097] ------------ \--* JTRUE void
N002 ( 1, 1) [000095] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000096] J------N---- \--* GT int $20e
N001 ( 1, 1) [000094] ------------ \--* LCL_VAR int V05 tmp4 u:8 $20b
------------ BB07 [000..001) (return), preds={BB05,BB06} succs={}
***** BB07, stmt 33
( 2, 3) [000198] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000196] ------------ | * PHI long
N001 ( 0, 0) [000259] ------------ | /--* PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000257] ------------ | \--* PHI_ARG long V09 tmp8 u:2 <l:$248, c:$249>
N007 ( 2, 3) [000197] -A------R--- \--* ASG long
N006 ( 1, 1) [000195] D------N---- \--* LCL_VAR long V09 tmp8 d:5
***** BB07, stmt 34
( 4, 4) [000011] ------------ * STMT void (IL ???... ???)
N004 ( 4, 4) [000010] ------------ \--* RETURN int $1c7
N002 ( 1, 1) [000131] ------------ | /--* CNS_INT int -1 $41
N003 ( 3, 3) [000132] ------------ \--* ADD int $210
N001 ( 1, 1) [000129] C----------- \--* LCL_VAR int V09 tmp8 u:5 (last use) $20f
-------------------------------------------------------------------------------------------------------------------
*************** In optOptimizeValnumCSEs()
*************** In optAssertionPropMain()
Blocks/Trees at start of phase
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target
BB02 [0002] 2 BB01,BB02 2 [000..001)-> BB02 ( cond ) i Loop Loop0 label target bwd
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target
BB04 [0005] 1 BB03 0.25 [000..001) i
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target
BB06 [0007] 2 BB05,BB06 2 [000..001)-> BB06 ( cond ) i Loop Loop0 label target bwd
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
( 5, 12) [000147] ------------ * STMT void (IL 0x000... ???)
N002 ( 5, 12) [000001] x---G------- | /--* IND long <l:$140, c:$180>
N001 ( 3, 10) [000176] ------------ | | \--* CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits] $100
N004 ( 5, 12) [000146] -A--G---R--- \--* ASG long <l:$140, c:$180>
N003 ( 1, 1) [000145] D------N---- \--* LCL_VAR long V02 tmp1 d:2 <l:$140, c:$180>
***** BB01, stmt 2
( 1, 3) [000150] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000003] ------------ | /--* LCL_VAR int V00 arg0 u:2 (last use) $80
N003 ( 1, 3) [000149] -A------R--- \--* ASG int $80
N002 ( 1, 1) [000148] D------N---- \--* LCL_VAR int V04 tmp3 d:2 $80
***** BB01, stmt 3
( 1, 3) [000016] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000013] ------------ | /--* LCL_VAR long V02 tmp1 u:2 <l:$140, c:$180>
N003 ( 1, 3) [000015] -A------R--- \--* ASG long <l:$140, c:$180>
N002 ( 1, 1) [000014] D------N---- \--* LCL_VAR long V03 tmp2 d:2 <l:$140, c:$180>
***** BB01, stmt 4
( 1, 3) [000020] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000017] ------------ | /--* LCL_VAR int V04 tmp3 u:2 $80
N003 ( 1, 3) [000019] -A------R--- \--* ASG int $80
N002 ( 1, 1) [000018] D------N---- \--* LCL_VAR int V05 tmp4 d:2 $80
***** BB01, stmt 5
( 5, 5) [000181] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000180] ------------ \--* JTRUE void
N002 ( 1, 1) [000179] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000177] J------N---- \--* LE int $200
N001 ( 1, 1) [000178] ------------ \--* LCL_VAR int V05 tmp4 u:2 $80
------------ BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
***** BB02, stmt 6
( 2, 3) [000226] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000224] ------------ | * PHI long
N001 ( 0, 0) [000239] ------------ | /--* PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000227] ------------ | \--* PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
N007 ( 2, 3) [000225] -A------R--- \--* ASG long
N006 ( 1, 1) [000223] D------N---- \--* LCL_VAR long V03 tmp2 d:3
***** BB02, stmt 7
( 2, 3) [000214] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000212] ------------ | * PHI int
N001 ( 0, 0) [000241] ------------ | /--* PHI_ARG int V04 tmp3 u:4
N002 ( 0, 0) [000229] ------------ | \--* PHI_ARG int V04 tmp3 u:2 $80
N007 ( 2, 3) [000213] -A------R--- \--* ASG int
N006 ( 1, 1) [000211] D------N---- \--* LCL_VAR int V04 tmp3 d:3
***** BB02, stmt 8
( 1, 3) [000031] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000028] ------------ | /--* LCL_VAR int V04 tmp3 u:3 $280
N003 ( 1, 3) [000030] -A------R--- \--* ASG int $280
N002 ( 1, 1) [000029] D------N---- \--* LCL_VAR int V05 tmp4 d:3 $280
***** BB02, stmt 9
( 1, 3) [000041] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000033] ------------ | /--* LCL_VAR long V03 tmp2 u:3 $141
N003 ( 1, 3) [000040] -A------R--- \--* ASG long $141
N002 ( 1, 1) [000039] D------N---- \--* LCL_VAR long V06 tmp5 d:2 $141
***** BB02, stmt 10
( 3, 3) [000044] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000036] ------------ | /--* CNS_INT long 8 $340
N003 ( 3, 3) [000037] ------------ | /--* ADD long $241
N001 ( 1, 1) [000034] ------------ | | \--* LCL_VAR long V06 tmp5 u:2 (last use) $141
N005 ( 3, 3) [000043] -A------R--- \--* ASG long $241
N004 ( 1, 1) [000038] D------N---- \--* LCL_VAR long V03 tmp2 d:4 $241
***** BB02, stmt 11
( 7, 7) [000052] ------------ * STMT void (IL 0x000... ???)
N005 ( 5, 5) [000047] ---XG------- | /--* CAST int <- long $201
N004 ( 4, 3) [000046] ---XG------- | | \--* HWIntrinsic long PopCount $380
N003 ( 3, 2) [000045] *--XG------- | | \--* IND long <l:$142, c:$302>
N002 ( 1, 1) [000042] ------------ | | \--* LCL_VAR long V06 tmp5 u:2 (last use) $141
N006 ( 7, 7) [000048] ---XG------- | /--* SUB int $202
N001 ( 1, 1) [000032] ------------ | | \--* LCL_VAR int V05 tmp4 u:3 (last use) $280
N008 ( 7, 7) [000051] -A-XG---R--- \--* ASG int $202
N007 ( 1, 1) [000050] D------N---- \--* LCL_VAR int V04 tmp3 d:4 $202
***** BB02, stmt 12
( 5, 5) [000026] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000025] ------------ \--* JTRUE void
N002 ( 1, 1) [000023] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000024] J------N---- \--* GT int $203
N001 ( 1, 1) [000022] ------------ \--* LCL_VAR int V04 tmp3 u:4 $202
------------ BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 13
( 2, 3) [000222] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000220] ------------ | * PHI long
N001 ( 0, 0) [000235] ------------ | /--* PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000231] ------------ | \--* PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
N007 ( 2, 3) [000221] -A------R--- \--* ASG long
N006 ( 1, 1) [000219] D------N---- \--* LCL_VAR long V03 tmp2 d:5
***** BB03, stmt 14
( 2, 3) [000218] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000216] ------------ | * PHI int
N001 ( 0, 0) [000237] ------------ | /--* PHI_ARG int V05 tmp4 u:3
N002 ( 0, 0) [000233] ------------ | \--* PHI_ARG int V05 tmp4 u:2 $80
N007 ( 2, 3) [000217] -A------R--- \--* ASG int
N006 ( 1, 1) [000215] D------N---- \--* LCL_VAR int V05 tmp4 d:4
***** BB03, stmt 15
( 3, 3) [000060] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000056] ------------ | /--* CNS_INT long -8 $342
N003 ( 3, 3) [000057] ------------ | /--* ADD long $242
N001 ( 1, 1) [000054] ------------ | | \--* LCL_VAR long V03 tmp2 u:5 (last use) $143
N005 ( 3, 3) [000059] -A------R--- \--* ASG long $242
N004 ( 1, 1) [000058] D------N---- \--* LCL_VAR long V07 tmp6 d:2 $242
***** BB03, stmt 16
( 6, 5) [000069] ------------ * STMT void (IL 0x000... ???)
N004 ( 4, 3) [000064] ---XG------- | /--* HWIntrinsic int PopCount $3c0
N003 ( 3, 2) [000063] *--XG------- | | \--* IND int <l:$282, c:$1c2>
N002 ( 1, 1) [000062] ------------ | | \--* LCL_VAR long V07 tmp6 u:2 $242
N005 ( 6, 5) [000065] ---XG------- | /--* SUB int $205
N001 ( 1, 1) [000061] ------------ | | \--* LCL_VAR int V05 tmp4 u:4 $281
N007 ( 6, 5) [000068] -A-XG---R--- \--* ASG int $205
N006 ( 1, 1) [000067] D------N---- \--* LCL_VAR int V04 tmp3 d:5 $205
***** BB03, stmt 17
( 5, 5) [000074] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000073] ------------ \--* JTRUE void
N002 ( 1, 1) [000071] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000072] J------N---- \--* LE int $206
N001 ( 1, 1) [000070] ------------ \--* LCL_VAR int V04 tmp3 u:5 $205
------------ BB04 [000..001), preds={BB03} succs={BB05}
***** BB04, stmt 18
( 1, 3) [000137] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000134] ------------ | /--* LCL_VAR int V04 tmp3 u:5 (last use) $205
N003 ( 1, 3) [000136] -A------R--- \--* ASG int $205
N002 ( 1, 1) [000135] D------N---- \--* LCL_VAR int V05 tmp4 d:5 $205
***** BB04, stmt 19
( 3, 3) [000144] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000140] ------------ | /--* CNS_INT long 4 $343
N003 ( 3, 3) [000141] ------------ | /--* ADD long $243
N001 ( 1, 1) [000138] ------------ | | \--* LCL_VAR long V07 tmp6 u:2 (last use) $242
N005 ( 3, 3) [000143] -A------R--- \--* ASG long $243
N004 ( 1, 1) [000142] D------N---- \--* LCL_VAR long V07 tmp6 d:3 $243
------------ BB05 [000..001) -> BB07 (cond), preds={BB03,BB04} succs={BB06,BB07}
***** BB05, stmt 20
( 6, 5) [000210] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000208] ------------ | * PHI long
N001 ( 0, 0) [000247] ------------ | /--* PHI_ARG long V07 tmp6 u:3
N002 ( 0, 0) [000243] ------------ | \--* PHI_ARG long V07 tmp6 u:2 $242
N007 ( 6, 5) [000209] -A------R--- \--* ASG long
N006 ( 3, 2) [000207] D------N---- \--* LCL_VAR long V07 tmp6 d:4
***** BB05, stmt 21
( 2, 3) [000206] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000204] ------------ | * PHI int
N001 ( 0, 0) [000249] ------------ | /--* PHI_ARG int V05 tmp4 u:5
N002 ( 0, 0) [000245] ------------ | \--* PHI_ARG int V05 tmp4 u:4 $281
N007 ( 2, 3) [000205] -A------R--- \--* ASG int
N006 ( 1, 1) [000203] D------N---- \--* LCL_VAR int V05 tmp4 d:6
***** BB05, stmt 22
( 3, 3) [000080] ------------ * STMT void (IL 0x000... ???)
N002 ( 3, 2) [000077] *--XG------- | /--* IND int <l:$284, c:$1c5>
N001 ( 1, 1) [000076] ------------ | | \--* LCL_VAR long V07 tmp6 u:4 $144
N004 ( 3, 3) [000079] -A-XG---R--- \--* ASG int <l:$284, c:$1c5>
N003 ( 1, 1) [000078] D------N---- \--* LCL_VAR int V08 tmp7 d:2 <l:$284, c:$1c5>
***** BB05, stmt 23
( 26, 9) [000092] ------------ * STMT void (IL 0x000... ???)
N006 ( 1, 1) [000088] ------------ | /--* CNS_INT long 5 $345
N007 ( 26, 9) [000089] ------------ | /--* LSH long <l:$248, c:$249>
N004 ( 1, 1) [000085] ------------ | | | /--* CNS_INT long 4 $343
N005 ( 24, 7) [000086] ------------ | | \--* DIV long <l:$246, c:$247>
N002 ( 1, 1) [000082] ------------ | | | /--* LCL_VAR long V02 tmp1 u:2 (last use) <l:$140, c:$180>
N003 ( 3, 3) [000083] ------------ | | \--* SUB long <l:$244, c:$245>
N001 ( 1, 1) [000081] ------------ | | \--* LCL_VAR long V07 tmp6 u:4 (last use) $144
N009 ( 26, 9) [000091] -A------R--- \--* ASG long <l:$248, c:$249>
N008 ( 1, 1) [000090] D------N---- \--* LCL_VAR long V09 tmp8 d:2 <l:$248, c:$249>
***** BB05, stmt 24
( 5, 5) [000186] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000185] ------------ \--* JTRUE void
N002 ( 1, 1) [000184] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000182] J------N---- \--* LE int $208
N001 ( 1, 1) [000183] ------------ \--* LCL_VAR int V05 tmp4 u:6 $283
------------ BB06 [000..001) -> BB06 (cond), preds={BB05,BB06} succs={BB07,BB06}
***** BB06, stmt 25
( 2, 3) [000202] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000200] ------------ | * PHI long
N001 ( 0, 0) [000261] ------------ | /--* PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000251] ------------ | \--* PHI_ARG long V09 tmp8 u:2 <l:$248, c:$249>
N007 ( 2, 3) [000201] -A------R--- \--* ASG long
N006 ( 1, 1) [000199] D------N---- \--* LCL_VAR long V09 tmp8 d:3
***** BB06, stmt 26
( 2, 3) [000194] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000192] ------------ | * PHI int
N001 ( 0, 0) [000263] ------------ | /--* PHI_ARG int V08 tmp7 u:4
N002 ( 0, 0) [000253] ------------ | \--* PHI_ARG int V08 tmp7 u:2 <l:$284, c:$1c5>
N007 ( 2, 3) [000193] -A------R--- \--* ASG int
N006 ( 1, 1) [000191] D------N---- \--* LCL_VAR int V08 tmp7 d:3
***** BB06, stmt 27
( 2, 3) [000190] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000188] ------------ | * PHI int
N001 ( 0, 0) [000265] ------------ | /--* PHI_ARG int V05 tmp4 u:8
N002 ( 0, 0) [000255] ------------ | \--* PHI_ARG int V05 tmp4 u:6 $283
N007 ( 2, 3) [000189] -A------R--- \--* ASG int
N006 ( 1, 1) [000187] D------N---- \--* LCL_VAR int V05 tmp4 d:7
***** BB06, stmt 28
( 4, 4) [000106] ------------ * STMT void (IL 0x000... ???)
N003 ( 1, 1) [000102] ------------ | /--* CNS_INT int 1 $4b
N004 ( 4, 4) [000103] ------------ | /--* ADD int $20a
N002 ( 2, 2) [000101] ------------ | | \--* HWIntrinsic int TrailingZeroCount $400
N001 ( 1, 1) [000100] ------------ | | \--* LCL_VAR int V08 tmp7 u:3 $285
N006 ( 4, 4) [000105] -A------R--- \--* ASG int $20a
N005 ( 1, 1) [000104] D------N---- \--* LCL_VAR int V10 tmp9 d:2 $20a
***** BB06, stmt 29
( 4, 5) [000113] ------------ * STMT void (IL 0x000... ???)
N003 ( 2, 3) [000109] ---------U-- | /--* CAST long <- ulong <- uint $24a
N002 ( 1, 1) [000108] ------------ | | \--* LCL_VAR int V10 tmp9 u:2 $20a
N004 ( 4, 5) [000110] ------------ | /--* ADD long $24b
N001 ( 1, 1) [000107] ------------ | | \--* LCL_VAR long V09 tmp8 u:3 (last use) $145
N006 ( 4, 5) [000112] -A------R--- \--* ASG long $24b
N005 ( 1, 1) [000111] D------N---- \--* LCL_VAR long V09 tmp8 d:4 $24b
***** BB06, stmt 30
( 3, 3) [000119] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000115] ------------ | /--* CNS_INT int -1 $41
N003 ( 3, 3) [000116] ------------ | /--* ADD int $20b
N001 ( 1, 1) [000114] ------------ | | \--* LCL_VAR int V05 tmp4 u:7 (last use) $286
N005 ( 3, 3) [000118] -A------R--- \--* ASG int $20b
N004 ( 1, 1) [000117] D------N---- \--* LCL_VAR int V05 tmp4 d:8 $20b
***** BB06, stmt 31
( 8, 5) [000127] ------------ * STMT void (IL 0x000... ???)
N003 ( 1, 1) [000122] ------------ | /--* CNS_INT int 31 $4d
N004 ( 3, 3) [000123] ------------ | /--* AND int $20c
N002 ( 1, 1) [000121] ------------ | | \--* LCL_VAR int V10 tmp9 u:2 (last use) $20a
N005 ( 8, 5) [000124] ------------ | /--* RSZ int $20d
N001 ( 1, 1) [000120] ------------ | | \--* LCL_VAR int V08 tmp7 u:3 (last use) $285
N007 ( 8, 5) [000126] -A------R--- \--* ASG int $20d
N006 ( 1, 1) [000125] D------N---- \--* LCL_VAR int V08 tmp7 d:4 $20d
***** BB06, stmt 32
( 5, 5) [000098] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000097] ------------ \--* JTRUE void
N002 ( 1, 1) [000095] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000096] J------N---- \--* GT int $20e
N001 ( 1, 1) [000094] ------------ \--* LCL_VAR int V05 tmp4 u:8 $20b
------------ BB07 [000..001) (return), preds={BB05,BB06} succs={}
***** BB07, stmt 33
( 2, 3) [000198] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000196] ------------ | * PHI long
N001 ( 0, 0) [000259] ------------ | /--* PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000257] ------------ | \--* PHI_ARG long V09 tmp8 u:2 <l:$248, c:$249>
N007 ( 2, 3) [000197] -A------R--- \--* ASG long
N006 ( 1, 1) [000195] D------N---- \--* LCL_VAR long V09 tmp8 d:5
***** BB07, stmt 34
( 4, 4) [000011] ------------ * STMT void (IL ???... ???)
N004 ( 4, 4) [000010] ------------ \--* RETURN int $1c7
N002 ( 1, 1) [000131] ------------ | /--* CNS_INT int -1 $41
N003 ( 3, 3) [000132] ------------ \--* ADD int $210
N001 ( 1, 1) [000129] C----------- \--* LCL_VAR int V09 tmp8 u:5 (last use) $20f
-------------------------------------------------------------------------------------------------------------------
GenTreeNode creates assertion:
N004 ( 5, 5) [000180] ------------ * JTRUE void
In BB01 New Global Constant Assertion: (512, 64) ($200,$40) Loop_Bnd {LE($80, $40)} is not {IntCns 0} index=#01, mask=0000000000000001
GenTreeNode creates assertion:
N004 ( 5, 5) [000180] ------------ * JTRUE void
In BB01 New Global Constant Assertion: (512, 64) ($200,$40) Loop_Bnd {LE($80, $40)} is {IntCns 0} index=#02, mask=0000000000000002
GenTreeNode creates assertion:
N004 ( 5, 5) [000025] ------------ * JTRUE void
In BB02 New Global Constant Assertion: (515, 64) ($203,$40) Loop_Bnd {GT($202, $40)} is not {IntCns 0} index=#03, mask=0000000000000004
GenTreeNode creates assertion:
N004 ( 5, 5) [000025] ------------ * JTRUE void
In BB02 New Global Constant Assertion: (515, 64) ($203,$40) Loop_Bnd {GT($202, $40)} is {IntCns 0} index=#04, mask=0000000000000008
GenTreeNode creates assertion:
N004 ( 5, 5) [000073] ------------ * JTRUE void
In BB03 New Global Constant Assertion: (518, 64) ($206,$40) Loop_Bnd {LE($205, $40)} is not {IntCns 0} index=#05, mask=0000000000000010
GenTreeNode creates assertion:
N004 ( 5, 5) [000073] ------------ * JTRUE void
In BB03 New Global Constant Assertion: (518, 64) ($206,$40) Loop_Bnd {LE($205, $40)} is {IntCns 0} index=#06, mask=0000000000000020
GenTreeNode creates assertion:
N004 ( 5, 5) [000185] ------------ * JTRUE void
In BB05 New Global Constant Assertion: (520, 64) ($208,$40) Loop_Bnd {LE($283, $40)} is not {IntCns 0} index=#07, mask=0000000000000040
GenTreeNode creates assertion:
N004 ( 5, 5) [000185] ------------ * JTRUE void
In BB05 New Global Constant Assertion: (520, 64) ($208,$40) Loop_Bnd {LE($283, $40)} is {IntCns 0} index=#08, mask=0000000000000080
GenTreeNode creates assertion:
N004 ( 5, 5) [000097] ------------ * JTRUE void
In BB06 New Global Constant Assertion: (526, 64) ($20e,$40) Loop_Bnd {GT($20b, $40)} is not {IntCns 0} index=#09, mask=0000000000000100
GenTreeNode creates assertion:
N004 ( 5, 5) [000097] ------------ * JTRUE void
In BB06 New Global Constant Assertion: (526, 64) ($20e,$40) Loop_Bnd {GT($20b, $40)} is {IntCns 0} index=#10, mask=0000000000000200
BB01 valueGen = 0000000000000002 => BB03 valueGen = 0000000000000001,
BB02 valueGen = 0000000000000008 => BB02 valueGen = 0000000000000004,
BB03 valueGen = 0000000000000020 => BB05 valueGen = 0000000000000010,
BB04 valueGen = 0000000000000000
BB05 valueGen = 0000000000000080 => BB07 valueGen = 0000000000000040,
BB06 valueGen = 0000000000000200 => BB06 valueGen = 0000000000000100,
BB07 valueGen = 0000000000000000AssertionPropCallback::StartMerge: BB01 in -> 0000000000000000
AssertionPropCallback::EndMerge : BB01 in -> 0000000000000000
AssertionPropCallback::Changed : BB01 before out -> 00000000000003FF; after out -> 0000000000000002;
jumpDest before out -> 00000000000003FF; jumpDest after out -> 0000000000000001;
AssertionPropCallback::StartMerge: BB02 in -> 00000000000003FF
AssertionPropCallback::Merge : BB02 in -> 00000000000003FF, predBlock BB01 out -> 0000000000000002
AssertionPropCallback::Merge : BB02 in -> 0000000000000002, predBlock BB02 out -> 00000000000003FF
AssertionPropCallback::EndMerge : BB02 in -> 0000000000000002
AssertionPropCallback::Changed : BB02 before out -> 00000000000003FF; after out -> 000000000000000A;
jumpDest before out -> 00000000000003FF; jumpDest after out -> 0000000000000006;
AssertionPropCallback::StartMerge: BB03 in -> 00000000000003FF
AssertionPropCallback::Merge : BB03 in -> 00000000000003FF, predBlock BB01 out -> 0000000000000002
AssertionPropCallback::Merge : BB03 in -> 0000000000000001, predBlock BB02 out -> 000000000000000A
AssertionPropCallback::EndMerge : BB03 in -> 0000000000000000
AssertionPropCallback::Changed : BB03 before out -> 00000000000003FF; after out -> 0000000000000020;
jumpDest before out -> 00000000000003FF; jumpDest after out -> 0000000000000010;
AssertionPropCallback::StartMerge: BB03 in -> 0000000000000000
AssertionPropCallback::Merge : BB03 in -> 0000000000000000, predBlock BB01 out -> 0000000000000002
AssertionPropCallback::Merge : BB03 in -> 0000000000000000, predBlock BB02 out -> 000000000000000A
AssertionPropCallback::EndMerge : BB03 in -> 0000000000000000
AssertionPropCallback::Unchanged : BB03 out -> 0000000000000020; jumpDest out -> 0000000000000010
AssertionPropCallback::StartMerge: BB02 in -> 0000000000000002
AssertionPropCallback::Merge : BB02 in -> 0000000000000002, predBlock BB01 out -> 0000000000000002
AssertionPropCallback::Merge : BB02 in -> 0000000000000002, predBlock BB02 out -> 000000000000000A
AssertionPropCallback::EndMerge : BB02 in -> 0000000000000002
AssertionPropCallback::Unchanged : BB02 out -> 000000000000000A; jumpDest out -> 0000000000000006
AssertionPropCallback::StartMerge: BB04 in -> 00000000000003FF
AssertionPropCallback::Merge : BB04 in -> 00000000000003FF, predBlock BB03 out -> 0000000000000020
AssertionPropCallback::EndMerge : BB04 in -> 0000000000000020
AssertionPropCallback::Changed : BB04 before out -> 00000000000003FF; after out -> 0000000000000020;
jumpDest before out -> 00000000000003FF; jumpDest after out -> 0000000000000020;
AssertionPropCallback::StartMerge: BB05 in -> 00000000000003FF
AssertionPropCallback::Merge : BB05 in -> 00000000000003FF, predBlock BB03 out -> 0000000000000020
AssertionPropCallback::Merge : BB05 in -> 0000000000000010, predBlock BB04 out -> 0000000000000020
AssertionPropCallback::EndMerge : BB05 in -> 0000000000000000
AssertionPropCallback::Changed : BB05 before out -> 00000000000003FF; after out -> 0000000000000080;
jumpDest before out -> 00000000000003FF; jumpDest after out -> 0000000000000040;
AssertionPropCallback::StartMerge: BB05 in -> 0000000000000000
AssertionPropCallback::Merge : BB05 in -> 0000000000000000, predBlock BB03 out -> 0000000000000020
AssertionPropCallback::Merge : BB05 in -> 0000000000000000, predBlock BB04 out -> 0000000000000020
AssertionPropCallback::EndMerge : BB05 in -> 0000000000000000
AssertionPropCallback::Unchanged : BB05 out -> 0000000000000080; jumpDest out -> 0000000000000040
AssertionPropCallback::StartMerge: BB06 in -> 00000000000003FF
AssertionPropCallback::Merge : BB06 in -> 00000000000003FF, predBlock BB05 out -> 0000000000000080
AssertionPropCallback::Merge : BB06 in -> 0000000000000080, predBlock BB06 out -> 00000000000003FF
AssertionPropCallback::EndMerge : BB06 in -> 0000000000000080
AssertionPropCallback::Changed : BB06 before out -> 00000000000003FF; after out -> 0000000000000280;
jumpDest before out -> 00000000000003FF; jumpDest after out -> 0000000000000180;
AssertionPropCallback::StartMerge: BB07 in -> 00000000000003FF
AssertionPropCallback::Merge : BB07 in -> 00000000000003FF, predBlock BB05 out -> 0000000000000080
AssertionPropCallback::Merge : BB07 in -> 0000000000000040, predBlock BB06 out -> 0000000000000280
AssertionPropCallback::EndMerge : BB07 in -> 0000000000000000
AssertionPropCallback::Changed : BB07 before out -> 00000000000003FF; after out -> 0000000000000000;
jumpDest before out -> 00000000000003FF; jumpDest after out -> 0000000000000000;
AssertionPropCallback::StartMerge: BB07 in -> 0000000000000000
AssertionPropCallback::Merge : BB07 in -> 0000000000000000, predBlock BB05 out -> 0000000000000080
AssertionPropCallback::Merge : BB07 in -> 0000000000000000, predBlock BB06 out -> 0000000000000280
AssertionPropCallback::EndMerge : BB07 in -> 0000000000000000
AssertionPropCallback::Unchanged : BB07 out -> 0000000000000000; jumpDest out -> 0000000000000000
AssertionPropCallback::StartMerge: BB06 in -> 0000000000000080
AssertionPropCallback::Merge : BB06 in -> 0000000000000080, predBlock BB05 out -> 0000000000000080
AssertionPropCallback::Merge : BB06 in -> 0000000000000080, predBlock BB06 out -> 0000000000000280
AssertionPropCallback::EndMerge : BB06 in -> 0000000000000080
AssertionPropCallback::Unchanged : BB06 out -> 0000000000000280; jumpDest out -> 0000000000000180
BB01 valueIn = 0000000000000000 valueOut = 0000000000000002 => BB03 valueOut= 0000000000000001
BB02 valueIn = 0000000000000002 valueOut = 000000000000000A => BB02 valueOut= 0000000000000006
BB03 valueIn = 0000000000000000 valueOut = 0000000000000020 => BB05 valueOut= 0000000000000010
BB04 valueIn = 0000000000000020 valueOut = 0000000000000020
BB05 valueIn = 0000000000000000 valueOut = 0000000000000080 => BB07 valueOut= 0000000000000040
BB06 valueIn = 0000000000000080 valueOut = 0000000000000280 => BB06 valueOut= 0000000000000180
BB07 valueIn = 0000000000000000 valueOut = 0000000000000000
Propagating 0000000000000000 assertions for BB01, stmt [000147], tree [000176], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000147], tree [000001], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000147], tree [000145], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000147], tree [000146], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000150], tree [000003], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000150], tree [000148], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000150], tree [000149], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000016], tree [000013], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000016], tree [000014], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000016], tree [000015], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000020], tree [000017], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000020], tree [000018], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000020], tree [000019], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000181], tree [000178], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000181], tree [000179], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000181], tree [000177], tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt [000031], tree [000028], tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt [000031], tree [000029], tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt [000031], tree [000030], tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt [000041], tree [000033], tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt [000041], tree [000039], tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt [000041], tree [000040], tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt [000044], tree [000034], tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt [000044], tree [000036], tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt [000044], tree [000037], tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt [000044], tree [000038], tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt [000044], tree [000043], tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt [000052], tree [000032], tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt [000052], tree [000042], tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt [000052], tree [000045], tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt [000052], tree [000046], tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt [000052], tree [000047], tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt [000052], tree [000048], tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt [000052], tree [000050], tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt [000052], tree [000051], tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt [000026], tree [000022], tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt [000026], tree [000023], tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt [000026], tree [000024], tree -> 0
Propagating 0000000000000000 assertions for BB03, stmt [000060], tree [000054], tree -> 0
Propagating 0000000000000000 assertions for BB03, stmt [000060], tree [000056], tree -> 0
Propagating 0000000000000000 assertions for BB03, stmt [000060], tree [000057], tree -> 0
Propagating 0000000000000000 assertions for BB03, stmt [000060], tree [000058], tree -> 0
Propagating 0000000000000000 assertions for BB03, stmt [000060], tree [000059], tree -> 0
Propagating 0000000000000000 assertions for BB03, stmt [000069], tree [000061], tree -> 0
Propagating 0000000000000000 assertions for BB03, stmt [000069], tree [000062], tree -> 0
Propagating 0000000000000000 assertions for BB03, stmt [000069], tree [000063], tree -> 0
Propagating 0000000000000000 assertions for BB03, stmt [000069], tree [000064], tree -> 0
Propagating 0000000000000000 assertions for BB03, stmt [000069], tree [000065], tree -> 0
Propagating 0000000000000000 assertions for BB03, stmt [000069], tree [000067], tree -> 0
Propagating 0000000000000000 assertions for BB03, stmt [000069], tree [000068], tree -> 0
Propagating 0000000000000000 assertions for BB03, stmt [000074], tree [000070], tree -> 0
Propagating 0000000000000000 assertions for BB03, stmt [000074], tree [000071], tree -> 0
Propagating 0000000000000000 assertions for BB03, stmt [000074], tree [000072], tree -> 0
Propagating 0000000000000020 assertions for BB04, stmt [000137], tree [000134], tree -> 0
Propagating 0000000000000020 assertions for BB04, stmt [000137], tree [000135], tree -> 0
Propagating 0000000000000020 assertions for BB04, stmt [000137], tree [000136], tree -> 0
Propagating 0000000000000020 assertions for BB04, stmt [000144], tree [000138], tree -> 0
Propagating 0000000000000020 assertions for BB04, stmt [000144], tree [000140], tree -> 0
Propagating 0000000000000020 assertions for BB04, stmt [000144], tree [000141], tree -> 0
Propagating 0000000000000020 assertions for BB04, stmt [000144], tree [000142], tree -> 0
Propagating 0000000000000020 assertions for BB04, stmt [000144], tree [000143], tree -> 0
Propagating 0000000000000000 assertions for BB05, stmt [000080], tree [000076], tree -> 0
Propagating 0000000000000000 assertions for BB05, stmt [000080], tree [000077], tree -> 0
Propagating 0000000000000000 assertions for BB05, stmt [000080], tree [000078], tree -> 0
Propagating 0000000000000000 assertions for BB05, stmt [000080], tree [000079], tree -> 0
Propagating 0000000000000000 assertions for BB05, stmt [000092], tree [000081], tree -> 0
Propagating 0000000000000000 assertions for BB05, stmt [000092], tree [000082], tree -> 0
Propagating 0000000000000000 assertions for BB05, stmt [000092], tree [000083], tree -> 0
Propagating 0000000000000000 assertions for BB05, stmt [000092], tree [000085], tree -> 0
Propagating 0000000000000000 assertions for BB05, stmt [000092], tree [000086], tree -> 0
Propagating 0000000000000000 assertions for BB05, stmt [000092], tree [000088], tree -> 0
Propagating 0000000000000000 assertions for BB05, stmt [000092], tree [000089], tree -> 0
Propagating 0000000000000000 assertions for BB05, stmt [000092], tree [000090], tree -> 0
Propagating 0000000000000000 assertions for BB05, stmt [000092], tree [000091], tree -> 0
Propagating 0000000000000000 assertions for BB05, stmt [000186], tree [000183], tree -> 0
Propagating 0000000000000000 assertions for BB05, stmt [000186], tree [000184], tree -> 0
Propagating 0000000000000000 assertions for BB05, stmt [000186], tree [000182], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000106], tree [000100], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000106], tree [000101], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000106], tree [000102], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000106], tree [000103], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000106], tree [000104], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000106], tree [000105], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000113], tree [000107], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000113], tree [000108], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000113], tree [000109], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000113], tree [000110], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000113], tree [000111], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000113], tree [000112], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000119], tree [000114], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000119], tree [000115], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000119], tree [000116], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000119], tree [000117], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000119], tree [000118], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000127], tree [000120], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000127], tree [000121], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000127], tree [000122], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000127], tree [000123], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000127], tree [000124], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000127], tree [000125], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000127], tree [000126], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000098], tree [000094], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000098], tree [000095], tree -> 0
Propagating 0000000000000080 assertions for BB06, stmt [000098], tree [000096], tree -> 0
Propagating 0000000000000000 assertions for BB07, stmt [000011], tree [000129], tree -> 0
Propagating 0000000000000000 assertions for BB07, stmt [000011], tree [000131], tree -> 0
Propagating 0000000000000000 assertions for BB07, stmt [000011], tree [000132], tree -> 0
Propagating 0000000000000000 assertions for BB07, stmt [000011], tree [000010], tree -> 0
*************** In fgDebugCheckBBlist
*************** In OptimizeRangeChecks()
Blocks/trees before phase
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target
BB02 [0002] 2 BB01,BB02 2 [000..001)-> BB02 ( cond ) i Loop Loop0 label target bwd
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target
BB04 [0005] 1 BB03 0.25 [000..001) i
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target
BB06 [0007] 2 BB05,BB06 2 [000..001)-> BB06 ( cond ) i Loop Loop0 label target bwd
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
( 5, 12) [000147] ------------ * STMT void (IL 0x000... ???)
N002 ( 5, 12) [000001] x---G------- | /--* IND long <l:$140, c:$180>
N001 ( 3, 10) [000176] ------------ | | \--* CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits] $100
N004 ( 5, 12) [000146] -A--G---R--- \--* ASG long <l:$140, c:$180>
N003 ( 1, 1) [000145] D------N---- \--* LCL_VAR long V02 tmp1 d:2 <l:$140, c:$180>
***** BB01, stmt 2
( 1, 3) [000150] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000003] ------------ | /--* LCL_VAR int V00 arg0 u:2 (last use) $80
N003 ( 1, 3) [000149] -A------R--- \--* ASG int $80
N002 ( 1, 1) [000148] D------N---- \--* LCL_VAR int V04 tmp3 d:2 $80
***** BB01, stmt 3
( 1, 3) [000016] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000013] ------------ | /--* LCL_VAR long V02 tmp1 u:2 <l:$140, c:$180>
N003 ( 1, 3) [000015] -A------R--- \--* ASG long <l:$140, c:$180>
N002 ( 1, 1) [000014] D------N---- \--* LCL_VAR long V03 tmp2 d:2 <l:$140, c:$180>
***** BB01, stmt 4
( 1, 3) [000020] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000017] ------------ | /--* LCL_VAR int V04 tmp3 u:2 $80
N003 ( 1, 3) [000019] -A------R--- \--* ASG int $80
N002 ( 1, 1) [000018] D------N---- \--* LCL_VAR int V05 tmp4 d:2 $80
***** BB01, stmt 5
( 5, 5) [000181] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000180] ------------ \--* JTRUE void
N002 ( 1, 1) [000179] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000177] J------N---- \--* LE int $200
N001 ( 1, 1) [000178] ------------ \--* LCL_VAR int V05 tmp4 u:2 $80
------------ BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
***** BB02, stmt 6
( 2, 3) [000226] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000224] ------------ | * PHI long
N001 ( 0, 0) [000239] ------------ | /--* PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000227] ------------ | \--* PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
N007 ( 2, 3) [000225] -A------R--- \--* ASG long
N006 ( 1, 1) [000223] D------N---- \--* LCL_VAR long V03 tmp2 d:3
***** BB02, stmt 7
( 2, 3) [000214] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000212] ------------ | * PHI int
N001 ( 0, 0) [000241] ------------ | /--* PHI_ARG int V04 tmp3 u:4
N002 ( 0, 0) [000229] ------------ | \--* PHI_ARG int V04 tmp3 u:2 $80
N007 ( 2, 3) [000213] -A------R--- \--* ASG int
N006 ( 1, 1) [000211] D------N---- \--* LCL_VAR int V04 tmp3 d:3
***** BB02, stmt 8
( 1, 3) [000031] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000028] ------------ | /--* LCL_VAR int V04 tmp3 u:3 $280
N003 ( 1, 3) [000030] -A------R--- \--* ASG int $280
N002 ( 1, 1) [000029] D------N---- \--* LCL_VAR int V05 tmp4 d:3 $280
***** BB02, stmt 9
( 1, 3) [000041] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000033] ------------ | /--* LCL_VAR long V03 tmp2 u:3 $141
N003 ( 1, 3) [000040] -A------R--- \--* ASG long $141
N002 ( 1, 1) [000039] D------N---- \--* LCL_VAR long V06 tmp5 d:2 $141
***** BB02, stmt 10
( 3, 3) [000044] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000036] ------------ | /--* CNS_INT long 8 $340
N003 ( 3, 3) [000037] ------------ | /--* ADD long $241
N001 ( 1, 1) [000034] ------------ | | \--* LCL_VAR long V06 tmp5 u:2 (last use) $141
N005 ( 3, 3) [000043] -A------R--- \--* ASG long $241
N004 ( 1, 1) [000038] D------N---- \--* LCL_VAR long V03 tmp2 d:4 $241
***** BB02, stmt 11
( 7, 7) [000052] ------------ * STMT void (IL 0x000... ???)
N005 ( 5, 5) [000047] ---XG------- | /--* CAST int <- long $201
N004 ( 4, 3) [000046] ---XG------- | | \--* HWIntrinsic long PopCount $380
N003 ( 3, 2) [000045] *--XG------- | | \--* IND long <l:$142, c:$302>
N002 ( 1, 1) [000042] ------------ | | \--* LCL_VAR long V06 tmp5 u:2 (last use) $141
N006 ( 7, 7) [000048] ---XG------- | /--* SUB int $202
N001 ( 1, 1) [000032] ------------ | | \--* LCL_VAR int V05 tmp4 u:3 (last use) $280
N008 ( 7, 7) [000051] -A-XG---R--- \--* ASG int $202
N007 ( 1, 1) [000050] D------N---- \--* LCL_VAR int V04 tmp3 d:4 $202
***** BB02, stmt 12
( 5, 5) [000026] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000025] ------------ \--* JTRUE void
N002 ( 1, 1) [000023] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000024] J------N---- \--* GT int $203
N001 ( 1, 1) [000022] ------------ \--* LCL_VAR int V04 tmp3 u:4 $202
------------ BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 13
( 2, 3) [000222] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000220] ------------ | * PHI long
N001 ( 0, 0) [000235] ------------ | /--* PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000231] ------------ | \--* PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
N007 ( 2, 3) [000221] -A------R--- \--* ASG long
N006 ( 1, 1) [000219] D------N---- \--* LCL_VAR long V03 tmp2 d:5
***** BB03, stmt 14
( 2, 3) [000218] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000216] ------------ | * PHI int
N001 ( 0, 0) [000237] ------------ | /--* PHI_ARG int V05 tmp4 u:3
N002 ( 0, 0) [000233] ------------ | \--* PHI_ARG int V05 tmp4 u:2 $80
N007 ( 2, 3) [000217] -A------R--- \--* ASG int
N006 ( 1, 1) [000215] D------N---- \--* LCL_VAR int V05 tmp4 d:4
***** BB03, stmt 15
( 3, 3) [000060] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000056] ------------ | /--* CNS_INT long -8 $342
N003 ( 3, 3) [000057] ------------ | /--* ADD long $242
N001 ( 1, 1) [000054] ------------ | | \--* LCL_VAR long V03 tmp2 u:5 (last use) $143
N005 ( 3, 3) [000059] -A------R--- \--* ASG long $242
N004 ( 1, 1) [000058] D------N---- \--* LCL_VAR long V07 tmp6 d:2 $242
***** BB03, stmt 16
( 6, 5) [000069] ------------ * STMT void (IL 0x000... ???)
N004 ( 4, 3) [000064] ---XG------- | /--* HWIntrinsic int PopCount $3c0
N003 ( 3, 2) [000063] *--XG------- | | \--* IND int <l:$282, c:$1c2>
N002 ( 1, 1) [000062] ------------ | | \--* LCL_VAR long V07 tmp6 u:2 $242
N005 ( 6, 5) [000065] ---XG------- | /--* SUB int $205
N001 ( 1, 1) [000061] ------------ | | \--* LCL_VAR int V05 tmp4 u:4 $281
N007 ( 6, 5) [000068] -A-XG---R--- \--* ASG int $205
N006 ( 1, 1) [000067] D------N---- \--* LCL_VAR int V04 tmp3 d:5 $205
***** BB03, stmt 17
( 5, 5) [000074] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000073] ------------ \--* JTRUE void
N002 ( 1, 1) [000071] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000072] J------N---- \--* LE int $206
N001 ( 1, 1) [000070] ------------ \--* LCL_VAR int V04 tmp3 u:5 $205
------------ BB04 [000..001), preds={BB03} succs={BB05}
***** BB04, stmt 18
( 1, 3) [000137] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000134] ------------ | /--* LCL_VAR int V04 tmp3 u:5 (last use) $205
N003 ( 1, 3) [000136] -A------R--- \--* ASG int $205
N002 ( 1, 1) [000135] D------N---- \--* LCL_VAR int V05 tmp4 d:5 $205
***** BB04, stmt 19
( 3, 3) [000144] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000140] ------------ | /--* CNS_INT long 4 $343
N003 ( 3, 3) [000141] ------------ | /--* ADD long $243
N001 ( 1, 1) [000138] ------------ | | \--* LCL_VAR long V07 tmp6 u:2 (last use) $242
N005 ( 3, 3) [000143] -A------R--- \--* ASG long $243
N004 ( 1, 1) [000142] D------N---- \--* LCL_VAR long V07 tmp6 d:3 $243
------------ BB05 [000..001) -> BB07 (cond), preds={BB03,BB04} succs={BB06,BB07}
***** BB05, stmt 20
( 6, 5) [000210] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000208] ------------ | * PHI long
N001 ( 0, 0) [000247] ------------ | /--* PHI_ARG long V07 tmp6 u:3
N002 ( 0, 0) [000243] ------------ | \--* PHI_ARG long V07 tmp6 u:2 $242
N007 ( 6, 5) [000209] -A------R--- \--* ASG long
N006 ( 3, 2) [000207] D------N---- \--* LCL_VAR long V07 tmp6 d:4
***** BB05, stmt 21
( 2, 3) [000206] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000204] ------------ | * PHI int
N001 ( 0, 0) [000249] ------------ | /--* PHI_ARG int V05 tmp4 u:5
N002 ( 0, 0) [000245] ------------ | \--* PHI_ARG int V05 tmp4 u:4 $281
N007 ( 2, 3) [000205] -A------R--- \--* ASG int
N006 ( 1, 1) [000203] D------N---- \--* LCL_VAR int V05 tmp4 d:6
***** BB05, stmt 22
( 3, 3) [000080] ------------ * STMT void (IL 0x000... ???)
N002 ( 3, 2) [000077] *--XG------- | /--* IND int <l:$284, c:$1c5>
N001 ( 1, 1) [000076] ------------ | | \--* LCL_VAR long V07 tmp6 u:4 $144
N004 ( 3, 3) [000079] -A-XG---R--- \--* ASG int <l:$284, c:$1c5>
N003 ( 1, 1) [000078] D------N---- \--* LCL_VAR int V08 tmp7 d:2 <l:$284, c:$1c5>
***** BB05, stmt 23
( 26, 9) [000092] ------------ * STMT void (IL 0x000... ???)
N006 ( 1, 1) [000088] ------------ | /--* CNS_INT long 5 $345
N007 ( 26, 9) [000089] ------------ | /--* LSH long <l:$248, c:$249>
N004 ( 1, 1) [000085] ------------ | | | /--* CNS_INT long 4 $343
N005 ( 24, 7) [000086] ------------ | | \--* DIV long <l:$246, c:$247>
N002 ( 1, 1) [000082] ------------ | | | /--* LCL_VAR long V02 tmp1 u:2 (last use) <l:$140, c:$180>
N003 ( 3, 3) [000083] ------------ | | \--* SUB long <l:$244, c:$245>
N001 ( 1, 1) [000081] ------------ | | \--* LCL_VAR long V07 tmp6 u:4 (last use) $144
N009 ( 26, 9) [000091] -A------R--- \--* ASG long <l:$248, c:$249>
N008 ( 1, 1) [000090] D------N---- \--* LCL_VAR long V09 tmp8 d:2 <l:$248, c:$249>
***** BB05, stmt 24
( 5, 5) [000186] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000185] ------------ \--* JTRUE void
N002 ( 1, 1) [000184] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000182] J------N---- \--* LE int $208
N001 ( 1, 1) [000183] ------------ \--* LCL_VAR int V05 tmp4 u:6 $283
------------ BB06 [000..001) -> BB06 (cond), preds={BB05,BB06} succs={BB07,BB06}
***** BB06, stmt 25
( 2, 3) [000202] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000200] ------------ | * PHI long
N001 ( 0, 0) [000261] ------------ | /--* PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000251] ------------ | \--* PHI_ARG long V09 tmp8 u:2 <l:$248, c:$249>
N007 ( 2, 3) [000201] -A------R--- \--* ASG long
N006 ( 1, 1) [000199] D------N---- \--* LCL_VAR long V09 tmp8 d:3
***** BB06, stmt 26
( 2, 3) [000194] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000192] ------------ | * PHI int
N001 ( 0, 0) [000263] ------------ | /--* PHI_ARG int V08 tmp7 u:4
N002 ( 0, 0) [000253] ------------ | \--* PHI_ARG int V08 tmp7 u:2 <l:$284, c:$1c5>
N007 ( 2, 3) [000193] -A------R--- \--* ASG int
N006 ( 1, 1) [000191] D------N---- \--* LCL_VAR int V08 tmp7 d:3
***** BB06, stmt 27
( 2, 3) [000190] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000188] ------------ | * PHI int
N001 ( 0, 0) [000265] ------------ | /--* PHI_ARG int V05 tmp4 u:8
N002 ( 0, 0) [000255] ------------ | \--* PHI_ARG int V05 tmp4 u:6 $283
N007 ( 2, 3) [000189] -A------R--- \--* ASG int
N006 ( 1, 1) [000187] D------N---- \--* LCL_VAR int V05 tmp4 d:7
***** BB06, stmt 28
( 4, 4) [000106] ------------ * STMT void (IL 0x000... ???)
N003 ( 1, 1) [000102] ------------ | /--* CNS_INT int 1 $4b
N004 ( 4, 4) [000103] ------------ | /--* ADD int $20a
N002 ( 2, 2) [000101] ------------ | | \--* HWIntrinsic int TrailingZeroCount $400
N001 ( 1, 1) [000100] ------------ | | \--* LCL_VAR int V08 tmp7 u:3 $285
N006 ( 4, 4) [000105] -A------R--- \--* ASG int $20a
N005 ( 1, 1) [000104] D------N---- \--* LCL_VAR int V10 tmp9 d:2 $20a
***** BB06, stmt 29
( 4, 5) [000113] ------------ * STMT void (IL 0x000... ???)
N003 ( 2, 3) [000109] ---------U-- | /--* CAST long <- ulong <- uint $24a
N002 ( 1, 1) [000108] ------------ | | \--* LCL_VAR int V10 tmp9 u:2 $20a
N004 ( 4, 5) [000110] ------------ | /--* ADD long $24b
N001 ( 1, 1) [000107] ------------ | | \--* LCL_VAR long V09 tmp8 u:3 (last use) $145
N006 ( 4, 5) [000112] -A------R--- \--* ASG long $24b
N005 ( 1, 1) [000111] D------N---- \--* LCL_VAR long V09 tmp8 d:4 $24b
***** BB06, stmt 30
( 3, 3) [000119] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000115] ------------ | /--* CNS_INT int -1 $41
N003 ( 3, 3) [000116] ------------ | /--* ADD int $20b
N001 ( 1, 1) [000114] ------------ | | \--* LCL_VAR int V05 tmp4 u:7 (last use) $286
N005 ( 3, 3) [000118] -A------R--- \--* ASG int $20b
N004 ( 1, 1) [000117] D------N---- \--* LCL_VAR int V05 tmp4 d:8 $20b
***** BB06, stmt 31
( 8, 5) [000127] ------------ * STMT void (IL 0x000... ???)
N003 ( 1, 1) [000122] ------------ | /--* CNS_INT int 31 $4d
N004 ( 3, 3) [000123] ------------ | /--* AND int $20c
N002 ( 1, 1) [000121] ------------ | | \--* LCL_VAR int V10 tmp9 u:2 (last use) $20a
N005 ( 8, 5) [000124] ------------ | /--* RSZ int $20d
N001 ( 1, 1) [000120] ------------ | | \--* LCL_VAR int V08 tmp7 u:3 (last use) $285
N007 ( 8, 5) [000126] -A------R--- \--* ASG int $20d
N006 ( 1, 1) [000125] D------N---- \--* LCL_VAR int V08 tmp7 d:4 $20d
***** BB06, stmt 32
( 5, 5) [000098] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000097] ------------ \--* JTRUE void
N002 ( 1, 1) [000095] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000096] J------N---- \--* GT int $20e
N001 ( 1, 1) [000094] ------------ \--* LCL_VAR int V05 tmp4 u:8 $20b
------------ BB07 [000..001) (return), preds={BB05,BB06} succs={}
***** BB07, stmt 33
( 2, 3) [000198] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000196] ------------ | * PHI long
N001 ( 0, 0) [000259] ------------ | /--* PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000257] ------------ | \--* PHI_ARG long V09 tmp8 u:2 <l:$248, c:$249>
N007 ( 2, 3) [000197] -A------R--- \--* ASG long
N006 ( 1, 1) [000195] D------N---- \--* LCL_VAR long V09 tmp8 d:5
***** BB07, stmt 34
( 4, 4) [000011] ------------ * STMT void (IL ???... ???)
N004 ( 4, 4) [000010] ------------ \--* RETURN int $1c7
N002 ( 1, 1) [000131] ------------ | /--* CNS_INT int -1 $41
N003 ( 3, 3) [000132] ------------ \--* ADD int $210
N001 ( 1, 1) [000129] C----------- \--* LCL_VAR int V09 tmp8 u:5 (last use) $20f
-------------------------------------------------------------------------------------------------------------------
*************** In fgDetermineFirstColdBlock()
No procedure splitting will be done for this method
*************** In IR Rationalize
Trees before IR Rationalize
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target
BB02 [0002] 2 BB01,BB02 2 [000..001)-> BB02 ( cond ) i Loop Loop0 label target bwd
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target
BB04 [0005] 1 BB03 0.25 [000..001) i
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target
BB06 [0007] 2 BB05,BB06 2 [000..001)-> BB06 ( cond ) i Loop Loop0 label target bwd
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
( 5, 12) [000147] ------------ * STMT void (IL 0x000... ???)
N002 ( 5, 12) [000001] x---G------- | /--* IND long <l:$140, c:$180>
N001 ( 3, 10) [000176] ------------ | | \--* CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits] $100
N004 ( 5, 12) [000146] -A--G---R--- \--* ASG long <l:$140, c:$180>
N003 ( 1, 1) [000145] D------N---- \--* LCL_VAR long V02 tmp1 d:2 <l:$140, c:$180>
***** BB01, stmt 2
( 1, 3) [000150] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000003] ------------ | /--* LCL_VAR int V00 arg0 u:2 (last use) $80
N003 ( 1, 3) [000149] -A------R--- \--* ASG int $80
N002 ( 1, 1) [000148] D------N---- \--* LCL_VAR int V04 tmp3 d:2 $80
***** BB01, stmt 3
( 1, 3) [000016] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000013] ------------ | /--* LCL_VAR long V02 tmp1 u:2 <l:$140, c:$180>
N003 ( 1, 3) [000015] -A------R--- \--* ASG long <l:$140, c:$180>
N002 ( 1, 1) [000014] D------N---- \--* LCL_VAR long V03 tmp2 d:2 <l:$140, c:$180>
***** BB01, stmt 4
( 1, 3) [000020] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000017] ------------ | /--* LCL_VAR int V04 tmp3 u:2 $80
N003 ( 1, 3) [000019] -A------R--- \--* ASG int $80
N002 ( 1, 1) [000018] D------N---- \--* LCL_VAR int V05 tmp4 d:2 $80
***** BB01, stmt 5
( 5, 5) [000181] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000180] ------------ \--* JTRUE void
N002 ( 1, 1) [000179] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000177] J------N---- \--* LE int $200
N001 ( 1, 1) [000178] ------------ \--* LCL_VAR int V05 tmp4 u:2 $80
------------ BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
***** BB02, stmt 6
( 2, 3) [000226] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000224] ------------ | * PHI long
N001 ( 0, 0) [000239] ------------ | /--* PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000227] ------------ | \--* PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
N007 ( 2, 3) [000225] -A------R--- \--* ASG long
N006 ( 1, 1) [000223] D------N---- \--* LCL_VAR long V03 tmp2 d:3
***** BB02, stmt 7
( 2, 3) [000214] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000212] ------------ | * PHI int
N001 ( 0, 0) [000241] ------------ | /--* PHI_ARG int V04 tmp3 u:4
N002 ( 0, 0) [000229] ------------ | \--* PHI_ARG int V04 tmp3 u:2 $80
N007 ( 2, 3) [000213] -A------R--- \--* ASG int
N006 ( 1, 1) [000211] D------N---- \--* LCL_VAR int V04 tmp3 d:3
***** BB02, stmt 8
( 1, 3) [000031] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000028] ------------ | /--* LCL_VAR int V04 tmp3 u:3 $280
N003 ( 1, 3) [000030] -A------R--- \--* ASG int $280
N002 ( 1, 1) [000029] D------N---- \--* LCL_VAR int V05 tmp4 d:3 $280
***** BB02, stmt 9
( 1, 3) [000041] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000033] ------------ | /--* LCL_VAR long V03 tmp2 u:3 $141
N003 ( 1, 3) [000040] -A------R--- \--* ASG long $141
N002 ( 1, 1) [000039] D------N---- \--* LCL_VAR long V06 tmp5 d:2 $141
***** BB02, stmt 10
( 3, 3) [000044] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000036] ------------ | /--* CNS_INT long 8 $340
N003 ( 3, 3) [000037] ------------ | /--* ADD long $241
N001 ( 1, 1) [000034] ------------ | | \--* LCL_VAR long V06 tmp5 u:2 (last use) $141
N005 ( 3, 3) [000043] -A------R--- \--* ASG long $241
N004 ( 1, 1) [000038] D------N---- \--* LCL_VAR long V03 tmp2 d:4 $241
***** BB02, stmt 11
( 7, 7) [000052] ------------ * STMT void (IL 0x000... ???)
N005 ( 5, 5) [000047] ---XG------- | /--* CAST int <- long $201
N004 ( 4, 3) [000046] ---XG------- | | \--* HWIntrinsic long PopCount $380
N003 ( 3, 2) [000045] *--XG------- | | \--* IND long <l:$142, c:$302>
N002 ( 1, 1) [000042] ------------ | | \--* LCL_VAR long V06 tmp5 u:2 (last use) $141
N006 ( 7, 7) [000048] ---XG------- | /--* SUB int $202
N001 ( 1, 1) [000032] ------------ | | \--* LCL_VAR int V05 tmp4 u:3 (last use) $280
N008 ( 7, 7) [000051] -A-XG---R--- \--* ASG int $202
N007 ( 1, 1) [000050] D------N---- \--* LCL_VAR int V04 tmp3 d:4 $202
***** BB02, stmt 12
( 5, 5) [000026] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000025] ------------ \--* JTRUE void
N002 ( 1, 1) [000023] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000024] J------N---- \--* GT int $203
N001 ( 1, 1) [000022] ------------ \--* LCL_VAR int V04 tmp3 u:4 $202
------------ BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 13
( 2, 3) [000222] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000220] ------------ | * PHI long
N001 ( 0, 0) [000235] ------------ | /--* PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000231] ------------ | \--* PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
N007 ( 2, 3) [000221] -A------R--- \--* ASG long
N006 ( 1, 1) [000219] D------N---- \--* LCL_VAR long V03 tmp2 d:5
***** BB03, stmt 14
( 2, 3) [000218] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000216] ------------ | * PHI int
N001 ( 0, 0) [000237] ------------ | /--* PHI_ARG int V05 tmp4 u:3
N002 ( 0, 0) [000233] ------------ | \--* PHI_ARG int V05 tmp4 u:2 $80
N007 ( 2, 3) [000217] -A------R--- \--* ASG int
N006 ( 1, 1) [000215] D------N---- \--* LCL_VAR int V05 tmp4 d:4
***** BB03, stmt 15
( 3, 3) [000060] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000056] ------------ | /--* CNS_INT long -8 $342
N003 ( 3, 3) [000057] ------------ | /--* ADD long $242
N001 ( 1, 1) [000054] ------------ | | \--* LCL_VAR long V03 tmp2 u:5 (last use) $143
N005 ( 3, 3) [000059] -A------R--- \--* ASG long $242
N004 ( 1, 1) [000058] D------N---- \--* LCL_VAR long V07 tmp6 d:2 $242
***** BB03, stmt 16
( 6, 5) [000069] ------------ * STMT void (IL 0x000... ???)
N004 ( 4, 3) [000064] ---XG------- | /--* HWIntrinsic int PopCount $3c0
N003 ( 3, 2) [000063] *--XG------- | | \--* IND int <l:$282, c:$1c2>
N002 ( 1, 1) [000062] ------------ | | \--* LCL_VAR long V07 tmp6 u:2 $242
N005 ( 6, 5) [000065] ---XG------- | /--* SUB int $205
N001 ( 1, 1) [000061] ------------ | | \--* LCL_VAR int V05 tmp4 u:4 $281
N007 ( 6, 5) [000068] -A-XG---R--- \--* ASG int $205
N006 ( 1, 1) [000067] D------N---- \--* LCL_VAR int V04 tmp3 d:5 $205
***** BB03, stmt 17
( 5, 5) [000074] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000073] ------------ \--* JTRUE void
N002 ( 1, 1) [000071] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000072] J------N---- \--* LE int $206
N001 ( 1, 1) [000070] ------------ \--* LCL_VAR int V04 tmp3 u:5 $205
------------ BB04 [000..001), preds={BB03} succs={BB05}
***** BB04, stmt 18
( 1, 3) [000137] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000134] ------------ | /--* LCL_VAR int V04 tmp3 u:5 (last use) $205
N003 ( 1, 3) [000136] -A------R--- \--* ASG int $205
N002 ( 1, 1) [000135] D------N---- \--* LCL_VAR int V05 tmp4 d:5 $205
***** BB04, stmt 19
( 3, 3) [000144] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000140] ------------ | /--* CNS_INT long 4 $343
N003 ( 3, 3) [000141] ------------ | /--* ADD long $243
N001 ( 1, 1) [000138] ------------ | | \--* LCL_VAR long V07 tmp6 u:2 (last use) $242
N005 ( 3, 3) [000143] -A------R--- \--* ASG long $243
N004 ( 1, 1) [000142] D------N---- \--* LCL_VAR long V07 tmp6 d:3 $243
------------ BB05 [000..001) -> BB07 (cond), preds={BB03,BB04} succs={BB06,BB07}
***** BB05, stmt 20
( 6, 5) [000210] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000208] ------------ | * PHI long
N001 ( 0, 0) [000247] ------------ | /--* PHI_ARG long V07 tmp6 u:3
N002 ( 0, 0) [000243] ------------ | \--* PHI_ARG long V07 tmp6 u:2 $242
N007 ( 6, 5) [000209] -A------R--- \--* ASG long
N006 ( 3, 2) [000207] D------N---- \--* LCL_VAR long V07 tmp6 d:4
***** BB05, stmt 21
( 2, 3) [000206] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000204] ------------ | * PHI int
N001 ( 0, 0) [000249] ------------ | /--* PHI_ARG int V05 tmp4 u:5
N002 ( 0, 0) [000245] ------------ | \--* PHI_ARG int V05 tmp4 u:4 $281
N007 ( 2, 3) [000205] -A------R--- \--* ASG int
N006 ( 1, 1) [000203] D------N---- \--* LCL_VAR int V05 tmp4 d:6
***** BB05, stmt 22
( 3, 3) [000080] ------------ * STMT void (IL 0x000... ???)
N002 ( 3, 2) [000077] *--XG------- | /--* IND int <l:$284, c:$1c5>
N001 ( 1, 1) [000076] ------------ | | \--* LCL_VAR long V07 tmp6 u:4 $144
N004 ( 3, 3) [000079] -A-XG---R--- \--* ASG int <l:$284, c:$1c5>
N003 ( 1, 1) [000078] D------N---- \--* LCL_VAR int V08 tmp7 d:2 <l:$284, c:$1c5>
***** BB05, stmt 23
( 26, 9) [000092] ------------ * STMT void (IL 0x000... ???)
N006 ( 1, 1) [000088] ------------ | /--* CNS_INT long 5 $345
N007 ( 26, 9) [000089] ------------ | /--* LSH long <l:$248, c:$249>
N004 ( 1, 1) [000085] ------------ | | | /--* CNS_INT long 4 $343
N005 ( 24, 7) [000086] ------------ | | \--* DIV long <l:$246, c:$247>
N002 ( 1, 1) [000082] ------------ | | | /--* LCL_VAR long V02 tmp1 u:2 (last use) <l:$140, c:$180>
N003 ( 3, 3) [000083] ------------ | | \--* SUB long <l:$244, c:$245>
N001 ( 1, 1) [000081] ------------ | | \--* LCL_VAR long V07 tmp6 u:4 (last use) $144
N009 ( 26, 9) [000091] -A------R--- \--* ASG long <l:$248, c:$249>
N008 ( 1, 1) [000090] D------N---- \--* LCL_VAR long V09 tmp8 d:2 <l:$248, c:$249>
***** BB05, stmt 24
( 5, 5) [000186] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000185] ------------ \--* JTRUE void
N002 ( 1, 1) [000184] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000182] J------N---- \--* LE int $208
N001 ( 1, 1) [000183] ------------ \--* LCL_VAR int V05 tmp4 u:6 $283
------------ BB06 [000..001) -> BB06 (cond), preds={BB05,BB06} succs={BB07,BB06}
***** BB06, stmt 25
( 2, 3) [000202] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000200] ------------ | * PHI long
N001 ( 0, 0) [000261] ------------ | /--* PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000251] ------------ | \--* PHI_ARG long V09 tmp8 u:2 <l:$248, c:$249>
N007 ( 2, 3) [000201] -A------R--- \--* ASG long
N006 ( 1, 1) [000199] D------N---- \--* LCL_VAR long V09 tmp8 d:3
***** BB06, stmt 26
( 2, 3) [000194] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000192] ------------ | * PHI int
N001 ( 0, 0) [000263] ------------ | /--* PHI_ARG int V08 tmp7 u:4
N002 ( 0, 0) [000253] ------------ | \--* PHI_ARG int V08 tmp7 u:2 <l:$284, c:$1c5>
N007 ( 2, 3) [000193] -A------R--- \--* ASG int
N006 ( 1, 1) [000191] D------N---- \--* LCL_VAR int V08 tmp7 d:3
***** BB06, stmt 27
( 2, 3) [000190] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000188] ------------ | * PHI int
N001 ( 0, 0) [000265] ------------ | /--* PHI_ARG int V05 tmp4 u:8
N002 ( 0, 0) [000255] ------------ | \--* PHI_ARG int V05 tmp4 u:6 $283
N007 ( 2, 3) [000189] -A------R--- \--* ASG int
N006 ( 1, 1) [000187] D------N---- \--* LCL_VAR int V05 tmp4 d:7
***** BB06, stmt 28
( 4, 4) [000106] ------------ * STMT void (IL 0x000... ???)
N003 ( 1, 1) [000102] ------------ | /--* CNS_INT int 1 $4b
N004 ( 4, 4) [000103] ------------ | /--* ADD int $20a
N002 ( 2, 2) [000101] ------------ | | \--* HWIntrinsic int TrailingZeroCount $400
N001 ( 1, 1) [000100] ------------ | | \--* LCL_VAR int V08 tmp7 u:3 $285
N006 ( 4, 4) [000105] -A------R--- \--* ASG int $20a
N005 ( 1, 1) [000104] D------N---- \--* LCL_VAR int V10 tmp9 d:2 $20a
***** BB06, stmt 29
( 4, 5) [000113] ------------ * STMT void (IL 0x000... ???)
N003 ( 2, 3) [000109] ---------U-- | /--* CAST long <- ulong <- uint $24a
N002 ( 1, 1) [000108] ------------ | | \--* LCL_VAR int V10 tmp9 u:2 $20a
N004 ( 4, 5) [000110] ------------ | /--* ADD long $24b
N001 ( 1, 1) [000107] ------------ | | \--* LCL_VAR long V09 tmp8 u:3 (last use) $145
N006 ( 4, 5) [000112] -A------R--- \--* ASG long $24b
N005 ( 1, 1) [000111] D------N---- \--* LCL_VAR long V09 tmp8 d:4 $24b
***** BB06, stmt 30
( 3, 3) [000119] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000115] ------------ | /--* CNS_INT int -1 $41
N003 ( 3, 3) [000116] ------------ | /--* ADD int $20b
N001 ( 1, 1) [000114] ------------ | | \--* LCL_VAR int V05 tmp4 u:7 (last use) $286
N005 ( 3, 3) [000118] -A------R--- \--* ASG int $20b
N004 ( 1, 1) [000117] D------N---- \--* LCL_VAR int V05 tmp4 d:8 $20b
***** BB06, stmt 31
( 8, 5) [000127] ------------ * STMT void (IL 0x000... ???)
N003 ( 1, 1) [000122] ------------ | /--* CNS_INT int 31 $4d
N004 ( 3, 3) [000123] ------------ | /--* AND int $20c
N002 ( 1, 1) [000121] ------------ | | \--* LCL_VAR int V10 tmp9 u:2 (last use) $20a
N005 ( 8, 5) [000124] ------------ | /--* RSZ int $20d
N001 ( 1, 1) [000120] ------------ | | \--* LCL_VAR int V08 tmp7 u:3 (last use) $285
N007 ( 8, 5) [000126] -A------R--- \--* ASG int $20d
N006 ( 1, 1) [000125] D------N---- \--* LCL_VAR int V08 tmp7 d:4 $20d
***** BB06, stmt 32
( 5, 5) [000098] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000097] ------------ \--* JTRUE void
N002 ( 1, 1) [000095] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000096] J------N---- \--* GT int $20e
N001 ( 1, 1) [000094] ------------ \--* LCL_VAR int V05 tmp4 u:8 $20b
------------ BB07 [000..001) (return), preds={BB05,BB06} succs={}
***** BB07, stmt 33
( 2, 3) [000198] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000196] ------------ | * PHI long
N001 ( 0, 0) [000259] ------------ | /--* PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000257] ------------ | \--* PHI_ARG long V09 tmp8 u:2 <l:$248, c:$249>
N007 ( 2, 3) [000197] -A------R--- \--* ASG long
N006 ( 1, 1) [000195] D------N---- \--* LCL_VAR long V09 tmp8 d:5
***** BB07, stmt 34
( 4, 4) [000011] ------------ * STMT void (IL ???... ???)
N004 ( 4, 4) [000010] ------------ \--* RETURN int $1c7
N002 ( 1, 1) [000131] ------------ | /--* CNS_INT int -1 $41
N003 ( 3, 3) [000132] ------------ \--* ADD int $210
N001 ( 1, 1) [000129] C----------- \--* LCL_VAR int V09 tmp8 u:5 (last use) $20f
-------------------------------------------------------------------------------------------------------------------
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N004 ( 5, 12) [000146] DA--G------- * STORE_LCL_VAR long V02 tmp1 d:2
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N003 ( 1, 3) [000149] DA---------- * STORE_LCL_VAR int V04 tmp3 d:2
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N003 ( 1, 3) [000015] DA---------- * STORE_LCL_VAR long V03 tmp2 d:2
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N003 ( 1, 3) [000019] DA---------- * STORE_LCL_VAR int V05 tmp4 d:2
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N007 ( 2, 3) [000225] DA---------- * STORE_LCL_VAR long V03 tmp2 d:3
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N007 ( 2, 3) [000213] DA---------- * STORE_LCL_VAR int V04 tmp3 d:3
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N003 ( 1, 3) [000030] DA---------- * STORE_LCL_VAR int V05 tmp4 d:3
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N003 ( 1, 3) [000040] DA---------- * STORE_LCL_VAR long V06 tmp5 d:2
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N005 ( 3, 3) [000043] DA---------- * STORE_LCL_VAR long V03 tmp2 d:4
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N008 ( 7, 7) [000051] DA-XG------- * STORE_LCL_VAR int V04 tmp3 d:4
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N007 ( 2, 3) [000221] DA---------- * STORE_LCL_VAR long V03 tmp2 d:5
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N007 ( 2, 3) [000217] DA---------- * STORE_LCL_VAR int V05 tmp4 d:4
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N005 ( 3, 3) [000059] DA---------- * STORE_LCL_VAR long V07 tmp6 d:2
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N007 ( 6, 5) [000068] DA-XG------- * STORE_LCL_VAR int V04 tmp3 d:5
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N003 ( 1, 3) [000136] DA---------- * STORE_LCL_VAR int V05 tmp4 d:5
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N005 ( 3, 3) [000143] DA---------- * STORE_LCL_VAR long V07 tmp6 d:3
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N007 ( 6, 5) [000209] DA---------- * STORE_LCL_VAR long V07 tmp6 d:4
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N007 ( 2, 3) [000205] DA---------- * STORE_LCL_VAR int V05 tmp4 d:6
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N004 ( 3, 3) [000079] DA-XG------- * STORE_LCL_VAR int V08 tmp7 d:2
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N009 ( 26, 9) [000091] DA---------- * STORE_LCL_VAR long V09 tmp8 d:2
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N007 ( 2, 3) [000201] DA---------- * STORE_LCL_VAR long V09 tmp8 d:3
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N007 ( 2, 3) [000193] DA---------- * STORE_LCL_VAR int V08 tmp7 d:3
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N007 ( 2, 3) [000189] DA---------- * STORE_LCL_VAR int V05 tmp4 d:7
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N006 ( 4, 4) [000105] DA---------- * STORE_LCL_VAR int V10 tmp9 d:2
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N006 ( 4, 5) [000112] DA---------- * STORE_LCL_VAR long V09 tmp8 d:4
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N005 ( 3, 3) [000118] DA---------- * STORE_LCL_VAR int V05 tmp4 d:8
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N007 ( 8, 5) [000126] DA---------- * STORE_LCL_VAR int V08 tmp7 d:4
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N007 ( 2, 3) [000197] DA---------- * STORE_LCL_VAR long V09 tmp8 d:5
*************** Exiting IR Rationalize
Trees after IR Rationalize
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target LIR
BB02 [0002] 2 BB01,BB02 2 [000..001)-> BB02 ( cond ) i Loop Loop0 label target bwd LIR
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target LIR
BB04 [0005] 1 BB03 0.25 [000..001) i LIR
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target LIR
BB06 [0007] 2 BB05,BB06 2 [000..001)-> BB06 ( cond ) i Loop Loop0 label target bwd LIR
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target LIR
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
( 5, 12) [000147] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 3, 10) [000176] ------------ t176 = CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits] $100
/--* t176 long
N002 ( 5, 12) [000001] x---G------- t1 = * IND long <l:$140, c:$180>
/--* t1 long
N004 ( 5, 12) [000146] DA--G------- * STORE_LCL_VAR long V02 tmp1 d:2
( 1, 3) [000150] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000003] ------------ t3 = LCL_VAR int V00 arg0 u:2 (last use) $80
/--* t3 int
N003 ( 1, 3) [000149] DA---------- * STORE_LCL_VAR int V04 tmp3 d:2
( 1, 3) [000016] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000013] ------------ t13 = LCL_VAR long V02 tmp1 u:2 <l:$140, c:$180>
/--* t13 long
N003 ( 1, 3) [000015] DA---------- * STORE_LCL_VAR long V03 tmp2 d:2
( 1, 3) [000020] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000017] ------------ t17 = LCL_VAR int V04 tmp3 u:2 $80
/--* t17 int
N003 ( 1, 3) [000019] DA---------- * STORE_LCL_VAR int V05 tmp4 d:2
( 5, 5) [000181] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000178] ------------ t178 = LCL_VAR int V05 tmp4 u:2 $80
N002 ( 1, 1) [000179] ------------ t179 = CNS_INT int 0 $40
/--* t178 int
+--* t179 int
N003 ( 3, 3) [000177] J------N---- t177 = * LE int $200
/--* t177 int
N004 ( 5, 5) [000180] ------------ * JTRUE void
------------ BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
N001 ( 0, 0) [000239] ------------ t239 = PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000227] ------------ t227 = PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
/--* t239 long
+--* t227 long
N005 ( 2, 2) [000224] ------------ t224 = * PHI long
/--* t224 long
N007 ( 2, 3) [000225] DA---------- * STORE_LCL_VAR long V03 tmp2 d:3
N001 ( 0, 0) [000241] ------------ t241 = PHI_ARG int V04 tmp3 u:4
N002 ( 0, 0) [000229] ------------ t229 = PHI_ARG int V04 tmp3 u:2 $80
/--* t241 int
+--* t229 int
N005 ( 2, 2) [000212] ------------ t212 = * PHI int
/--* t212 int
N007 ( 2, 3) [000213] DA---------- * STORE_LCL_VAR int V04 tmp3 d:3
( 1, 3) [000031] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000028] ------------ t28 = LCL_VAR int V04 tmp3 u:3 $280
/--* t28 int
N003 ( 1, 3) [000030] DA---------- * STORE_LCL_VAR int V05 tmp4 d:3
( 1, 3) [000041] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000033] ------------ t33 = LCL_VAR long V03 tmp2 u:3 $141
/--* t33 long
N003 ( 1, 3) [000040] DA---------- * STORE_LCL_VAR long V06 tmp5 d:2
( 3, 3) [000044] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000034] ------------ t34 = LCL_VAR long V06 tmp5 u:2 (last use) $141
N002 ( 1, 1) [000036] ------------ t36 = CNS_INT long 8 $340
/--* t34 long
+--* t36 long
N003 ( 3, 3) [000037] ------------ t37 = * ADD long $241
/--* t37 long
N005 ( 3, 3) [000043] DA---------- * STORE_LCL_VAR long V03 tmp2 d:4
( 7, 7) [000052] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000032] ------------ t32 = LCL_VAR int V05 tmp4 u:3 (last use) $280
N002 ( 1, 1) [000042] ------------ t42 = LCL_VAR long V06 tmp5 u:2 (last use) $141
/--* t42 long
N003 ( 3, 2) [000045] *--XG------- t45 = * IND long <l:$142, c:$302>
/--* t45 long
N004 ( 4, 3) [000046] ---XG------- t46 = * HWIntrinsic long PopCount $380
/--* t46 long
N005 ( 5, 5) [000047] ---XG------- t47 = * CAST int <- long $201
/--* t32 int
+--* t47 int
N006 ( 7, 7) [000048] ---XG------- t48 = * SUB int $202
/--* t48 int
N008 ( 7, 7) [000051] DA-XG------- * STORE_LCL_VAR int V04 tmp3 d:4
( 5, 5) [000026] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000022] ------------ t22 = LCL_VAR int V04 tmp3 u:4 $202
N002 ( 1, 1) [000023] ------------ t23 = CNS_INT int 0 $40
/--* t22 int
+--* t23 int
N003 ( 3, 3) [000024] J------N---- t24 = * GT int $203
/--* t24 int
N004 ( 5, 5) [000025] ------------ * JTRUE void
------------ BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
N001 ( 0, 0) [000235] ------------ t235 = PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000231] ------------ t231 = PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
/--* t235 long
+--* t231 long
N005 ( 2, 2) [000220] ------------ t220 = * PHI long
/--* t220 long
N007 ( 2, 3) [000221] DA---------- * STORE_LCL_VAR long V03 tmp2 d:5
N001 ( 0, 0) [000237] ------------ t237 = PHI_ARG int V05 tmp4 u:3
N002 ( 0, 0) [000233] ------------ t233 = PHI_ARG int V05 tmp4 u:2 $80
/--* t237 int
+--* t233 int
N005 ( 2, 2) [000216] ------------ t216 = * PHI int
/--* t216 int
N007 ( 2, 3) [000217] DA---------- * STORE_LCL_VAR int V05 tmp4 d:4
( 3, 3) [000060] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000054] ------------ t54 = LCL_VAR long V03 tmp2 u:5 (last use) $143
N002 ( 1, 1) [000056] ------------ t56 = CNS_INT long -8 $342
/--* t54 long
+--* t56 long
N003 ( 3, 3) [000057] ------------ t57 = * ADD long $242
/--* t57 long
N005 ( 3, 3) [000059] DA---------- * STORE_LCL_VAR long V07 tmp6 d:2
( 6, 5) [000069] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000061] ------------ t61 = LCL_VAR int V05 tmp4 u:4 $281
N002 ( 1, 1) [000062] ------------ t62 = LCL_VAR long V07 tmp6 u:2 $242
/--* t62 long
N003 ( 3, 2) [000063] *--XG------- t63 = * IND int <l:$282, c:$1c2>
/--* t63 int
N004 ( 4, 3) [000064] ---XG------- t64 = * HWIntrinsic int PopCount $3c0
/--* t61 int
+--* t64 int
N005 ( 6, 5) [000065] ---XG------- t65 = * SUB int $205
/--* t65 int
N007 ( 6, 5) [000068] DA-XG------- * STORE_LCL_VAR int V04 tmp3 d:5
( 5, 5) [000074] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000070] ------------ t70 = LCL_VAR int V04 tmp3 u:5 $205
N002 ( 1, 1) [000071] ------------ t71 = CNS_INT int 0 $40
/--* t70 int
+--* t71 int
N003 ( 3, 3) [000072] J------N---- t72 = * LE int $206
/--* t72 int
N004 ( 5, 5) [000073] ------------ * JTRUE void
------------ BB04 [000..001), preds={BB03} succs={BB05}
( 1, 3) [000137] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000134] ------------ t134 = LCL_VAR int V04 tmp3 u:5 (last use) $205
/--* t134 int
N003 ( 1, 3) [000136] DA---------- * STORE_LCL_VAR int V05 tmp4 d:5
( 3, 3) [000144] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000138] ------------ t138 = LCL_VAR long V07 tmp6 u:2 (last use) $242
N002 ( 1, 1) [000140] ------------ t140 = CNS_INT long 4 $343
/--* t138 long
+--* t140 long
N003 ( 3, 3) [000141] ------------ t141 = * ADD long $243
/--* t141 long
N005 ( 3, 3) [000143] DA---------- * STORE_LCL_VAR long V07 tmp6 d:3
------------ BB05 [000..001) -> BB07 (cond), preds={BB03,BB04} succs={BB06,BB07}
N001 ( 0, 0) [000247] ------------ t247 = PHI_ARG long V07 tmp6 u:3
N002 ( 0, 0) [000243] ------------ t243 = PHI_ARG long V07 tmp6 u:2 $242
/--* t247 long
+--* t243 long
N005 ( 2, 2) [000208] ------------ t208 = * PHI long
/--* t208 long
N007 ( 6, 5) [000209] DA---------- * STORE_LCL_VAR long V07 tmp6 d:4
N001 ( 0, 0) [000249] ------------ t249 = PHI_ARG int V05 tmp4 u:5
N002 ( 0, 0) [000245] ------------ t245 = PHI_ARG int V05 tmp4 u:4 $281
/--* t249 int
+--* t245 int
N005 ( 2, 2) [000204] ------------ t204 = * PHI int
/--* t204 int
N007 ( 2, 3) [000205] DA---------- * STORE_LCL_VAR int V05 tmp4 d:6
( 3, 3) [000080] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000076] ------------ t76 = LCL_VAR long V07 tmp6 u:4 $144
/--* t76 long
N002 ( 3, 2) [000077] *--XG------- t77 = * IND int <l:$284, c:$1c5>
/--* t77 int
N004 ( 3, 3) [000079] DA-XG------- * STORE_LCL_VAR int V08 tmp7 d:2
( 26, 9) [000092] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000081] ------------ t81 = LCL_VAR long V07 tmp6 u:4 (last use) $144
N002 ( 1, 1) [000082] ------------ t82 = LCL_VAR long V02 tmp1 u:2 (last use) <l:$140, c:$180>
/--* t81 long
+--* t82 long
N003 ( 3, 3) [000083] ------------ t83 = * SUB long <l:$244, c:$245>
N004 ( 1, 1) [000085] ------------ t85 = CNS_INT long 4 $343
/--* t83 long
+--* t85 long
N005 ( 24, 7) [000086] ------------ t86 = * DIV long <l:$246, c:$247>
N006 ( 1, 1) [000088] ------------ t88 = CNS_INT long 5 $345
/--* t86 long
+--* t88 long
N007 ( 26, 9) [000089] ------------ t89 = * LSH long <l:$248, c:$249>
/--* t89 long
N009 ( 26, 9) [000091] DA---------- * STORE_LCL_VAR long V09 tmp8 d:2
( 5, 5) [000186] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000183] ------------ t183 = LCL_VAR int V05 tmp4 u:6 $283
N002 ( 1, 1) [000184] ------------ t184 = CNS_INT int 0 $40
/--* t183 int
+--* t184 int
N003 ( 3, 3) [000182] J------N---- t182 = * LE int $208
/--* t182 int
N004 ( 5, 5) [000185] ------------ * JTRUE void
------------ BB06 [000..001) -> BB06 (cond), preds={BB05,BB06} succs={BB07,BB06}
N001 ( 0, 0) [000261] ------------ t261 = PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000251] ------------ t251 = PHI_ARG long V09 tmp8 u:2 <l:$248, c:$249>
/--* t261 long
+--* t251 long
N005 ( 2, 2) [000200] ------------ t200 = * PHI long
/--* t200 long
N007 ( 2, 3) [000201] DA---------- * STORE_LCL_VAR long V09 tmp8 d:3
N001 ( 0, 0) [000263] ------------ t263 = PHI_ARG int V08 tmp7 u:4
N002 ( 0, 0) [000253] ------------ t253 = PHI_ARG int V08 tmp7 u:2 <l:$284, c:$1c5>
/--* t263 int
+--* t253 int
N005 ( 2, 2) [000192] ------------ t192 = * PHI int
/--* t192 int
N007 ( 2, 3) [000193] DA---------- * STORE_LCL_VAR int V08 tmp7 d:3
N001 ( 0, 0) [000265] ------------ t265 = PHI_ARG int V05 tmp4 u:8
N002 ( 0, 0) [000255] ------------ t255 = PHI_ARG int V05 tmp4 u:6 $283
/--* t265 int
+--* t255 int
N005 ( 2, 2) [000188] ------------ t188 = * PHI int
/--* t188 int
N007 ( 2, 3) [000189] DA---------- * STORE_LCL_VAR int V05 tmp4 d:7
( 4, 4) [000106] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000100] ------------ t100 = LCL_VAR int V08 tmp7 u:3 $285
/--* t100 int
N002 ( 2, 2) [000101] ------------ t101 = * HWIntrinsic int TrailingZeroCount $400
N003 ( 1, 1) [000102] ------------ t102 = CNS_INT int 1 $4b
/--* t101 int
+--* t102 int
N004 ( 4, 4) [000103] ------------ t103 = * ADD int $20a
/--* t103 int
N006 ( 4, 4) [000105] DA---------- * STORE_LCL_VAR int V10 tmp9 d:2
( 4, 5) [000113] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000107] ------------ t107 = LCL_VAR long V09 tmp8 u:3 (last use) $145
N002 ( 1, 1) [000108] ------------ t108 = LCL_VAR int V10 tmp9 u:2 $20a
/--* t108 int
N003 ( 2, 3) [000109] ---------U-- t109 = * CAST long <- ulong <- uint $24a
/--* t107 long
+--* t109 long
N004 ( 4, 5) [000110] ------------ t110 = * ADD long $24b
/--* t110 long
N006 ( 4, 5) [000112] DA---------- * STORE_LCL_VAR long V09 tmp8 d:4
( 3, 3) [000119] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000114] ------------ t114 = LCL_VAR int V05 tmp4 u:7 (last use) $286
N002 ( 1, 1) [000115] ------------ t115 = CNS_INT int -1 $41
/--* t114 int
+--* t115 int
N003 ( 3, 3) [000116] ------------ t116 = * ADD int $20b
/--* t116 int
N005 ( 3, 3) [000118] DA---------- * STORE_LCL_VAR int V05 tmp4 d:8
( 8, 5) [000127] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000120] ------------ t120 = LCL_VAR int V08 tmp7 u:3 (last use) $285
N002 ( 1, 1) [000121] ------------ t121 = LCL_VAR int V10 tmp9 u:2 (last use) $20a
N003 ( 1, 1) [000122] ------------ t122 = CNS_INT int 31 $4d
/--* t121 int
+--* t122 int
N004 ( 3, 3) [000123] ------------ t123 = * AND int $20c
/--* t120 int
+--* t123 int
N005 ( 8, 5) [000124] ------------ t124 = * RSZ int $20d
/--* t124 int
N007 ( 8, 5) [000126] DA---------- * STORE_LCL_VAR int V08 tmp7 d:4
( 5, 5) [000098] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000094] ------------ t94 = LCL_VAR int V05 tmp4 u:8 $20b
N002 ( 1, 1) [000095] ------------ t95 = CNS_INT int 0 $40
/--* t94 int
+--* t95 int
N003 ( 3, 3) [000096] J------N---- t96 = * GT int $20e
/--* t96 int
N004 ( 5, 5) [000097] ------------ * JTRUE void
------------ BB07 [000..001) (return), preds={BB05,BB06} succs={}
N001 ( 0, 0) [000259] ------------ t259 = PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000257] ------------ t257 = PHI_ARG long V09 tmp8 u:2 <l:$248, c:$249>
/--* t259 long
+--* t257 long
N005 ( 2, 2) [000196] ------------ t196 = * PHI long
/--* t196 long
N007 ( 2, 3) [000197] DA---------- * STORE_LCL_VAR long V09 tmp8 d:5
N001 ( 1, 1) [000129] C----------- t129 = LCL_VAR int V09 tmp8 u:5 (last use) $20f
N002 ( 1, 1) [000131] ------------ t131 = CNS_INT int -1 $41
/--* t129 int
+--* t131 int
N003 ( 3, 3) [000132] ------------ t132 = * ADD int $210
/--* t132 int
N004 ( 4, 4) [000010] ------------ * RETURN int $1c7
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In fgDebugCheckBBlist
*************** In Lowering
Trees before Lowering
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target LIR
BB02 [0002] 2 BB01,BB02 2 [000..001)-> BB02 ( cond ) i Loop Loop0 label target bwd LIR
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target LIR
BB04 [0005] 1 BB03 0.25 [000..001) i LIR
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target LIR
BB06 [0007] 2 BB05,BB06 2 [000..001)-> BB06 ( cond ) i Loop Loop0 label target bwd LIR
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target LIR
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
( 5, 12) [000147] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 3, 10) [000176] ------------ t176 = CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits] $100
/--* t176 long
N002 ( 5, 12) [000001] x---G------- t1 = * IND long <l:$140, c:$180>
/--* t1 long
N004 ( 5, 12) [000146] DA--G------- * STORE_LCL_VAR long V02 tmp1 d:2
( 1, 3) [000150] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000003] ------------ t3 = LCL_VAR int V00 arg0 u:2 (last use) $80
/--* t3 int
N003 ( 1, 3) [000149] DA---------- * STORE_LCL_VAR int V04 tmp3 d:2
( 1, 3) [000016] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000013] ------------ t13 = LCL_VAR long V02 tmp1 u:2 <l:$140, c:$180>
/--* t13 long
N003 ( 1, 3) [000015] DA---------- * STORE_LCL_VAR long V03 tmp2 d:2
( 1, 3) [000020] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000017] ------------ t17 = LCL_VAR int V04 tmp3 u:2 $80
/--* t17 int
N003 ( 1, 3) [000019] DA---------- * STORE_LCL_VAR int V05 tmp4 d:2
( 5, 5) [000181] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000178] ------------ t178 = LCL_VAR int V05 tmp4 u:2 $80
N002 ( 1, 1) [000179] ------------ t179 = CNS_INT int 0 $40
/--* t178 int
+--* t179 int
N003 ( 3, 3) [000177] J------N---- t177 = * LE int $200
/--* t177 int
N004 ( 5, 5) [000180] ------------ * JTRUE void
------------ BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
N001 ( 0, 0) [000239] ------------ t239 = PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000227] ------------ t227 = PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
/--* t239 long
+--* t227 long
N005 ( 2, 2) [000224] ------------ t224 = * PHI long
/--* t224 long
N007 ( 2, 3) [000225] DA---------- * STORE_LCL_VAR long V03 tmp2 d:3
N001 ( 0, 0) [000241] ------------ t241 = PHI_ARG int V04 tmp3 u:4
N002 ( 0, 0) [000229] ------------ t229 = PHI_ARG int V04 tmp3 u:2 $80
/--* t241 int
+--* t229 int
N005 ( 2, 2) [000212] ------------ t212 = * PHI int
/--* t212 int
N007 ( 2, 3) [000213] DA---------- * STORE_LCL_VAR int V04 tmp3 d:3
( 1, 3) [000031] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000028] ------------ t28 = LCL_VAR int V04 tmp3 u:3 $280
/--* t28 int
N003 ( 1, 3) [000030] DA---------- * STORE_LCL_VAR int V05 tmp4 d:3
( 1, 3) [000041] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000033] ------------ t33 = LCL_VAR long V03 tmp2 u:3 $141
/--* t33 long
N003 ( 1, 3) [000040] DA---------- * STORE_LCL_VAR long V06 tmp5 d:2
( 3, 3) [000044] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000034] ------------ t34 = LCL_VAR long V06 tmp5 u:2 (last use) $141
N002 ( 1, 1) [000036] ------------ t36 = CNS_INT long 8 $340
/--* t34 long
+--* t36 long
N003 ( 3, 3) [000037] ------------ t37 = * ADD long $241
/--* t37 long
N005 ( 3, 3) [000043] DA---------- * STORE_LCL_VAR long V03 tmp2 d:4
( 7, 7) [000052] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000032] ------------ t32 = LCL_VAR int V05 tmp4 u:3 (last use) $280
N002 ( 1, 1) [000042] ------------ t42 = LCL_VAR long V06 tmp5 u:2 (last use) $141
/--* t42 long
N003 ( 3, 2) [000045] *--XG------- t45 = * IND long <l:$142, c:$302>
/--* t45 long
N004 ( 4, 3) [000046] ---XG------- t46 = * HWIntrinsic long PopCount $380
/--* t46 long
N005 ( 5, 5) [000047] ---XG------- t47 = * CAST int <- long $201
/--* t32 int
+--* t47 int
N006 ( 7, 7) [000048] ---XG------- t48 = * SUB int $202
/--* t48 int
N008 ( 7, 7) [000051] DA-XG------- * STORE_LCL_VAR int V04 tmp3 d:4
( 5, 5) [000026] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000022] ------------ t22 = LCL_VAR int V04 tmp3 u:4 $202
N002 ( 1, 1) [000023] ------------ t23 = CNS_INT int 0 $40
/--* t22 int
+--* t23 int
N003 ( 3, 3) [000024] J------N---- t24 = * GT int $203
/--* t24 int
N004 ( 5, 5) [000025] ------------ * JTRUE void
------------ BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
N001 ( 0, 0) [000235] ------------ t235 = PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000231] ------------ t231 = PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
/--* t235 long
+--* t231 long
N005 ( 2, 2) [000220] ------------ t220 = * PHI long
/--* t220 long
N007 ( 2, 3) [000221] DA---------- * STORE_LCL_VAR long V03 tmp2 d:5
N001 ( 0, 0) [000237] ------------ t237 = PHI_ARG int V05 tmp4 u:3
N002 ( 0, 0) [000233] ------------ t233 = PHI_ARG int V05 tmp4 u:2 $80
/--* t237 int
+--* t233 int
N005 ( 2, 2) [000216] ------------ t216 = * PHI int
/--* t216 int
N007 ( 2, 3) [000217] DA---------- * STORE_LCL_VAR int V05 tmp4 d:4
( 3, 3) [000060] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000054] ------------ t54 = LCL_VAR long V03 tmp2 u:5 (last use) $143
N002 ( 1, 1) [000056] ------------ t56 = CNS_INT long -8 $342
/--* t54 long
+--* t56 long
N003 ( 3, 3) [000057] ------------ t57 = * ADD long $242
/--* t57 long
N005 ( 3, 3) [000059] DA---------- * STORE_LCL_VAR long V07 tmp6 d:2
( 6, 5) [000069] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000061] ------------ t61 = LCL_VAR int V05 tmp4 u:4 $281
N002 ( 1, 1) [000062] ------------ t62 = LCL_VAR long V07 tmp6 u:2 $242
/--* t62 long
N003 ( 3, 2) [000063] *--XG------- t63 = * IND int <l:$282, c:$1c2>
/--* t63 int
N004 ( 4, 3) [000064] ---XG------- t64 = * HWIntrinsic int PopCount $3c0
/--* t61 int
+--* t64 int
N005 ( 6, 5) [000065] ---XG------- t65 = * SUB int $205
/--* t65 int
N007 ( 6, 5) [000068] DA-XG------- * STORE_LCL_VAR int V04 tmp3 d:5
( 5, 5) [000074] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000070] ------------ t70 = LCL_VAR int V04 tmp3 u:5 $205
N002 ( 1, 1) [000071] ------------ t71 = CNS_INT int 0 $40
/--* t70 int
+--* t71 int
N003 ( 3, 3) [000072] J------N---- t72 = * LE int $206
/--* t72 int
N004 ( 5, 5) [000073] ------------ * JTRUE void
------------ BB04 [000..001), preds={BB03} succs={BB05}
( 1, 3) [000137] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000134] ------------ t134 = LCL_VAR int V04 tmp3 u:5 (last use) $205
/--* t134 int
N003 ( 1, 3) [000136] DA---------- * STORE_LCL_VAR int V05 tmp4 d:5
( 3, 3) [000144] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000138] ------------ t138 = LCL_VAR long V07 tmp6 u:2 (last use) $242
N002 ( 1, 1) [000140] ------------ t140 = CNS_INT long 4 $343
/--* t138 long
+--* t140 long
N003 ( 3, 3) [000141] ------------ t141 = * ADD long $243
/--* t141 long
N005 ( 3, 3) [000143] DA---------- * STORE_LCL_VAR long V07 tmp6 d:3
------------ BB05 [000..001) -> BB07 (cond), preds={BB03,BB04} succs={BB06,BB07}
N001 ( 0, 0) [000247] ------------ t247 = PHI_ARG long V07 tmp6 u:3
N002 ( 0, 0) [000243] ------------ t243 = PHI_ARG long V07 tmp6 u:2 $242
/--* t247 long
+--* t243 long
N005 ( 2, 2) [000208] ------------ t208 = * PHI long
/--* t208 long
N007 ( 6, 5) [000209] DA---------- * STORE_LCL_VAR long V07 tmp6 d:4
N001 ( 0, 0) [000249] ------------ t249 = PHI_ARG int V05 tmp4 u:5
N002 ( 0, 0) [000245] ------------ t245 = PHI_ARG int V05 tmp4 u:4 $281
/--* t249 int
+--* t245 int
N005 ( 2, 2) [000204] ------------ t204 = * PHI int
/--* t204 int
N007 ( 2, 3) [000205] DA---------- * STORE_LCL_VAR int V05 tmp4 d:6
( 3, 3) [000080] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000076] ------------ t76 = LCL_VAR long V07 tmp6 u:4 $144
/--* t76 long
N002 ( 3, 2) [000077] *--XG------- t77 = * IND int <l:$284, c:$1c5>
/--* t77 int
N004 ( 3, 3) [000079] DA-XG------- * STORE_LCL_VAR int V08 tmp7 d:2
( 26, 9) [000092] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000081] ------------ t81 = LCL_VAR long V07 tmp6 u:4 (last use) $144
N002 ( 1, 1) [000082] ------------ t82 = LCL_VAR long V02 tmp1 u:2 (last use) <l:$140, c:$180>
/--* t81 long
+--* t82 long
N003 ( 3, 3) [000083] ------------ t83 = * SUB long <l:$244, c:$245>
N004 ( 1, 1) [000085] ------------ t85 = CNS_INT long 4 $343
/--* t83 long
+--* t85 long
N005 ( 24, 7) [000086] ------------ t86 = * DIV long <l:$246, c:$247>
N006 ( 1, 1) [000088] ------------ t88 = CNS_INT long 5 $345
/--* t86 long
+--* t88 long
N007 ( 26, 9) [000089] ------------ t89 = * LSH long <l:$248, c:$249>
/--* t89 long
N009 ( 26, 9) [000091] DA---------- * STORE_LCL_VAR long V09 tmp8 d:2
( 5, 5) [000186] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000183] ------------ t183 = LCL_VAR int V05 tmp4 u:6 $283
N002 ( 1, 1) [000184] ------------ t184 = CNS_INT int 0 $40
/--* t183 int
+--* t184 int
N003 ( 3, 3) [000182] J------N---- t182 = * LE int $208
/--* t182 int
N004 ( 5, 5) [000185] ------------ * JTRUE void
------------ BB06 [000..001) -> BB06 (cond), preds={BB05,BB06} succs={BB07,BB06}
N001 ( 0, 0) [000261] ------------ t261 = PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000251] ------------ t251 = PHI_ARG long V09 tmp8 u:2 <l:$248, c:$249>
/--* t261 long
+--* t251 long
N005 ( 2, 2) [000200] ------------ t200 = * PHI long
/--* t200 long
N007 ( 2, 3) [000201] DA---------- * STORE_LCL_VAR long V09 tmp8 d:3
N001 ( 0, 0) [000263] ------------ t263 = PHI_ARG int V08 tmp7 u:4
N002 ( 0, 0) [000253] ------------ t253 = PHI_ARG int V08 tmp7 u:2 <l:$284, c:$1c5>
/--* t263 int
+--* t253 int
N005 ( 2, 2) [000192] ------------ t192 = * PHI int
/--* t192 int
N007 ( 2, 3) [000193] DA---------- * STORE_LCL_VAR int V08 tmp7 d:3
N001 ( 0, 0) [000265] ------------ t265 = PHI_ARG int V05 tmp4 u:8
N002 ( 0, 0) [000255] ------------ t255 = PHI_ARG int V05 tmp4 u:6 $283
/--* t265 int
+--* t255 int
N005 ( 2, 2) [000188] ------------ t188 = * PHI int
/--* t188 int
N007 ( 2, 3) [000189] DA---------- * STORE_LCL_VAR int V05 tmp4 d:7
( 4, 4) [000106] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000100] ------------ t100 = LCL_VAR int V08 tmp7 u:3 $285
/--* t100 int
N002 ( 2, 2) [000101] ------------ t101 = * HWIntrinsic int TrailingZeroCount $400
N003 ( 1, 1) [000102] ------------ t102 = CNS_INT int 1 $4b
/--* t101 int
+--* t102 int
N004 ( 4, 4) [000103] ------------ t103 = * ADD int $20a
/--* t103 int
N006 ( 4, 4) [000105] DA---------- * STORE_LCL_VAR int V10 tmp9 d:2
( 4, 5) [000113] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000107] ------------ t107 = LCL_VAR long V09 tmp8 u:3 (last use) $145
N002 ( 1, 1) [000108] ------------ t108 = LCL_VAR int V10 tmp9 u:2 $20a
/--* t108 int
N003 ( 2, 3) [000109] ---------U-- t109 = * CAST long <- ulong <- uint $24a
/--* t107 long
+--* t109 long
N004 ( 4, 5) [000110] ------------ t110 = * ADD long $24b
/--* t110 long
N006 ( 4, 5) [000112] DA---------- * STORE_LCL_VAR long V09 tmp8 d:4
( 3, 3) [000119] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000114] ------------ t114 = LCL_VAR int V05 tmp4 u:7 (last use) $286
N002 ( 1, 1) [000115] ------------ t115 = CNS_INT int -1 $41
/--* t114 int
+--* t115 int
N003 ( 3, 3) [000116] ------------ t116 = * ADD int $20b
/--* t116 int
N005 ( 3, 3) [000118] DA---------- * STORE_LCL_VAR int V05 tmp4 d:8
( 8, 5) [000127] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000120] ------------ t120 = LCL_VAR int V08 tmp7 u:3 (last use) $285
N002 ( 1, 1) [000121] ------------ t121 = LCL_VAR int V10 tmp9 u:2 (last use) $20a
N003 ( 1, 1) [000122] ------------ t122 = CNS_INT int 31 $4d
/--* t121 int
+--* t122 int
N004 ( 3, 3) [000123] ------------ t123 = * AND int $20c
/--* t120 int
+--* t123 int
N005 ( 8, 5) [000124] ------------ t124 = * RSZ int $20d
/--* t124 int
N007 ( 8, 5) [000126] DA---------- * STORE_LCL_VAR int V08 tmp7 d:4
( 5, 5) [000098] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000094] ------------ t94 = LCL_VAR int V05 tmp4 u:8 $20b
N002 ( 1, 1) [000095] ------------ t95 = CNS_INT int 0 $40
/--* t94 int
+--* t95 int
N003 ( 3, 3) [000096] J------N---- t96 = * GT int $20e
/--* t96 int
N004 ( 5, 5) [000097] ------------ * JTRUE void
------------ BB07 [000..001) (return), preds={BB05,BB06} succs={}
N001 ( 0, 0) [000259] ------------ t259 = PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000257] ------------ t257 = PHI_ARG long V09 tmp8 u:2 <l:$248, c:$249>
/--* t259 long
+--* t257 long
N005 ( 2, 2) [000196] ------------ t196 = * PHI long
/--* t196 long
N007 ( 2, 3) [000197] DA---------- * STORE_LCL_VAR long V09 tmp8 d:5
N001 ( 1, 1) [000129] C----------- t129 = LCL_VAR int V09 tmp8 u:5 (last use) $20f
N002 ( 1, 1) [000131] ------------ t131 = CNS_INT int -1 $41
/--* t129 int
+--* t131 int
N003 ( 3, 3) [000132] ------------ t132 = * ADD int $210
/--* t132 int
N004 ( 4, 4) [000010] ------------ * RETURN int $1c7
-------------------------------------------------------------------------------------------------------------------
No addressing mode:
N001 ( 3, 10) [000176] ------------ * CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits] $100
No addressing mode:
N002 ( 1, 1) [000042] ------------ * LCL_VAR long V06 tmp5 u:2 (last use) $141
No addressing mode:
N002 ( 1, 1) [000062] ------------ * LCL_VAR long V07 tmp6 u:2 $242
No addressing mode:
N001 ( 1, 1) [000076] ------------ * LCL_VAR long V07 tmp6 u:4 $144
lvaGrabTemp returning 11 (V11 rat0) called for ReplaceWithLclVar is creating a new local variable.
New refCnts for V11: refCnt = 1, refCntWtd = 1
New refCnts for V11: refCnt = 2, refCntWtd = 2
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
[000268] DA---------- * STORE_LCL_VAR long V11 rat0
ReplaceWithLclVar created store :
[000268] DA---------- * STORE_LCL_VAR long V11 rat0
New refCnts for V11: refCnt = 3, refCntWtd = 3
lowering GT_RETURN
N004 ( 4, 4) [000010] ------------ * RETURN int $1c7
============Lower has completed modifying nodes.
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target LIR
BB02 [0002] 2 BB01,BB02 2 [000..001)-> BB02 ( cond ) i Loop Loop0 label target bwd LIR
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target LIR
BB04 [0005] 1 BB03 0.25 [000..001) i LIR
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target LIR
BB06 [0007] 2 BB05,BB06 2 [000..001)-> BB06 ( cond ) i Loop Loop0 label target bwd LIR
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target LIR
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
( 5, 12) [000147] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 3, 10) [000176] ------------ t176 = CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits] $100
/--* t176 long
N002 ( 5, 12) [000001] x---G------- t1 = * IND long <l:$140, c:$180>
/--* t1 long
N004 ( 5, 12) [000146] DA--G------- * STORE_LCL_VAR long V02 tmp1 d:2
( 1, 3) [000150] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000003] ------------ t3 = LCL_VAR int V00 arg0 u:2 (last use) $80
/--* t3 int
N003 ( 1, 3) [000149] DA---------- * STORE_LCL_VAR int V04 tmp3 d:2
( 1, 3) [000016] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000013] ------------ t13 = LCL_VAR long V02 tmp1 u:2 <l:$140, c:$180>
/--* t13 long
N003 ( 1, 3) [000015] DA---------- * STORE_LCL_VAR long V03 tmp2 d:2
( 1, 3) [000020] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000017] ------------ t17 = LCL_VAR int V04 tmp3 u:2 $80
/--* t17 int
N003 ( 1, 3) [000019] DA---------- * STORE_LCL_VAR int V05 tmp4 d:2
( 5, 5) [000181] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000178] ------------ t178 = LCL_VAR int V05 tmp4 u:2 $80
N002 ( 1, 1) [000179] -c---------- t179 = CNS_INT int 0 $40
/--* t178 int
+--* t179 int
N003 ( 3, 3) [000177] J------N---- * LE void $200
N004 ( 5, 5) [000180] ------------ * JTRUE void
------------ BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
N001 ( 0, 0) [000239] ------------ t239 = PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000227] ------------ t227 = PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
/--* t239 long
+--* t227 long
N005 ( 2, 2) [000224] ------------ t224 = * PHI long
/--* t224 long
N007 ( 2, 3) [000225] DA---------- * STORE_LCL_VAR long V03 tmp2 d:3
N001 ( 0, 0) [000241] ------------ t241 = PHI_ARG int V04 tmp3 u:4
N002 ( 0, 0) [000229] ------------ t229 = PHI_ARG int V04 tmp3 u:2 $80
/--* t241 int
+--* t229 int
N005 ( 2, 2) [000212] ------------ t212 = * PHI int
/--* t212 int
N007 ( 2, 3) [000213] DA---------- * STORE_LCL_VAR int V04 tmp3 d:3
( 1, 3) [000031] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000028] ------------ t28 = LCL_VAR int V04 tmp3 u:3 $280
/--* t28 int
N003 ( 1, 3) [000030] DA---------- * STORE_LCL_VAR int V05 tmp4 d:3
( 1, 3) [000041] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000033] ------------ t33 = LCL_VAR long V03 tmp2 u:3 $141
/--* t33 long
N003 ( 1, 3) [000040] DA---------- * STORE_LCL_VAR long V06 tmp5 d:2
( 3, 3) [000044] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000034] ------------ t34 = LCL_VAR long V06 tmp5 u:2 (last use) $141
N002 ( 1, 1) [000036] -c---------- t36 = CNS_INT long 8 $340
/--* t34 long
+--* t36 long
N003 ( 3, 3) [000037] ------------ t37 = * ADD long $241
/--* t37 long
N005 ( 3, 3) [000043] DA---------- * STORE_LCL_VAR long V03 tmp2 d:4
( 7, 7) [000052] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000032] ------------ t32 = LCL_VAR int V05 tmp4 u:3 (last use) $280
N002 ( 1, 1) [000042] ------------ t42 = LCL_VAR long V06 tmp5 u:2 (last use) $141
/--* t42 long
N003 ( 3, 2) [000045] *c-XG------- t45 = * IND long <l:$142, c:$302>
/--* t45 long
N004 ( 4, 3) [000046] ---XG------- t46 = * HWIntrinsic long PopCount $380
/--* t46 long
N005 ( 5, 5) [000047] ---XG------- t47 = * CAST int <- long $201
/--* t32 int
+--* t47 int
N006 ( 7, 7) [000048] ---XG------- t48 = * SUB int $202
/--* t48 int
N008 ( 7, 7) [000051] DA-XG------- * STORE_LCL_VAR int V04 tmp3 d:4
( 5, 5) [000026] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000022] ------------ t22 = LCL_VAR int V04 tmp3 u:4 $202
N002 ( 1, 1) [000023] -c---------- t23 = CNS_INT int 0 $40
/--* t22 int
+--* t23 int
N003 ( 3, 3) [000024] J------N---- * GT void $203
N004 ( 5, 5) [000025] ------------ * JTRUE void
------------ BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
N001 ( 0, 0) [000235] ------------ t235 = PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000231] ------------ t231 = PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
/--* t235 long
+--* t231 long
N005 ( 2, 2) [000220] ------------ t220 = * PHI long
/--* t220 long
N007 ( 2, 3) [000221] DA---------- * STORE_LCL_VAR long V03 tmp2 d:5
N001 ( 0, 0) [000237] ------------ t237 = PHI_ARG int V05 tmp4 u:3
N002 ( 0, 0) [000233] ------------ t233 = PHI_ARG int V05 tmp4 u:2 $80
/--* t237 int
+--* t233 int
N005 ( 2, 2) [000216] ------------ t216 = * PHI int
/--* t216 int
N007 ( 2, 3) [000217] DA---------- * STORE_LCL_VAR int V05 tmp4 d:4
( 3, 3) [000060] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000054] ------------ t54 = LCL_VAR long V03 tmp2 u:5 (last use) $143
N002 ( 1, 1) [000056] -c---------- t56 = CNS_INT long -8 $342
/--* t54 long
+--* t56 long
N003 ( 3, 3) [000057] ------------ t57 = * ADD long $242
/--* t57 long
N005 ( 3, 3) [000059] DA---------- * STORE_LCL_VAR long V07 tmp6 d:2
( 6, 5) [000069] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000061] ------------ t61 = LCL_VAR int V05 tmp4 u:4 $281
N002 ( 1, 1) [000062] ------------ t62 = LCL_VAR long V07 tmp6 u:2 $242
/--* t62 long
N003 ( 3, 2) [000063] *c-XG------- t63 = * IND int <l:$282, c:$1c2>
/--* t63 int
N004 ( 4, 3) [000064] ---XG------- t64 = * HWIntrinsic int PopCount $3c0
/--* t61 int
+--* t64 int
N005 ( 6, 5) [000065] ---XG------- t65 = * SUB int $205
/--* t65 int
N007 ( 6, 5) [000068] DA-XG------- * STORE_LCL_VAR int V04 tmp3 d:5
( 5, 5) [000074] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000070] ------------ t70 = LCL_VAR int V04 tmp3 u:5 $205
N002 ( 1, 1) [000071] -c---------- t71 = CNS_INT int 0 $40
/--* t70 int
+--* t71 int
N003 ( 3, 3) [000072] J------N---- * LE void $206
N004 ( 5, 5) [000073] ------------ * JTRUE void
------------ BB04 [000..001), preds={BB03} succs={BB05}
( 1, 3) [000137] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000134] ------------ t134 = LCL_VAR int V04 tmp3 u:5 (last use) $205
/--* t134 int
N003 ( 1, 3) [000136] DA---------- * STORE_LCL_VAR int V05 tmp4 d:5
( 3, 3) [000144] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000138] ------------ t138 = LCL_VAR long V07 tmp6 u:2 (last use) $242
N002 ( 1, 1) [000140] -c---------- t140 = CNS_INT long 4 $343
/--* t138 long
+--* t140 long
N003 ( 3, 3) [000141] ------------ t141 = * ADD long $243
/--* t141 long
N005 ( 3, 3) [000143] DA---------- * STORE_LCL_VAR long V07 tmp6 d:3
------------ BB05 [000..001) -> BB07 (cond), preds={BB03,BB04} succs={BB06,BB07}
N001 ( 0, 0) [000247] ------------ t247 = PHI_ARG long V07 tmp6 u:3
N002 ( 0, 0) [000243] ------------ t243 = PHI_ARG long V07 tmp6 u:2 $242
/--* t247 long
+--* t243 long
N005 ( 2, 2) [000208] ------------ t208 = * PHI long
/--* t208 long
N007 ( 6, 5) [000209] DA---------- * STORE_LCL_VAR long V07 tmp6 d:4
N001 ( 0, 0) [000249] ------------ t249 = PHI_ARG int V05 tmp4 u:5
N002 ( 0, 0) [000245] ------------ t245 = PHI_ARG int V05 tmp4 u:4 $281
/--* t249 int
+--* t245 int
N005 ( 2, 2) [000204] ------------ t204 = * PHI int
/--* t204 int
N007 ( 2, 3) [000205] DA---------- * STORE_LCL_VAR int V05 tmp4 d:6
( 3, 3) [000080] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000076] ------------ t76 = LCL_VAR long V07 tmp6 u:4 $144
/--* t76 long
N002 ( 3, 2) [000077] *--XG------- t77 = * IND int <l:$284, c:$1c5>
/--* t77 int
N004 ( 3, 3) [000079] DA-XG------- * STORE_LCL_VAR int V08 tmp7 d:2
( 26, 9) [000092] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000081] ------------ t81 = LCL_VAR long V07 tmp6 u:4 (last use) $144
N002 ( 1, 1) [000082] ------------ t82 = LCL_VAR long V02 tmp1 u:2 (last use) <l:$140, c:$180>
/--* t81 long
+--* t82 long
N003 ( 3, 3) [000083] ------------ t83 = * SUB long <l:$244, c:$245>
/--* t83 long
[000268] DA---------- * STORE_LCL_VAR long V11 rat0
N001 ( 1, 1) [000269] ------------ t269 = LCL_VAR long V11 rat0
N002 ( 1, 1) [000270] -c---------- t270 = CNS_INT int 63
/--* t269 long
+--* t270 int
N003 ( 3, 3) [000271] ------------ t271 = * RSH long
N004 ( 1, 1) [000272] -c---------- t272 = CNS_INT long 3
/--* t271 long
+--* t272 long
N005 ( 5, 5) [000273] ------------ t273 = * AND long
N006 ( 1, 1) [000274] ------------ t274 = LCL_VAR long V11 rat0
/--* t273 long
+--* t274 long
N007 ( 7, 7) [000275] ------------ t275 = * ADD long
N008 ( 1, 1) [000085] -c---------- t85 = CNS_INT long 2 $343
/--* t275 long
+--* t85 long
N009 ( 9, 9) [000276] ------------ t276 = * RSH long
N006 ( 1, 1) [000088] -c---------- t88 = CNS_INT long 5 $345
/--* t276 long
+--* t88 long
N007 ( 26, 9) [000089] ------------ t89 = * LSH long <l:$248, c:$249>
/--* t89 long
N009 ( 26, 9) [000091] DA---------- * STORE_LCL_VAR long V09 tmp8 d:2
( 5, 5) [000186] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000183] ------------ t183 = LCL_VAR int V05 tmp4 u:6 $283
N002 ( 1, 1) [000184] -c---------- t184 = CNS_INT int 0 $40
/--* t183 int
+--* t184 int
N003 ( 3, 3) [000182] J------N---- * LE void $208
N004 ( 5, 5) [000185] ------------ * JTRUE void
------------ BB06 [000..001) -> BB06 (cond), preds={BB05,BB06} succs={BB07,BB06}
N001 ( 0, 0) [000261] ------------ t261 = PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000251] ------------ t251 = PHI_ARG long V09 tmp8 u:2 <l:$248, c:$249>
/--* t261 long
+--* t251 long
N005 ( 2, 2) [000200] ------------ t200 = * PHI long
/--* t200 long
N007 ( 2, 3) [000201] DA---------- * STORE_LCL_VAR long V09 tmp8 d:3
N001 ( 0, 0) [000263] ------------ t263 = PHI_ARG int V08 tmp7 u:4
N002 ( 0, 0) [000253] ------------ t253 = PHI_ARG int V08 tmp7 u:2 <l:$284, c:$1c5>
/--* t263 int
+--* t253 int
N005 ( 2, 2) [000192] ------------ t192 = * PHI int
/--* t192 int
N007 ( 2, 3) [000193] DA---------- * STORE_LCL_VAR int V08 tmp7 d:3
N001 ( 0, 0) [000265] ------------ t265 = PHI_ARG int V05 tmp4 u:8
N002 ( 0, 0) [000255] ------------ t255 = PHI_ARG int V05 tmp4 u:6 $283
/--* t265 int
+--* t255 int
N005 ( 2, 2) [000188] ------------ t188 = * PHI int
/--* t188 int
N007 ( 2, 3) [000189] DA---------- * STORE_LCL_VAR int V05 tmp4 d:7
( 4, 4) [000106] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000100] ------------ t100 = LCL_VAR int V08 tmp7 u:3 $285
/--* t100 int
N002 ( 2, 2) [000101] ------------ t101 = * HWIntrinsic int TrailingZeroCount $400
N003 ( 1, 1) [000102] -c---------- t102 = CNS_INT int 1 $4b
/--* t101 int
+--* t102 int
N004 ( 4, 4) [000103] ------------ t103 = * ADD int $20a
/--* t103 int
N006 ( 4, 4) [000105] DA---------- * STORE_LCL_VAR int V10 tmp9 d:2
( 4, 5) [000113] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000107] ------------ t107 = LCL_VAR long V09 tmp8 u:3 (last use) $145
N002 ( 1, 1) [000108] ------------ t108 = LCL_VAR int V10 tmp9 u:2 $20a
/--* t108 int
N003 ( 2, 3) [000109] ---------U-- t109 = * CAST long <- ulong <- uint $24a
/--* t107 long
+--* t109 long
N004 ( 4, 5) [000110] ------------ t110 = * ADD long $24b
/--* t110 long
N006 ( 4, 5) [000112] DA---------- * STORE_LCL_VAR long V09 tmp8 d:4
( 3, 3) [000119] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000114] ------------ t114 = LCL_VAR int V05 tmp4 u:7 (last use) $286
N002 ( 1, 1) [000115] -c---------- t115 = CNS_INT int -1 $41
/--* t114 int
+--* t115 int
N003 ( 3, 3) [000116] ------------ t116 = * ADD int $20b
/--* t116 int
N005 ( 3, 3) [000118] DA---------- * STORE_LCL_VAR int V05 tmp4 d:8
( 8, 5) [000127] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000120] ------------ t120 = LCL_VAR int V08 tmp7 u:3 (last use) $285
N002 ( 1, 1) [000121] ------------ t121 = LCL_VAR int V10 tmp9 u:2 (last use) $20a
/--* t120 int
+--* t121 int
N005 ( 8, 5) [000124] ------------ t124 = * RSZ int $20d
/--* t124 int
N007 ( 8, 5) [000126] DA---------- * STORE_LCL_VAR int V08 tmp7 d:4
( 5, 5) [000098] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000094] ------------ t94 = LCL_VAR int V05 tmp4 u:8 $20b
N002 ( 1, 1) [000095] -c---------- t95 = CNS_INT int 0 $40
/--* t94 int
+--* t95 int
N003 ( 3, 3) [000096] J------N---- * GT void $20e
N004 ( 5, 5) [000097] ------------ * JTRUE void
------------ BB07 [000..001) (return), preds={BB05,BB06} succs={}
N001 ( 0, 0) [000259] ------------ t259 = PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000257] ------------ t257 = PHI_ARG long V09 tmp8 u:2 <l:$248, c:$249>
/--* t259 long
+--* t257 long
N005 ( 2, 2) [000196] ------------ t196 = * PHI long
/--* t196 long
N007 ( 2, 3) [000197] DA---------- * STORE_LCL_VAR long V09 tmp8 d:5
N001 ( 1, 1) [000129] C----------- t129 = LCL_VAR int V09 tmp8 u:5 (last use) $20f
N002 ( 1, 1) [000131] -c---------- t131 = CNS_INT int -1 $41
/--* t129 int
+--* t131 int
N003 ( 3, 3) [000132] ------------ t132 = * ADD int $210
/--* t132 int
N004 ( 4, 4) [000010] ------------ * RETURN int $1c7
-------------------------------------------------------------------------------------------------------------------
New refCnts for V02: refCnt = 1, refCntWtd = 2
New refCnts for V00: refCnt = 1, refCntWtd = 1
New refCnts for V04: refCnt = 1, refCntWtd = 2
New refCnts for V02: refCnt = 2, refCntWtd = 4
New refCnts for V03: refCnt = 1, refCntWtd = 1
New refCnts for V04: refCnt = 2, refCntWtd = 4
New refCnts for V05: refCnt = 1, refCntWtd = 1
New refCnts for V05: refCnt = 2, refCntWtd = 2
New refCnts for V04: refCnt = 3, refCntWtd = 8
New refCnts for V05: refCnt = 3, refCntWtd = 4
New refCnts for V03: refCnt = 2, refCntWtd = 3
New refCnts for V06: refCnt = 1, refCntWtd = 4
New refCnts for V06: refCnt = 2, refCntWtd = 8
New refCnts for V03: refCnt = 3, refCntWtd = 5
New refCnts for V05: refCnt = 4, refCntWtd = 6
New refCnts for V06: refCnt = 3, refCntWtd = 12
New refCnts for V04: refCnt = 4, refCntWtd = 12
New refCnts for V04: refCnt = 5, refCntWtd = 16
New refCnts for V03: refCnt = 4, refCntWtd = 5.50
New refCnts for V07: refCnt = 1, refCntWtd = 0.50
New refCnts for V05: refCnt = 5, refCntWtd = 6.50
New refCnts for V07: refCnt = 2, refCntWtd = 1
New refCnts for V04: refCnt = 6, refCntWtd = 17
New refCnts for V04: refCnt = 7, refCntWtd = 18
New refCnts for V04: refCnt = 8, refCntWtd = 18.50
New refCnts for V05: refCnt = 6, refCntWtd = 6.75
New refCnts for V07: refCnt = 3, refCntWtd = 1.25
New refCnts for V07: refCnt = 4, refCntWtd = 1.50
New refCnts for V07: refCnt = 5, refCntWtd = 2
New refCnts for V08: refCnt = 1, refCntWtd = 0.50
New refCnts for V07: refCnt = 6, refCntWtd = 2.50
New refCnts for V02: refCnt = 3, refCntWtd = 5
New refCnts for V11: refCnt = 1, refCntWtd = 1
New refCnts for V11: refCnt = 2, refCntWtd = 2
New refCnts for V11: refCnt = 3, refCntWtd = 3
New refCnts for V09: refCnt = 1, refCntWtd = 0.50
New refCnts for V05: refCnt = 7, refCntWtd = 7.25
New refCnts for V08: refCnt = 2, refCntWtd = 2.50
New refCnts for V10: refCnt = 1, refCntWtd = 2
New refCnts for V09: refCnt = 2, refCntWtd = 2.50
New refCnts for V10: refCnt = 2, refCntWtd = 4
New refCnts for V09: refCnt = 3, refCntWtd = 4.50
New refCnts for V05: refCnt = 8, refCntWtd = 9.25
New refCnts for V05: refCnt = 9, refCntWtd = 11.25
New refCnts for V08: refCnt = 3, refCntWtd = 4.50
New refCnts for V10: refCnt = 3, refCntWtd = 6
New refCnts for V08: refCnt = 4, refCntWtd = 6.50
New refCnts for V05: refCnt = 10, refCntWtd = 13.25
New refCnts for V09: refCnt = 4, refCntWtd = 5.50
New refCnts for V00: refCnt = 2, refCntWtd = 2
New refCnts for V00: refCnt = 3, refCntWtd = 3
*************** In fgLocalVarLiveness()
; Initial local variable assignments
;
; V00 arg0 int
; V01 OutArgs lclBlk ( 0)
; V02 tmp1 long
; V03 tmp2 long
; V04 tmp3 int
; V05 tmp4 int
; V06 tmp5 long
; V07 tmp6 long
; V08 tmp7 int
; V09 tmp8 long
; V10 tmp9 int
; V11 rat0 long
In fgLocalVarLivenessInit, sorting locals
refCnt table for 'POPCNTButNoBMI2':
V04 tmp3 [ int]: refCnt = 8, refCntWtd = 18.50
V05 tmp4 [ int]: refCnt = 10, refCntWtd = 13.25
V06 tmp5 [ long]: refCnt = 3, refCntWtd = 12
V08 tmp7 [ int]: refCnt = 4, refCntWtd = 6.50
V10 tmp9 [ int]: refCnt = 3, refCntWtd = 6
V03 tmp2 [ long]: refCnt = 4, refCntWtd = 5.50
V09 tmp8 [ long]: refCnt = 4, refCntWtd = 5.50
V00 arg0 [ int]: refCnt = 3, refCntWtd = 3
V02 tmp1 [ long]: refCnt = 3, refCntWtd = 5
V11 rat0 [ long]: refCnt = 3, refCntWtd = 3
V07 tmp6 [ long]: refCnt = 6, refCntWtd = 2.50
V01 OutArgs [lclBlk]: refCnt = 1, refCntWtd = 1
*************** In fgPerBlockLocalVarLiveness()
BB01 USE(1)={ V00 } + ByrefExposed + GcHeap
DEF(4)={V04 V05 V03 V02}
BB02 USE(2)={V04 V03} + ByrefExposed + GcHeap
DEF(4)={V04 V05 V06 V03}
BB03 USE(2)={ V05 V03 } + ByrefExposed + GcHeap
DEF(2)={V04 V07}
BB04 USE(2)={V04 V07}
DEF(2)={ V05 V07}
BB05 USE(3)={V05 V02 V07} + ByrefExposed + GcHeap
DEF(3)={ V08 V09 V11 }
BB06 USE(3)={V05 V08 V09}
DEF(4)={V05 V08 V10 V09}
BB07 USE(1)={V09}
DEF(0)={ }
** Memory liveness computed, GcHeap states and ByrefExposed states match
*************** In fgInterBlockLocalVarLiveness()
BB liveness after fgLiveVarAnalysis():
BB01 IN (1)={ V00 } + ByrefExposed + GcHeap
OUT(4)={V04 V05 V03 V02} + ByrefExposed + GcHeap
BB02 IN (3)={V04 V03 V02} + ByrefExposed + GcHeap
OUT(4)={V04 V05 V03 V02} + ByrefExposed + GcHeap
BB03 IN (3)={ V05 V03 V02 } + ByrefExposed + GcHeap
OUT(4)={V04 V05 V02 V07} + ByrefExposed + GcHeap
BB04 IN (3)={V04 V02 V07} + ByrefExposed + GcHeap
OUT(3)={ V05 V02 V07} + ByrefExposed + GcHeap
BB05 IN (3)={V05 V02 V07} + ByrefExposed + GcHeap
OUT(3)={V05 V08 V09 }
BB06 IN (3)={V05 V08 V09}
OUT(3)={V05 V08 V09}
BB07 IN (1)={V09}
OUT(0)={ }
*************** In fgUpdateFlowGraph()
Before updating the flow graph:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target LIR
BB02 [0002] 2 BB01,BB02 2 [000..001)-> BB02 ( cond ) i Loop Loop0 label target bwd LIR
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target LIR
BB04 [0005] 1 BB03 0.25 [000..001) i LIR
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target LIR
BB06 [0007] 2 BB05,BB06 2 [000..001)-> BB06 ( cond ) i Loop Loop0 label target bwd LIR
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target LIR
--------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
Liveness pass finished after lowering, IR:
lvasortagain = 0
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target LIR
BB02 [0002] 2 BB01,BB02 2 [000..001)-> BB02 ( cond ) i Loop Loop0 label target bwd LIR
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target LIR
BB04 [0005] 1 BB03 0.25 [000..001) i LIR
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target LIR
BB06 [0007] 2 BB05,BB06 2 [000..001)-> BB06 ( cond ) i Loop Loop0 label target bwd LIR
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target LIR
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
( 5, 12) [000147] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 3, 10) [000176] ------------ t176 = CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits] $100
/--* t176 long
N002 ( 5, 12) [000001] x---G------- t1 = * IND long <l:$140, c:$180>
/--* t1 long
N004 ( 5, 12) [000146] DA--G------- * STORE_LCL_VAR long V02 tmp1 d:2
( 1, 3) [000150] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000003] ------------ t3 = LCL_VAR int V00 arg0 u:2 (last use) $80
/--* t3 int
N003 ( 1, 3) [000149] DA---------- * STORE_LCL_VAR int V04 tmp3 d:2
( 1, 3) [000016] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000013] ------------ t13 = LCL_VAR long V02 tmp1 u:2 <l:$140, c:$180>
/--* t13 long
N003 ( 1, 3) [000015] DA---------- * STORE_LCL_VAR long V03 tmp2 d:2
( 1, 3) [000020] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000017] ------------ t17 = LCL_VAR int V04 tmp3 u:2 $80
/--* t17 int
N003 ( 1, 3) [000019] DA---------- * STORE_LCL_VAR int V05 tmp4 d:2
( 5, 5) [000181] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000178] ------------ t178 = LCL_VAR int V05 tmp4 u:2 $80
N002 ( 1, 1) [000179] -c---------- t179 = CNS_INT int 0 $40
/--* t178 int
+--* t179 int
N003 ( 3, 3) [000177] J------N---- * LE void $200
N004 ( 5, 5) [000180] ------------ * JTRUE void
------------ BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
N001 ( 0, 0) [000239] ------------ t239 = PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000227] ------------ t227 = PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
/--* t239 long
+--* t227 long
N005 ( 2, 2) [000224] ------------ t224 = * PHI long
/--* t224 long
N007 ( 2, 3) [000225] DA---------- * STORE_LCL_VAR long V03 tmp2 d:3
N001 ( 0, 0) [000241] ------------ t241 = PHI_ARG int V04 tmp3 u:4
N002 ( 0, 0) [000229] ------------ t229 = PHI_ARG int V04 tmp3 u:2 $80
/--* t241 int
+--* t229 int
N005 ( 2, 2) [000212] ------------ t212 = * PHI int
/--* t212 int
N007 ( 2, 3) [000213] DA---------- * STORE_LCL_VAR int V04 tmp3 d:3
( 1, 3) [000031] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000028] ------------ t28 = LCL_VAR int V04 tmp3 u:3 (last use) $280
/--* t28 int
N003 ( 1, 3) [000030] DA---------- * STORE_LCL_VAR int V05 tmp4 d:3
( 1, 3) [000041] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000033] ------------ t33 = LCL_VAR long V03 tmp2 u:3 (last use) $141
/--* t33 long
N003 ( 1, 3) [000040] DA---------- * STORE_LCL_VAR long V06 tmp5 d:2
( 3, 3) [000044] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000034] ------------ t34 = LCL_VAR long V06 tmp5 u:2 $141
N002 ( 1, 1) [000036] -c---------- t36 = CNS_INT long 8 $340
/--* t34 long
+--* t36 long
N003 ( 3, 3) [000037] ------------ t37 = * ADD long $241
/--* t37 long
N005 ( 3, 3) [000043] DA---------- * STORE_LCL_VAR long V03 tmp2 d:4
( 7, 7) [000052] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000032] ------------ t32 = LCL_VAR int V05 tmp4 u:3 $280
N002 ( 1, 1) [000042] ------------ t42 = LCL_VAR long V06 tmp5 u:2 (last use) $141
/--* t42 long
N003 ( 3, 2) [000045] *c-XG------- t45 = * IND long <l:$142, c:$302>
/--* t45 long
N004 ( 4, 3) [000046] ---XG------- t46 = * HWIntrinsic long PopCount $380
/--* t46 long
N005 ( 5, 5) [000047] ---XG------- t47 = * CAST int <- long $201
/--* t32 int
+--* t47 int
N006 ( 7, 7) [000048] ---XG------- t48 = * SUB int $202
/--* t48 int
N008 ( 7, 7) [000051] DA-XG------- * STORE_LCL_VAR int V04 tmp3 d:4
( 5, 5) [000026] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000022] ------------ t22 = LCL_VAR int V04 tmp3 u:4 $202
N002 ( 1, 1) [000023] -c---------- t23 = CNS_INT int 0 $40
/--* t22 int
+--* t23 int
N003 ( 3, 3) [000024] J------N---- * GT void $203
N004 ( 5, 5) [000025] ------------ * JTRUE void
------------ BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
N001 ( 0, 0) [000235] ------------ t235 = PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000231] ------------ t231 = PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
/--* t235 long
+--* t231 long
N005 ( 2, 2) [000220] ------------ t220 = * PHI long
/--* t220 long
N007 ( 2, 3) [000221] DA---------- * STORE_LCL_VAR long V03 tmp2 d:5
N001 ( 0, 0) [000237] ------------ t237 = PHI_ARG int V05 tmp4 u:3
N002 ( 0, 0) [000233] ------------ t233 = PHI_ARG int V05 tmp4 u:2 $80
/--* t237 int
+--* t233 int
N005 ( 2, 2) [000216] ------------ t216 = * PHI int
/--* t216 int
N007 ( 2, 3) [000217] DA---------- * STORE_LCL_VAR int V05 tmp4 d:4
( 3, 3) [000060] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000054] ------------ t54 = LCL_VAR long V03 tmp2 u:5 (last use) $143
N002 ( 1, 1) [000056] -c---------- t56 = CNS_INT long -8 $342
/--* t54 long
+--* t56 long
N003 ( 3, 3) [000057] ------------ t57 = * ADD long $242
/--* t57 long
N005 ( 3, 3) [000059] DA---------- * STORE_LCL_VAR long V07 tmp6 d:2
( 6, 5) [000069] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000061] ------------ t61 = LCL_VAR int V05 tmp4 u:4 $281
N002 ( 1, 1) [000062] ------------ t62 = LCL_VAR long V07 tmp6 u:2 $242
/--* t62 long
N003 ( 3, 2) [000063] *c-XG------- t63 = * IND int <l:$282, c:$1c2>
/--* t63 int
N004 ( 4, 3) [000064] ---XG------- t64 = * HWIntrinsic int PopCount $3c0
/--* t61 int
+--* t64 int
N005 ( 6, 5) [000065] ---XG------- t65 = * SUB int $205
/--* t65 int
N007 ( 6, 5) [000068] DA-XG------- * STORE_LCL_VAR int V04 tmp3 d:5
( 5, 5) [000074] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000070] ------------ t70 = LCL_VAR int V04 tmp3 u:5 $205
N002 ( 1, 1) [000071] -c---------- t71 = CNS_INT int 0 $40
/--* t70 int
+--* t71 int
N003 ( 3, 3) [000072] J------N---- * LE void $206
N004 ( 5, 5) [000073] ------------ * JTRUE void
------------ BB04 [000..001), preds={BB03} succs={BB05}
( 1, 3) [000137] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000134] ------------ t134 = LCL_VAR int V04 tmp3 u:5 (last use) $205
/--* t134 int
N003 ( 1, 3) [000136] DA---------- * STORE_LCL_VAR int V05 tmp4 d:5
( 3, 3) [000144] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000138] ------------ t138 = LCL_VAR long V07 tmp6 u:2 (last use) $242
N002 ( 1, 1) [000140] -c---------- t140 = CNS_INT long 4 $343
/--* t138 long
+--* t140 long
N003 ( 3, 3) [000141] ------------ t141 = * ADD long $243
/--* t141 long
N005 ( 3, 3) [000143] DA---------- * STORE_LCL_VAR long V07 tmp6 d:3
------------ BB05 [000..001) -> BB07 (cond), preds={BB03,BB04} succs={BB06,BB07}
N001 ( 0, 0) [000247] ------------ t247 = PHI_ARG long V07 tmp6 u:3
N002 ( 0, 0) [000243] ------------ t243 = PHI_ARG long V07 tmp6 u:2 $242
/--* t247 long
+--* t243 long
N005 ( 2, 2) [000208] ------------ t208 = * PHI long
/--* t208 long
N007 ( 6, 5) [000209] DA---------- * STORE_LCL_VAR long V07 tmp6 d:4
N001 ( 0, 0) [000249] ------------ t249 = PHI_ARG int V05 tmp4 u:5
N002 ( 0, 0) [000245] ------------ t245 = PHI_ARG int V05 tmp4 u:4 $281
/--* t249 int
+--* t245 int
N005 ( 2, 2) [000204] ------------ t204 = * PHI int
/--* t204 int
N007 ( 2, 3) [000205] DA---------- * STORE_LCL_VAR int V05 tmp4 d:6
( 3, 3) [000080] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000076] ------------ t76 = LCL_VAR long V07 tmp6 u:4 $144
/--* t76 long
N002 ( 3, 2) [000077] *--XG------- t77 = * IND int <l:$284, c:$1c5>
/--* t77 int
N004 ( 3, 3) [000079] DA-XG------- * STORE_LCL_VAR int V08 tmp7 d:2
( 26, 9) [000092] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000081] ------------ t81 = LCL_VAR long V07 tmp6 u:4 (last use) $144
N002 ( 1, 1) [000082] ------------ t82 = LCL_VAR long V02 tmp1 u:2 (last use) <l:$140, c:$180>
/--* t81 long
+--* t82 long
N003 ( 3, 3) [000083] ------------ t83 = * SUB long <l:$244, c:$245>
/--* t83 long
[000268] DA---------- * STORE_LCL_VAR long V11 rat0
N001 ( 1, 1) [000269] ------------ t269 = LCL_VAR long V11 rat0
N002 ( 1, 1) [000270] -c---------- t270 = CNS_INT int 63
/--* t269 long
+--* t270 int
N003 ( 3, 3) [000271] ------------ t271 = * RSH long
N004 ( 1, 1) [000272] -c---------- t272 = CNS_INT long 3
/--* t271 long
+--* t272 long
N005 ( 5, 5) [000273] ------------ t273 = * AND long
N006 ( 1, 1) [000274] ------------ t274 = LCL_VAR long V11 rat0 (last use)
/--* t273 long
+--* t274 long
N007 ( 7, 7) [000275] ------------ t275 = * ADD long
N008 ( 1, 1) [000085] -c---------- t85 = CNS_INT long 2 $343
/--* t275 long
+--* t85 long
N009 ( 9, 9) [000276] ------------ t276 = * RSH long
N006 ( 1, 1) [000088] -c---------- t88 = CNS_INT long 5 $345
/--* t276 long
+--* t88 long
N007 ( 26, 9) [000089] ------------ t89 = * LSH long <l:$248, c:$249>
/--* t89 long
N009 ( 26, 9) [000091] DA---------- * STORE_LCL_VAR long V09 tmp8 d:2
( 5, 5) [000186] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000183] ------------ t183 = LCL_VAR int V05 tmp4 u:6 $283
N002 ( 1, 1) [000184] -c---------- t184 = CNS_INT int 0 $40
/--* t183 int
+--* t184 int
N003 ( 3, 3) [000182] J------N---- * LE void $208
N004 ( 5, 5) [000185] ------------ * JTRUE void
------------ BB06 [000..001) -> BB06 (cond), preds={BB05,BB06} succs={BB07,BB06}
N001 ( 0, 0) [000261] ------------ t261 = PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000251] ------------ t251 = PHI_ARG long V09 tmp8 u:2 <l:$248, c:$249>
/--* t261 long
+--* t251 long
N005 ( 2, 2) [000200] ------------ t200 = * PHI long
/--* t200 long
N007 ( 2, 3) [000201] DA---------- * STORE_LCL_VAR long V09 tmp8 d:3
N001 ( 0, 0) [000263] ------------ t263 = PHI_ARG int V08 tmp7 u:4
N002 ( 0, 0) [000253] ------------ t253 = PHI_ARG int V08 tmp7 u:2 <l:$284, c:$1c5>
/--* t263 int
+--* t253 int
N005 ( 2, 2) [000192] ------------ t192 = * PHI int
/--* t192 int
N007 ( 2, 3) [000193] DA---------- * STORE_LCL_VAR int V08 tmp7 d:3
N001 ( 0, 0) [000265] ------------ t265 = PHI_ARG int V05 tmp4 u:8
N002 ( 0, 0) [000255] ------------ t255 = PHI_ARG int V05 tmp4 u:6 $283
/--* t265 int
+--* t255 int
N005 ( 2, 2) [000188] ------------ t188 = * PHI int
/--* t188 int
N007 ( 2, 3) [000189] DA---------- * STORE_LCL_VAR int V05 tmp4 d:7
( 4, 4) [000106] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000100] ------------ t100 = LCL_VAR int V08 tmp7 u:3 $285
/--* t100 int
N002 ( 2, 2) [000101] ------------ t101 = * HWIntrinsic int TrailingZeroCount $400
N003 ( 1, 1) [000102] -c---------- t102 = CNS_INT int 1 $4b
/--* t101 int
+--* t102 int
N004 ( 4, 4) [000103] ------------ t103 = * ADD int $20a
/--* t103 int
N006 ( 4, 4) [000105] DA---------- * STORE_LCL_VAR int V10 tmp9 d:2
( 4, 5) [000113] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000107] ------------ t107 = LCL_VAR long V09 tmp8 u:3 (last use) $145
N002 ( 1, 1) [000108] ------------ t108 = LCL_VAR int V10 tmp9 u:2 $20a
/--* t108 int
N003 ( 2, 3) [000109] ---------U-- t109 = * CAST long <- ulong <- uint $24a
/--* t107 long
+--* t109 long
N004 ( 4, 5) [000110] ------------ t110 = * ADD long $24b
/--* t110 long
N006 ( 4, 5) [000112] DA---------- * STORE_LCL_VAR long V09 tmp8 d:4
( 3, 3) [000119] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000114] ------------ t114 = LCL_VAR int V05 tmp4 u:7 (last use) $286
N002 ( 1, 1) [000115] -c---------- t115 = CNS_INT int -1 $41
/--* t114 int
+--* t115 int
N003 ( 3, 3) [000116] ------------ t116 = * ADD int $20b
/--* t116 int
N005 ( 3, 3) [000118] DA---------- * STORE_LCL_VAR int V05 tmp4 d:8
( 8, 5) [000127] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000120] ------------ t120 = LCL_VAR int V08 tmp7 u:3 (last use) $285
N002 ( 1, 1) [000121] ------------ t121 = LCL_VAR int V10 tmp9 u:2 (last use) $20a
/--* t120 int
+--* t121 int
N005 ( 8, 5) [000124] ------------ t124 = * RSZ int $20d
/--* t124 int
N007 ( 8, 5) [000126] DA---------- * STORE_LCL_VAR int V08 tmp7 d:4
( 5, 5) [000098] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000094] ------------ t94 = LCL_VAR int V05 tmp4 u:8 $20b
N002 ( 1, 1) [000095] -c---------- t95 = CNS_INT int 0 $40
/--* t94 int
+--* t95 int
N003 ( 3, 3) [000096] J------N---- * GT void $20e
N004 ( 5, 5) [000097] ------------ * JTRUE void
------------ BB07 [000..001) (return), preds={BB05,BB06} succs={}
N001 ( 0, 0) [000259] ------------ t259 = PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000257] ------------ t257 = PHI_ARG long V09 tmp8 u:2 <l:$248, c:$249>
/--* t259 long
+--* t257 long
N005 ( 2, 2) [000196] ------------ t196 = * PHI long
/--* t196 long
N007 ( 2, 3) [000197] DA---------- * STORE_LCL_VAR long V09 tmp8 d:5
N001 ( 1, 1) [000129] C----------- t129 = LCL_VAR int V09 tmp8 u:5 (last use) $20f
N002 ( 1, 1) [000131] -c---------- t131 = CNS_INT int -1 $41
/--* t129 int
+--* t131 int
N003 ( 3, 3) [000132] ------------ t132 = * ADD int $210
/--* t132 int
N004 ( 4, 4) [000010] ------------ * RETURN int $1c7
-------------------------------------------------------------------------------------------------------------------
*************** Exiting Lowering
Trees after Lowering
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target LIR
BB02 [0002] 2 BB01,BB02 2 [000..001)-> BB02 ( cond ) i Loop Loop0 label target bwd LIR
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target LIR
BB04 [0005] 1 BB03 0.25 [000..001) i LIR
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target LIR
BB06 [0007] 2 BB05,BB06 2 [000..001)-> BB06 ( cond ) i Loop Loop0 label target bwd LIR
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target LIR
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
( 5, 12) [000147] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 3, 10) [000176] ------------ t176 = CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits] $100
/--* t176 long
N002 ( 5, 12) [000001] x---G------- t1 = * IND long <l:$140, c:$180>
/--* t1 long
N004 ( 5, 12) [000146] DA--G------- * STORE_LCL_VAR long V02 tmp1 d:2
( 1, 3) [000150] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000003] ------------ t3 = LCL_VAR int V00 arg0 u:2 (last use) $80
/--* t3 int
N003 ( 1, 3) [000149] DA---------- * STORE_LCL_VAR int V04 tmp3 d:2
( 1, 3) [000016] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000013] ------------ t13 = LCL_VAR long V02 tmp1 u:2 <l:$140, c:$180>
/--* t13 long
N003 ( 1, 3) [000015] DA---------- * STORE_LCL_VAR long V03 tmp2 d:2
( 1, 3) [000020] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000017] ------------ t17 = LCL_VAR int V04 tmp3 u:2 $80
/--* t17 int
N003 ( 1, 3) [000019] DA---------- * STORE_LCL_VAR int V05 tmp4 d:2
( 5, 5) [000181] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000178] ------------ t178 = LCL_VAR int V05 tmp4 u:2 $80
N002 ( 1, 1) [000179] -c---------- t179 = CNS_INT int 0 $40
/--* t178 int
+--* t179 int
N003 ( 3, 3) [000177] J------N---- * LE void $200
N004 ( 5, 5) [000180] ------------ * JTRUE void
------------ BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
N001 ( 0, 0) [000239] ------------ t239 = PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000227] ------------ t227 = PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
/--* t239 long
+--* t227 long
N005 ( 2, 2) [000224] ------------ t224 = * PHI long
/--* t224 long
N007 ( 2, 3) [000225] DA---------- * STORE_LCL_VAR long V03 tmp2 d:3
N001 ( 0, 0) [000241] ------------ t241 = PHI_ARG int V04 tmp3 u:4
N002 ( 0, 0) [000229] ------------ t229 = PHI_ARG int V04 tmp3 u:2 $80
/--* t241 int
+--* t229 int
N005 ( 2, 2) [000212] ------------ t212 = * PHI int
/--* t212 int
N007 ( 2, 3) [000213] DA---------- * STORE_LCL_VAR int V04 tmp3 d:3
( 1, 3) [000031] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000028] ------------ t28 = LCL_VAR int V04 tmp3 u:3 (last use) $280
/--* t28 int
N003 ( 1, 3) [000030] DA---------- * STORE_LCL_VAR int V05 tmp4 d:3
( 1, 3) [000041] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000033] ------------ t33 = LCL_VAR long V03 tmp2 u:3 (last use) $141
/--* t33 long
N003 ( 1, 3) [000040] DA---------- * STORE_LCL_VAR long V06 tmp5 d:2
( 3, 3) [000044] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000034] ------------ t34 = LCL_VAR long V06 tmp5 u:2 $141
N002 ( 1, 1) [000036] -c---------- t36 = CNS_INT long 8 $340
/--* t34 long
+--* t36 long
N003 ( 3, 3) [000037] ------------ t37 = * ADD long $241
/--* t37 long
N005 ( 3, 3) [000043] DA---------- * STORE_LCL_VAR long V03 tmp2 d:4
( 7, 7) [000052] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000032] ------------ t32 = LCL_VAR int V05 tmp4 u:3 $280
N002 ( 1, 1) [000042] ------------ t42 = LCL_VAR long V06 tmp5 u:2 (last use) $141
/--* t42 long
N003 ( 3, 2) [000045] *c-XG------- t45 = * IND long <l:$142, c:$302>
/--* t45 long
N004 ( 4, 3) [000046] ---XG------- t46 = * HWIntrinsic long PopCount $380
/--* t46 long
N005 ( 5, 5) [000047] ---XG------- t47 = * CAST int <- long $201
/--* t32 int
+--* t47 int
N006 ( 7, 7) [000048] ---XG------- t48 = * SUB int $202
/--* t48 int
N008 ( 7, 7) [000051] DA-XG------- * STORE_LCL_VAR int V04 tmp3 d:4
( 5, 5) [000026] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000022] ------------ t22 = LCL_VAR int V04 tmp3 u:4 $202
N002 ( 1, 1) [000023] -c---------- t23 = CNS_INT int 0 $40
/--* t22 int
+--* t23 int
N003 ( 3, 3) [000024] J------N---- * GT void $203
N004 ( 5, 5) [000025] ------------ * JTRUE void
------------ BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
N001 ( 0, 0) [000235] ------------ t235 = PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000231] ------------ t231 = PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
/--* t235 long
+--* t231 long
N005 ( 2, 2) [000220] ------------ t220 = * PHI long
/--* t220 long
N007 ( 2, 3) [000221] DA---------- * STORE_LCL_VAR long V03 tmp2 d:5
N001 ( 0, 0) [000237] ------------ t237 = PHI_ARG int V05 tmp4 u:3
N002 ( 0, 0) [000233] ------------ t233 = PHI_ARG int V05 tmp4 u:2 $80
/--* t237 int
+--* t233 int
N005 ( 2, 2) [000216] ------------ t216 = * PHI int
/--* t216 int
N007 ( 2, 3) [000217] DA---------- * STORE_LCL_VAR int V05 tmp4 d:4
( 3, 3) [000060] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000054] ------------ t54 = LCL_VAR long V03 tmp2 u:5 (last use) $143
N002 ( 1, 1) [000056] -c---------- t56 = CNS_INT long -8 $342
/--* t54 long
+--* t56 long
N003 ( 3, 3) [000057] ------------ t57 = * ADD long $242
/--* t57 long
N005 ( 3, 3) [000059] DA---------- * STORE_LCL_VAR long V07 tmp6 d:2
( 6, 5) [000069] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000061] ------------ t61 = LCL_VAR int V05 tmp4 u:4 $281
N002 ( 1, 1) [000062] ------------ t62 = LCL_VAR long V07 tmp6 u:2 $242
/--* t62 long
N003 ( 3, 2) [000063] *c-XG------- t63 = * IND int <l:$282, c:$1c2>
/--* t63 int
N004 ( 4, 3) [000064] ---XG------- t64 = * HWIntrinsic int PopCount $3c0
/--* t61 int
+--* t64 int
N005 ( 6, 5) [000065] ---XG------- t65 = * SUB int $205
/--* t65 int
N007 ( 6, 5) [000068] DA-XG------- * STORE_LCL_VAR int V04 tmp3 d:5
( 5, 5) [000074] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000070] ------------ t70 = LCL_VAR int V04 tmp3 u:5 $205
N002 ( 1, 1) [000071] -c---------- t71 = CNS_INT int 0 $40
/--* t70 int
+--* t71 int
N003 ( 3, 3) [000072] J------N---- * LE void $206
N004 ( 5, 5) [000073] ------------ * JTRUE void
------------ BB04 [000..001), preds={BB03} succs={BB05}
( 1, 3) [000137] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000134] ------------ t134 = LCL_VAR int V04 tmp3 u:5 (last use) $205
/--* t134 int
N003 ( 1, 3) [000136] DA---------- * STORE_LCL_VAR int V05 tmp4 d:5
( 3, 3) [000144] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000138] ------------ t138 = LCL_VAR long V07 tmp6 u:2 (last use) $242
N002 ( 1, 1) [000140] -c---------- t140 = CNS_INT long 4 $343
/--* t138 long
+--* t140 long
N003 ( 3, 3) [000141] ------------ t141 = * ADD long $243
/--* t141 long
N005 ( 3, 3) [000143] DA---------- * STORE_LCL_VAR long V07 tmp6 d:3
------------ BB05 [000..001) -> BB07 (cond), preds={BB03,BB04} succs={BB06,BB07}
N001 ( 0, 0) [000247] ------------ t247 = PHI_ARG long V07 tmp6 u:3
N002 ( 0, 0) [000243] ------------ t243 = PHI_ARG long V07 tmp6 u:2 $242
/--* t247 long
+--* t243 long
N005 ( 2, 2) [000208] ------------ t208 = * PHI long
/--* t208 long
N007 ( 6, 5) [000209] DA---------- * STORE_LCL_VAR long V07 tmp6 d:4
N001 ( 0, 0) [000249] ------------ t249 = PHI_ARG int V05 tmp4 u:5
N002 ( 0, 0) [000245] ------------ t245 = PHI_ARG int V05 tmp4 u:4 $281
/--* t249 int
+--* t245 int
N005 ( 2, 2) [000204] ------------ t204 = * PHI int
/--* t204 int
N007 ( 2, 3) [000205] DA---------- * STORE_LCL_VAR int V05 tmp4 d:6
( 3, 3) [000080] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000076] ------------ t76 = LCL_VAR long V07 tmp6 u:4 $144
/--* t76 long
N002 ( 3, 2) [000077] *--XG------- t77 = * IND int <l:$284, c:$1c5>
/--* t77 int
N004 ( 3, 3) [000079] DA-XG------- * STORE_LCL_VAR int V08 tmp7 d:2
( 26, 9) [000092] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000081] ------------ t81 = LCL_VAR long V07 tmp6 u:4 (last use) $144
N002 ( 1, 1) [000082] ------------ t82 = LCL_VAR long V02 tmp1 u:2 (last use) <l:$140, c:$180>
/--* t81 long
+--* t82 long
N003 ( 3, 3) [000083] ------------ t83 = * SUB long <l:$244, c:$245>
/--* t83 long
[000268] DA---------- * STORE_LCL_VAR long V11 rat0
N001 ( 1, 1) [000269] ------------ t269 = LCL_VAR long V11 rat0
N002 ( 1, 1) [000270] -c---------- t270 = CNS_INT int 63
/--* t269 long
+--* t270 int
N003 ( 3, 3) [000271] ------------ t271 = * RSH long
N004 ( 1, 1) [000272] -c---------- t272 = CNS_INT long 3
/--* t271 long
+--* t272 long
N005 ( 5, 5) [000273] ------------ t273 = * AND long
N006 ( 1, 1) [000274] ------------ t274 = LCL_VAR long V11 rat0 (last use)
/--* t273 long
+--* t274 long
N007 ( 7, 7) [000275] ------------ t275 = * ADD long
N008 ( 1, 1) [000085] -c---------- t85 = CNS_INT long 2 $343
/--* t275 long
+--* t85 long
N009 ( 9, 9) [000276] ------------ t276 = * RSH long
N006 ( 1, 1) [000088] -c---------- t88 = CNS_INT long 5 $345
/--* t276 long
+--* t88 long
N007 ( 26, 9) [000089] ------------ t89 = * LSH long <l:$248, c:$249>
/--* t89 long
N009 ( 26, 9) [000091] DA---------- * STORE_LCL_VAR long V09 tmp8 d:2
( 5, 5) [000186] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000183] ------------ t183 = LCL_VAR int V05 tmp4 u:6 $283
N002 ( 1, 1) [000184] -c---------- t184 = CNS_INT int 0 $40
/--* t183 int
+--* t184 int
N003 ( 3, 3) [000182] J------N---- * LE void $208
N004 ( 5, 5) [000185] ------------ * JTRUE void
------------ BB06 [000..001) -> BB06 (cond), preds={BB05,BB06} succs={BB07,BB06}
N001 ( 0, 0) [000261] ------------ t261 = PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000251] ------------ t251 = PHI_ARG long V09 tmp8 u:2 <l:$248, c:$249>
/--* t261 long
+--* t251 long
N005 ( 2, 2) [000200] ------------ t200 = * PHI long
/--* t200 long
N007 ( 2, 3) [000201] DA---------- * STORE_LCL_VAR long V09 tmp8 d:3
N001 ( 0, 0) [000263] ------------ t263 = PHI_ARG int V08 tmp7 u:4
N002 ( 0, 0) [000253] ------------ t253 = PHI_ARG int V08 tmp7 u:2 <l:$284, c:$1c5>
/--* t263 int
+--* t253 int
N005 ( 2, 2) [000192] ------------ t192 = * PHI int
/--* t192 int
N007 ( 2, 3) [000193] DA---------- * STORE_LCL_VAR int V08 tmp7 d:3
N001 ( 0, 0) [000265] ------------ t265 = PHI_ARG int V05 tmp4 u:8
N002 ( 0, 0) [000255] ------------ t255 = PHI_ARG int V05 tmp4 u:6 $283
/--* t265 int
+--* t255 int
N005 ( 2, 2) [000188] ------------ t188 = * PHI int
/--* t188 int
N007 ( 2, 3) [000189] DA---------- * STORE_LCL_VAR int V05 tmp4 d:7
( 4, 4) [000106] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000100] ------------ t100 = LCL_VAR int V08 tmp7 u:3 $285
/--* t100 int
N002 ( 2, 2) [000101] ------------ t101 = * HWIntrinsic int TrailingZeroCount $400
N003 ( 1, 1) [000102] -c---------- t102 = CNS_INT int 1 $4b
/--* t101 int
+--* t102 int
N004 ( 4, 4) [000103] ------------ t103 = * ADD int $20a
/--* t103 int
N006 ( 4, 4) [000105] DA---------- * STORE_LCL_VAR int V10 tmp9 d:2
( 4, 5) [000113] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000107] ------------ t107 = LCL_VAR long V09 tmp8 u:3 (last use) $145
N002 ( 1, 1) [000108] ------------ t108 = LCL_VAR int V10 tmp9 u:2 $20a
/--* t108 int
N003 ( 2, 3) [000109] ---------U-- t109 = * CAST long <- ulong <- uint $24a
/--* t107 long
+--* t109 long
N004 ( 4, 5) [000110] ------------ t110 = * ADD long $24b
/--* t110 long
N006 ( 4, 5) [000112] DA---------- * STORE_LCL_VAR long V09 tmp8 d:4
( 3, 3) [000119] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000114] ------------ t114 = LCL_VAR int V05 tmp4 u:7 (last use) $286
N002 ( 1, 1) [000115] -c---------- t115 = CNS_INT int -1 $41
/--* t114 int
+--* t115 int
N003 ( 3, 3) [000116] ------------ t116 = * ADD int $20b
/--* t116 int
N005 ( 3, 3) [000118] DA---------- * STORE_LCL_VAR int V05 tmp4 d:8
( 8, 5) [000127] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000120] ------------ t120 = LCL_VAR int V08 tmp7 u:3 (last use) $285
N002 ( 1, 1) [000121] ------------ t121 = LCL_VAR int V10 tmp9 u:2 (last use) $20a
/--* t120 int
+--* t121 int
N005 ( 8, 5) [000124] ------------ t124 = * RSZ int $20d
/--* t124 int
N007 ( 8, 5) [000126] DA---------- * STORE_LCL_VAR int V08 tmp7 d:4
( 5, 5) [000098] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000094] ------------ t94 = LCL_VAR int V05 tmp4 u:8 $20b
N002 ( 1, 1) [000095] -c---------- t95 = CNS_INT int 0 $40
/--* t94 int
+--* t95 int
N003 ( 3, 3) [000096] J------N---- * GT void $20e
N004 ( 5, 5) [000097] ------------ * JTRUE void
------------ BB07 [000..001) (return), preds={BB05,BB06} succs={}
N001 ( 0, 0) [000259] ------------ t259 = PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000257] ------------ t257 = PHI_ARG long V09 tmp8 u:2 <l:$248, c:$249>
/--* t259 long
+--* t257 long
N005 ( 2, 2) [000196] ------------ t196 = * PHI long
/--* t196 long
N007 ( 2, 3) [000197] DA---------- * STORE_LCL_VAR long V09 tmp8 d:5
N001 ( 1, 1) [000129] C----------- t129 = LCL_VAR int V09 tmp8 u:5 (last use) $20f
N002 ( 1, 1) [000131] -c---------- t131 = CNS_INT int -1 $41
/--* t129 int
+--* t131 int
N003 ( 3, 3) [000132] ------------ t132 = * ADD int $210
/--* t132 int
N004 ( 4, 4) [000010] ------------ * RETURN int $1c7
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In StackLevelSetter
Trees before StackLevelSetter
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target LIR
BB02 [0002] 2 BB01,BB02 2 [000..001)-> BB02 ( cond ) i Loop Loop0 label target bwd LIR
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target LIR
BB04 [0005] 1 BB03 0.25 [000..001) i LIR
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target LIR
BB06 [0007] 2 BB05,BB06 2 [000..001)-> BB06 ( cond ) i Loop Loop0 label target bwd LIR
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target LIR
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
( 5, 12) [000147] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 3, 10) [000176] ------------ t176 = CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits] $100
/--* t176 long
N002 ( 5, 12) [000001] x---G------- t1 = * IND long <l:$140, c:$180>
/--* t1 long
N004 ( 5, 12) [000146] DA--G------- * STORE_LCL_VAR long V02 tmp1 d:2
( 1, 3) [000150] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000003] ------------ t3 = LCL_VAR int V00 arg0 u:2 (last use) $80
/--* t3 int
N003 ( 1, 3) [000149] DA---------- * STORE_LCL_VAR int V04 tmp3 d:2
( 1, 3) [000016] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000013] ------------ t13 = LCL_VAR long V02 tmp1 u:2 <l:$140, c:$180>
/--* t13 long
N003 ( 1, 3) [000015] DA---------- * STORE_LCL_VAR long V03 tmp2 d:2
( 1, 3) [000020] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000017] ------------ t17 = LCL_VAR int V04 tmp3 u:2 $80
/--* t17 int
N003 ( 1, 3) [000019] DA---------- * STORE_LCL_VAR int V05 tmp4 d:2
( 5, 5) [000181] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000178] ------------ t178 = LCL_VAR int V05 tmp4 u:2 $80
N002 ( 1, 1) [000179] -c---------- t179 = CNS_INT int 0 $40
/--* t178 int
+--* t179 int
N003 ( 3, 3) [000177] J------N---- * LE void $200
N004 ( 5, 5) [000180] ------------ * JTRUE void
------------ BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
N001 ( 0, 0) [000239] ------------ t239 = PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000227] ------------ t227 = PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
/--* t239 long
+--* t227 long
N005 ( 2, 2) [000224] ------------ t224 = * PHI long
/--* t224 long
N007 ( 2, 3) [000225] DA---------- * STORE_LCL_VAR long V03 tmp2 d:3
N001 ( 0, 0) [000241] ------------ t241 = PHI_ARG int V04 tmp3 u:4
N002 ( 0, 0) [000229] ------------ t229 = PHI_ARG int V04 tmp3 u:2 $80
/--* t241 int
+--* t229 int
N005 ( 2, 2) [000212] ------------ t212 = * PHI int
/--* t212 int
N007 ( 2, 3) [000213] DA---------- * STORE_LCL_VAR int V04 tmp3 d:3
( 1, 3) [000031] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000028] ------------ t28 = LCL_VAR int V04 tmp3 u:3 (last use) $280
/--* t28 int
N003 ( 1, 3) [000030] DA---------- * STORE_LCL_VAR int V05 tmp4 d:3
( 1, 3) [000041] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000033] ------------ t33 = LCL_VAR long V03 tmp2 u:3 (last use) $141
/--* t33 long
N003 ( 1, 3) [000040] DA---------- * STORE_LCL_VAR long V06 tmp5 d:2
( 3, 3) [000044] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000034] ------------ t34 = LCL_VAR long V06 tmp5 u:2 $141
N002 ( 1, 1) [000036] -c---------- t36 = CNS_INT long 8 $340
/--* t34 long
+--* t36 long
N003 ( 3, 3) [000037] ------------ t37 = * ADD long $241
/--* t37 long
N005 ( 3, 3) [000043] DA---------- * STORE_LCL_VAR long V03 tmp2 d:4
( 7, 7) [000052] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000032] ------------ t32 = LCL_VAR int V05 tmp4 u:3 $280
N002 ( 1, 1) [000042] ------------ t42 = LCL_VAR long V06 tmp5 u:2 (last use) $141
/--* t42 long
N003 ( 3, 2) [000045] *c-XG------- t45 = * IND long <l:$142, c:$302>
/--* t45 long
N004 ( 4, 3) [000046] ---XG------- t46 = * HWIntrinsic long PopCount $380
/--* t46 long
N005 ( 5, 5) [000047] ---XG------- t47 = * CAST int <- long $201
/--* t32 int
+--* t47 int
N006 ( 7, 7) [000048] ---XG------- t48 = * SUB int $202
/--* t48 int
N008 ( 7, 7) [000051] DA-XG------- * STORE_LCL_VAR int V04 tmp3 d:4
( 5, 5) [000026] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000022] ------------ t22 = LCL_VAR int V04 tmp3 u:4 $202
N002 ( 1, 1) [000023] -c---------- t23 = CNS_INT int 0 $40
/--* t22 int
+--* t23 int
N003 ( 3, 3) [000024] J------N---- * GT void $203
N004 ( 5, 5) [000025] ------------ * JTRUE void
------------ BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
N001 ( 0, 0) [000235] ------------ t235 = PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000231] ------------ t231 = PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
/--* t235 long
+--* t231 long
N005 ( 2, 2) [000220] ------------ t220 = * PHI long
/--* t220 long
N007 ( 2, 3) [000221] DA---------- * STORE_LCL_VAR long V03 tmp2 d:5
N001 ( 0, 0) [000237] ------------ t237 = PHI_ARG int V05 tmp4 u:3
N002 ( 0, 0) [000233] ------------ t233 = PHI_ARG int V05 tmp4 u:2 $80
/--* t237 int
+--* t233 int
N005 ( 2, 2) [000216] ------------ t216 = * PHI int
/--* t216 int
N007 ( 2, 3) [000217] DA---------- * STORE_LCL_VAR int V05 tmp4 d:4
( 3, 3) [000060] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000054] ------------ t54 = LCL_VAR long V03 tmp2 u:5 (last use) $143
N002 ( 1, 1) [000056] -c---------- t56 = CNS_INT long -8 $342
/--* t54 long
+--* t56 long
N003 ( 3, 3) [000057] ------------ t57 = * ADD long $242
/--* t57 long
N005 ( 3, 3) [000059] DA---------- * STORE_LCL_VAR long V07 tmp6 d:2
( 6, 5) [000069] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000061] ------------ t61 = LCL_VAR int V05 tmp4 u:4 $281
N002 ( 1, 1) [000062] ------------ t62 = LCL_VAR long V07 tmp6 u:2 $242
/--* t62 long
N003 ( 3, 2) [000063] *c-XG------- t63 = * IND int <l:$282, c:$1c2>
/--* t63 int
N004 ( 4, 3) [000064] ---XG------- t64 = * HWIntrinsic int PopCount $3c0
/--* t61 int
+--* t64 int
N005 ( 6, 5) [000065] ---XG------- t65 = * SUB int $205
/--* t65 int
N007 ( 6, 5) [000068] DA-XG------- * STORE_LCL_VAR int V04 tmp3 d:5
( 5, 5) [000074] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000070] ------------ t70 = LCL_VAR int V04 tmp3 u:5 $205
N002 ( 1, 1) [000071] -c---------- t71 = CNS_INT int 0 $40
/--* t70 int
+--* t71 int
N003 ( 3, 3) [000072] J------N---- * LE void $206
N004 ( 5, 5) [000073] ------------ * JTRUE void
------------ BB04 [000..001), preds={BB03} succs={BB05}
( 1, 3) [000137] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000134] ------------ t134 = LCL_VAR int V04 tmp3 u:5 (last use) $205
/--* t134 int
N003 ( 1, 3) [000136] DA---------- * STORE_LCL_VAR int V05 tmp4 d:5
( 3, 3) [000144] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000138] ------------ t138 = LCL_VAR long V07 tmp6 u:2 (last use) $242
N002 ( 1, 1) [000140] -c---------- t140 = CNS_INT long 4 $343
/--* t138 long
+--* t140 long
N003 ( 3, 3) [000141] ------------ t141 = * ADD long $243
/--* t141 long
N005 ( 3, 3) [000143] DA---------- * STORE_LCL_VAR long V07 tmp6 d:3
------------ BB05 [000..001) -> BB07 (cond), preds={BB03,BB04} succs={BB06,BB07}
N001 ( 0, 0) [000247] ------------ t247 = PHI_ARG long V07 tmp6 u:3
N002 ( 0, 0) [000243] ------------ t243 = PHI_ARG long V07 tmp6 u:2 $242
/--* t247 long
+--* t243 long
N005 ( 2, 2) [000208] ------------ t208 = * PHI long
/--* t208 long
N007 ( 6, 5) [000209] DA---------- * STORE_LCL_VAR long V07 tmp6 d:4
N001 ( 0, 0) [000249] ------------ t249 = PHI_ARG int V05 tmp4 u:5
N002 ( 0, 0) [000245] ------------ t245 = PHI_ARG int V05 tmp4 u:4 $281
/--* t249 int
+--* t245 int
N005 ( 2, 2) [000204] ------------ t204 = * PHI int
/--* t204 int
N007 ( 2, 3) [000205] DA---------- * STORE_LCL_VAR int V05 tmp4 d:6
( 3, 3) [000080] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000076] ------------ t76 = LCL_VAR long V07 tmp6 u:4 $144
/--* t76 long
N002 ( 3, 2) [000077] *--XG------- t77 = * IND int <l:$284, c:$1c5>
/--* t77 int
N004 ( 3, 3) [000079] DA-XG------- * STORE_LCL_VAR int V08 tmp7 d:2
( 26, 9) [000092] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000081] ------------ t81 = LCL_VAR long V07 tmp6 u:4 (last use) $144
N002 ( 1, 1) [000082] ------------ t82 = LCL_VAR long V02 tmp1 u:2 (last use) <l:$140, c:$180>
/--* t81 long
+--* t82 long
N003 ( 3, 3) [000083] ------------ t83 = * SUB long <l:$244, c:$245>
/--* t83 long
[000268] DA---------- * STORE_LCL_VAR long V11 rat0
N001 ( 1, 1) [000269] ------------ t269 = LCL_VAR long V11 rat0
N002 ( 1, 1) [000270] -c---------- t270 = CNS_INT int 63
/--* t269 long
+--* t270 int
N003 ( 3, 3) [000271] ------------ t271 = * RSH long
N004 ( 1, 1) [000272] -c---------- t272 = CNS_INT long 3
/--* t271 long
+--* t272 long
N005 ( 5, 5) [000273] ------------ t273 = * AND long
N006 ( 1, 1) [000274] ------------ t274 = LCL_VAR long V11 rat0 (last use)
/--* t273 long
+--* t274 long
N007 ( 7, 7) [000275] ------------ t275 = * ADD long
N008 ( 1, 1) [000085] -c---------- t85 = CNS_INT long 2 $343
/--* t275 long
+--* t85 long
N009 ( 9, 9) [000276] ------------ t276 = * RSH long
N006 ( 1, 1) [000088] -c---------- t88 = CNS_INT long 5 $345
/--* t276 long
+--* t88 long
N007 ( 26, 9) [000089] ------------ t89 = * LSH long <l:$248, c:$249>
/--* t89 long
N009 ( 26, 9) [000091] DA---------- * STORE_LCL_VAR long V09 tmp8 d:2
( 5, 5) [000186] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000183] ------------ t183 = LCL_VAR int V05 tmp4 u:6 $283
N002 ( 1, 1) [000184] -c---------- t184 = CNS_INT int 0 $40
/--* t183 int
+--* t184 int
N003 ( 3, 3) [000182] J------N---- * LE void $208
N004 ( 5, 5) [000185] ------------ * JTRUE void
------------ BB06 [000..001) -> BB06 (cond), preds={BB05,BB06} succs={BB07,BB06}
N001 ( 0, 0) [000261] ------------ t261 = PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000251] ------------ t251 = PHI_ARG long V09 tmp8 u:2 <l:$248, c:$249>
/--* t261 long
+--* t251 long
N005 ( 2, 2) [000200] ------------ t200 = * PHI long
/--* t200 long
N007 ( 2, 3) [000201] DA---------- * STORE_LCL_VAR long V09 tmp8 d:3
N001 ( 0, 0) [000263] ------------ t263 = PHI_ARG int V08 tmp7 u:4
N002 ( 0, 0) [000253] ------------ t253 = PHI_ARG int V08 tmp7 u:2 <l:$284, c:$1c5>
/--* t263 int
+--* t253 int
N005 ( 2, 2) [000192] ------------ t192 = * PHI int
/--* t192 int
N007 ( 2, 3) [000193] DA---------- * STORE_LCL_VAR int V08 tmp7 d:3
N001 ( 0, 0) [000265] ------------ t265 = PHI_ARG int V05 tmp4 u:8
N002 ( 0, 0) [000255] ------------ t255 = PHI_ARG int V05 tmp4 u:6 $283
/--* t265 int
+--* t255 int
N005 ( 2, 2) [000188] ------------ t188 = * PHI int
/--* t188 int
N007 ( 2, 3) [000189] DA---------- * STORE_LCL_VAR int V05 tmp4 d:7
( 4, 4) [000106] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000100] ------------ t100 = LCL_VAR int V08 tmp7 u:3 $285
/--* t100 int
N002 ( 2, 2) [000101] ------------ t101 = * HWIntrinsic int TrailingZeroCount $400
N003 ( 1, 1) [000102] -c---------- t102 = CNS_INT int 1 $4b
/--* t101 int
+--* t102 int
N004 ( 4, 4) [000103] ------------ t103 = * ADD int $20a
/--* t103 int
N006 ( 4, 4) [000105] DA---------- * STORE_LCL_VAR int V10 tmp9 d:2
( 4, 5) [000113] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000107] ------------ t107 = LCL_VAR long V09 tmp8 u:3 (last use) $145
N002 ( 1, 1) [000108] ------------ t108 = LCL_VAR int V10 tmp9 u:2 $20a
/--* t108 int
N003 ( 2, 3) [000109] ---------U-- t109 = * CAST long <- ulong <- uint $24a
/--* t107 long
+--* t109 long
N004 ( 4, 5) [000110] ------------ t110 = * ADD long $24b
/--* t110 long
N006 ( 4, 5) [000112] DA---------- * STORE_LCL_VAR long V09 tmp8 d:4
( 3, 3) [000119] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000114] ------------ t114 = LCL_VAR int V05 tmp4 u:7 (last use) $286
N002 ( 1, 1) [000115] -c---------- t115 = CNS_INT int -1 $41
/--* t114 int
+--* t115 int
N003 ( 3, 3) [000116] ------------ t116 = * ADD int $20b
/--* t116 int
N005 ( 3, 3) [000118] DA---------- * STORE_LCL_VAR int V05 tmp4 d:8
( 8, 5) [000127] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000120] ------------ t120 = LCL_VAR int V08 tmp7 u:3 (last use) $285
N002 ( 1, 1) [000121] ------------ t121 = LCL_VAR int V10 tmp9 u:2 (last use) $20a
/--* t120 int
+--* t121 int
N005 ( 8, 5) [000124] ------------ t124 = * RSZ int $20d
/--* t124 int
N007 ( 8, 5) [000126] DA---------- * STORE_LCL_VAR int V08 tmp7 d:4
( 5, 5) [000098] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000094] ------------ t94 = LCL_VAR int V05 tmp4 u:8 $20b
N002 ( 1, 1) [000095] -c---------- t95 = CNS_INT int 0 $40
/--* t94 int
+--* t95 int
N003 ( 3, 3) [000096] J------N---- * GT void $20e
N004 ( 5, 5) [000097] ------------ * JTRUE void
------------ BB07 [000..001) (return), preds={BB05,BB06} succs={}
N001 ( 0, 0) [000259] ------------ t259 = PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000257] ------------ t257 = PHI_ARG long V09 tmp8 u:2 <l:$248, c:$249>
/--* t259 long
+--* t257 long
N005 ( 2, 2) [000196] ------------ t196 = * PHI long
/--* t196 long
N007 ( 2, 3) [000197] DA---------- * STORE_LCL_VAR long V09 tmp8 d:5
N001 ( 1, 1) [000129] C----------- t129 = LCL_VAR int V09 tmp8 u:5 (last use) $20f
N002 ( 1, 1) [000131] -c---------- t131 = CNS_INT int -1 $41
/--* t129 int
+--* t131 int
N003 ( 3, 3) [000132] ------------ t132 = * ADD int $210
/--* t132 int
N004 ( 4, 4) [000010] ------------ * RETURN int $1c7
-------------------------------------------------------------------------------------------------------------------
*************** Exiting StackLevelSetter
Trees after StackLevelSetter
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target LIR
BB02 [0002] 2 BB01,BB02 2 [000..001)-> BB02 ( cond ) i Loop Loop0 label target bwd LIR
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target LIR
BB04 [0005] 1 BB03 0.25 [000..001) i LIR
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target LIR
BB06 [0007] 2 BB05,BB06 2 [000..001)-> BB06 ( cond ) i Loop Loop0 label target bwd LIR
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target LIR
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
( 5, 12) [000147] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 3, 10) [000176] ------------ t176 = CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits] $100
/--* t176 long
N002 ( 5, 12) [000001] x---G------- t1 = * IND long <l:$140, c:$180>
/--* t1 long
N004 ( 5, 12) [000146] DA--G------- * STORE_LCL_VAR long V02 tmp1 d:2
( 1, 3) [000150] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000003] ------------ t3 = LCL_VAR int V00 arg0 u:2 (last use) $80
/--* t3 int
N003 ( 1, 3) [000149] DA---------- * STORE_LCL_VAR int V04 tmp3 d:2
( 1, 3) [000016] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000013] ------------ t13 = LCL_VAR long V02 tmp1 u:2 <l:$140, c:$180>
/--* t13 long
N003 ( 1, 3) [000015] DA---------- * STORE_LCL_VAR long V03 tmp2 d:2
( 1, 3) [000020] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000017] ------------ t17 = LCL_VAR int V04 tmp3 u:2 $80
/--* t17 int
N003 ( 1, 3) [000019] DA---------- * STORE_LCL_VAR int V05 tmp4 d:2
( 5, 5) [000181] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000178] ------------ t178 = LCL_VAR int V05 tmp4 u:2 $80
N002 ( 1, 1) [000179] -c---------- t179 = CNS_INT int 0 $40
/--* t178 int
+--* t179 int
N003 ( 3, 3) [000177] J------N---- * LE void $200
N004 ( 5, 5) [000180] ------------ * JTRUE void
------------ BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
N001 ( 0, 0) [000239] ------------ t239 = PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000227] ------------ t227 = PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
/--* t239 long
+--* t227 long
N005 ( 2, 2) [000224] ------------ t224 = * PHI long
/--* t224 long
N007 ( 2, 3) [000225] DA---------- * STORE_LCL_VAR long V03 tmp2 d:3
N001 ( 0, 0) [000241] ------------ t241 = PHI_ARG int V04 tmp3 u:4
N002 ( 0, 0) [000229] ------------ t229 = PHI_ARG int V04 tmp3 u:2 $80
/--* t241 int
+--* t229 int
N005 ( 2, 2) [000212] ------------ t212 = * PHI int
/--* t212 int
N007 ( 2, 3) [000213] DA---------- * STORE_LCL_VAR int V04 tmp3 d:3
( 1, 3) [000031] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000028] ------------ t28 = LCL_VAR int V04 tmp3 u:3 (last use) $280
/--* t28 int
N003 ( 1, 3) [000030] DA---------- * STORE_LCL_VAR int V05 tmp4 d:3
( 1, 3) [000041] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000033] ------------ t33 = LCL_VAR long V03 tmp2 u:3 (last use) $141
/--* t33 long
N003 ( 1, 3) [000040] DA---------- * STORE_LCL_VAR long V06 tmp5 d:2
( 3, 3) [000044] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000034] ------------ t34 = LCL_VAR long V06 tmp5 u:2 $141
N002 ( 1, 1) [000036] -c---------- t36 = CNS_INT long 8 $340
/--* t34 long
+--* t36 long
N003 ( 3, 3) [000037] ------------ t37 = * ADD long $241
/--* t37 long
N005 ( 3, 3) [000043] DA---------- * STORE_LCL_VAR long V03 tmp2 d:4
( 7, 7) [000052] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000032] ------------ t32 = LCL_VAR int V05 tmp4 u:3 $280
N002 ( 1, 1) [000042] ------------ t42 = LCL_VAR long V06 tmp5 u:2 (last use) $141
/--* t42 long
N003 ( 3, 2) [000045] *c-XG------- t45 = * IND long <l:$142, c:$302>
/--* t45 long
N004 ( 4, 3) [000046] ---XG------- t46 = * HWIntrinsic long PopCount $380
/--* t46 long
N005 ( 5, 5) [000047] ---XG------- t47 = * CAST int <- long $201
/--* t32 int
+--* t47 int
N006 ( 7, 7) [000048] ---XG------- t48 = * SUB int $202
/--* t48 int
N008 ( 7, 7) [000051] DA-XG------- * STORE_LCL_VAR int V04 tmp3 d:4
( 5, 5) [000026] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000022] ------------ t22 = LCL_VAR int V04 tmp3 u:4 $202
N002 ( 1, 1) [000023] -c---------- t23 = CNS_INT int 0 $40
/--* t22 int
+--* t23 int
N003 ( 3, 3) [000024] J------N---- * GT void $203
N004 ( 5, 5) [000025] ------------ * JTRUE void
------------ BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
N001 ( 0, 0) [000235] ------------ t235 = PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000231] ------------ t231 = PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
/--* t235 long
+--* t231 long
N005 ( 2, 2) [000220] ------------ t220 = * PHI long
/--* t220 long
N007 ( 2, 3) [000221] DA---------- * STORE_LCL_VAR long V03 tmp2 d:5
N001 ( 0, 0) [000237] ------------ t237 = PHI_ARG int V05 tmp4 u:3
N002 ( 0, 0) [000233] ------------ t233 = PHI_ARG int V05 tmp4 u:2 $80
/--* t237 int
+--* t233 int
N005 ( 2, 2) [000216] ------------ t216 = * PHI int
/--* t216 int
N007 ( 2, 3) [000217] DA---------- * STORE_LCL_VAR int V05 tmp4 d:4
( 3, 3) [000060] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000054] ------------ t54 = LCL_VAR long V03 tmp2 u:5 (last use) $143
N002 ( 1, 1) [000056] -c---------- t56 = CNS_INT long -8 $342
/--* t54 long
+--* t56 long
N003 ( 3, 3) [000057] ------------ t57 = * ADD long $242
/--* t57 long
N005 ( 3, 3) [000059] DA---------- * STORE_LCL_VAR long V07 tmp6 d:2
( 6, 5) [000069] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000061] ------------ t61 = LCL_VAR int V05 tmp4 u:4 $281
N002 ( 1, 1) [000062] ------------ t62 = LCL_VAR long V07 tmp6 u:2 $242
/--* t62 long
N003 ( 3, 2) [000063] *c-XG------- t63 = * IND int <l:$282, c:$1c2>
/--* t63 int
N004 ( 4, 3) [000064] ---XG------- t64 = * HWIntrinsic int PopCount $3c0
/--* t61 int
+--* t64 int
N005 ( 6, 5) [000065] ---XG------- t65 = * SUB int $205
/--* t65 int
N007 ( 6, 5) [000068] DA-XG------- * STORE_LCL_VAR int V04 tmp3 d:5
( 5, 5) [000074] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000070] ------------ t70 = LCL_VAR int V04 tmp3 u:5 $205
N002 ( 1, 1) [000071] -c---------- t71 = CNS_INT int 0 $40
/--* t70 int
+--* t71 int
N003 ( 3, 3) [000072] J------N---- * LE void $206
N004 ( 5, 5) [000073] ------------ * JTRUE void
------------ BB04 [000..001), preds={BB03} succs={BB05}
( 1, 3) [000137] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000134] ------------ t134 = LCL_VAR int V04 tmp3 u:5 (last use) $205
/--* t134 int
N003 ( 1, 3) [000136] DA---------- * STORE_LCL_VAR int V05 tmp4 d:5
( 3, 3) [000144] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000138] ------------ t138 = LCL_VAR long V07 tmp6 u:2 (last use) $242
N002 ( 1, 1) [000140] -c---------- t140 = CNS_INT long 4 $343
/--* t138 long
+--* t140 long
N003 ( 3, 3) [000141] ------------ t141 = * ADD long $243
/--* t141 long
N005 ( 3, 3) [000143] DA---------- * STORE_LCL_VAR long V07 tmp6 d:3
------------ BB05 [000..001) -> BB07 (cond), preds={BB03,BB04} succs={BB06,BB07}
N001 ( 0, 0) [000247] ------------ t247 = PHI_ARG long V07 tmp6 u:3
N002 ( 0, 0) [000243] ------------ t243 = PHI_ARG long V07 tmp6 u:2 $242
/--* t247 long
+--* t243 long
N005 ( 2, 2) [000208] ------------ t208 = * PHI long
/--* t208 long
N007 ( 6, 5) [000209] DA---------- * STORE_LCL_VAR long V07 tmp6 d:4
N001 ( 0, 0) [000249] ------------ t249 = PHI_ARG int V05 tmp4 u:5
N002 ( 0, 0) [000245] ------------ t245 = PHI_ARG int V05 tmp4 u:4 $281
/--* t249 int
+--* t245 int
N005 ( 2, 2) [000204] ------------ t204 = * PHI int
/--* t204 int
N007 ( 2, 3) [000205] DA---------- * STORE_LCL_VAR int V05 tmp4 d:6
( 3, 3) [000080] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000076] ------------ t76 = LCL_VAR long V07 tmp6 u:4 $144
/--* t76 long
N002 ( 3, 2) [000077] *--XG------- t77 = * IND int <l:$284, c:$1c5>
/--* t77 int
N004 ( 3, 3) [000079] DA-XG------- * STORE_LCL_VAR int V08 tmp7 d:2
( 26, 9) [000092] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000081] ------------ t81 = LCL_VAR long V07 tmp6 u:4 (last use) $144
N002 ( 1, 1) [000082] ------------ t82 = LCL_VAR long V02 tmp1 u:2 (last use) <l:$140, c:$180>
/--* t81 long
+--* t82 long
N003 ( 3, 3) [000083] ------------ t83 = * SUB long <l:$244, c:$245>
/--* t83 long
[000268] DA---------- * STORE_LCL_VAR long V11 rat0
N001 ( 1, 1) [000269] ------------ t269 = LCL_VAR long V11 rat0
N002 ( 1, 1) [000270] -c---------- t270 = CNS_INT int 63
/--* t269 long
+--* t270 int
N003 ( 3, 3) [000271] ------------ t271 = * RSH long
N004 ( 1, 1) [000272] -c---------- t272 = CNS_INT long 3
/--* t271 long
+--* t272 long
N005 ( 5, 5) [000273] ------------ t273 = * AND long
N006 ( 1, 1) [000274] ------------ t274 = LCL_VAR long V11 rat0 (last use)
/--* t273 long
+--* t274 long
N007 ( 7, 7) [000275] ------------ t275 = * ADD long
N008 ( 1, 1) [000085] -c---------- t85 = CNS_INT long 2 $343
/--* t275 long
+--* t85 long
N009 ( 9, 9) [000276] ------------ t276 = * RSH long
N006 ( 1, 1) [000088] -c---------- t88 = CNS_INT long 5 $345
/--* t276 long
+--* t88 long
N007 ( 26, 9) [000089] ------------ t89 = * LSH long <l:$248, c:$249>
/--* t89 long
N009 ( 26, 9) [000091] DA---------- * STORE_LCL_VAR long V09 tmp8 d:2
( 5, 5) [000186] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000183] ------------ t183 = LCL_VAR int V05 tmp4 u:6 $283
N002 ( 1, 1) [000184] -c---------- t184 = CNS_INT int 0 $40
/--* t183 int
+--* t184 int
N003 ( 3, 3) [000182] J------N---- * LE void $208
N004 ( 5, 5) [000185] ------------ * JTRUE void
------------ BB06 [000..001) -> BB06 (cond), preds={BB05,BB06} succs={BB07,BB06}
N001 ( 0, 0) [000261] ------------ t261 = PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000251] ------------ t251 = PHI_ARG long V09 tmp8 u:2 <l:$248, c:$249>
/--* t261 long
+--* t251 long
N005 ( 2, 2) [000200] ------------ t200 = * PHI long
/--* t200 long
N007 ( 2, 3) [000201] DA---------- * STORE_LCL_VAR long V09 tmp8 d:3
N001 ( 0, 0) [000263] ------------ t263 = PHI_ARG int V08 tmp7 u:4
N002 ( 0, 0) [000253] ------------ t253 = PHI_ARG int V08 tmp7 u:2 <l:$284, c:$1c5>
/--* t263 int
+--* t253 int
N005 ( 2, 2) [000192] ------------ t192 = * PHI int
/--* t192 int
N007 ( 2, 3) [000193] DA---------- * STORE_LCL_VAR int V08 tmp7 d:3
N001 ( 0, 0) [000265] ------------ t265 = PHI_ARG int V05 tmp4 u:8
N002 ( 0, 0) [000255] ------------ t255 = PHI_ARG int V05 tmp4 u:6 $283
/--* t265 int
+--* t255 int
N005 ( 2, 2) [000188] ------------ t188 = * PHI int
/--* t188 int
N007 ( 2, 3) [000189] DA---------- * STORE_LCL_VAR int V05 tmp4 d:7
( 4, 4) [000106] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000100] ------------ t100 = LCL_VAR int V08 tmp7 u:3 $285
/--* t100 int
N002 ( 2, 2) [000101] ------------ t101 = * HWIntrinsic int TrailingZeroCount $400
N003 ( 1, 1) [000102] -c---------- t102 = CNS_INT int 1 $4b
/--* t101 int
+--* t102 int
N004 ( 4, 4) [000103] ------------ t103 = * ADD int $20a
/--* t103 int
N006 ( 4, 4) [000105] DA---------- * STORE_LCL_VAR int V10 tmp9 d:2
( 4, 5) [000113] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000107] ------------ t107 = LCL_VAR long V09 tmp8 u:3 (last use) $145
N002 ( 1, 1) [000108] ------------ t108 = LCL_VAR int V10 tmp9 u:2 $20a
/--* t108 int
N003 ( 2, 3) [000109] ---------U-- t109 = * CAST long <- ulong <- uint $24a
/--* t107 long
+--* t109 long
N004 ( 4, 5) [000110] ------------ t110 = * ADD long $24b
/--* t110 long
N006 ( 4, 5) [000112] DA---------- * STORE_LCL_VAR long V09 tmp8 d:4
( 3, 3) [000119] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000114] ------------ t114 = LCL_VAR int V05 tmp4 u:7 (last use) $286
N002 ( 1, 1) [000115] -c---------- t115 = CNS_INT int -1 $41
/--* t114 int
+--* t115 int
N003 ( 3, 3) [000116] ------------ t116 = * ADD int $20b
/--* t116 int
N005 ( 3, 3) [000118] DA---------- * STORE_LCL_VAR int V05 tmp4 d:8
( 8, 5) [000127] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000120] ------------ t120 = LCL_VAR int V08 tmp7 u:3 (last use) $285
N002 ( 1, 1) [000121] ------------ t121 = LCL_VAR int V10 tmp9 u:2 (last use) $20a
/--* t120 int
+--* t121 int
N005 ( 8, 5) [000124] ------------ t124 = * RSZ int $20d
/--* t124 int
N007 ( 8, 5) [000126] DA---------- * STORE_LCL_VAR int V08 tmp7 d:4
( 5, 5) [000098] ------------ IL_OFFSET void IL offset: 0x0
N001 ( 1, 1) [000094] ------------ t94 = LCL_VAR int V05 tmp4 u:8 $20b
N002 ( 1, 1) [000095] -c---------- t95 = CNS_INT int 0 $40
/--* t94 int
+--* t95 int
N003 ( 3, 3) [000096] J------N---- * GT void $20e
N004 ( 5, 5) [000097] ------------ * JTRUE void
------------ BB07 [000..001) (return), preds={BB05,BB06} succs={}
N001 ( 0, 0) [000259] ------------ t259 = PHI_ARG long V09 tmp8 u:4
N002 ( 0, 0) [000257] ------------ t257 = PHI_ARG long V09 tmp8 u:2 <l:$248, c:$249>
/--* t259 long
+--* t257 long
N005 ( 2, 2) [000196] ------------ t196 = * PHI long
/--* t196 long
N007 ( 2, 3) [000197] DA---------- * STORE_LCL_VAR long V09 tmp8 d:5
N001 ( 1, 1) [000129] C----------- t129 = LCL_VAR int V09 tmp8 u:5 (last use) $20f
N002 ( 1, 1) [000131] -c---------- t131 = CNS_INT int -1 $41
/--* t129 int
+--* t131 int
N003 ( 3, 3) [000132] ------------ t132 = * ADD int $210
/--* t132 int
N004 ( 4, 4) [000010] ------------ * RETURN int $1c7
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
Clearing modified regs.
buildIntervals ========
-----------------
LIVENESS:
-----------------
BB01 use def in out
{V00}
{V02 V03 V04 V05}
{V00}
{V02 V03 V04 V05}
BB02 use def in out
{V03 V04}
{V03 V04 V05 V06}
{V02 V03 V04}
{V02 V03 V04 V05}
BB03 use def in out
{V03 V05}
{V04 V07}
{V02 V03 V05}
{V02 V04 V05 V07}
BB04 use def in out
{V04 V07}
{V05 V07}
{V02 V04 V07}
{V02 V05 V07}
BB05 use def in out
{V02 V05 V07}
{V08 V09 V11}
{V02 V05 V07}
{V05 V08 V09}
BB06 use def in out
{V05 V08 V09}
{V05 V08 V09 V10}
{V05 V08 V09}
{V05 V08 V09}
BB07 use def in out
{V09}
{}
{V09}
{}
Interval 0: RefPositions {} physReg:NA Preferences=[allInt]
Interval 1: RefPositions {} physReg:NA Preferences=[allInt]
Interval 2: RefPositions {} physReg:NA Preferences=[allInt]
Interval 3: RefPositions {} physReg:NA Preferences=[allInt]
Interval 4: RefPositions {} physReg:NA Preferences=[allInt]
Interval 5: RefPositions {} physReg:NA Preferences=[allInt]
Interval 6: RefPositions {} physReg:NA Preferences=[allInt]
Interval 7: RefPositions {} physReg:NA Preferences=[allInt]
Interval 8: RefPositions {} physReg:NA Preferences=[allInt]
Interval 9: RefPositions {} physReg:NA Preferences=[allInt]
Interval 10: RefPositions {} physReg:NA Preferences=[allInt]
FP callee save candidate vars: None
floatVarCount = 0; hasLoops = 1, singleExit = 1
; Decided to create an EBP based frame for ETW stackwalking (BasicBlock Count)
TUPLE STYLE DUMP BEFORE LSRA
LSRA Block Sequence: BB01( 1 ) BB02( 2 ) BB03( 0.50) BB04( 0.25) BB05( 0.50) BB06( 2 ) BB07( 1 )
BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
=====
N000. IL_OFFSET IL offset: 0x0
N001. t176* = CNS_INT(h) 0x7fe9bcfc4498 static Fseq[_bits]
N002. t1 = IND ; t176*
N004. V02(t146); t1
N000. IL_OFFSET IL offset: 0x0
N001. V00(t3*)
N003. V04(t149); t3*
N000. IL_OFFSET IL offset: 0x0
N001. V02(t13)
N003. V03(t15); t13
N000. IL_OFFSET IL offset: 0x0
N001. V04(t17)
N003. V05(t19); t17
N000. IL_OFFSET IL offset: 0x0
N001. V05(t178)
N002. CNS_INT 0
N003. LE ; t178
N004. JTRUE
BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
=====
N000. IL_OFFSET IL offset: 0x0
N001. V04(t28*)
N003. V05(t30); t28*
N000. IL_OFFSET IL offset: 0x0
N001. V03(t33*)
N003. V06(t40); t33*
N000. IL_OFFSET IL offset: 0x0
N001. V06(t34)
N002. CNS_INT 8
N003. t37 = ADD ; t34
N005. V03(t43); t37
N000. IL_OFFSET IL offset: 0x0
N001. V05(t32)
N002. V06(t42*)
N003. t45 = IND ; t42*
N004. t46 = HWIntrinsic; t45
N005. t47 = CAST ; t46
N006. t48 = SUB ; t32,t47
N008. V04(t51); t48
N000. IL_OFFSET IL offset: 0x0
N001. V04(t22)
N002. CNS_INT 0
N003. GT ; t22
N004. JTRUE
BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
=====
N000. IL_OFFSET IL offset: 0x0
N001. V03(t54*)
N002. CNS_INT -8
N003. t57 = ADD ; t54*
N005. V07(t59); t57
N000. IL_OFFSET IL offset: 0x0
N001. V05(t61)
N002. V07(t62)
N003. t63 = IND ; t62
N004. t64 = HWIntrinsic; t63
N005. t65 = SUB ; t61,t64
N007. V04(t68); t65
N000. IL_OFFSET IL offset: 0x0
N001. V04(t70)
N002. CNS_INT 0
N003. LE ; t70
N004. JTRUE
BB04 [000..001), preds={BB03} succs={BB05}
=====
N000. IL_OFFSET IL offset: 0x0
N001. V04(t134*)
N003. V05(t136); t134*
N000. IL_OFFSET IL offset: 0x0
N001. V07(t138*)
N002. CNS_INT 4
N003. t141 = ADD ; t138*
N005. V07(t143); t141
BB05 [000..001) -> BB07 (cond), preds={BB03,BB04} succs={BB06,BB07}
=====
N000. IL_OFFSET IL offset: 0x0
N001. V07(t76)
N002. t77 = IND ; t76
N004. V08(t79); t77
N000. IL_OFFSET IL offset: 0x0
N001. V07(t81*)
N002. V02(t82*)
N003. t83 = SUB ; t81*,t82*
N000. V11(t268); t83
N001. V11(t269)
N002. CNS_INT 63
N003. t271 = RSH ; t269
N004. CNS_INT 3
N005. t273 = AND ; t271
N006. V11(t274*)
N007. t275 = ADD ; t273,t274*
N008. CNS_INT 2
N009. t276 = RSH ; t275
N006. CNS_INT 5
N007. t89 = LSH ; t276
N009. V09(t91); t89
N000. IL_OFFSET IL offset: 0x0
N001. V05(t183)
N002. CNS_INT 0
N003. LE ; t183
N004. JTRUE
BB06 [000..001) -> BB06 (cond), preds={BB05,BB06} succs={BB07,BB06}
=====
N000. IL_OFFSET IL offset: 0x0
N001. V08(t100)
N002. t101 = HWIntrinsic; t100
N003. CNS_INT 1
N004. t103 = ADD ; t101
N006. V10(t105); t103
N000. IL_OFFSET IL offset: 0x0
N001. V09(t107*)
N002. V10(t108)
N003. t109 = CAST ; t108
N004. t110 = ADD ; t107*,t109
N006. V09(t112); t110
N000. IL_OFFSET IL offset: 0x0
N001. V05(t114*)
N002. CNS_INT -1
N003. t116 = ADD ; t114*
N005. V05(t118); t116
N000. IL_OFFSET IL offset: 0x0
N001. V08(t120*)
N002. V10(t121*)
N005. t124 = RSZ ; t120*,t121*
N007. V08(t126); t124
N000. IL_OFFSET IL offset: 0x0
N001. V05(t94)
N002. CNS_INT 0
N003. GT ; t94
N004. JTRUE
BB07 [000..001) (return), preds={BB05,BB06} succs={}
=====
N001. V09(t129*)
N002. CNS_INT -1
N003. t132 = ADD ; t129*
N004. RETURN ; t132
buildIntervals second part ========
Int arg V00 in reg rdi
<RefPosition #0 @0 RefTypeParamDef <Ivl:0 V00> BB00 regmask=[rdi] minReg=1 fixed>
NEW BLOCK BB01
<RefPosition #1 @1 RefTypeBB BB01 regmask=[] minReg=1>
DefList: { }
N003 ( 5, 12) [000147] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N005 ( 3, 10) [000176] ------------ * CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits] REG NA $100
Interval 11: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #2 @6 RefTypeDef <Ivl:11> CNS_INT BB01 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { N005.t176. CNS_INT }
N007 ( 5, 12) [000001] x---G------- * IND long REG NA <l:$140, c:$180>
<RefPosition #3 @7 RefTypeUse <Ivl:11> BB01 regmask=[allInt] minReg=1 last>
Interval 12: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #4 @8 RefTypeDef <Ivl:12> IND BB01 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N007.t1. IND }
N009 ( 5, 12) [000146] DA--G------- * STORE_LCL_VAR long V02 tmp1 d:2 NA REG NA
<RefPosition #5 @9 RefTypeUse <Ivl:12> BB01 regmask=[allInt] minReg=1 last>
Assigning related <L1> to <I12>
<RefPosition #6 @10 RefTypeDef <Ivl:1 V02> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N011 ( 1, 3) [000150] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N013 ( 1, 1) [000003] ------------ * LCL_VAR int V00 arg0 u:2 NA (last use) REG NA $80
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N015 ( 1, 3) [000149] DA---------- * STORE_LCL_VAR int V04 tmp3 d:2 NA REG NA
<RefPosition #7 @15 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
Assigning related <L3> to <L0>
<RefPosition #8 @16 RefTypeDef <Ivl:3 V04> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N017 ( 1, 3) [000016] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N019 ( 1, 1) [000013] ------------ * LCL_VAR long V02 tmp1 u:2 NA REG NA <l:$140, c:$180>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N021 ( 1, 3) [000015] DA---------- * STORE_LCL_VAR long V03 tmp2 d:2 NA REG NA
<RefPosition #9 @21 RefTypeUse <Ivl:1 V02> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
<RefPosition #10 @22 RefTypeDef <Ivl:2 V03> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N023 ( 1, 3) [000020] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N025 ( 1, 1) [000017] ------------ * LCL_VAR int V04 tmp3 u:2 NA REG NA $80
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N027 ( 1, 3) [000019] DA---------- * STORE_LCL_VAR int V05 tmp4 d:2 NA REG NA
<RefPosition #11 @27 RefTypeUse <Ivl:3 V04> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
<RefPosition #12 @28 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N029 ( 5, 5) [000181] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N031 ( 1, 1) [000178] ------------ * LCL_VAR int V05 tmp4 u:2 NA REG NA $80
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[-O]
consume= 0 produce=1
DefList: { }
N033 ( 1, 1) [000179] -c---------- * CNS_INT int 0 REG NA $40
Contained
DefList: { }
N035 ( 3, 3) [000177] J------N---- * LE void REG NA $200
<RefPosition #13 @35 RefTypeUse <Ivl:4 V05> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N037 ( 5, 5) [000180] ------------ * JTRUE void REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
CHECKING LAST USES for block 1, liveout={V02 V03 V04 V05}
==============================
use: {V00}
def: {V02 V03 V04 V05}
NEW BLOCK BB02
Setting BB02 as the predecessor for determining incoming variable registers of BB01
<RefPosition #14 @39 RefTypeBB BB02 regmask=[] minReg=1>
DefList: { }
N041 ( 1, 3) [000031] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N043 ( 1, 1) [000028] ------------ * LCL_VAR int V04 tmp3 u:3 NA (last use) REG NA $280
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N045 ( 1, 3) [000030] DA---------- * STORE_LCL_VAR int V05 tmp4 d:3 NA REG NA
<RefPosition #15 @45 RefTypeUse <Ivl:3 V04> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
Assigning related <L4> to <L3>
<RefPosition #16 @46 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N047 ( 1, 3) [000041] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N049 ( 1, 1) [000033] ------------ * LCL_VAR long V03 tmp2 u:3 NA (last use) REG NA $141
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N051 ( 1, 3) [000040] DA---------- * STORE_LCL_VAR long V06 tmp5 d:2 NA REG NA
<RefPosition #17 @51 RefTypeUse <Ivl:2 V03> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
Assigning related <L5> to <L2>
<RefPosition #18 @52 RefTypeDef <Ivl:5 V06> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N053 ( 3, 3) [000044] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N055 ( 1, 1) [000034] ------------ * LCL_VAR long V06 tmp5 u:2 NA REG NA $141
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N057 ( 1, 1) [000036] -c---------- * CNS_INT long 8 REG NA $340
Contained
DefList: { }
N059 ( 3, 3) [000037] ------------ * ADD long REG NA $241
<RefPosition #19 @59 RefTypeUse <Ivl:5 V06> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
Interval 13: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #20 @60 RefTypeDef <Ivl:13> ADD BB02 regmask=[allInt] minReg=1>
Assigning related <L5> to <I13>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N059.t37. ADD }
N061 ( 3, 3) [000043] DA---------- * STORE_LCL_VAR long V03 tmp2 d:4 NA REG NA
<RefPosition #21 @61 RefTypeUse <Ivl:13> BB02 regmask=[allInt] minReg=1 last>
Assigning related <L2> to <I13>
<RefPosition #22 @62 RefTypeDef <Ivl:2 V03> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N063 ( 7, 7) [000052] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N065 ( 1, 1) [000032] ------------ * LCL_VAR int V05 tmp4 u:3 NA REG NA $280
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N067 ( 1, 1) [000042] ------------ * LCL_VAR long V06 tmp5 u:2 NA (last use) REG NA $141
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N069 ( 3, 2) [000045] *c-XG------- * IND long REG NA <l:$142, c:$302>
Contained
DefList: { }
N071 ( 4, 3) [000046] ---XG------- * HWIntrinsic long PopCount REG NA $380
<RefPosition #23 @71 RefTypeUse <Ivl:5 V06> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
Interval 14: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #24 @72 RefTypeDef <Ivl:14> HWIntrinsic BB02 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N071.t46. HWIntrinsic }
N073 ( 5, 5) [000047] ---XG------- * CAST int <- long REG NA $201
<RefPosition #25 @73 RefTypeUse <Ivl:14> BB02 regmask=[allInt] minReg=1 last>
Interval 15: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #26 @74 RefTypeDef <Ivl:15> CAST BB02 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[-O]
consume= 1 produce=1
DefList: { N073.t47. CAST }
N075 ( 7, 7) [000048] ---XG------- * SUB int REG NA $202
<RefPosition #27 @75 RefTypeUse <Ivl:4 V05> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
<RefPosition #28 @75 RefTypeUse <Ivl:15> BB02 regmask=[allInt] minReg=1 last>
Interval 16: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #29 @76 RefTypeDef <Ivl:16> SUB BB02 regmask=[allInt] minReg=1>
Assigning related <L4> to <I16>
+<TreeNodeInfo 1=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I D>[--]
consume= 2 produce=1
DefList: { N075.t48. SUB }
N077 ( 7, 7) [000051] DA-XG------- * STORE_LCL_VAR int V04 tmp3 d:4 NA REG NA
<RefPosition #30 @77 RefTypeUse <Ivl:16> BB02 regmask=[allInt] minReg=1 last>
Assigning related <L3> to <I16>
<RefPosition #31 @78 RefTypeDef <Ivl:3 V04> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N079 ( 5, 5) [000026] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N081 ( 1, 1) [000022] ------------ * LCL_VAR int V04 tmp3 u:4 NA REG NA $202
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[-O]
consume= 0 produce=1
DefList: { }
N083 ( 1, 1) [000023] -c---------- * CNS_INT int 0 REG NA $40
Contained
DefList: { }
N085 ( 3, 3) [000024] J------N---- * GT void REG NA $203
<RefPosition #32 @85 RefTypeUse <Ivl:3 V04> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N087 ( 5, 5) [000025] ------------ * JTRUE void REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
Exposed uses:<RefPosition #33 @89 RefTypeExpUse <Ivl:3 V04> BB02 regmask=[allInt] minReg=1>
V04
CHECKING LAST USES for block 2, liveout={V02 V03 V04 V05}
==============================
use: {V03 V04}
def: {V03 V04 V05 V06}
NEW BLOCK BB03
Setting BB03 as the predecessor for determining incoming variable registers of BB02
<RefPosition #34 @89 RefTypeBB BB03 regmask=[] minReg=1>
DefList: { }
N091 ( 3, 3) [000060] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N093 ( 1, 1) [000054] ------------ * LCL_VAR long V03 tmp2 u:5 NA (last use) REG NA $143
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N095 ( 1, 1) [000056] -c---------- * CNS_INT long -8 REG NA $342
Contained
DefList: { }
N097 ( 3, 3) [000057] ------------ * ADD long REG NA $242
<RefPosition #35 @97 RefTypeUse <Ivl:2 V03> LCL_VAR BB03 regmask=[allInt] minReg=1 last>
Interval 17: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #36 @98 RefTypeDef <Ivl:17> ADD BB03 regmask=[allInt] minReg=1>
Assigning related <L2> to <I17>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N097.t57. ADD }
N099 ( 3, 3) [000059] DA---------- * STORE_LCL_VAR long V07 tmp6 d:2 NA REG NA
<RefPosition #37 @99 RefTypeUse <Ivl:17> BB03 regmask=[allInt] minReg=1 last>
Assigning related <L6> to <I17>
<RefPosition #38 @100 RefTypeDef <Ivl:6 V07> STORE_LCL_VAR BB03 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N101 ( 6, 5) [000069] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N103 ( 1, 1) [000061] ------------ * LCL_VAR int V05 tmp4 u:4 NA REG NA $281
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N105 ( 1, 1) [000062] ------------ * LCL_VAR long V07 tmp6 u:2 NA REG NA $242
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N107 ( 3, 2) [000063] *c-XG------- * IND int REG NA <l:$282, c:$1c2>
Contained
DefList: { }
N109 ( 4, 3) [000064] ---XG------- * HWIntrinsic int PopCount REG NA $3c0
<RefPosition #39 @109 RefTypeUse <Ivl:6 V07> LCL_VAR BB03 regmask=[allInt] minReg=1 last>
Interval 18: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #40 @110 RefTypeDef <Ivl:18> HWIntrinsic BB03 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[-O]
consume= 1 produce=1
DefList: { N109.t64. HWIntrinsic }
N111 ( 6, 5) [000065] ---XG------- * SUB int REG NA $205
<RefPosition #41 @111 RefTypeUse <Ivl:4 V05> LCL_VAR BB03 regmask=[allInt] minReg=1 last>
<RefPosition #42 @111 RefTypeUse <Ivl:18> BB03 regmask=[allInt] minReg=1 last>
Interval 19: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #43 @112 RefTypeDef <Ivl:19> SUB BB03 regmask=[allInt] minReg=1>
Assigning related <L4> to <I19>
+<TreeNodeInfo 1=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I D>[--]
consume= 2 produce=1
DefList: { N111.t65. SUB }
N113 ( 6, 5) [000068] DA-XG------- * STORE_LCL_VAR int V04 tmp3 d:5 NA REG NA
<RefPosition #44 @113 RefTypeUse <Ivl:19> BB03 regmask=[allInt] minReg=1 last>
Assigning related <L3> to <I19>
<RefPosition #45 @114 RefTypeDef <Ivl:3 V04> STORE_LCL_VAR BB03 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N115 ( 5, 5) [000074] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N117 ( 1, 1) [000070] ------------ * LCL_VAR int V04 tmp3 u:5 NA REG NA $205
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[-O]
consume= 0 produce=1
DefList: { }
N119 ( 1, 1) [000071] -c---------- * CNS_INT int 0 REG NA $40
Contained
DefList: { }
N121 ( 3, 3) [000072] J------N---- * LE void REG NA $206
<RefPosition #46 @121 RefTypeUse <Ivl:3 V04> LCL_VAR BB03 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N123 ( 5, 5) [000073] ------------ * JTRUE void REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
CHECKING LAST USES for block 3, liveout={V02 V04 V05 V07}
==============================
use: {V03 V05}
def: {V04 V07}
NEW BLOCK BB04
Setting BB04 as the predecessor for determining incoming variable registers of BB03
<RefPosition #47 @125 RefTypeBB BB04 regmask=[] minReg=1>
DefList: { }
N127 ( 1, 3) [000137] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N129 ( 1, 1) [000134] ------------ * LCL_VAR int V04 tmp3 u:5 NA (last use) REG NA $205
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N131 ( 1, 3) [000136] DA---------- * STORE_LCL_VAR int V05 tmp4 d:5 NA REG NA
<RefPosition #48 @131 RefTypeUse <Ivl:3 V04> LCL_VAR BB04 regmask=[allInt] minReg=1 last>
<RefPosition #49 @132 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB04 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N133 ( 3, 3) [000144] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N135 ( 1, 1) [000138] ------------ * LCL_VAR long V07 tmp6 u:2 NA (last use) REG NA $242
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N137 ( 1, 1) [000140] -c---------- * CNS_INT long 4 REG NA $343
Contained
DefList: { }
N139 ( 3, 3) [000141] ------------ * ADD long REG NA $243
<RefPosition #50 @139 RefTypeUse <Ivl:6 V07> LCL_VAR BB04 regmask=[allInt] minReg=1 last>
Interval 20: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #51 @140 RefTypeDef <Ivl:20> ADD BB04 regmask=[allInt] minReg=1>
Assigning related <L6> to <I20>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N139.t141. ADD }
N141 ( 3, 3) [000143] DA---------- * STORE_LCL_VAR long V07 tmp6 d:3 NA REG NA
<RefPosition #52 @141 RefTypeUse <Ivl:20> BB04 regmask=[allInt] minReg=1 last>
Assigning related <L6> to <I20>
<RefPosition #53 @142 RefTypeDef <Ivl:6 V07> STORE_LCL_VAR BB04 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
CHECKING LAST USES for block 4, liveout={V02 V05 V07}
==============================
use: {V04 V07}
def: {V05 V07}
NEW BLOCK BB05
Setting BB05 as the predecessor for determining incoming variable registers of BB03
<RefPosition #54 @143 RefTypeBB BB05 regmask=[] minReg=1>
DefList: { }
N145 ( 3, 3) [000080] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N147 ( 1, 1) [000076] ------------ * LCL_VAR long V07 tmp6 u:4 NA REG NA $144
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N149 ( 3, 2) [000077] *--XG------- * IND int REG NA <l:$284, c:$1c5>
<RefPosition #55 @149 RefTypeUse <Ivl:6 V07> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
Interval 21: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #56 @150 RefTypeDef <Ivl:21> IND BB05 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N149.t77. IND }
N151 ( 3, 3) [000079] DA-XG------- * STORE_LCL_VAR int V08 tmp7 d:2 NA REG NA
<RefPosition #57 @151 RefTypeUse <Ivl:21> BB05 regmask=[allInt] minReg=1 last>
Assigning related <L7> to <I21>
<RefPosition #58 @152 RefTypeDef <Ivl:7 V08> STORE_LCL_VAR BB05 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N153 ( 26, 9) [000092] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N155 ( 1, 1) [000081] ------------ * LCL_VAR long V07 tmp6 u:4 NA (last use) REG NA $144
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N157 ( 1, 1) [000082] ------------ * LCL_VAR long V02 tmp1 u:2 NA (last use) REG NA <l:$140, c:$180>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[-O]
consume= 0 produce=1
DefList: { }
N159 ( 3, 3) [000083] ------------ * SUB long REG NA <l:$244, c:$245>
<RefPosition #59 @159 RefTypeUse <Ivl:6 V07> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
<RefPosition #60 @159 RefTypeUse <Ivl:1 V02> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
Interval 22: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #61 @160 RefTypeDef <Ivl:22> SUB BB05 regmask=[allInt] minReg=1>
Assigning related <L6> to <I22>
+<TreeNodeInfo 1=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I D>[--]
consume= 2 produce=1
DefList: { N159.t83. SUB }
N161 (???,???) [000268] DA---------- * STORE_LCL_VAR long V11 rat0 NA REG NA
<RefPosition #62 @161 RefTypeUse <Ivl:22> BB05 regmask=[allInt] minReg=1 last>
Assigning related <L10> to <I22>
<RefPosition #63 @162 RefTypeDef <Ivl:10 V11> STORE_LCL_VAR BB05 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N163 ( 1, 1) [000269] ------------ * LCL_VAR long V11 rat0 NA REG NA
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N165 ( 1, 1) [000270] -c---------- * CNS_INT int 63 REG NA
Contained
DefList: { }
N167 ( 3, 3) [000271] ------------ * RSH long REG NA
<RefPosition #64 @167 RefTypeUse <Ivl:10 V11> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
Interval 23: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #65 @168 RefTypeDef <Ivl:23> RSH BB05 regmask=[allInt] minReg=1>
Assigning related <L10> to <I23>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N167.t271. RSH }
N169 ( 1, 1) [000272] -c---------- * CNS_INT long 3 REG NA
Contained
DefList: { N167.t271. RSH }
N171 ( 5, 5) [000273] ------------ * AND long REG NA
<RefPosition #66 @171 RefTypeUse <Ivl:23> BB05 regmask=[allInt] minReg=1 last>
Interval 24: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #67 @172 RefTypeDef <Ivl:24> AND BB05 regmask=[allInt] minReg=1>
Assigning related <I23> to <I24>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N171.t273. AND }
N173 ( 1, 1) [000274] ------------ * LCL_VAR long V11 rat0 NA (last use) REG NA
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[-O]
consume= 0 produce=1
DefList: { N171.t273. AND }
N175 ( 7, 7) [000275] ------------ * ADD long REG NA
<RefPosition #68 @175 RefTypeUse <Ivl:24> BB05 regmask=[allInt] minReg=1 last>
<RefPosition #69 @175 RefTypeUse <Ivl:10 V11> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
Interval 25: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #70 @176 RefTypeDef <Ivl:25> ADD BB05 regmask=[allInt] minReg=1>
Assigning related <I24> to <I25>
+<TreeNodeInfo 1=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 2 produce=1
DefList: { N175.t275. ADD }
N177 ( 1, 1) [000085] -c---------- * CNS_INT long 2 REG NA $343
Contained
DefList: { N175.t275. ADD }
N179 ( 9, 9) [000276] ------------ * RSH long REG NA
<RefPosition #71 @179 RefTypeUse <Ivl:25> BB05 regmask=[allInt] minReg=1 last>
Interval 26: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #72 @180 RefTypeDef <Ivl:26> RSH BB05 regmask=[allInt] minReg=1>
Assigning related <I25> to <I26>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N179.t276. RSH }
N181 ( 1, 1) [000088] -c---------- * CNS_INT long 5 REG NA $345
Contained
DefList: { N179.t276. RSH }
N183 ( 26, 9) [000089] ------------ * LSH long REG NA <l:$248, c:$249>
<RefPosition #73 @183 RefTypeUse <Ivl:26> BB05 regmask=[allInt] minReg=1 last>
Interval 27: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #74 @184 RefTypeDef <Ivl:27> LSH BB05 regmask=[allInt] minReg=1>
Assigning related <I26> to <I27>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N183.t89. LSH }
N185 ( 26, 9) [000091] DA---------- * STORE_LCL_VAR long V09 tmp8 d:2 NA REG NA
<RefPosition #75 @185 RefTypeUse <Ivl:27> BB05 regmask=[allInt] minReg=1 last>
Assigning related <L8> to <I27>
<RefPosition #76 @186 RefTypeDef <Ivl:8 V09> STORE_LCL_VAR BB05 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N187 ( 5, 5) [000186] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N189 ( 1, 1) [000183] ------------ * LCL_VAR int V05 tmp4 u:6 NA REG NA $283
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[-O]
consume= 0 produce=1
DefList: { }
N191 ( 1, 1) [000184] -c---------- * CNS_INT int 0 REG NA $40
Contained
DefList: { }
N193 ( 3, 3) [000182] J------N---- * LE void REG NA $208
<RefPosition #77 @193 RefTypeUse <Ivl:4 V05> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N195 ( 5, 5) [000185] ------------ * JTRUE void REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
CHECKING LAST USES for block 5, liveout={V05 V08 V09}
==============================
use: {V02 V05 V07}
def: {V08 V09 V11}
NEW BLOCK BB06
Setting BB06 as the predecessor for determining incoming variable registers of BB05
<RefPosition #78 @197 RefTypeBB BB06 regmask=[] minReg=1>
DefList: { }
N199 ( 4, 4) [000106] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N201 ( 1, 1) [000100] ------------ * LCL_VAR int V08 tmp7 u:3 NA REG NA $285
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[-O]
consume= 0 produce=1
DefList: { }
N203 ( 2, 2) [000101] ------------ * HWIntrinsic int TrailingZeroCount REG NA $400
<RefPosition #79 @203 RefTypeUse <Ivl:7 V08> LCL_VAR BB06 regmask=[allInt] minReg=1 last>
Interval 28: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #80 @204 RefTypeDef <Ivl:28> HWIntrinsic BB06 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N203.t101. HWIntrinsic }
N205 ( 1, 1) [000102] -c---------- * CNS_INT int 1 REG NA $4b
Contained
DefList: { N203.t101. HWIntrinsic }
N207 ( 4, 4) [000103] ------------ * ADD int REG NA $20a
<RefPosition #81 @207 RefTypeUse <Ivl:28> BB06 regmask=[allInt] minReg=1 last>
Interval 29: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #82 @208 RefTypeDef <Ivl:29> ADD BB06 regmask=[allInt] minReg=1>
Assigning related <I28> to <I29>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N207.t103. ADD }
N209 ( 4, 4) [000105] DA---------- * STORE_LCL_VAR int V10 tmp9 d:2 NA REG NA
<RefPosition #83 @209 RefTypeUse <Ivl:29> BB06 regmask=[allInt] minReg=1 last>
Assigning related <L9> to <I29>
<RefPosition #84 @210 RefTypeDef <Ivl:9 V10> STORE_LCL_VAR BB06 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N211 ( 4, 5) [000113] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N213 ( 1, 1) [000107] ------------ * LCL_VAR long V09 tmp8 u:3 NA (last use) REG NA $145
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[-O]
consume= 0 produce=1
DefList: { }
N215 ( 1, 1) [000108] ------------ * LCL_VAR int V10 tmp9 u:2 NA REG NA $20a
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N217 ( 2, 3) [000109] ---------U-- * CAST long <- ulong <- uint REG NA $24a
<RefPosition #85 @217 RefTypeUse <Ivl:9 V10> LCL_VAR BB06 regmask=[allInt] minReg=1 last>
Interval 30: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #86 @218 RefTypeDef <Ivl:30> CAST BB06 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N217.t109. CAST }
N219 ( 4, 5) [000110] ------------ * ADD long REG NA $24b
<RefPosition #87 @219 RefTypeUse <Ivl:8 V09> LCL_VAR BB06 regmask=[allInt] minReg=1 last>
<RefPosition #88 @219 RefTypeUse <Ivl:30> BB06 regmask=[allInt] minReg=1 last>
Interval 31: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #89 @220 RefTypeDef <Ivl:31> ADD BB06 regmask=[allInt] minReg=1>
Assigning related <L8> to <I31>
+<TreeNodeInfo 1=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 2 produce=1
DefList: { N219.t110. ADD }
N221 ( 4, 5) [000112] DA---------- * STORE_LCL_VAR long V09 tmp8 d:4 NA REG NA
<RefPosition #90 @221 RefTypeUse <Ivl:31> BB06 regmask=[allInt] minReg=1 last>
Assigning related <L8> to <I31>
<RefPosition #91 @222 RefTypeDef <Ivl:8 V09> STORE_LCL_VAR BB06 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N223 ( 3, 3) [000119] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N225 ( 1, 1) [000114] ------------ * LCL_VAR int V05 tmp4 u:7 NA (last use) REG NA $286
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N227 ( 1, 1) [000115] -c---------- * CNS_INT int -1 REG NA $41
Contained
DefList: { }
N229 ( 3, 3) [000116] ------------ * ADD int REG NA $20b
<RefPosition #92 @229 RefTypeUse <Ivl:4 V05> LCL_VAR BB06 regmask=[allInt] minReg=1 last>
Interval 32: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #93 @230 RefTypeDef <Ivl:32> ADD BB06 regmask=[allInt] minReg=1>
Assigning related <L4> to <I32>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N229.t116. ADD }
N231 ( 3, 3) [000118] DA---------- * STORE_LCL_VAR int V05 tmp4 d:8 NA REG NA
<RefPosition #94 @231 RefTypeUse <Ivl:32> BB06 regmask=[allInt] minReg=1 last>
Assigning related <L4> to <I32>
<RefPosition #95 @232 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB06 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N233 ( 8, 5) [000127] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N235 ( 1, 1) [000120] ------------ * LCL_VAR int V08 tmp7 u:3 NA (last use) REG NA $285
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N237 ( 1, 1) [000121] ------------ * LCL_VAR int V10 tmp9 u:2 NA (last use) REG NA $20a
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N239 ( 8, 5) [000124] ------------ * RSZ int REG NA $20d
<RefPosition #96 @239 RefTypeUse <Ivl:7 V08> LCL_VAR BB06 regmask=[rax rdx rbx rsi rdi r8-r15] minReg=1 last>
<RefPosition #97 @239 RefTypeFixedReg <Reg:rcx> BB06 regmask=[rcx] minReg=1>
<RefPosition #98 @239 RefTypeUse <Ivl:9 V10> LCL_VAR BB06 regmask=[rcx] minReg=1 last fixed>
<RefPosition #99 @240 RefTypeKill <Reg:rcx> BB06 regmask=[rcx] minReg=1>
Interval 33: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #100 @240 RefTypeDef <Ivl:33> RSZ BB06 regmask=[rax rdx rbx rsi rdi r8-r15] minReg=1>
Assigning related <L7> to <I33>
+<TreeNodeInfo 1=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I D>[--]
consume= 2 produce=1
DefList: { N239.t124. RSZ }
N241 ( 8, 5) [000126] DA---------- * STORE_LCL_VAR int V08 tmp7 d:4 NA REG NA
<RefPosition #101 @241 RefTypeUse <Ivl:33> BB06 regmask=[allInt] minReg=1 last>
Assigning related <L7> to <I33>
<RefPosition #102 @242 RefTypeDef <Ivl:7 V08> STORE_LCL_VAR BB06 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N243 ( 5, 5) [000098] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N245 ( 1, 1) [000094] ------------ * LCL_VAR int V05 tmp4 u:8 NA REG NA $20b
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[-O]
consume= 0 produce=1
DefList: { }
N247 ( 1, 1) [000095] -c---------- * CNS_INT int 0 REG NA $40
Contained
DefList: { }
N249 ( 3, 3) [000096] J------N---- * GT void REG NA $20e
<RefPosition #103 @249 RefTypeUse <Ivl:4 V05> LCL_VAR BB06 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N251 ( 5, 5) [000097] ------------ * JTRUE void REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
Exposed uses:<RefPosition #104 @253 RefTypeExpUse <Ivl:4 V05> BB06 regmask=[allInt] minReg=1>
V05<RefPosition #105 @253 RefTypeExpUse <Ivl:7 V08> BB06 regmask=[allInt] minReg=1>
V08
CHECKING LAST USES for block 6, liveout={V05 V08 V09}
==============================
use: {V05 V08 V09}
def: {V05 V08 V09 V10}
NEW BLOCK BB07
Setting BB07 as the predecessor for determining incoming variable registers of BB06
<RefPosition #106 @253 RefTypeBB BB07 regmask=[] minReg=1>
DefList: { }
N255 ( 1, 1) [000129] C----------- * LCL_VAR int V09 tmp8 u:5 NA (last use) REG NA $20f
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N257 ( 1, 1) [000131] -c---------- * CNS_INT int -1 REG NA $41
Contained
DefList: { }
N259 ( 3, 3) [000132] ------------ * ADD int REG NA $210
<RefPosition #107 @259 RefTypeUse <Ivl:8 V09> LCL_VAR BB07 regmask=[allInt] minReg=1 last>
Interval 34: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #108 @260 RefTypeDef <Ivl:34> ADD BB07 regmask=[allInt] minReg=1>
Assigning related <L8> to <I34>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N259.t132. ADD }
N261 ( 4, 4) [000010] ------------ * RETURN int REG NA $1c7
<RefPosition #109 @261 RefTypeFixedReg <Reg:rax> BB07 regmask=[rax] minReg=1>
<RefPosition #110 @261 RefTypeUse <Ivl:34> BB07 regmask=[rax] minReg=1 last fixed>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
CHECKING LAST USES for block 7, liveout={}
==============================
use: {V09}
def: {}
Linear scan intervals BEFORE VALIDATING INTERVALS:
Interval 0: (V00) RefPositions {#0@0 #7@15} physReg:rdi Preferences=[rdi] RelatedInterval <L3>[0000000002327E78]
Interval 1: (V02) RefPositions {#6@10 #9@21 #60@159} physReg:NA Preferences=[allInt]
Interval 2: (V03) RefPositions {#10@22 #17@51 #22@62 #35@97} physReg:NA Preferences=[allInt] RelatedInterval <L5>[0000000002327F18]
Interval 3: (V04) RefPositions {#8@16 #11@27 #15@45 #31@78 #32@85 #33@89 #45@114 #46@121 #48@131} physReg:NA Preferences=[allInt] RelatedInterval <L4>[0000000002327EC8]
Interval 4: (V05) RefPositions {#12@28 #13@35 #16@46 #27@75 #41@111 #49@132 #77@193 #92@229 #95@232 #103@249 #104@253} physReg:NA Preferences=[rax rdx rbx rsi rdi r8-r15]
Interval 5: (V06) RefPositions {#18@52 #19@59 #23@71} physReg:NA Preferences=[allInt]
Interval 6: (V07) RefPositions {#38@100 #39@109 #50@139 #53@142 #55@149 #59@159} physReg:NA Preferences=[allInt]
Interval 7: (V08) RefPositions {#58@152 #79@203 #96@239 #102@242 #105@253} physReg:NA Preferences=[rax rdx rbx rsi rdi r8-r15]
Interval 8: (V09) RefPositions {#76@186 #87@219 #91@222 #107@259} physReg:NA Preferences=[rax rdx rbx rsi rdi r8-r15]
Interval 9: (V10) RefPositions {#84@210 #85@217 #98@239} physReg:NA Preferences=[rcx]
Interval 10: (V11) RefPositions {#63@162 #64@167 #69@175} physReg:NA Preferences=[allInt]
Interval 11: (constant) RefPositions {#2@6 #3@7} physReg:NA Preferences=[allInt]
Interval 12: RefPositions {#4@8 #5@9} physReg:NA Preferences=[allInt] RelatedInterval <L1>[0000000002327DD8]
Interval 13: RefPositions {#20@60 #21@61} physReg:NA Preferences=[allInt] RelatedInterval <L2>[0000000002327E28]
Interval 14: RefPositions {#24@72 #25@73} physReg:NA Preferences=[allInt]
Interval 15: RefPositions {#26@74 #28@75} physReg:NA Preferences=[allInt]
Interval 16: (interfering uses) RefPositions {#29@76 #30@77} physReg:NA Preferences=[allInt] RelatedInterval <L3>[0000000002327E78]
Interval 17: RefPositions {#36@98 #37@99} physReg:NA Preferences=[allInt] RelatedInterval <L6>[0000000002327F68]
Interval 18: RefPositions {#40@110 #42@111} physReg:NA Preferences=[allInt]
Interval 19: (interfering uses) RefPositions {#43@112 #44@113} physReg:NA Preferences=[allInt] RelatedInterval <L3>[0000000002327E78]
Interval 20: RefPositions {#51@140 #52@141} physReg:NA Preferences=[allInt] RelatedInterval <L6>[0000000002327F68]
Interval 21: RefPositions {#56@150 #57@151} physReg:NA Preferences=[allInt] RelatedInterval <L7>[0000000002327FB8]
Interval 22: (interfering uses) RefPositions {#61@160 #62@161} physReg:NA Preferences=[allInt] RelatedInterval <L10>[00000000023280A8]
Interval 23: RefPositions {#65@168 #66@171} physReg:NA Preferences=[allInt] RelatedInterval <L10>[00000000023280A8]
Interval 24: RefPositions {#67@172 #68@175} physReg:NA Preferences=[allInt] RelatedInterval <I23>[000000000232AA30]
Interval 25: RefPositions {#70@176 #71@179} physReg:NA Preferences=[allInt] RelatedInterval <I24>[000000000232AB80]
Interval 26: RefPositions {#72@180 #73@183} physReg:NA Preferences=[allInt] RelatedInterval <I25>[000000000232AD10]
Interval 27: RefPositions {#74@184 #75@185} physReg:NA Preferences=[allInt] RelatedInterval <L8>[0000000002328008]
Interval 28: RefPositions {#80@204 #81@207} physReg:NA Preferences=[allInt]
Interval 29: RefPositions {#82@208 #83@209} physReg:NA Preferences=[allInt] RelatedInterval <L9>[0000000002328058]
Interval 30: RefPositions {#86@218 #88@219} physReg:NA Preferences=[allInt]
Interval 31: RefPositions {#89@220 #90@221} physReg:NA Preferences=[allInt] RelatedInterval <L8>[0000000002328008]
Interval 32: RefPositions {#93@230 #94@231} physReg:NA Preferences=[allInt] RelatedInterval <L4>[0000000002327EC8]
Interval 33: (interfering uses) RefPositions {#100@240 #101@241} physReg:NA Preferences=[rax rdx rbx rsi rdi r8-r15] RelatedInterval <L7>[0000000002327FB8]
Interval 34: RefPositions {#108@260 #110@261} physReg:NA Preferences=[rax] RelatedInterval <L8>[0000000002328008]
------------
REFPOSITIONS BEFORE VALIDATING INTERVALS:
------------
<RefPosition #0 @0 RefTypeParamDef <Ivl:0 V00> BB00 regmask=[rdi] minReg=1 fixed>
<RefPosition #1 @1 RefTypeBB BB01 regmask=[] minReg=1>
<RefPosition #2 @6 RefTypeDef <Ivl:11> CNS_INT BB01 regmask=[allInt] minReg=1>
<RefPosition #3 @7 RefTypeUse <Ivl:11> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #4 @8 RefTypeDef <Ivl:12> IND BB01 regmask=[allInt] minReg=1>
<RefPosition #5 @9 RefTypeUse <Ivl:12> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #6 @10 RefTypeDef <Ivl:1 V02> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #7 @15 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
<RefPosition #8 @16 RefTypeDef <Ivl:3 V04> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #9 @21 RefTypeUse <Ivl:1 V02> LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #10 @22 RefTypeDef <Ivl:2 V03> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #11 @27 RefTypeUse <Ivl:3 V04> LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #12 @28 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #13 @35 RefTypeUse <Ivl:4 V05> LCL_VAR BB01 regmask=[allInt] minReg=1 regOptional>
<RefPosition #14 @39 RefTypeBB BB02 regmask=[] minReg=1>
<RefPosition #15 @45 RefTypeUse <Ivl:3 V04> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
<RefPosition #16 @46 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #17 @51 RefTypeUse <Ivl:2 V03> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
<RefPosition #18 @52 RefTypeDef <Ivl:5 V06> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #19 @59 RefTypeUse <Ivl:5 V06> LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #20 @60 RefTypeDef <Ivl:13> ADD BB02 regmask=[allInt] minReg=1>
<RefPosition #21 @61 RefTypeUse <Ivl:13> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #22 @62 RefTypeDef <Ivl:2 V03> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #23 @71 RefTypeUse <Ivl:5 V06> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
<RefPosition #24 @72 RefTypeDef <Ivl:14> HWIntrinsic BB02 regmask=[allInt] minReg=1>
<RefPosition #25 @73 RefTypeUse <Ivl:14> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #26 @74 RefTypeDef <Ivl:15> CAST BB02 regmask=[allInt] minReg=1>
<RefPosition #27 @75 RefTypeUse <Ivl:4 V05> LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #28 @75 RefTypeUse <Ivl:15> BB02 regmask=[allInt] minReg=1 last delay regOptional>
<RefPosition #29 @76 RefTypeDef <Ivl:16> SUB BB02 regmask=[allInt] minReg=1>
<RefPosition #30 @77 RefTypeUse <Ivl:16> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #31 @78 RefTypeDef <Ivl:3 V04> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #32 @85 RefTypeUse <Ivl:3 V04> LCL_VAR BB02 regmask=[allInt] minReg=1 regOptional>
<RefPosition #33 @89 RefTypeExpUse <Ivl:3 V04> BB02 regmask=[allInt] minReg=1>
<RefPosition #34 @89 RefTypeBB BB03 regmask=[] minReg=1>
<RefPosition #35 @97 RefTypeUse <Ivl:2 V03> LCL_VAR BB03 regmask=[allInt] minReg=1 last>
<RefPosition #36 @98 RefTypeDef <Ivl:17> ADD BB03 regmask=[allInt] minReg=1>
<RefPosition #37 @99 RefTypeUse <Ivl:17> BB03 regmask=[allInt] minReg=1 last>
<RefPosition #38 @100 RefTypeDef <Ivl:6 V07> STORE_LCL_VAR BB03 regmask=[allInt] minReg=1>
<RefPosition #39 @109 RefTypeUse <Ivl:6 V07> LCL_VAR BB03 regmask=[allInt] minReg=1>
<RefPosition #40 @110 RefTypeDef <Ivl:18> HWIntrinsic BB03 regmask=[allInt] minReg=1>
<RefPosition #41 @111 RefTypeUse <Ivl:4 V05> LCL_VAR BB03 regmask=[allInt] minReg=1>
<RefPosition #42 @111 RefTypeUse <Ivl:18> BB03 regmask=[allInt] minReg=1 last delay regOptional>
<RefPosition #43 @112 RefTypeDef <Ivl:19> SUB BB03 regmask=[allInt] minReg=1>
<RefPosition #44 @113 RefTypeUse <Ivl:19> BB03 regmask=[allInt] minReg=1 last>
<RefPosition #45 @114 RefTypeDef <Ivl:3 V04> STORE_LCL_VAR BB03 regmask=[allInt] minReg=1>
<RefPosition #46 @121 RefTypeUse <Ivl:3 V04> LCL_VAR BB03 regmask=[allInt] minReg=1 regOptional>
<RefPosition #47 @125 RefTypeBB BB04 regmask=[] minReg=1>
<RefPosition #48 @131 RefTypeUse <Ivl:3 V04> LCL_VAR BB04 regmask=[allInt] minReg=1 last>
<RefPosition #49 @132 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB04 regmask=[allInt] minReg=1>
<RefPosition #50 @139 RefTypeUse <Ivl:6 V07> LCL_VAR BB04 regmask=[allInt] minReg=1 last>
<RefPosition #51 @140 RefTypeDef <Ivl:20> ADD BB04 regmask=[allInt] minReg=1>
<RefPosition #52 @141 RefTypeUse <Ivl:20> BB04 regmask=[allInt] minReg=1 last>
<RefPosition #53 @142 RefTypeDef <Ivl:6 V07> STORE_LCL_VAR BB04 regmask=[allInt] minReg=1>
<RefPosition #54 @143 RefTypeBB BB05 regmask=[] minReg=1>
<RefPosition #55 @149 RefTypeUse <Ivl:6 V07> LCL_VAR BB05 regmask=[allInt] minReg=1>
<RefPosition #56 @150 RefTypeDef <Ivl:21> IND BB05 regmask=[allInt] minReg=1>
<RefPosition #57 @151 RefTypeUse <Ivl:21> BB05 regmask=[allInt] minReg=1 last>
<RefPosition #58 @152 RefTypeDef <Ivl:7 V08> STORE_LCL_VAR BB05 regmask=[allInt] minReg=1>
<RefPosition #59 @159 RefTypeUse <Ivl:6 V07> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
<RefPosition #60 @159 RefTypeUse <Ivl:1 V02> LCL_VAR BB05 regmask=[allInt] minReg=1 last delay regOptional>
<RefPosition #61 @160 RefTypeDef <Ivl:22> SUB BB05 regmask=[allInt] minReg=1>
<RefPosition #62 @161 RefTypeUse <Ivl:22> BB05 regmask=[allInt] minReg=1 last>
<RefPosition #63 @162 RefTypeDef <Ivl:10 V11> STORE_LCL_VAR BB05 regmask=[allInt] minReg=1>
<RefPosition #64 @167 RefTypeUse <Ivl:10 V11> LCL_VAR BB05 regmask=[allInt] minReg=1>
<RefPosition #65 @168 RefTypeDef <Ivl:23> RSH BB05 regmask=[allInt] minReg=1>
<RefPosition #66 @171 RefTypeUse <Ivl:23> BB05 regmask=[allInt] minReg=1 last>
<RefPosition #67 @172 RefTypeDef <Ivl:24> AND BB05 regmask=[allInt] minReg=1>
<RefPosition #68 @175 RefTypeUse <Ivl:24> BB05 regmask=[allInt] minReg=1 last>
<RefPosition #69 @175 RefTypeUse <Ivl:10 V11> LCL_VAR BB05 regmask=[allInt] minReg=1 last regOptional>
<RefPosition #70 @176 RefTypeDef <Ivl:25> ADD BB05 regmask=[allInt] minReg=1>
<RefPosition #71 @179 RefTypeUse <Ivl:25> BB05 regmask=[allInt] minReg=1 last>
<RefPosition #72 @180 RefTypeDef <Ivl:26> RSH BB05 regmask=[allInt] minReg=1>
<RefPosition #73 @183 RefTypeUse <Ivl:26> BB05 regmask=[allInt] minReg=1 last>
<RefPosition #74 @184 RefTypeDef <Ivl:27> LSH BB05 regmask=[allInt] minReg=1>
<RefPosition #75 @185 RefTypeUse <Ivl:27> BB05 regmask=[allInt] minReg=1 last>
<RefPosition #76 @186 RefTypeDef <Ivl:8 V09> STORE_LCL_VAR BB05 regmask=[allInt] minReg=1>
<RefPosition #77 @193 RefTypeUse <Ivl:4 V05> LCL_VAR BB05 regmask=[allInt] minReg=1 regOptional>
<RefPosition #78 @197 RefTypeBB BB06 regmask=[] minReg=1>
<RefPosition #79 @203 RefTypeUse <Ivl:7 V08> LCL_VAR BB06 regmask=[allInt] minReg=1 regOptional>
<RefPosition #80 @204 RefTypeDef <Ivl:28> HWIntrinsic BB06 regmask=[allInt] minReg=1>
<RefPosition #81 @207 RefTypeUse <Ivl:28> BB06 regmask=[allInt] minReg=1 last>
<RefPosition #82 @208 RefTypeDef <Ivl:29> ADD BB06 regmask=[allInt] minReg=1>
<RefPosition #83 @209 RefTypeUse <Ivl:29> BB06 regmask=[allInt] minReg=1 last>
<RefPosition #84 @210 RefTypeDef <Ivl:9 V10> STORE_LCL_VAR BB06 regmask=[allInt] minReg=1>
<RefPosition #85 @217 RefTypeUse <Ivl:9 V10> LCL_VAR BB06 regmask=[allInt] minReg=1>
<RefPosition #86 @218 RefTypeDef <Ivl:30> CAST BB06 regmask=[allInt] minReg=1>
<RefPosition #87 @219 RefTypeUse <Ivl:8 V09> LCL_VAR BB06 regmask=[allInt] minReg=1 last regOptional>
<RefPosition #88 @219 RefTypeUse <Ivl:30> BB06 regmask=[allInt] minReg=1 last>
<RefPosition #89 @220 RefTypeDef <Ivl:31> ADD BB06 regmask=[allInt] minReg=1>
<RefPosition #90 @221 RefTypeUse <Ivl:31> BB06 regmask=[allInt] minReg=1 last>
<RefPosition #91 @222 RefTypeDef <Ivl:8 V09> STORE_LCL_VAR BB06 regmask=[allInt] minReg=1>
<RefPosition #92 @229 RefTypeUse <Ivl:4 V05> LCL_VAR BB06 regmask=[allInt] minReg=1 last>
<RefPosition #93 @230 RefTypeDef <Ivl:32> ADD BB06 regmask=[allInt] minReg=1>
<RefPosition #94 @231 RefTypeUse <Ivl:32> BB06 regmask=[allInt] minReg=1 last>
<RefPosition #95 @232 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB06 regmask=[allInt] minReg=1>
<RefPosition #96 @239 RefTypeUse <Ivl:7 V08> LCL_VAR BB06 regmask=[rax rdx rbx rsi rdi r8-r15] minReg=1 last>
<RefPosition #97 @239 RefTypeFixedReg <Reg:rcx> BB06 regmask=[rcx] minReg=1>
<RefPosition #98 @239 RefTypeUse <Ivl:9 V10> LCL_VAR BB06 regmask=[rcx] minReg=1 last fixed delay>
<RefPosition #99 @240 RefTypeKill <Reg:rcx> BB06 regmask=[rcx] minReg=1 last>
<RefPosition #100 @240 RefTypeDef <Ivl:33> RSZ BB06 regmask=[rax rdx rbx rsi rdi r8-r15] minReg=1>
<RefPosition #101 @241 RefTypeUse <Ivl:33> BB06 regmask=[allInt] minReg=1 last>
<RefPosition #102 @242 RefTypeDef <Ivl:7 V08> STORE_LCL_VAR BB06 regmask=[allInt] minReg=1>
<RefPosition #103 @249 RefTypeUse <Ivl:4 V05> LCL_VAR BB06 regmask=[allInt] minReg=1 regOptional>
<RefPosition #104 @253 RefTypeExpUse <Ivl:4 V05> BB06 regmask=[allInt] minReg=1>
<RefPosition #105 @253 RefTypeExpUse <Ivl:7 V08> BB06 regmask=[allInt] minReg=1>
<RefPosition #106 @253 RefTypeBB BB07 regmask=[] minReg=1>
<RefPosition #107 @259 RefTypeUse <Ivl:8 V09> LCL_VAR BB07 regmask=[allInt] minReg=1 last>
<RefPosition #108 @260 RefTypeDef <Ivl:34> ADD BB07 regmask=[rax] minReg=1>
<RefPosition #109 @261 RefTypeFixedReg <Reg:rax> BB07 regmask=[rax] minReg=1>
<RefPosition #110 @261 RefTypeUse <Ivl:34> BB07 regmask=[rax] minReg=1 last fixed>
-----------------
<RefPosition #8 @16 RefTypeDef <Ivl:3 V04> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #11 @27 RefTypeUse <Ivl:3 V04> LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #15 @45 RefTypeUse <Ivl:3 V04> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
<RefPosition #31 @78 RefTypeDef <Ivl:3 V04> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #32 @85 RefTypeUse <Ivl:3 V04> LCL_VAR BB02 regmask=[allInt] minReg=1 regOptional>
<RefPosition #33 @89 RefTypeExpUse <Ivl:3 V04> BB02 regmask=[allInt] minReg=1>
<RefPosition #45 @114 RefTypeDef <Ivl:3 V04> STORE_LCL_VAR BB03 regmask=[allInt] minReg=1>
<RefPosition #46 @121 RefTypeUse <Ivl:3 V04> LCL_VAR BB03 regmask=[allInt] minReg=1 regOptional>
<RefPosition #48 @131 RefTypeUse <Ivl:3 V04> LCL_VAR BB04 regmask=[allInt] minReg=1 last>
-----------------
<RefPosition #12 @28 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #13 @35 RefTypeUse <Ivl:4 V05> LCL_VAR BB01 regmask=[allInt] minReg=1 regOptional>
<RefPosition #16 @46 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #27 @75 RefTypeUse <Ivl:4 V05> LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #41 @111 RefTypeUse <Ivl:4 V05> LCL_VAR BB03 regmask=[allInt] minReg=1>
<RefPosition #49 @132 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB04 regmask=[allInt] minReg=1>
<RefPosition #77 @193 RefTypeUse <Ivl:4 V05> LCL_VAR BB05 regmask=[allInt] minReg=1 regOptional>
<RefPosition #92 @229 RefTypeUse <Ivl:4 V05> LCL_VAR BB06 regmask=[allInt] minReg=1 last>
<RefPosition #95 @232 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB06 regmask=[allInt] minReg=1>
<RefPosition #103 @249 RefTypeUse <Ivl:4 V05> LCL_VAR BB06 regmask=[allInt] minReg=1 regOptional>
<RefPosition #104 @253 RefTypeExpUse <Ivl:4 V05> BB06 regmask=[allInt] minReg=1>
-----------------
<RefPosition #18 @52 RefTypeDef <Ivl:5 V06> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #19 @59 RefTypeUse <Ivl:5 V06> LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #23 @71 RefTypeUse <Ivl:5 V06> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
-----------------
<RefPosition #58 @152 RefTypeDef <Ivl:7 V08> STORE_LCL_VAR BB05 regmask=[allInt] minReg=1>
<RefPosition #79 @203 RefTypeUse <Ivl:7 V08> LCL_VAR BB06 regmask=[allInt] minReg=1 regOptional>
<RefPosition #96 @239 RefTypeUse <Ivl:7 V08> LCL_VAR BB06 regmask=[rax rdx rbx rsi rdi r8-r15] minReg=1 last>
<RefPosition #102 @242 RefTypeDef <Ivl:7 V08> STORE_LCL_VAR BB06 regmask=[allInt] minReg=1>
<RefPosition #105 @253 RefTypeExpUse <Ivl:7 V08> BB06 regmask=[allInt] minReg=1>
-----------------
<RefPosition #84 @210 RefTypeDef <Ivl:9 V10> STORE_LCL_VAR BB06 regmask=[allInt] minReg=1>
<RefPosition #85 @217 RefTypeUse <Ivl:9 V10> LCL_VAR BB06 regmask=[allInt] minReg=1>
<RefPosition #98 @239 RefTypeUse <Ivl:9 V10> LCL_VAR BB06 regmask=[rcx] minReg=1 last fixed delay>
-----------------
<RefPosition #10 @22 RefTypeDef <Ivl:2 V03> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #17 @51 RefTypeUse <Ivl:2 V03> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
<RefPosition #22 @62 RefTypeDef <Ivl:2 V03> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #35 @97 RefTypeUse <Ivl:2 V03> LCL_VAR BB03 regmask=[allInt] minReg=1 last>
-----------------
<RefPosition #76 @186 RefTypeDef <Ivl:8 V09> STORE_LCL_VAR BB05 regmask=[allInt] minReg=1>
<RefPosition #87 @219 RefTypeUse <Ivl:8 V09> LCL_VAR BB06 regmask=[allInt] minReg=1 last regOptional>
<RefPosition #91 @222 RefTypeDef <Ivl:8 V09> STORE_LCL_VAR BB06 regmask=[allInt] minReg=1>
<RefPosition #107 @259 RefTypeUse <Ivl:8 V09> LCL_VAR BB07 regmask=[allInt] minReg=1 last>
-----------------
<RefPosition #0 @0 RefTypeParamDef <Ivl:0 V00> BB00 regmask=[rdi] minReg=1 fixed>
<RefPosition #7 @15 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
-----------------
<RefPosition #6 @10 RefTypeDef <Ivl:1 V02> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #9 @21 RefTypeUse <Ivl:1 V02> LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #60 @159 RefTypeUse <Ivl:1 V02> LCL_VAR BB05 regmask=[allInt] minReg=1 last delay regOptional>
-----------------
<RefPosition #63 @162 RefTypeDef <Ivl:10 V11> STORE_LCL_VAR BB05 regmask=[allInt] minReg=1>
<RefPosition #64 @167 RefTypeUse <Ivl:10 V11> LCL_VAR BB05 regmask=[allInt] minReg=1>
<RefPosition #69 @175 RefTypeUse <Ivl:10 V11> LCL_VAR BB05 regmask=[allInt] minReg=1 last regOptional>
-----------------
<RefPosition #38 @100 RefTypeDef <Ivl:6 V07> STORE_LCL_VAR BB03 regmask=[allInt] minReg=1>
<RefPosition #39 @109 RefTypeUse <Ivl:6 V07> LCL_VAR BB03 regmask=[allInt] minReg=1>
<RefPosition #50 @139 RefTypeUse <Ivl:6 V07> LCL_VAR BB04 regmask=[allInt] minReg=1 last>
<RefPosition #53 @142 RefTypeDef <Ivl:6 V07> STORE_LCL_VAR BB04 regmask=[allInt] minReg=1>
<RefPosition #55 @149 RefTypeUse <Ivl:6 V07> LCL_VAR BB05 regmask=[allInt] minReg=1>
<RefPosition #59 @159 RefTypeUse <Ivl:6 V07> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
TUPLE STYLE DUMP WITH REF POSITIONS
Incoming Parameters: V00
BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
=====
N003. IL_OFFSET IL offset: 0x0 REG NA
N005. CNS_INT(h) 0x7fe9bcfc4498 static Fseq[_bits] REG NA
Def:<I11>(#2)
N007. IND
Use:<I11>(#3) *
Def:<I12>(#4) Pref:<L1>
N009. V02(L1)
Use:<I12>(#5) *
Def:<L1>(#6)
N011. IL_OFFSET IL offset: 0x0 REG NA
N013. V00(L0)
N015. V04(L3)
Use:<L0>(#7) *
Def:<L3>(#8) Pref:<L4>
N017. IL_OFFSET IL offset: 0x0 REG NA
N019. V02(L1)
N021. V03(L2)
Use:<L1>(#9)
Def:<L2>(#10) Pref:<L5>
N023. IL_OFFSET IL offset: 0x0 REG NA
N025. V04(L3)
N027. V05(L4)
Use:<L3>(#11)
Def:<L4>(#12)
N029. IL_OFFSET IL offset: 0x0 REG NA
N031. V05(L4)
N033. CNS_INT 0 REG NA
N035. LE
Use:<L4>(#13)
N037. JTRUE
BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
=====
N041. IL_OFFSET IL offset: 0x0 REG NA
N043. V04(L3)
N045. V05(L4)
Use:<L3>(#15) *
Def:<L4>(#16)
N047. IL_OFFSET IL offset: 0x0 REG NA
N049. V03(L2)
N051. V06(L5)
Use:<L2>(#17) *
Def:<L5>(#18)
N053. IL_OFFSET IL offset: 0x0 REG NA
N055. V06(L5)
N057. CNS_INT 8 REG NA
N059. ADD
Use:<L5>(#19)
Def:<I13>(#20) Pref:<L2>
N061. V03(L2)
Use:<I13>(#21) *
Def:<L2>(#22) Pref:<L5>
N063. IL_OFFSET IL offset: 0x0 REG NA
N065. V05(L4)
N067. V06(L5)
N069. IND
N071. HWIntrinsic
Use:<L5>(#23) *
Def:<I14>(#24)
N073. CAST
Use:<I14>(#25) *
Def:<I15>(#26)
N075. SUB
Use:<L4>(#27)
Use:<I15>(#28) *
Def:<I16>(#29) Pref:<L3>
N077. V04(L3)
Use:<I16>(#30) *
Def:<L3>(#31) Pref:<L4>
N079. IL_OFFSET IL offset: 0x0 REG NA
N081. V04(L3)
N083. CNS_INT 0 REG NA
N085. GT
Use:<L3>(#32)
N087. JTRUE
Exposed use of V04 at #33
BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
=====
N091. IL_OFFSET IL offset: 0x0 REG NA
N093. V03(L2)
N095. CNS_INT -8 REG NA
N097. ADD
Use:<L2>(#35) *
Def:<I17>(#36) Pref:<L6>
N099. V07(L6)
Use:<I17>(#37) *
Def:<L6>(#38)
N101. IL_OFFSET IL offset: 0x0 REG NA
N103. V05(L4)
N105. V07(L6)
N107. IND
N109. HWIntrinsic
Use:<L6>(#39)
Def:<I18>(#40)
N111. SUB
Use:<L4>(#41)
Use:<I18>(#42) *
Def:<I19>(#43) Pref:<L3>
N113. V04(L3)
Use:<I19>(#44) *
Def:<L3>(#45) Pref:<L4>
N115. IL_OFFSET IL offset: 0x0 REG NA
N117. V04(L3)
N119. CNS_INT 0 REG NA
N121. LE
Use:<L3>(#46)
N123. JTRUE
BB04 [000..001), preds={BB03} succs={BB05}
=====
N127. IL_OFFSET IL offset: 0x0 REG NA
N129. V04(L3)
N131. V05(L4)
Use:<L3>(#48) *
Def:<L4>(#49)
N133. IL_OFFSET IL offset: 0x0 REG NA
N135. V07(L6)
N137. CNS_INT 4 REG NA
N139. ADD
Use:<L6>(#50) *
Def:<I20>(#51) Pref:<L6>
N141. V07(L6)
Use:<I20>(#52) *
Def:<L6>(#53)
BB05 [000..001) -> BB07 (cond), preds={BB03,BB04} succs={BB06,BB07}
=====
N145. IL_OFFSET IL offset: 0x0 REG NA
N147. V07(L6)
N149. IND
Use:<L6>(#55)
Def:<I21>(#56) Pref:<L7>
N151. V08(L7)
Use:<I21>(#57) *
Def:<L7>(#58)
N153. IL_OFFSET IL offset: 0x0 REG NA
N155. V07(L6)
N157. V02(L1)
N159. SUB
Use:<L6>(#59) *
Use:<L1>(#60) *
Def:<I22>(#61) Pref:<L10>
N161. V11(L10)
Use:<I22>(#62) *
Def:<L10>(#63)
N163. V11(L10)
N165. CNS_INT 63 REG NA
N167. RSH
Use:<L10>(#64)
Def:<I23>(#65) Pref:<L10>
N169. CNS_INT 3 REG NA
N171. AND
Use:<I23>(#66) *
Def:<I24>(#67) Pref:<I23>
N173. V11(L10)
N175. ADD
Use:<I24>(#68) *
Use:<L10>(#69) *
Def:<I25>(#70) Pref:<I24>
N177. CNS_INT 2 REG NA
N179. RSH
Use:<I25>(#71) *
Def:<I26>(#72) Pref:<I25>
N181. CNS_INT 5 REG NA
N183. LSH
Use:<I26>(#73) *
Def:<I27>(#74) Pref:<L8>
N185. V09(L8)
Use:<I27>(#75) *
Def:<L8>(#76)
N187. IL_OFFSET IL offset: 0x0 REG NA
N189. V05(L4)
N191. CNS_INT 0 REG NA
N193. LE
Use:<L4>(#77)
N195. JTRUE
BB06 [000..001) -> BB06 (cond), preds={BB05,BB06} succs={BB07,BB06}
=====
N199. IL_OFFSET IL offset: 0x0 REG NA
N201. V08(L7)
N203. HWIntrinsic
Use:<L7>(#79)
Def:<I28>(#80)
N205. CNS_INT 1 REG NA
N207. ADD
Use:<I28>(#81) *
Def:<I29>(#82) Pref:<L9>
N209. V10(L9)
Use:<I29>(#83) *
Def:<L9>(#84)
N211. IL_OFFSET IL offset: 0x0 REG NA
N213. V09(L8)
N215. V10(L9)
N217. CAST
Use:<L9>(#85)
Def:<I30>(#86)
N219. ADD
Use:<L8>(#87) *
Use:<I30>(#88) *
Def:<I31>(#89) Pref:<L8>
N221. V09(L8)
Use:<I31>(#90) *
Def:<L8>(#91)
N223. IL_OFFSET IL offset: 0x0 REG NA
N225. V05(L4)
N227. CNS_INT -1 REG NA
N229. ADD
Use:<L4>(#92) *
Def:<I32>(#93) Pref:<L4>
N231. V05(L4)
Use:<I32>(#94) *
Def:<L4>(#95)
N233. IL_OFFSET IL offset: 0x0 REG NA
N235. V08(L7)
N237. V10(L9)
N239. RSZ
Use:<L7>(#96) *
Use:<L9>(#98) Fixed:rcx(#97) *
Kill: rcx
Def:<I33>(#100) Pref:<L7>
N241. V08(L7)
Use:<I33>(#101) *
Def:<L7>(#102)
N243. IL_OFFSET IL offset: 0x0 REG NA
N245. V05(L4)
N247. CNS_INT 0 REG NA
N249. GT
Use:<L4>(#103)
N251. JTRUE
Exposed use of V05 at #104
Exposed use of V08 at #105
BB07 [000..001) (return), preds={BB05,BB06} succs={}
=====
N255. V09(L8)
N257. CNS_INT -1 REG NA
N259. ADD
Use:<L8>(#107) *
Def:<I34>(#108) Pref:<L8>
N261. RETURN
Use:<I34>(#110) Fixed:rax(#109) *
Linear scan intervals after buildIntervals:
Interval 0: (V00) RefPositions {#0@0 #7@15} physReg:rdi Preferences=[rdi] RelatedInterval <L3>[0000000002327E78]
Interval 1: (V02) RefPositions {#6@10 #9@21 #60@159} physReg:NA Preferences=[allInt]
Interval 2: (V03) RefPositions {#10@22 #17@51 #22@62 #35@97} physReg:NA Preferences=[allInt] RelatedInterval <L5>[0000000002327F18]
Interval 3: (V04) RefPositions {#8@16 #11@27 #15@45 #31@78 #32@85 #33@89 #45@114 #46@121 #48@131} physReg:NA Preferences=[allInt] RelatedInterval <L4>[0000000002327EC8]
Interval 4: (V05) RefPositions {#12@28 #13@35 #16@46 #27@75 #41@111 #49@132 #77@193 #92@229 #95@232 #103@249 #104@253} physReg:NA Preferences=[rax rdx rbx rsi rdi r8-r15]
Interval 5: (V06) RefPositions {#18@52 #19@59 #23@71} physReg:NA Preferences=[allInt]
Interval 6: (V07) RefPositions {#38@100 #39@109 #50@139 #53@142 #55@149 #59@159} physReg:NA Preferences=[allInt]
Interval 7: (V08) RefPositions {#58@152 #79@203 #96@239 #102@242 #105@253} physReg:NA Preferences=[rax rdx rbx rsi rdi r8-r15]
Interval 8: (V09) RefPositions {#76@186 #87@219 #91@222 #107@259} physReg:NA Preferences=[rax rdx rbx rsi rdi r8-r15]
Interval 9: (V10) RefPositions {#84@210 #85@217 #98@239} physReg:NA Preferences=[rcx]
Interval 10: (V11) RefPositions {#63@162 #64@167 #69@175} physReg:NA Preferences=[allInt]
Interval 11: (constant) RefPositions {#2@6 #3@7} physReg:NA Preferences=[allInt]
Interval 12: RefPositions {#4@8 #5@9} physReg:NA Preferences=[allInt] RelatedInterval <L1>[0000000002327DD8]
Interval 13: RefPositions {#20@60 #21@61} physReg:NA Preferences=[allInt] RelatedInterval <L2>[0000000002327E28]
Interval 14: RefPositions {#24@72 #25@73} physReg:NA Preferences=[allInt]
Interval 15: RefPositions {#26@74 #28@75} physReg:NA Preferences=[allInt]
Interval 16: (interfering uses) RefPositions {#29@76 #30@77} physReg:NA Preferences=[allInt] RelatedInterval <L3>[0000000002327E78]
Interval 17: RefPositions {#36@98 #37@99} physReg:NA Preferences=[allInt] RelatedInterval <L6>[0000000002327F68]
Interval 18: RefPositions {#40@110 #42@111} physReg:NA Preferences=[allInt]
Interval 19: (interfering uses) RefPositions {#43@112 #44@113} physReg:NA Preferences=[allInt] RelatedInterval <L3>[0000000002327E78]
Interval 20: RefPositions {#51@140 #52@141} physReg:NA Preferences=[allInt] RelatedInterval <L6>[0000000002327F68]
Interval 21: RefPositions {#56@150 #57@151} physReg:NA Preferences=[allInt] RelatedInterval <L7>[0000000002327FB8]
Interval 22: (interfering uses) RefPositions {#61@160 #62@161} physReg:NA Preferences=[allInt] RelatedInterval <L10>[00000000023280A8]
Interval 23: RefPositions {#65@168 #66@171} physReg:NA Preferences=[allInt] RelatedInterval <L10>[00000000023280A8]
Interval 24: RefPositions {#67@172 #68@175} physReg:NA Preferences=[allInt] RelatedInterval <I23>[000000000232AA30]
Interval 25: RefPositions {#70@176 #71@179} physReg:NA Preferences=[allInt] RelatedInterval <I24>[000000000232AB80]
Interval 26: RefPositions {#72@180 #73@183} physReg:NA Preferences=[allInt] RelatedInterval <I25>[000000000232AD10]
Interval 27: RefPositions {#74@184 #75@185} physReg:NA Preferences=[allInt] RelatedInterval <L8>[0000000002328008]
Interval 28: RefPositions {#80@204 #81@207} physReg:NA Preferences=[allInt]
Interval 29: RefPositions {#82@208 #83@209} physReg:NA Preferences=[allInt] RelatedInterval <L9>[0000000002328058]
Interval 30: RefPositions {#86@218 #88@219} physReg:NA Preferences=[allInt]
Interval 31: RefPositions {#89@220 #90@221} physReg:NA Preferences=[allInt] RelatedInterval <L8>[0000000002328008]
Interval 32: RefPositions {#93@230 #94@231} physReg:NA Preferences=[allInt] RelatedInterval <L4>[0000000002327EC8]
Interval 33: (interfering uses) RefPositions {#100@240 #101@241} physReg:NA Preferences=[rax rdx rbx rsi rdi r8-r15] RelatedInterval <L7>[0000000002327FB8]
Interval 34: RefPositions {#108@260 #110@261} physReg:NA Preferences=[rax] RelatedInterval <L8>[0000000002328008]
*************** In LinearScan::allocateRegisters()
Linear scan intervals before allocateRegisters:
Interval 0: (V00) RefPositions {#0@0 #7@15} physReg:rdi Preferences=[rdi] RelatedInterval <L3>[0000000002327E78]
Interval 1: (V02) RefPositions {#6@10 #9@21 #60@159} physReg:NA Preferences=[allInt]
Interval 2: (V03) RefPositions {#10@22 #17@51 #22@62 #35@97} physReg:NA Preferences=[allInt] RelatedInterval <L5>[0000000002327F18]
Interval 3: (V04) RefPositions {#8@16 #11@27 #15@45 #31@78 #32@85 #33@89 #45@114 #46@121 #48@131} physReg:NA Preferences=[allInt] RelatedInterval <L4>[0000000002327EC8]
Interval 4: (V05) RefPositions {#12@28 #13@35 #16@46 #27@75 #41@111 #49@132 #77@193 #92@229 #95@232 #103@249 #104@253} physReg:NA Preferences=[rax rdx rbx rsi rdi r8-r15]
Interval 5: (V06) RefPositions {#18@52 #19@59 #23@71} physReg:NA Preferences=[allInt]
Interval 6: (V07) RefPositions {#38@100 #39@109 #50@139 #53@142 #55@149 #59@159} physReg:NA Preferences=[allInt]
Interval 7: (V08) RefPositions {#58@152 #79@203 #96@239 #102@242 #105@253} physReg:NA Preferences=[rax rdx rbx rsi rdi r8-r15]
Interval 8: (V09) RefPositions {#76@186 #87@219 #91@222 #107@259} physReg:NA Preferences=[rax rdx rbx rsi rdi r8-r15]
Interval 9: (V10) RefPositions {#84@210 #85@217 #98@239} physReg:NA Preferences=[rcx]
Interval 10: (V11) RefPositions {#63@162 #64@167 #69@175} physReg:NA Preferences=[allInt]
Interval 11: (constant) RefPositions {#2@6 #3@7} physReg:NA Preferences=[allInt]
Interval 12: RefPositions {#4@8 #5@9} physReg:NA Preferences=[allInt] RelatedInterval <L1>[0000000002327DD8]
Interval 13: RefPositions {#20@60 #21@61} physReg:NA Preferences=[allInt] RelatedInterval <L2>[0000000002327E28]
Interval 14: RefPositions {#24@72 #25@73} physReg:NA Preferences=[allInt]
Interval 15: RefPositions {#26@74 #28@75} physReg:NA Preferences=[allInt]
Interval 16: (interfering uses) RefPositions {#29@76 #30@77} physReg:NA Preferences=[allInt] RelatedInterval <L3>[0000000002327E78]
Interval 17: RefPositions {#36@98 #37@99} physReg:NA Preferences=[allInt] RelatedInterval <L6>[0000000002327F68]
Interval 18: RefPositions {#40@110 #42@111} physReg:NA Preferences=[allInt]
Interval 19: (interfering uses) RefPositions {#43@112 #44@113} physReg:NA Preferences=[allInt] RelatedInterval <L3>[0000000002327E78]
Interval 20: RefPositions {#51@140 #52@141} physReg:NA Preferences=[allInt] RelatedInterval <L6>[0000000002327F68]
Interval 21: RefPositions {#56@150 #57@151} physReg:NA Preferences=[allInt] RelatedInterval <L7>[0000000002327FB8]
Interval 22: (interfering uses) RefPositions {#61@160 #62@161} physReg:NA Preferences=[allInt] RelatedInterval <L10>[00000000023280A8]
Interval 23: RefPositions {#65@168 #66@171} physReg:NA Preferences=[allInt] RelatedInterval <L10>[00000000023280A8]
Interval 24: RefPositions {#67@172 #68@175} physReg:NA Preferences=[allInt] RelatedInterval <I23>[000000000232AA30]
Interval 25: RefPositions {#70@176 #71@179} physReg:NA Preferences=[allInt] RelatedInterval <I24>[000000000232AB80]
Interval 26: RefPositions {#72@180 #73@183} physReg:NA Preferences=[allInt] RelatedInterval <I25>[000000000232AD10]
Interval 27: RefPositions {#74@184 #75@185} physReg:NA Preferences=[allInt] RelatedInterval <L8>[0000000002328008]
Interval 28: RefPositions {#80@204 #81@207} physReg:NA Preferences=[allInt]
Interval 29: RefPositions {#82@208 #83@209} physReg:NA Preferences=[allInt] RelatedInterval <L9>[0000000002328058]
Interval 30: RefPositions {#86@218 #88@219} physReg:NA Preferences=[allInt]
Interval 31: RefPositions {#89@220 #90@221} physReg:NA Preferences=[allInt] RelatedInterval <L8>[0000000002328008]
Interval 32: RefPositions {#93@230 #94@231} physReg:NA Preferences=[allInt] RelatedInterval <L4>[0000000002327EC8]
Interval 33: (interfering uses) RefPositions {#100@240 #101@241} physReg:NA Preferences=[rax rdx rbx rsi rdi r8-r15] RelatedInterval <L7>[0000000002327FB8]
Interval 34: RefPositions {#108@260 #110@261} physReg:NA Preferences=[rax] RelatedInterval <L8>[0000000002328008]
------------
REFPOSITIONS BEFORE ALLOCATION:
------------
<RefPosition #0 @0 RefTypeParamDef <Ivl:0 V00> BB00 regmask=[rdi] minReg=1 fixed>
<RefPosition #1 @1 RefTypeBB BB01 regmask=[] minReg=1>
<RefPosition #2 @6 RefTypeDef <Ivl:11> CNS_INT BB01 regmask=[allInt] minReg=1>
<RefPosition #3 @7 RefTypeUse <Ivl:11> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #4 @8 RefTypeDef <Ivl:12> IND BB01 regmask=[allInt] minReg=1>
<RefPosition #5 @9 RefTypeUse <Ivl:12> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #6 @10 RefTypeDef <Ivl:1 V02> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #7 @15 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
<RefPosition #8 @16 RefTypeDef <Ivl:3 V04> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #9 @21 RefTypeUse <Ivl:1 V02> LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #10 @22 RefTypeDef <Ivl:2 V03> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #11 @27 RefTypeUse <Ivl:3 V04> LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #12 @28 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #13 @35 RefTypeUse <Ivl:4 V05> LCL_VAR BB01 regmask=[allInt] minReg=1 regOptional>
<RefPosition #14 @39 RefTypeBB BB02 regmask=[] minReg=1>
<RefPosition #15 @45 RefTypeUse <Ivl:3 V04> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
<RefPosition #16 @46 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #17 @51 RefTypeUse <Ivl:2 V03> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
<RefPosition #18 @52 RefTypeDef <Ivl:5 V06> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #19 @59 RefTypeUse <Ivl:5 V06> LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #20 @60 RefTypeDef <Ivl:13> ADD BB02 regmask=[allInt] minReg=1>
<RefPosition #21 @61 RefTypeUse <Ivl:13> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #22 @62 RefTypeDef <Ivl:2 V03> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #23 @71 RefTypeUse <Ivl:5 V06> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
<RefPosition #24 @72 RefTypeDef <Ivl:14> HWIntrinsic BB02 regmask=[allInt] minReg=1>
<RefPosition #25 @73 RefTypeUse <Ivl:14> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #26 @74 RefTypeDef <Ivl:15> CAST BB02 regmask=[allInt] minReg=1>
<RefPosition #27 @75 RefTypeUse <Ivl:4 V05> LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #28 @75 RefTypeUse <Ivl:15> BB02 regmask=[allInt] minReg=1 last delay regOptional>
<RefPosition #29 @76 RefTypeDef <Ivl:16> SUB BB02 regmask=[allInt] minReg=1>
<RefPosition #30 @77 RefTypeUse <Ivl:16> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #31 @78 RefTypeDef <Ivl:3 V04> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #32 @85 RefTypeUse <Ivl:3 V04> LCL_VAR BB02 regmask=[allInt] minReg=1 regOptional>
<RefPosition #33 @89 RefTypeExpUse <Ivl:3 V04> BB02 regmask=[allInt] minReg=1>
<RefPosition #34 @89 RefTypeBB BB03 regmask=[] minReg=1>
<RefPosition #35 @97 RefTypeUse <Ivl:2 V03> LCL_VAR BB03 regmask=[allInt] minReg=1 last>
<RefPosition #36 @98 RefTypeDef <Ivl:17> ADD BB03 regmask=[allInt] minReg=1>
<RefPosition #37 @99 RefTypeUse <Ivl:17> BB03 regmask=[allInt] minReg=1 last>
<RefPosition #38 @100 RefTypeDef <Ivl:6 V07> STORE_LCL_VAR BB03 regmask=[allInt] minReg=1>
<RefPosition #39 @109 RefTypeUse <Ivl:6 V07> LCL_VAR BB03 regmask=[allInt] minReg=1>
<RefPosition #40 @110 RefTypeDef <Ivl:18> HWIntrinsic BB03 regmask=[allInt] minReg=1>
<RefPosition #41 @111 RefTypeUse <Ivl:4 V05> LCL_VAR BB03 regmask=[allInt] minReg=1>
<RefPosition #42 @111 RefTypeUse <Ivl:18> BB03 regmask=[allInt] minReg=1 last delay regOptional>
<RefPosition #43 @112 RefTypeDef <Ivl:19> SUB BB03 regmask=[allInt] minReg=1>
<RefPosition #44 @113 RefTypeUse <Ivl:19> BB03 regmask=[allInt] minReg=1 last>
<RefPosition #45 @114 RefTypeDef <Ivl:3 V04> STORE_LCL_VAR BB03 regmask=[allInt] minReg=1>
<RefPosition #46 @121 RefTypeUse <Ivl:3 V04> LCL_VAR BB03 regmask=[allInt] minReg=1 regOptional>
<RefPosition #47 @125 RefTypeBB BB04 regmask=[] minReg=1>
<RefPosition #48 @131 RefTypeUse <Ivl:3 V04> LCL_VAR BB04 regmask=[allInt] minReg=1 last>
<RefPosition #49 @132 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB04 regmask=[allInt] minReg=1>
<RefPosition #50 @139 RefTypeUse <Ivl:6 V07> LCL_VAR BB04 regmask=[allInt] minReg=1 last>
<RefPosition #51 @140 RefTypeDef <Ivl:20> ADD BB04 regmask=[allInt] minReg=1>
<RefPosition #52 @141 RefTypeUse <Ivl:20> BB04 regmask=[allInt] minReg=1 last>
<RefPosition #53 @142 RefTypeDef <Ivl:6 V07> STORE_LCL_VAR BB04 regmask=[allInt] minReg=1>
<RefPosition #54 @143 RefTypeBB BB05 regmask=[] minReg=1>
<RefPosition #55 @149 RefTypeUse <Ivl:6 V07> LCL_VAR BB05 regmask=[allInt] minReg=1>
<RefPosition #56 @150 RefTypeDef <Ivl:21> IND BB05 regmask=[allInt] minReg=1>
<RefPosition #57 @151 RefTypeUse <Ivl:21> BB05 regmask=[allInt] minReg=1 last>
<RefPosition #58 @152 RefTypeDef <Ivl:7 V08> STORE_LCL_VAR BB05 regmask=[allInt] minReg=1>
<RefPosition #59 @159 RefTypeUse <Ivl:6 V07> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
<RefPosition #60 @159 RefTypeUse <Ivl:1 V02> LCL_VAR BB05 regmask=[allInt] minReg=1 last delay regOptional>
<RefPosition #61 @160 RefTypeDef <Ivl:22> SUB BB05 regmask=[allInt] minReg=1>
<RefPosition #62 @161 RefTypeUse <Ivl:22> BB05 regmask=[allInt] minReg=1 last>
<RefPosition #63 @162 RefTypeDef <Ivl:10 V11> STORE_LCL_VAR BB05 regmask=[allInt] minReg=1>
<RefPosition #64 @167 RefTypeUse <Ivl:10 V11> LCL_VAR BB05 regmask=[allInt] minReg=1>
<RefPosition #65 @168 RefTypeDef <Ivl:23> RSH BB05 regmask=[allInt] minReg=1>
<RefPosition #66 @171 RefTypeUse <Ivl:23> BB05 regmask=[allInt] minReg=1 last>
<RefPosition #67 @172 RefTypeDef <Ivl:24> AND BB05 regmask=[allInt] minReg=1>
<RefPosition #68 @175 RefTypeUse <Ivl:24> BB05 regmask=[allInt] minReg=1 last>
<RefPosition #69 @175 RefTypeUse <Ivl:10 V11> LCL_VAR BB05 regmask=[allInt] minReg=1 last regOptional>
<RefPosition #70 @176 RefTypeDef <Ivl:25> ADD BB05 regmask=[allInt] minReg=1>
<RefPosition #71 @179 RefTypeUse <Ivl:25> BB05 regmask=[allInt] minReg=1 last>
<RefPosition #72 @180 RefTypeDef <Ivl:26> RSH BB05 regmask=[allInt] minReg=1>
<RefPosition #73 @183 RefTypeUse <Ivl:26> BB05 regmask=[allInt] minReg=1 last>
<RefPosition #74 @184 RefTypeDef <Ivl:27> LSH BB05 regmask=[allInt] minReg=1>
<RefPosition #75 @185 RefTypeUse <Ivl:27> BB05 regmask=[allInt] minReg=1 last>
<RefPosition #76 @186 RefTypeDef <Ivl:8 V09> STORE_LCL_VAR BB05 regmask=[allInt] minReg=1>
<RefPosition #77 @193 RefTypeUse <Ivl:4 V05> LCL_VAR BB05 regmask=[allInt] minReg=1 regOptional>
<RefPosition #78 @197 RefTypeBB BB06 regmask=[] minReg=1>
<RefPosition #79 @203 RefTypeUse <Ivl:7 V08> LCL_VAR BB06 regmask=[allInt] minReg=1 regOptional>
<RefPosition #80 @204 RefTypeDef <Ivl:28> HWIntrinsic BB06 regmask=[allInt] minReg=1>
<RefPosition #81 @207 RefTypeUse <Ivl:28> BB06 regmask=[allInt] minReg=1 last>
<RefPosition #82 @208 RefTypeDef <Ivl:29> ADD BB06 regmask=[allInt] minReg=1>
<RefPosition #83 @209 RefTypeUse <Ivl:29> BB06 regmask=[allInt] minReg=1 last>
<RefPosition #84 @210 RefTypeDef <Ivl:9 V10> STORE_LCL_VAR BB06 regmask=[allInt] minReg=1>
<RefPosition #85 @217 RefTypeUse <Ivl:9 V10> LCL_VAR BB06 regmask=[allInt] minReg=1>
<RefPosition #86 @218 RefTypeDef <Ivl:30> CAST BB06 regmask=[allInt] minReg=1>
<RefPosition #87 @219 RefTypeUse <Ivl:8 V09> LCL_VAR BB06 regmask=[allInt] minReg=1 last regOptional>
<RefPosition #88 @219 RefTypeUse <Ivl:30> BB06 regmask=[allInt] minReg=1 last>
<RefPosition #89 @220 RefTypeDef <Ivl:31> ADD BB06 regmask=[allInt] minReg=1>
<RefPosition #90 @221 RefTypeUse <Ivl:31> BB06 regmask=[allInt] minReg=1 last>
<RefPosition #91 @222 RefTypeDef <Ivl:8 V09> STORE_LCL_VAR BB06 regmask=[allInt] minReg=1>
<RefPosition #92 @229 RefTypeUse <Ivl:4 V05> LCL_VAR BB06 regmask=[allInt] minReg=1 last>
<RefPosition #93 @230 RefTypeDef <Ivl:32> ADD BB06 regmask=[allInt] minReg=1>
<RefPosition #94 @231 RefTypeUse <Ivl:32> BB06 regmask=[allInt] minReg=1 last>
<RefPosition #95 @232 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB06 regmask=[allInt] minReg=1>
<RefPosition #96 @239 RefTypeUse <Ivl:7 V08> LCL_VAR BB06 regmask=[rax rdx rbx rsi rdi r8-r15] minReg=1 last>
<RefPosition #97 @239 RefTypeFixedReg <Reg:rcx> BB06 regmask=[rcx] minReg=1>
<RefPosition #98 @239 RefTypeUse <Ivl:9 V10> LCL_VAR BB06 regmask=[rcx] minReg=1 last fixed delay>
<RefPosition #99 @240 RefTypeKill <Reg:rcx> BB06 regmask=[rcx] minReg=1 last>
<RefPosition #100 @240 RefTypeDef <Ivl:33> RSZ BB06 regmask=[rax rdx rbx rsi rdi r8-r15] minReg=1>
<RefPosition #101 @241 RefTypeUse <Ivl:33> BB06 regmask=[allInt] minReg=1 last>
<RefPosition #102 @242 RefTypeDef <Ivl:7 V08> STORE_LCL_VAR BB06 regmask=[allInt] minReg=1>
<RefPosition #103 @249 RefTypeUse <Ivl:4 V05> LCL_VAR BB06 regmask=[allInt] minReg=1 regOptional>
<RefPosition #104 @253 RefTypeExpUse <Ivl:4 V05> BB06 regmask=[allInt] minReg=1>
<RefPosition #105 @253 RefTypeExpUse <Ivl:7 V08> BB06 regmask=[allInt] minReg=1>
<RefPosition #106 @253 RefTypeBB BB07 regmask=[] minReg=1>
<RefPosition #107 @259 RefTypeUse <Ivl:8 V09> LCL_VAR BB07 regmask=[allInt] minReg=1 last>
<RefPosition #108 @260 RefTypeDef <Ivl:34> ADD BB07 regmask=[rax] minReg=1>
<RefPosition #109 @261 RefTypeFixedReg <Reg:rax> BB07 regmask=[rax] minReg=1>
<RefPosition #110 @261 RefTypeUse <Ivl:34> BB07 regmask=[rax] minReg=1 last fixed>
VAR REFPOSITIONS BEFORE ALLOCATION
--- V00
<RefPosition #0 @0 RefTypeParamDef <Ivl:0 V00> BB00 regmask=[rdi] minReg=1 fixed>
<RefPosition #7 @15 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
--- V01
--- V02
<RefPosition #6 @10 RefTypeDef <Ivl:1 V02> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #9 @21 RefTypeUse <Ivl:1 V02> LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #60 @159 RefTypeUse <Ivl:1 V02> LCL_VAR BB05 regmask=[allInt] minReg=1 last delay regOptional>
--- V03
<RefPosition #10 @22 RefTypeDef <Ivl:2 V03> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #17 @51 RefTypeUse <Ivl:2 V03> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
<RefPosition #22 @62 RefTypeDef <Ivl:2 V03> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #35 @97 RefTypeUse <Ivl:2 V03> LCL_VAR BB03 regmask=[allInt] minReg=1 last>
--- V04
<RefPosition #8 @16 RefTypeDef <Ivl:3 V04> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #11 @27 RefTypeUse <Ivl:3 V04> LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #15 @45 RefTypeUse <Ivl:3 V04> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
<RefPosition #31 @78 RefTypeDef <Ivl:3 V04> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #32 @85 RefTypeUse <Ivl:3 V04> LCL_VAR BB02 regmask=[allInt] minReg=1 regOptional>
<RefPosition #33 @89 RefTypeExpUse <Ivl:3 V04> BB02 regmask=[allInt] minReg=1>
<RefPosition #45 @114 RefTypeDef <Ivl:3 V04> STORE_LCL_VAR BB03 regmask=[allInt] minReg=1>
<RefPosition #46 @121 RefTypeUse <Ivl:3 V04> LCL_VAR BB03 regmask=[allInt] minReg=1 regOptional>
<RefPosition #48 @131 RefTypeUse <Ivl:3 V04> LCL_VAR BB04 regmask=[allInt] minReg=1 last>
--- V05
<RefPosition #12 @28 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #13 @35 RefTypeUse <Ivl:4 V05> LCL_VAR BB01 regmask=[allInt] minReg=1 regOptional>
<RefPosition #16 @46 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #27 @75 RefTypeUse <Ivl:4 V05> LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #41 @111 RefTypeUse <Ivl:4 V05> LCL_VAR BB03 regmask=[allInt] minReg=1>
<RefPosition #49 @132 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB04 regmask=[allInt] minReg=1>
<RefPosition #77 @193 RefTypeUse <Ivl:4 V05> LCL_VAR BB05 regmask=[allInt] minReg=1 regOptional>
<RefPosition #92 @229 RefTypeUse <Ivl:4 V05> LCL_VAR BB06 regmask=[allInt] minReg=1 last>
<RefPosition #95 @232 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB06 regmask=[allInt] minReg=1>
<RefPosition #103 @249 RefTypeUse <Ivl:4 V05> LCL_VAR BB06 regmask=[allInt] minReg=1 regOptional>
<RefPosition #104 @253 RefTypeExpUse <Ivl:4 V05> BB06 regmask=[allInt] minReg=1>
--- V06
<RefPosition #18 @52 RefTypeDef <Ivl:5 V06> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #19 @59 RefTypeUse <Ivl:5 V06> LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #23 @71 RefTypeUse <Ivl:5 V06> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
--- V07
<RefPosition #38 @100 RefTypeDef <Ivl:6 V07> STORE_LCL_VAR BB03 regmask=[allInt] minReg=1>
<RefPosition #39 @109 RefTypeUse <Ivl:6 V07> LCL_VAR BB03 regmask=[allInt] minReg=1>
<RefPosition #50 @139 RefTypeUse <Ivl:6 V07> LCL_VAR BB04 regmask=[allInt] minReg=1 last>
<RefPosition #53 @142 RefTypeDef <Ivl:6 V07> STORE_LCL_VAR BB04 regmask=[allInt] minReg=1>
<RefPosition #55 @149 RefTypeUse <Ivl:6 V07> LCL_VAR BB05 regmask=[allInt] minReg=1>
<RefPosition #59 @159 RefTypeUse <Ivl:6 V07> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
--- V08
<RefPosition #58 @152 RefTypeDef <Ivl:7 V08> STORE_LCL_VAR BB05 regmask=[allInt] minReg=1>
<RefPosition #79 @203 RefTypeUse <Ivl:7 V08> LCL_VAR BB06 regmask=[allInt] minReg=1 regOptional>
<RefPosition #96 @239 RefTypeUse <Ivl:7 V08> LCL_VAR BB06 regmask=[rax rdx rbx rsi rdi r8-r15] minReg=1 last>
<RefPosition #102 @242 RefTypeDef <Ivl:7 V08> STORE_LCL_VAR BB06 regmask=[allInt] minReg=1>
<RefPosition #105 @253 RefTypeExpUse <Ivl:7 V08> BB06 regmask=[allInt] minReg=1>
--- V09
<RefPosition #76 @186 RefTypeDef <Ivl:8 V09> STORE_LCL_VAR BB05 regmask=[allInt] minReg=1>
<RefPosition #87 @219 RefTypeUse <Ivl:8 V09> LCL_VAR BB06 regmask=[allInt] minReg=1 last regOptional>
<RefPosition #91 @222 RefTypeDef <Ivl:8 V09> STORE_LCL_VAR BB06 regmask=[allInt] minReg=1>
<RefPosition #107 @259 RefTypeUse <Ivl:8 V09> LCL_VAR BB07 regmask=[allInt] minReg=1 last>
--- V10
<RefPosition #84 @210 RefTypeDef <Ivl:9 V10> STORE_LCL_VAR BB06 regmask=[allInt] minReg=1>
<RefPosition #85 @217 RefTypeUse <Ivl:9 V10> LCL_VAR BB06 regmask=[allInt] minReg=1>
<RefPosition #98 @239 RefTypeUse <Ivl:9 V10> LCL_VAR BB06 regmask=[rcx] minReg=1 last fixed delay>
--- V11
<RefPosition #63 @162 RefTypeDef <Ivl:10 V11> STORE_LCL_VAR BB05 regmask=[allInt] minReg=1>
<RefPosition #64 @167 RefTypeUse <Ivl:10 V11> LCL_VAR BB05 regmask=[allInt] minReg=1>
<RefPosition #69 @175 RefTypeUse <Ivl:10 V11> LCL_VAR BB05 regmask=[allInt] minReg=1 last regOptional>
Allocating Registers
--------------------
The following table has one or more rows for each RefPosition that is handled during allocation.
The first column provides the basic information about the RefPosition, with its type (e.g. Def,
Use, Fixd) followed by a '*' if it is a last use, and a 'D' if it is delayRegFree, and then the
action taken during allocation (e.g. Alloc a new register, or Keep an existing one).
The subsequent columns show the Interval occupying each register, if any, followed by 'a' if it is
active, and 'i'if it is inactive. Columns are only printed up to the last modifed register, which
may increase during allocation, in which case additional columns will appear. Registers which are
not marked modified have ---- in their column.
--------------------------------+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rbx |r12 |r13 |
--------------------------------+----+----+----+----+----+
| | | | | |
--------------------------------+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rbx |rdi |r12 |r13 |
--------------------------------+----+----+----+----+----+----+
0.#0 V0 Parm Keep rdi | | | |V0 a| | |
1.#1 BB1 PredBB0 | | | |V0 a| | |
6.#2 C11 Def Alloc rcx | |C11a| |V0 a| | |
7.#3 C11 Use * Keep rcx | |C11a| |V0 a| | |
8.#4 I12 Def Alloc rcx | |I12a| |V0 a| | |
9.#5 I12 Use * Keep rcx | |I12a| |V0 a| | |
10.#6 V2 Def Alloc rcx | |V2 a| |V0 a| | |
15.#7 V0 Use * Keep rdi | |V2 a| |V0 a| | |
16.#8 V4 Def Alloc rax |V4 a|V2 a| | | | |
21.#9 V2 Use Keep rcx |V4 a|V2 a| | | | |
22.#10 V3 Def Alloc rdi |V4 a|V2 a| |V3 a| | |
27.#11 V4 Use Keep rax |V4 a|V2 a| |V3 a| | |
--------------------------------+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rbx |rsi |rdi |r12 |r13 |
--------------------------------+----+----+----+----+----+----+----+
28.#12 V5 Def Alloc rsi |V4 a|V2 a| |V5 a|V3 a| | |
35.#13 V5 Use Keep rsi |V4 a|V2 a| |V5 a|V3 a| | |
--------------------------------+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rbx |rsi |rdi |r12 |r13 |
--------------------------------+----+----+----+----+----+----+----+
39.#14 BB2 PredBB1 |V4 a|V2 a| |V5 i|V3 a| | |
45.#15 V4 Use * Keep rax |V4 i|V2 a| |V5 i|V3 a| | |
46.#16 V5 Def Keep rsi |V4 i|V2 a| |V5 a|V3 a| | |
51.#17 V3 Use * Keep rdi |V4 i|V2 a| |V5 a|V3 i| | |
52.#18 V6 Def Alloc rdi |V4 i|V2 a| |V5 a|V6 a| | |
59.#19 V6 Use Keep rdi |V4 i|V2 a| |V5 a|V6 a| | |
60.#20 I13 Def Alloc rax |I13a|V2 a| |V5 a|V6 a| | |
61.#21 I13 Use * Keep rax |I13a|V2 a| |V5 a|V6 a| | |
Restr rax |V4 i|V2 a| |V5 a|V6 a| | |
62.#22 V3 Def Alloc rax |V3 a|V2 a| |V5 a|V6 a| | |
71.#23 V6 Use * Keep rdi |V3 a|V2 a| |V5 a|V6 a| | |
72.#24 I14 Def Alloc rdi |V3 a|V2 a| |V5 a|I14a| | |
73.#25 I14 Use * Keep rdi |V3 a|V2 a| |V5 a|I14a| | |
74.#26 I15 Def Alloc rdi |V3 a|V2 a| |V5 a|I15a| | |
75.#27 V5 Use Keep rsi |V3 a|V2 a| |V5 a|I15a| | |
75.#28 I15 Use *D Keep rdi |V3 a|V2 a| |V5 a|I15a| | |
--------------------------------+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsi |rdi |r12 |r13 |
--------------------------------+----+----+----+----+----+----+----+----+
76.#29 I16 Def Alloc rdx |V3 a|V2 a|I16a| |V5 a|I15a| | |
77.#30 I16 Use * Keep rdx |V3 a|V2 a|I16a| |V5 a| | | |
78.#31 V4 Def Alloc rdx |V3 a|V2 a|V4 a| |V5 a| | | |
85.#32 V4 Use Keep rdx |V3 a|V2 a|V4 a| |V5 a| | | |
89.#33 V4 ExpU Keep NA |V3 a|V2 a|V4 a| |V5 a| | | |
--------------------------------+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsi |rdi |r12 |r13 |
--------------------------------+----+----+----+----+----+----+----+----+
89.#34 BB3 PredBB2 |V3 a|V2 a|V4 i| |V5 a| | | |
97.#35 V3 Use * Keep rax |V3 a|V2 a|V4 i| |V5 a| | | |
98.#36 I17 Def Alloc rax |I17a|V2 a|V4 i| |V5 a| | | |
99.#37 I17 Use * Keep rax |I17a|V2 a|V4 i| |V5 a| | | |
100.#38 V7 Def Alloc rax |V7 a|V2 a|V4 i| |V5 a| | | |
109.#39 V7 Use Keep rax |V7 a|V2 a|V4 i| |V5 a| | | |
110.#40 I18 Def Alloc rdx |V7 a|V2 a|I18a| |V5 a| | | |
111.#41 V5 Use Keep rsi |V7 a|V2 a|I18a| |V5 a| | | |
111.#42 I18 Use *D Keep rdx |V7 a|V2 a|I18a| |V5 a| | | |
112.#43 I19 Def Alloc rdi |V7 a|V2 a|I18a| |V5 a|I19a| | |
Restr rdx |V7 a|V2 a|V4 i| |V5 a|I19a| | |
113.#44 I19 Use * Keep rdi |V7 a|V2 a|V4 i| |V5 a|I19a| | |
114.#45 V4 Def Alloc rdx |V7 a|V2 a|V4 a| |V5 a| | | |
121.#46 V4 Use Keep rdx |V7 a|V2 a|V4 a| |V5 a| | | |
--------------------------------+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsi |rdi |r12 |r13 |
--------------------------------+----+----+----+----+----+----+----+----+
125.#47 BB4 PredBB3 |V7 a|V2 a|V4 a| |V5 i| | | |
131.#48 V4 Use * Keep rdx |V7 a|V2 a|V4 a| |V5 i| | | |
132.#49 V5 Def Keep rsi |V7 a|V2 a| | |V5 a| | | |
139.#50 V7 Use * Keep rax |V7 i|V2 a| | |V5 a| | | |
140.#51 I20 Def Alloc rax |I20a|V2 a| | |V5 a| | | |
141.#52 I20 Use * Keep rax |I20a|V2 a| | |V5 a| | | |
Restr rax |V7 i|V2 a| | |V5 a| | | |
142.#53 V7 Def Alloc rax |V7 a|V2 a| | |V5 a| | | |
--------------------------------+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsi |rdi |r12 |r13 |
--------------------------------+----+----+----+----+----+----+----+----+
143.#54 BB5 PredBB3 |V7 a|V2 a| | |V5 a| | | |
149.#55 V7 Use Keep rax |V7 a|V2 a| | |V5 a| | | |
150.#56 I21 Def Alloc rdi |V7 a|V2 a| | |V5 a|I21a| | |
151.#57 I21 Use * Keep rdi |V7 a|V2 a| | |V5 a|I21a| | |
152.#58 V8 Def Alloc rdi |V7 a|V2 a| | |V5 a|V8 a| | |
159.#59 V7 Use * Keep rax |V7 a|V2 a| | |V5 a|V8 a| | |
159.#60 V2 Use *D Keep rcx |V7 a|V2 a| | |V5 a|V8 a| | |
160.#61 I22 Def Alloc rax |I22a|V2 a| | |V5 a|V8 a| | |
161.#62 I22 Use * Keep rax |I22a| | | |V5 a|V8 a| | |
162.#63 V11 Def Alloc rax |V11a| | | |V5 a|V8 a| | |
167.#64 V11 Use Keep rax |V11a| | | |V5 a|V8 a| | |
168.#65 I23 Def Alloc rcx |V11a|I23a| | |V5 a|V8 a| | |
171.#66 I23 Use * Keep rcx |V11a|I23a| | |V5 a|V8 a| | |
172.#67 I24 Def Alloc rcx |V11a|I24a| | |V5 a|V8 a| | |
175.#68 I24 Use * Keep rcx |V11a|I24a| | |V5 a|V8 a| | |
175.#69 V11 Use * Keep rax |V11a|I24a| | |V5 a|V8 a| | |
176.#70 I25 Def Alloc rcx | |I25a| | |V5 a|V8 a| | |
179.#71 I25 Use * Keep rcx | |I25a| | |V5 a|V8 a| | |
180.#72 I26 Def Alloc rcx | |I26a| | |V5 a|V8 a| | |
183.#73 I26 Use * Keep rcx | |I26a| | |V5 a|V8 a| | |
184.#74 I27 Def Alloc rax |I27a| | | |V5 a|V8 a| | |
185.#75 I27 Use * Keep rax |I27a| | | |V5 a|V8 a| | |
186.#76 V9 Def Alloc rax |V9 a| | | |V5 a|V8 a| | |
193.#77 V5 Use Keep rsi |V9 a| | | |V5 a|V8 a| | |
--------------------------------+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsi |rdi |r12 |r13 |
--------------------------------+----+----+----+----+----+----+----+----+
197.#78 BB6 PredBB5 |V9 a| | | |V5 a|V8 a| | |
203.#79 V8 Use Keep rdi |V9 a| | | |V5 a|V8 a| | |
204.#80 I28 Def Alloc rcx |V9 a|I28a| | |V5 a|V8 a| | |
207.#81 I28 Use * Keep rcx |V9 a|I28a| | |V5 a|V8 a| | |
208.#82 I29 Def Alloc rcx |V9 a|I29a| | |V5 a|V8 a| | |
209.#83 I29 Use * Keep rcx |V9 a|I29a| | |V5 a|V8 a| | |
210.#84 V10 Def Alloc rcx |V9 a|V10a| | |V5 a|V8 a| | |
217.#85 V10 Use Keep rcx |V9 a|V10a| | |V5 a|V8 a| | |
218.#86 I30 Def Alloc rdx |V9 a|V10a|I30a| |V5 a|V8 a| | |
219.#87 V9 Use * Keep rax |V9 i|V10a|I30a| |V5 a|V8 a| | |
219.#88 I30 Use * Keep rdx |V9 i|V10a|I30a| |V5 a|V8 a| | |
220.#89 I31 Def Alloc rax |I31a|V10a| | |V5 a|V8 a| | |
221.#90 I31 Use * Keep rax |I31a|V10a| | |V5 a|V8 a| | |
Restr rax |V9 i|V10a| | |V5 a|V8 a| | |
222.#91 V9 Def Alloc rax |V9 a|V10a| | |V5 a|V8 a| | |
229.#92 V5 Use * Keep rsi |V9 a|V10a| | |V5 i|V8 a| | |
230.#93 I32 Def Alloc rsi |V9 a|V10a| | |I32a|V8 a| | |
231.#94 I32 Use * Keep rsi |V9 a|V10a| | |I32a|V8 a| | |
Restr rsi |V9 a|V10a| | |V5 i|V8 a| | |
232.#95 V5 Def Alloc rsi |V9 a|V10a| | |V5 a|V8 a| | |
239.#96 V8 Use * Keep rdi |V9 a|V10a| | |V5 a|V8 i| | |
239.#97 rcx Fixd Keep rcx |V9 a|V10a| | |V5 a|V8 i| | |
239.#98 V10 Use *D Keep rcx |V9 a|V10a| | |V5 a|V8 i| | |
240.#99 rcx Kill Keep rcx |V9 a| | | |V5 a|V8 i| | |
240.#100 I33 Def Alloc rdi |V9 a| | | |V5 a|I33a| | |
241.#101 I33 Use * Keep rdi |V9 a| | | |V5 a|I33a| | |
Restr rdi |V9 a| | | |V5 a|V8 i| | |
242.#102 V8 Def Alloc rdi |V9 a| | | |V5 a|V8 a| | |
249.#103 V5 Use Keep rsi |V9 a| | | |V5 a|V8 a| | |
253.#104 V5 ExpU Keep NA |V9 a| | | |V5 a|V8 a| | |
253.#105 V8 ExpU Keep NA |V9 a| | | |V5 a|V8 a| | |
--------------------------------+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsi |rdi |r12 |r13 |
--------------------------------+----+----+----+----+----+----+----+----+
253.#106 BB7 PredBB6 |V9 a| | | | | | | |
259.#107 V9 Use * Keep rax |V9 a| | | | | | | |
260.#108 I34 Def Alloc rax |I34a| | | | | | | |
261.#109 rax Fixd Keep rax |I34a| | | | | | | |
261.#110 I34 Use * Keep rax | | | | | | | | |
------------
REFPOSITIONS AFTER ALLOCATION:
------------
<RefPosition #0 @0 RefTypeParamDef <Ivl:0 V00> BB00 regmask=[rdi] minReg=1 fixed>
<RefPosition #1 @1 RefTypeBB BB01 regmask=[] minReg=1>
<RefPosition #2 @6 RefTypeDef <Ivl:11> CNS_INT BB01 regmask=[rcx] minReg=1>
<RefPosition #3 @7 RefTypeUse <Ivl:11> BB01 regmask=[rcx] minReg=1 last>
<RefPosition #4 @8 RefTypeDef <Ivl:12> IND BB01 regmask=[rcx] minReg=1>
<RefPosition #5 @9 RefTypeUse <Ivl:12> BB01 regmask=[rcx] minReg=1 last>
<RefPosition #6 @10 RefTypeDef <Ivl:1 V02> STORE_LCL_VAR BB01 regmask=[rcx] minReg=1>
<RefPosition #7 @15 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rdi] minReg=1 last>
<RefPosition #8 @16 RefTypeDef <Ivl:3 V04> STORE_LCL_VAR BB01 regmask=[rax] minReg=1>
<RefPosition #9 @21 RefTypeUse <Ivl:1 V02> LCL_VAR BB01 regmask=[rcx] minReg=1>
<RefPosition #10 @22 RefTypeDef <Ivl:2 V03> STORE_LCL_VAR BB01 regmask=[rdi] minReg=1>
<RefPosition #11 @27 RefTypeUse <Ivl:3 V04> LCL_VAR BB01 regmask=[rax] minReg=1>
<RefPosition #12 @28 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB01 regmask=[rsi] minReg=1>
<RefPosition #13 @35 RefTypeUse <Ivl:4 V05> LCL_VAR BB01 regmask=[rsi] minReg=1 regOptional>
<RefPosition #14 @39 RefTypeBB BB02 regmask=[] minReg=1>
<RefPosition #15 @45 RefTypeUse <Ivl:3 V04> LCL_VAR BB02 regmask=[rax] minReg=1 last>
<RefPosition #16 @46 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB02 regmask=[rsi] minReg=1>
<RefPosition #17 @51 RefTypeUse <Ivl:2 V03> LCL_VAR BB02 regmask=[rdi] minReg=1 last>
<RefPosition #18 @52 RefTypeDef <Ivl:5 V06> STORE_LCL_VAR BB02 regmask=[rdi] minReg=1>
<RefPosition #19 @59 RefTypeUse <Ivl:5 V06> LCL_VAR BB02 regmask=[rdi] minReg=1>
<RefPosition #20 @60 RefTypeDef <Ivl:13> ADD BB02 regmask=[rax] minReg=1>
<RefPosition #21 @61 RefTypeUse <Ivl:13> BB02 regmask=[rax] minReg=1 last>
<RefPosition #22 @62 RefTypeDef <Ivl:2 V03> STORE_LCL_VAR BB02 regmask=[rax] minReg=1>
<RefPosition #23 @71 RefTypeUse <Ivl:5 V06> LCL_VAR BB02 regmask=[rdi] minReg=1 last>
<RefPosition #24 @72 RefTypeDef <Ivl:14> HWIntrinsic BB02 regmask=[rdi] minReg=1>
<RefPosition #25 @73 RefTypeUse <Ivl:14> BB02 regmask=[rdi] minReg=1 last>
<RefPosition #26 @74 RefTypeDef <Ivl:15> CAST BB02 regmask=[rdi] minReg=1>
<RefPosition #27 @75 RefTypeUse <Ivl:4 V05> LCL_VAR BB02 regmask=[rsi] minReg=1>
<RefPosition #28 @75 RefTypeUse <Ivl:15> BB02 regmask=[rdi] minReg=1 last delay regOptional>
<RefPosition #29 @76 RefTypeDef <Ivl:16> SUB BB02 regmask=[rdx] minReg=1>
<RefPosition #30 @77 RefTypeUse <Ivl:16> BB02 regmask=[rdx] minReg=1 last>
<RefPosition #31 @78 RefTypeDef <Ivl:3 V04> STORE_LCL_VAR BB02 regmask=[rdx] minReg=1>
<RefPosition #32 @85 RefTypeUse <Ivl:3 V04> LCL_VAR BB02 regmask=[rdx] minReg=1 regOptional>
<RefPosition #33 @89 RefTypeExpUse <Ivl:3 V04> BB02 regmask=[allInt] minReg=1>
<RefPosition #34 @89 RefTypeBB BB03 regmask=[] minReg=1>
<RefPosition #35 @97 RefTypeUse <Ivl:2 V03> LCL_VAR BB03 regmask=[rax] minReg=1 last>
<RefPosition #36 @98 RefTypeDef <Ivl:17> ADD BB03 regmask=[rax] minReg=1>
<RefPosition #37 @99 RefTypeUse <Ivl:17> BB03 regmask=[rax] minReg=1 last>
<RefPosition #38 @100 RefTypeDef <Ivl:6 V07> STORE_LCL_VAR BB03 regmask=[rax] minReg=1>
<RefPosition #39 @109 RefTypeUse <Ivl:6 V07> LCL_VAR BB03 regmask=[rax] minReg=1>
<RefPosition #40 @110 RefTypeDef <Ivl:18> HWIntrinsic BB03 regmask=[rdx] minReg=1>
<RefPosition #41 @111 RefTypeUse <Ivl:4 V05> LCL_VAR BB03 regmask=[rsi] minReg=1>
<RefPosition #42 @111 RefTypeUse <Ivl:18> BB03 regmask=[rdx] minReg=1 last delay regOptional>
<RefPosition #43 @112 RefTypeDef <Ivl:19> SUB BB03 regmask=[rdi] minReg=1>
<RefPosition #44 @113 RefTypeUse <Ivl:19> BB03 regmask=[rdi] minReg=1 last>
<RefPosition #45 @114 RefTypeDef <Ivl:3 V04> STORE_LCL_VAR BB03 regmask=[rdx] minReg=1>
<RefPosition #46 @121 RefTypeUse <Ivl:3 V04> LCL_VAR BB03 regmask=[rdx] minReg=1 regOptional>
<RefPosition #47 @125 RefTypeBB BB04 regmask=[] minReg=1>
<RefPosition #48 @131 RefTypeUse <Ivl:3 V04> LCL_VAR BB04 regmask=[rdx] minReg=1 last>
<RefPosition #49 @132 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB04 regmask=[rsi] minReg=1>
<RefPosition #50 @139 RefTypeUse <Ivl:6 V07> LCL_VAR BB04 regmask=[rax] minReg=1 last>
<RefPosition #51 @140 RefTypeDef <Ivl:20> ADD BB04 regmask=[rax] minReg=1>
<RefPosition #52 @141 RefTypeUse <Ivl:20> BB04 regmask=[rax] minReg=1 last>
<RefPosition #53 @142 RefTypeDef <Ivl:6 V07> STORE_LCL_VAR BB04 regmask=[rax] minReg=1>
<RefPosition #54 @143 RefTypeBB BB05 regmask=[] minReg=1>
<RefPosition #55 @149 RefTypeUse <Ivl:6 V07> LCL_VAR BB05 regmask=[rax] minReg=1>
<RefPosition #56 @150 RefTypeDef <Ivl:21> IND BB05 regmask=[rdi] minReg=1>
<RefPosition #57 @151 RefTypeUse <Ivl:21> BB05 regmask=[rdi] minReg=1 last>
<RefPosition #58 @152 RefTypeDef <Ivl:7 V08> STORE_LCL_VAR BB05 regmask=[rdi] minReg=1>
<RefPosition #59 @159 RefTypeUse <Ivl:6 V07> LCL_VAR BB05 regmask=[rax] minReg=1 last>
<RefPosition #60 @159 RefTypeUse <Ivl:1 V02> LCL_VAR BB05 regmask=[rcx] minReg=1 last delay regOptional>
<RefPosition #61 @160 RefTypeDef <Ivl:22> SUB BB05 regmask=[rax] minReg=1>
<RefPosition #62 @161 RefTypeUse <Ivl:22> BB05 regmask=[rax] minReg=1 last>
<RefPosition #63 @162 RefTypeDef <Ivl:10 V11> STORE_LCL_VAR BB05 regmask=[rax] minReg=1>
<RefPosition #64 @167 RefTypeUse <Ivl:10 V11> LCL_VAR BB05 regmask=[rax] minReg=1>
<RefPosition #65 @168 RefTypeDef <Ivl:23> RSH BB05 regmask=[rcx] minReg=1>
<RefPosition #66 @171 RefTypeUse <Ivl:23> BB05 regmask=[rcx] minReg=1 last>
<RefPosition #67 @172 RefTypeDef <Ivl:24> AND BB05 regmask=[rcx] minReg=1>
<RefPosition #68 @175 RefTypeUse <Ivl:24> BB05 regmask=[rcx] minReg=1 last>
<RefPosition #69 @175 RefTypeUse <Ivl:10 V11> LCL_VAR BB05 regmask=[rax] minReg=1 last regOptional>
<RefPosition #70 @176 RefTypeDef <Ivl:25> ADD BB05 regmask=[rcx] minReg=1>
<RefPosition #71 @179 RefTypeUse <Ivl:25> BB05 regmask=[rcx] minReg=1 last>
<RefPosition #72 @180 RefTypeDef <Ivl:26> RSH BB05 regmask=[rcx] minReg=1>
<RefPosition #73 @183 RefTypeUse <Ivl:26> BB05 regmask=[rcx] minReg=1 last>
<RefPosition #74 @184 RefTypeDef <Ivl:27> LSH BB05 regmask=[rax] minReg=1>
<RefPosition #75 @185 RefTypeUse <Ivl:27> BB05 regmask=[rax] minReg=1 last>
<RefPosition #76 @186 RefTypeDef <Ivl:8 V09> STORE_LCL_VAR BB05 regmask=[rax] minReg=1>
<RefPosition #77 @193 RefTypeUse <Ivl:4 V05> LCL_VAR BB05 regmask=[rsi] minReg=1 regOptional>
<RefPosition #78 @197 RefTypeBB BB06 regmask=[] minReg=1>
<RefPosition #79 @203 RefTypeUse <Ivl:7 V08> LCL_VAR BB06 regmask=[rdi] minReg=1 regOptional>
<RefPosition #80 @204 RefTypeDef <Ivl:28> HWIntrinsic BB06 regmask=[rcx] minReg=1>
<RefPosition #81 @207 RefTypeUse <Ivl:28> BB06 regmask=[rcx] minReg=1 last>
<RefPosition #82 @208 RefTypeDef <Ivl:29> ADD BB06 regmask=[rcx] minReg=1>
<RefPosition #83 @209 RefTypeUse <Ivl:29> BB06 regmask=[rcx] minReg=1 last>
<RefPosition #84 @210 RefTypeDef <Ivl:9 V10> STORE_LCL_VAR BB06 regmask=[rcx] minReg=1>
<RefPosition #85 @217 RefTypeUse <Ivl:9 V10> LCL_VAR BB06 regmask=[rcx] minReg=1>
<RefPosition #86 @218 RefTypeDef <Ivl:30> CAST BB06 regmask=[rdx] minReg=1>
<RefPosition #87 @219 RefTypeUse <Ivl:8 V09> LCL_VAR BB06 regmask=[rax] minReg=1 last regOptional>
<RefPosition #88 @219 RefTypeUse <Ivl:30> BB06 regmask=[rdx] minReg=1 last>
<RefPosition #89 @220 RefTypeDef <Ivl:31> ADD BB06 regmask=[rax] minReg=1>
<RefPosition #90 @221 RefTypeUse <Ivl:31> BB06 regmask=[rax] minReg=1 last>
<RefPosition #91 @222 RefTypeDef <Ivl:8 V09> STORE_LCL_VAR BB06 regmask=[rax] minReg=1>
<RefPosition #92 @229 RefTypeUse <Ivl:4 V05> LCL_VAR BB06 regmask=[rsi] minReg=1 last>
<RefPosition #93 @230 RefTypeDef <Ivl:32> ADD BB06 regmask=[rsi] minReg=1>
<RefPosition #94 @231 RefTypeUse <Ivl:32> BB06 regmask=[rsi] minReg=1 last>
<RefPosition #95 @232 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB06 regmask=[rsi] minReg=1>
<RefPosition #96 @239 RefTypeUse <Ivl:7 V08> LCL_VAR BB06 regmask=[rdi] minReg=1 last>
<RefPosition #97 @239 RefTypeFixedReg <Reg:rcx> BB06 regmask=[rcx] minReg=1>
<RefPosition #98 @239 RefTypeUse <Ivl:9 V10> LCL_VAR BB06 regmask=[rcx] minReg=1 last fixed delay>
<RefPosition #99 @240 RefTypeKill <Reg:rcx> BB06 regmask=[rcx] minReg=1 last>
<RefPosition #100 @240 RefTypeDef <Ivl:33> RSZ BB06 regmask=[rdi] minReg=1>
<RefPosition #101 @241 RefTypeUse <Ivl:33> BB06 regmask=[rdi] minReg=1 last>
<RefPosition #102 @242 RefTypeDef <Ivl:7 V08> STORE_LCL_VAR BB06 regmask=[rdi] minReg=1>
<RefPosition #103 @249 RefTypeUse <Ivl:4 V05> LCL_VAR BB06 regmask=[rsi] minReg=1 regOptional>
<RefPosition #104 @253 RefTypeExpUse <Ivl:4 V05> BB06 regmask=[allInt] minReg=1>
<RefPosition #105 @253 RefTypeExpUse <Ivl:7 V08> BB06 regmask=[allInt] minReg=1>
<RefPosition #106 @253 RefTypeBB BB07 regmask=[] minReg=1>
<RefPosition #107 @259 RefTypeUse <Ivl:8 V09> LCL_VAR BB07 regmask=[rax] minReg=1 last>
<RefPosition #108 @260 RefTypeDef <Ivl:34> ADD BB07 regmask=[rax] minReg=1>
<RefPosition #109 @261 RefTypeFixedReg <Reg:rax> BB07 regmask=[rax] minReg=1>
<RefPosition #110 @261 RefTypeUse <Ivl:34> BB07 regmask=[rax] minReg=1 last fixed>
VAR REFPOSITIONS AFTER ALLOCATION
--- V00
<RefPosition #0 @0 RefTypeParamDef <Ivl:0 V00> BB00 regmask=[rdi] minReg=1 fixed>
<RefPosition #7 @15 RefTypeUse <Ivl:0 V00> LCL_VAR BB01 regmask=[rdi] minReg=1 last>
--- V01
--- V02
<RefPosition #6 @10 RefTypeDef <Ivl:1 V02> STORE_LCL_VAR BB01 regmask=[rcx] minReg=1>
<RefPosition #9 @21 RefTypeUse <Ivl:1 V02> LCL_VAR BB01 regmask=[rcx] minReg=1>
<RefPosition #60 @159 RefTypeUse <Ivl:1 V02> LCL_VAR BB05 regmask=[rcx] minReg=1 last delay regOptional>
--- V03
<RefPosition #10 @22 RefTypeDef <Ivl:2 V03> STORE_LCL_VAR BB01 regmask=[rdi] minReg=1>
<RefPosition #17 @51 RefTypeUse <Ivl:2 V03> LCL_VAR BB02 regmask=[rdi] minReg=1 last>
<RefPosition #22 @62 RefTypeDef <Ivl:2 V03> STORE_LCL_VAR BB02 regmask=[rax] minReg=1>
<RefPosition #35 @97 RefTypeUse <Ivl:2 V03> LCL_VAR BB03 regmask=[rax] minReg=1 last>
--- V04
<RefPosition #8 @16 RefTypeDef <Ivl:3 V04> STORE_LCL_VAR BB01 regmask=[rax] minReg=1>
<RefPosition #11 @27 RefTypeUse <Ivl:3 V04> LCL_VAR BB01 regmask=[rax] minReg=1>
<RefPosition #15 @45 RefTypeUse <Ivl:3 V04> LCL_VAR BB02 regmask=[rax] minReg=1 last>
<RefPosition #31 @78 RefTypeDef <Ivl:3 V04> STORE_LCL_VAR BB02 regmask=[rdx] minReg=1>
<RefPosition #32 @85 RefTypeUse <Ivl:3 V04> LCL_VAR BB02 regmask=[rdx] minReg=1 regOptional>
<RefPosition #33 @89 RefTypeExpUse <Ivl:3 V04> BB02 regmask=[allInt] minReg=1>
<RefPosition #45 @114 RefTypeDef <Ivl:3 V04> STORE_LCL_VAR BB03 regmask=[rdx] minReg=1>
<RefPosition #46 @121 RefTypeUse <Ivl:3 V04> LCL_VAR BB03 regmask=[rdx] minReg=1 regOptional>
<RefPosition #48 @131 RefTypeUse <Ivl:3 V04> LCL_VAR BB04 regmask=[rdx] minReg=1 last>
--- V05
<RefPosition #12 @28 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB01 regmask=[rsi] minReg=1>
<RefPosition #13 @35 RefTypeUse <Ivl:4 V05> LCL_VAR BB01 regmask=[rsi] minReg=1 regOptional>
<RefPosition #16 @46 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB02 regmask=[rsi] minReg=1>
<RefPosition #27 @75 RefTypeUse <Ivl:4 V05> LCL_VAR BB02 regmask=[rsi] minReg=1>
<RefPosition #41 @111 RefTypeUse <Ivl:4 V05> LCL_VAR BB03 regmask=[rsi] minReg=1>
<RefPosition #49 @132 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB04 regmask=[rsi] minReg=1>
<RefPosition #77 @193 RefTypeUse <Ivl:4 V05> LCL_VAR BB05 regmask=[rsi] minReg=1 regOptional>
<RefPosition #92 @229 RefTypeUse <Ivl:4 V05> LCL_VAR BB06 regmask=[rsi] minReg=1 last>
<RefPosition #95 @232 RefTypeDef <Ivl:4 V05> STORE_LCL_VAR BB06 regmask=[rsi] minReg=1>
<RefPosition #103 @249 RefTypeUse <Ivl:4 V05> LCL_VAR BB06 regmask=[rsi] minReg=1 regOptional>
<RefPosition #104 @253 RefTypeExpUse <Ivl:4 V05> BB06 regmask=[allInt] minReg=1>
--- V06
<RefPosition #18 @52 RefTypeDef <Ivl:5 V06> STORE_LCL_VAR BB02 regmask=[rdi] minReg=1>
<RefPosition #19 @59 RefTypeUse <Ivl:5 V06> LCL_VAR BB02 regmask=[rdi] minReg=1>
<RefPosition #23 @71 RefTypeUse <Ivl:5 V06> LCL_VAR BB02 regmask=[rdi] minReg=1 last>
--- V07
<RefPosition #38 @100 RefTypeDef <Ivl:6 V07> STORE_LCL_VAR BB03 regmask=[rax] minReg=1>
<RefPosition #39 @109 RefTypeUse <Ivl:6 V07> LCL_VAR BB03 regmask=[rax] minReg=1>
<RefPosition #50 @139 RefTypeUse <Ivl:6 V07> LCL_VAR BB04 regmask=[rax] minReg=1 last>
<RefPosition #53 @142 RefTypeDef <Ivl:6 V07> STORE_LCL_VAR BB04 regmask=[rax] minReg=1>
<RefPosition #55 @149 RefTypeUse <Ivl:6 V07> LCL_VAR BB05 regmask=[rax] minReg=1>
<RefPosition #59 @159 RefTypeUse <Ivl:6 V07> LCL_VAR BB05 regmask=[rax] minReg=1 last>
--- V08
<RefPosition #58 @152 RefTypeDef <Ivl:7 V08> STORE_LCL_VAR BB05 regmask=[rdi] minReg=1>
<RefPosition #79 @203 RefTypeUse <Ivl:7 V08> LCL_VAR BB06 regmask=[rdi] minReg=1 regOptional>
<RefPosition #96 @239 RefTypeUse <Ivl:7 V08> LCL_VAR BB06 regmask=[rdi] minReg=1 last>
<RefPosition #102 @242 RefTypeDef <Ivl:7 V08> STORE_LCL_VAR BB06 regmask=[rdi] minReg=1>
<RefPosition #105 @253 RefTypeExpUse <Ivl:7 V08> BB06 regmask=[allInt] minReg=1>
--- V09
<RefPosition #76 @186 RefTypeDef <Ivl:8 V09> STORE_LCL_VAR BB05 regmask=[rax] minReg=1>
<RefPosition #87 @219 RefTypeUse <Ivl:8 V09> LCL_VAR BB06 regmask=[rax] minReg=1 last regOptional>
<RefPosition #91 @222 RefTypeDef <Ivl:8 V09> STORE_LCL_VAR BB06 regmask=[rax] minReg=1>
<RefPosition #107 @259 RefTypeUse <Ivl:8 V09> LCL_VAR BB07 regmask=[rax] minReg=1 last>
--- V10
<RefPosition #84 @210 RefTypeDef <Ivl:9 V10> STORE_LCL_VAR BB06 regmask=[rcx] minReg=1>
<RefPosition #85 @217 RefTypeUse <Ivl:9 V10> LCL_VAR BB06 regmask=[rcx] minReg=1>
<RefPosition #98 @239 RefTypeUse <Ivl:9 V10> LCL_VAR BB06 regmask=[rcx] minReg=1 last fixed delay>
--- V11
<RefPosition #63 @162 RefTypeDef <Ivl:10 V11> STORE_LCL_VAR BB05 regmask=[rax] minReg=1>
<RefPosition #64 @167 RefTypeUse <Ivl:10 V11> LCL_VAR BB05 regmask=[rax] minReg=1>
<RefPosition #69 @175 RefTypeUse <Ivl:10 V11> LCL_VAR BB05 regmask=[rax] minReg=1 last regOptional>
Active intervals at end of allocation:
Active Interval 9: (V10) RefPositions {#84@210 #85@217 #98@239} physReg:NA Preferences=[rcx]
-----------------------
RESOLVING BB BOUNDARIES
-----------------------
Resolution Candidates: {V00 V02 V03 V04 V05 V07 V08 V09}
Has Critical Edges
Prior to Resolution
BB01 use def in out
{V00}
{V02 V03 V04 V05}
{V00}
{V02 V03 V04 V05}
Var=Reg beg of BB01: V00=rdi
Var=Reg end of BB01: V04=rax V05=rsi V03=rdi V02=rcx
BB02 use def in out
{V03 V04}
{V03 V04 V05 V06}
{V02 V03 V04}
{V02 V03 V04 V05}
Var=Reg beg of BB02: V04=rax V03=rdi V02=rcx
Var=Reg end of BB02: V04=rdx V05=rsi V03=rax V02=rcx
BB03 use def in out
{V03 V05}
{V04 V07}
{V02 V03 V05}
{V02 V04 V05 V07}
Var=Reg beg of BB03: V05=rsi V03=rax V02=rcx
Var=Reg end of BB03: V04=rdx V05=rsi V02=rcx V07=rax
BB04 use def in out
{V04 V07}
{V05 V07}
{V02 V04 V07}
{V02 V05 V07}
Var=Reg beg of BB04: V04=rdx V02=rcx V07=rax
Var=Reg end of BB04: V05=rsi V02=rcx V07=rax
BB05 use def in out
{V02 V05 V07}
{V08 V09 V11}
{V02 V05 V07}
{V05 V08 V09}
Var=Reg beg of BB05: V05=rsi V02=rcx V07=rax
Var=Reg end of BB05: V05=rsi V08=rdi V09=rax
BB06 use def in out
{V05 V08 V09}
{V05 V08 V09 V10}
{V05 V08 V09}
{V05 V08 V09}
Var=Reg beg of BB06: V05=rsi V08=rdi V09=rax
Var=Reg end of BB06: V05=rsi V08=rdi V09=rax
BB07 use def in out
{V09}
{}
{V09}
{}
Var=Reg beg of BB07: V09=rax
Var=Reg end of BB07: none
RESOLVING EDGES
fgFindInsertPoint(regionIndex=0, putInTryRegion=true, startBlk=BB01, endBlk=BB00, nearBlk=BB01, jumpBlk=BB00, runRarely=false)
fgNewBBinRegion(jumpKind=6, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=false): inserting after BB07
New Basic Block BB08 [0011] created.
Splitting edge from BB01 to BB03; adding BB08
BB08 bottom: move V03 from rdi to rax (Critical)
fgFindInsertPoint(regionIndex=0, putInTryRegion=true, startBlk=BB01, endBlk=BB00, nearBlk=BB02, jumpBlk=BB00, runRarely=false)
fgNewBBinRegion(jumpKind=6, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=false): inserting after BB07
New Basic Block BB09 [0012] created.
Splitting edge from BB02 to BB02; adding BB09
BB09 bottom: move V03 from rax to rdi (Critical)
BB09 bottom: move V04 from rdx to rax (Critical)
Set V00 argument initial register to rdi
Trees after linear scan register allocator (LSRA)
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB08 ( cond ) i label target LIR
BB02 [0002] 2 BB01,BB09 2 [000..001)-> BB09 ( cond ) i Loop Loop0 label target bwd LIR
BB03 [0004] 2 BB08,BB02 0.50 [000..001)-> BB05 ( cond ) i label target LIR
BB04 [0005] 1 BB03 0.25 [000..001) i LIR
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target LIR
BB06 [0007] 2 BB05,BB06 2 [000..001)-> BB06 ( cond ) i Loop Loop0 label target bwd LIR
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target LIR
BB09 [0012] 1 BB02 1 [???..???)-> BB02 (always) internal target bwd LIR
BB08 [0011] 1 BB01 0.50 [???..???)-> BB03 (always) internal target LIR
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB08 (cond), preds={} succs={BB02,BB08}
N003 ( 5, 12) [000147] ------------ IL_OFFSET void IL offset: 0x0 REG NA
N005 ( 3, 10) [000176] ------------ t176 = CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits] REG rcx $100
/--* t176 long
N007 ( 5, 12) [000001] x---G------- t1 = * IND long REG rcx <l:$140, c:$180>
/--* t1 long
N009 ( 5, 12) [000146] DA--G------- * STORE_LCL_VAR long V02 tmp1 d:2 rcx REG rcx
N011 ( 1, 3) [000150] ------------ IL_OFFSET void IL offset: 0x0 REG NA
N013 ( 1, 1) [000003] ------------ t3 = LCL_VAR int V00 arg0 u:2 rdi (last use) REG rdi $80
/--* t3 int
N015 ( 1, 3) [000149] DA---------- * STORE_LCL_VAR int V04 tmp3 d:2 rax REG rax
N017 ( 1, 3) [000016] ------------ IL_OFFSET void IL offset: 0x0 REG NA
N019 ( 1, 1) [000013] ------------ t13 = LCL_VAR long V02 tmp1 u:2 rcx REG rcx <l:$140, c:$180>
/--* t13 long
N021 ( 1, 3) [000015] DA---------- * STORE_LCL_VAR long V03 tmp2 d:2 rdi REG rdi
N023 ( 1, 3) [000020] ------------ IL_OFFSET void IL offset: 0x0 REG NA
N025 ( 1, 1) [000017] ------------ t17 = LCL_VAR int V04 tmp3 u:2 rax REG rax $80
/--* t17 int
N027 ( 1, 3) [000019] DA---------- * STORE_LCL_VAR int V05 tmp4 d:2 rsi REG rsi
N029 ( 5, 5) [000181] ------------ IL_OFFSET void IL offset: 0x0 REG NA
N031 ( 1, 1) [000178] ------------ t178 = LCL_VAR int V05 tmp4 u:2 rsi REG rsi $80
N033 ( 1, 1) [000179] -c---------- t179 = CNS_INT int 0 REG NA $40
/--* t178 int
+--* t179 int
N035 ( 3, 3) [000177] J------N---- * LE void REG NA $200
N037 ( 5, 5) [000180] ------------ * JTRUE void REG NA
------------ BB02 [000..001) -> BB09 (cond), preds={BB01,BB09} succs={BB03,BB09}
N001 ( 0, 0) [000239] ------------ t239 = PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000227] ------------ t227 = PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
/--* t239 long
+--* t227 long
N005 ( 2, 2) [000224] ------------ t224 = * PHI long
/--* t224 long
N007 ( 2, 3) [000225] DA---------- * STORE_LCL_VAR long V03 tmp2 d:3
N001 ( 0, 0) [000241] ------------ t241 = PHI_ARG int V04 tmp3 u:4
N002 ( 0, 0) [000229] ------------ t229 = PHI_ARG int V04 tmp3 u:2 $80
/--* t241 int
+--* t229 int
N005 ( 2, 2) [000212] ------------ t212 = * PHI int
/--* t212 int
N007 ( 2, 3) [000213] DA---------- * STORE_LCL_VAR int V04 tmp3 d:3
N041 ( 1, 3) [000031] ------------ IL_OFFSET void IL offset: 0x0 REG NA
N043 ( 1, 1) [000028] ------------ t28 = LCL_VAR int V04 tmp3 u:3 rax (last use) REG rax $280
/--* t28 int
N045 ( 1, 3) [000030] DA---------- * STORE_LCL_VAR int V05 tmp4 d:3 rsi REG rsi
N047 ( 1, 3) [000041] ------------ IL_OFFSET void IL offset: 0x0 REG NA
N049 ( 1, 1) [000033] ------------ t33 = LCL_VAR long V03 tmp2 u:3 rdi (last use) REG rdi $141
/--* t33 long
N051 ( 1, 3) [000040] DA---------- * STORE_LCL_VAR long V06 tmp5 d:2 rdi REG rdi
N053 ( 3, 3) [000044] ------------ IL_OFFSET void IL offset: 0x0 REG NA
N055 ( 1, 1) [000034] ------------ t34 = LCL_VAR long V06 tmp5 u:2 rdi REG rdi $141
N057 ( 1, 1) [000036] -c---------- t36 = CNS_INT long 8 REG NA $340
/--* t34 long
+--* t36 long
N059 ( 3, 3) [000037] ------------ t37 = * ADD long REG rax $241
/--* t37 long
N061 ( 3, 3) [000043] DA---------- * STORE_LCL_VAR long V03 tmp2 d:4 rax REG rax
N063 ( 7, 7) [000052] ------------ IL_OFFSET void IL offset: 0x0 REG NA
N065 ( 1, 1) [000032] ------------ t32 = LCL_VAR int V05 tmp4 u:3 rsi REG rsi $280
N067 ( 1, 1) [000042] ------------ t42 = LCL_VAR long V06 tmp5 u:2 rdi (last use) REG rdi $141
/--* t42 long
N069 ( 3, 2) [000045] *c-XG------- t45 = * IND long REG NA <l:$142, c:$302>
/--* t45 long
N071 ( 4, 3) [000046] ---XG------- t46 = * HWIntrinsic long PopCount REG rdi $380
/--* t46 long
N073 ( 5, 5) [000047] ---XG------- t47 = * CAST int <- long REG rdi $201
/--* t32 int
+--* t47 int
N075 ( 7, 7) [000048] ---XG------- t48 = * SUB int REG rdx $202
/--* t48 int
N077 ( 7, 7) [000051] DA-XG------- * STORE_LCL_VAR int V04 tmp3 d:4 rdx REG rdx
N079 ( 5, 5) [000026] ------------ IL_OFFSET void IL offset: 0x0 REG NA
N081 ( 1, 1) [000022] ------------ t22 = LCL_VAR int V04 tmp3 u:4 rdx REG rdx $202
N083 ( 1, 1) [000023] -c---------- t23 = CNS_INT int 0 REG NA $40
/--* t22 int
+--* t23 int
N085 ( 3, 3) [000024] J------N---- * GT void REG NA $203
N087 ( 5, 5) [000025] ------------ * JTRUE void REG NA
------------ BB03 [000..001) -> BB05 (cond), preds={BB08,BB02} succs={BB04,BB05}
N001 ( 0, 0) [000235] ------------ t235 = PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000231] ------------ t231 = PHI_ARG long V03 tmp2 u:2 <l:$140, c:$180>
/--* t235 long
+--* t231 long
N005 ( 2, 2) [000220] ------------ t220 = * PHI long
/--* t220 long
N007 ( 2, 3) [000221] DA---------- * STORE_LCL_VAR long V03 tmp2 d:5
N001 ( 0, 0) [000237] ------------ t237 = PHI_ARG int V05 tmp4 u:3 rsi
N002 ( 0, 0) [000233] ------------ t233 = PHI_ARG int V05 tmp4 u:2 rsi $80
/--* t237 int
+--* t233 int
N005 ( 2, 2) [000216] ------------ t216 = * PHI int
/--* t216 int
N007 ( 2, 3) [000217] DA---------- * STORE_LCL_VAR int V05 tmp4 d:4 rsi
N091 ( 3, 3) [000060] ------------ IL_OFFSET void IL offset: 0x0 REG NA
N093 ( 1, 1) [000054] ------------ t54 = LCL_VAR long V03 tmp2 u:5 rax (last use) REG rax $143
N095 ( 1, 1) [000056] -c---------- t56 = CNS_INT long -8 REG NA $342
/--* t54 long
+--* t56 long
N097 ( 3, 3) [000057] ------------ t57 = * ADD long REG rax $242
/--* t57 long
N099 ( 3, 3) [000059] DA---------- * STORE_LCL_VAR long V07 tmp6 d:2 rax REG rax
N101 ( 6, 5) [000069] ------------ IL_OFFSET void IL offset: 0x0 REG NA
N103 ( 1, 1) [000061] ------------ t61 = LCL_VAR int V05 tmp4 u:4 rsi REG rsi $281
N105 ( 1, 1) [000062] ------------ t62 = LCL_VAR long V07 tmp6 u:2 rax REG rax $242
/--* t62 long
N107 ( 3, 2) [000063] *c-XG------- t63 = * IND int REG NA <l:$282, c:$1c2>
/--* t63 int
N109 ( 4, 3) [000064] ---XG------- t64 = * HWIntrinsic int PopCount REG rdx $3c0
/--* t61 int
+--* t64 int
N111 ( 6, 5) [000065] ---XG------- t65 = * SUB int REG rdi $205
/--* t65 int
N113 ( 6, 5) [000068] DA-XG------- * STORE_LCL_VAR int V04 tmp3 d:5 rdx REG rdx
N115 ( 5, 5) [000074] ------------ IL_OFFSET void IL offset: 0x0 REG NA
N117 ( 1, 1) [000070] ------------ t70 = LCL_VAR int V04 tmp3 u:5 rdx REG rdx $205
N119 ( 1, 1) [000071] -c---------- t71 = CNS_INT int 0 REG NA $40
/--* t70 int
+--* t71 int
N121 ( 3, 3) [000072] J------N---- * LE void REG NA $206
N123 ( 5, 5) [000073] ------------ * JTRUE void REG NA
------------ BB04 [000..001), preds={BB03} succs={BB05}
N127 ( 1, 3) [000137] ------------ IL_OFFSET void IL offset: 0x0 REG NA
N129 ( 1, 1) [000134] ------------ t134 = LCL_VAR int V04 tmp3 u:5 rdx (last use) REG rdx $205
/--* t134 int
N131 ( 1, 3) [000136] DA---------- * STORE_LCL_VAR int V05 tmp4 d:5 rsi REG rsi
N133 ( 3, 3) [000144] ------------ IL_OFFSET void IL offset: 0x0 REG NA
N135 ( 1, 1) [000138] ------------ t138 = LCL_VAR long V07 tmp6 u:2 rax (last use) REG rax $242
N137 ( 1, 1) [000140] -c---------- t140 = CNS_INT long 4 REG NA $343
/--* t138 long
+--* t140 long
N139 ( 3, 3) [000141] ------------ t141 = * ADD long REG rax $243
/--* t141 long
N141 ( 3, 3) [000143] DA---------- * STORE_LCL_VAR long V07 tmp6 d:3 rax REG rax
------------ BB05 [000..001) -> BB07 (cond), preds={BB03,BB04} succs={BB06,BB07}
N001 ( 0, 0) [000247] ------------ t247 = PHI_ARG long V07 tmp6 u:3 rax
N002 ( 0, 0) [000243] ------------ t243 = PHI_ARG long V07 tmp6 u:2 rax $242
/--* t247 long
+--* t243 long
N005 ( 2, 2) [000208] ------------ t208 = * PHI long
/--* t208 long
N007 ( 6, 5) [000209] DA---------- * STORE_LCL_VAR long V07 tmp6 d:4 rax
N001 ( 0, 0) [000249] ------------ t249 = PHI_ARG int V05 tmp4 u:5 rsi
N002 ( 0, 0) [000245] ------------ t245 = PHI_ARG int V05 tmp4 u:4 rsi $281
/--* t249 int
+--* t245 int
N005 ( 2, 2) [000204] ------------ t204 = * PHI int
/--* t204 int
N007 ( 2, 3) [000205] DA---------- * STORE_LCL_VAR int V05 tmp4 d:6 rsi
N145 ( 3, 3) [000080] ------------ IL_OFFSET void IL offset: 0x0 REG NA
N147 ( 1, 1) [000076] ------------ t76 = LCL_VAR long V07 tmp6 u:4 rax REG rax $144
/--* t76 long
N149 ( 3, 2) [000077] *--XG------- t77 = * IND int REG rdi <l:$284, c:$1c5>
/--* t77 int
N151 ( 3, 3) [000079] DA-XG------- * STORE_LCL_VAR int V08 tmp7 d:2 rdi REG rdi
N153 ( 26, 9) [000092] ------------ IL_OFFSET void IL offset: 0x0 REG NA
N155 ( 1, 1) [000081] ------------ t81 = LCL_VAR long V07 tmp6 u:4 rax (last use) REG rax $144
N157 ( 1, 1) [000082] ------------ t82 = LCL_VAR long V02 tmp1 u:2 rcx (last use) REG rcx <l:$140, c:$180>
/--* t81 long
+--* t82 long
N159 ( 3, 3) [000083] ------------ t83 = * SUB long REG rax <l:$244, c:$245>
/--* t83 long
N161 (???,???) [000268] DA---------- * STORE_LCL_VAR long V11 rat0 rax REG rax
N163 ( 1, 1) [000269] ------------ t269 = LCL_VAR long V11 rat0 rax REG rax
N165 ( 1, 1) [000270] -c---------- t270 = CNS_INT int 63 REG NA
/--* t269 long
+--* t270 int
N167 ( 3, 3) [000271] ------------ t271 = * RSH long REG rcx
N169 ( 1, 1) [000272] -c---------- t272 = CNS_INT long 3 REG NA
/--* t271 long
+--* t272 long
N171 ( 5, 5) [000273] ------------ t273 = * AND long REG rcx
N173 ( 1, 1) [000274] ------------ t274 = LCL_VAR long V11 rat0 rax (last use) REG rax
/--* t273 long
+--* t274 long
N175 ( 7, 7) [000275] ------------ t275 = * ADD long REG rcx
N177 ( 1, 1) [000085] -c---------- t85 = CNS_INT long 2 REG NA $343
/--* t275 long
+--* t85 long
N179 ( 9, 9) [000276] ------------ t276 = * RSH long REG rcx
N181 ( 1, 1) [000088] -c---------- t88 = CNS_INT long 5 REG NA $345
/--* t276 long
+--* t88 long
N183 ( 26, 9) [000089] ------------ t89 = * LSH long REG rax <l:$248, c:$249>
/--* t89 long
N185 ( 26, 9) [000091] DA---------- * STORE_LCL_VAR long V09 tmp8 d:2 rax REG rax
N187 ( 5, 5) [000186] ------------ IL_OFFSET void IL offset: 0x0 REG NA
N189 ( 1, 1) [000183] ------------ t183 = LCL_VAR int V05 tmp4 u:6 rsi REG rsi $283
N191 ( 1, 1) [000184] -c---------- t184 = CNS_INT int 0 REG NA $40
/--* t183 int
+--* t184 int
N193 ( 3, 3) [000182] J------N---- * LE void REG NA $208
N195 ( 5, 5) [000185] ------------ * JTRUE void REG NA
------------ BB06 [000..001) -> BB06 (cond), preds={BB05,BB06} succs={BB07,BB06}
N001 ( 0, 0) [000261] ------------ t261 = PHI_ARG long V09 tmp8 u:4 rax
N002 ( 0, 0) [000251] ------------ t251 = PHI_ARG long V09 tmp8 u:2 rax <l:$248, c:$249>
/--* t261 long
+--* t251 long
N005 ( 2, 2) [000200] ------------ t200 = * PHI long
/--* t200 long
N007 ( 2, 3) [000201] DA---------- * STORE_LCL_VAR long V09 tmp8 d:3 rax
N001 ( 0, 0) [000263] ------------ t263 = PHI_ARG int V08 tmp7 u:4 rdi
N002 ( 0, 0) [000253] ------------ t253 = PHI_ARG int V08 tmp7 u:2 rdi <l:$284, c:$1c5>
/--* t263 int
+--* t253 int
N005 ( 2, 2) [000192] ------------ t192 = * PHI int
/--* t192 int
N007 ( 2, 3) [000193] DA---------- * STORE_LCL_VAR int V08 tmp7 d:3 rdi
N001 ( 0, 0) [000265] ------------ t265 = PHI_ARG int V05 tmp4 u:8 rsi
N002 ( 0, 0) [000255] ------------ t255 = PHI_ARG int V05 tmp4 u:6 rsi $283
/--* t265 int
+--* t255 int
N005 ( 2, 2) [000188] ------------ t188 = * PHI int
/--* t188 int
N007 ( 2, 3) [000189] DA---------- * STORE_LCL_VAR int V05 tmp4 d:7 rsi
N199 ( 4, 4) [000106] ------------ IL_OFFSET void IL offset: 0x0 REG NA
N201 ( 1, 1) [000100] ------------ t100 = LCL_VAR int V08 tmp7 u:3 rdi REG rdi $285
/--* t100 int
N203 ( 2, 2) [000101] ------------ t101 = * HWIntrinsic int TrailingZeroCount REG rcx $400
N205 ( 1, 1) [000102] -c---------- t102 = CNS_INT int 1 REG NA $4b
/--* t101 int
+--* t102 int
N207 ( 4, 4) [000103] ------------ t103 = * ADD int REG rcx $20a
/--* t103 int
N209 ( 4, 4) [000105] DA---------- * STORE_LCL_VAR int V10 tmp9 d:2 rcx REG rcx
N211 ( 4, 5) [000113] ------------ IL_OFFSET void IL offset: 0x0 REG NA
N213 ( 1, 1) [000107] ------------ t107 = LCL_VAR long V09 tmp8 u:3 rax (last use) REG rax $145
N215 ( 1, 1) [000108] ------------ t108 = LCL_VAR int V10 tmp9 u:2 rcx REG rcx $20a
/--* t108 int
N217 ( 2, 3) [000109] ---------U-- t109 = * CAST long <- ulong <- uint REG rdx $24a
/--* t107 long
+--* t109 long
N219 ( 4, 5) [000110] ------------ t110 = * ADD long REG rax $24b
/--* t110 long
N221 ( 4, 5) [000112] DA---------- * STORE_LCL_VAR long V09 tmp8 d:4 rax REG rax
N223 ( 3, 3) [000119] ------------ IL_OFFSET void IL offset: 0x0 REG NA
N225 ( 1, 1) [000114] ------------ t114 = LCL_VAR int V05 tmp4 u:7 rsi (last use) REG rsi $286
N227 ( 1, 1) [000115] -c---------- t115 = CNS_INT int -1 REG NA $41
/--* t114 int
+--* t115 int
N229 ( 3, 3) [000116] ------------ t116 = * ADD int REG rsi $20b
/--* t116 int
N231 ( 3, 3) [000118] DA---------- * STORE_LCL_VAR int V05 tmp4 d:8 rsi REG rsi
N233 ( 8, 5) [000127] ------------ IL_OFFSET void IL offset: 0x0 REG NA
N235 ( 1, 1) [000120] ------------ t120 = LCL_VAR int V08 tmp7 u:3 rdi (last use) REG rdi $285
N237 ( 1, 1) [000121] ------------ t121 = LCL_VAR int V10 tmp9 u:2 rcx (last use) REG rcx $20a
/--* t120 int
+--* t121 int
N239 ( 8, 5) [000124] ------------ t124 = * RSZ int REG rdi $20d
/--* t124 int
N241 ( 8, 5) [000126] DA---------- * STORE_LCL_VAR int V08 tmp7 d:4 rdi REG rdi
N243 ( 5, 5) [000098] ------------ IL_OFFSET void IL offset: 0x0 REG NA
N245 ( 1, 1) [000094] ------------ t94 = LCL_VAR int V05 tmp4 u:8 rsi REG rsi $20b
N247 ( 1, 1) [000095] -c---------- t95 = CNS_INT int 0 REG NA $40
/--* t94 int
+--* t95 int
N249 ( 3, 3) [000096] J------N---- * GT void REG NA $20e
N251 ( 5, 5) [000097] ------------ * JTRUE void REG NA
------------ BB07 [000..001) (return), preds={BB05,BB06} succs={}
N001 ( 0, 0) [000259] ------------ t259 = PHI_ARG long V09 tmp8 u:4 rax
N002 ( 0, 0) [000257] ------------ t257 = PHI_ARG long V09 tmp8 u:2 rax <l:$248, c:$249>
/--* t259 long
+--* t257 long
N005 ( 2, 2) [000196] ------------ t196 = * PHI long
/--* t196 long
N007 ( 2, 3) [000197] DA---------- * STORE_LCL_VAR long V09 tmp8 d:5 rax
N255 ( 1, 1) [000129] C----------- t129 = LCL_VAR int V09 tmp8 u:5 rax (last use) REG rax $20f
N257 ( 1, 1) [000131] -c---------- t131 = CNS_INT int -1 REG NA $41
/--* t129 int
+--* t131 int
N259 ( 3, 3) [000132] ------------ t132 = * ADD int REG rax $210
/--* t132 int
N261 ( 4, 4) [000010] ------------ * RETURN int REG NA $1c7
------------ BB09 [???..???) -> BB02 (always), preds={BB02} succs={BB02}
N001 ( 1, 1) [000279] ------------ t279 = LCL_VAR long V03 tmp2 rax REG rax
/--* t279 long
N002 ( 2, 2) [000280] ------------ t280 = * COPY long REG rdi
N001 ( 1, 1) [000281] ------------ t281 = LCL_VAR int V04 tmp3 rdx REG rdx
/--* t281 int
N002 ( 2, 2) [000282] ------------ t282 = * COPY int REG rax
------------ BB08 [???..???) -> BB03 (always), preds={BB01} succs={BB03}
N001 ( 1, 1) [000277] ------------ t277 = LCL_VAR long V03 tmp2 rdi REG rdi
/--* t277 long
N002 ( 2, 2) [000278] ------------ t278 = * COPY long REG rax
-------------------------------------------------------------------------------------------------------------------
Final allocation
--------------------------------+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsi |rdi |r12 |r13 |
--------------------------------+----+----+----+----+----+----+----+----+
0.#0 V0 Parm Alloc rdi | | | | | |V0 a| | |
1.#1 BB1 PredBB0 | | | | | |V0 a| | |
6.#2 C11 Def Alloc rcx | |C11a| | | |V0 a| | |
7.#3 C11 Use * Keep rcx | |C11i| | | |V0 a| | |
8.#4 I12 Def Alloc rcx | |I12a| | | |V0 a| | |
9.#5 I12 Use * Keep rcx | |I12i| | | |V0 a| | |
10.#6 V2 Def Alloc rcx | |V2 a| | | |V0 a| | |
15.#7 V0 Use * Keep rdi | |V2 a| | | |V0 i| | |
16.#8 V4 Def Alloc rax |V4 a|V2 a| | | | | | |
21.#9 V2 Use Keep rcx |V4 a|V2 a| | | | | | |
22.#10 V3 Def Alloc rdi |V4 a|V2 a| | | |V3 a| | |
27.#11 V4 Use Keep rax |V4 a|V2 a| | | |V3 a| | |
28.#12 V5 Def Alloc rsi |V4 a|V2 a| | |V5 a|V3 a| | |
35.#13 V5 Use Keep rsi |V4 a|V2 a| | |V5 a|V3 a| | |
--------------------------------+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsi |rdi |r12 |r13 |
--------------------------------+----+----+----+----+----+----+----+----+
39.#14 BB2 PredBB1 |V4 a|V2 a| | | |V3 a| | |
45.#15 V4 Use * Keep rax |V4 i|V2 a| | | |V3 a| | |
46.#16 V5 Def Alloc rsi | |V2 a| | |V5 a|V3 a| | |
51.#17 V3 Use * Keep rdi | |V2 a| | |V5 a|V3 i| | |
52.#18 V6 Def Alloc rdi | |V2 a| | |V5 a|V6 a| | |
59.#19 V6 Use Keep rdi | |V2 a| | |V5 a|V6 a| | |
60.#20 I13 Def Alloc rax |I13a|V2 a| | |V5 a|V6 a| | |
61.#21 I13 Use * Keep rax |I13i|V2 a| | |V5 a|V6 a| | |
62.#22 V3 Def Alloc rax |V3 a|V2 a| | |V5 a|V6 a| | |
71.#23 V6 Use * Keep rdi |V3 a|V2 a| | |V5 a|V6 i| | |
72.#24 I14 Def Alloc rdi |V3 a|V2 a| | |V5 a|I14a| | |
73.#25 I14 Use * Keep rdi |V3 a|V2 a| | |V5 a|I14i| | |
74.#26 I15 Def Alloc rdi |V3 a|V2 a| | |V5 a|I15a| | |
75.#27 V5 Use Keep rsi |V3 a|V2 a| | |V5 a|I15a| | |
75.#28 I15 Use *D Keep rdi |V3 a|V2 a| | |V5 a|I15i| | |
76.#29 I16 Def Alloc rdx |V3 a|V2 a|I16a| |V5 a| | | |
77.#30 I16 Use * Keep rdx |V3 a|V2 a|I16i| |V5 a| | | |
78.#31 V4 Def Alloc rdx |V3 a|V2 a|V4 a| |V5 a| | | |
85.#32 V4 Use Keep rdx |V3 a|V2 a|V4 a| |V5 a| | | |
|V3 a|V2 a|V4 a| |V5 a| | | |
--------------------------------+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsi |rdi |r12 |r13 |
--------------------------------+----+----+----+----+----+----+----+----+
89.#34 BB3 PredBB2 |V3 a|V2 a| | |V5 a| | | |
97.#35 V3 Use * Keep rax |V3 i|V2 a| | |V5 a| | | |
98.#36 I17 Def Alloc rax |I17a|V2 a| | |V5 a| | | |
99.#37 I17 Use * Keep rax |I17i|V2 a| | |V5 a| | | |
100.#38 V7 Def Alloc rax |V7 a|V2 a| | |V5 a| | | |
109.#39 V7 Use Keep rax |V7 a|V2 a| | |V5 a| | | |
110.#40 I18 Def Alloc rdx |V7 a|V2 a|I18a| |V5 a| | | |
111.#41 V5 Use Keep rsi |V7 a|V2 a|I18a| |V5 a| | | |
111.#42 I18 Use *D Keep rdx |V7 a|V2 a|I18i| |V5 a| | | |
112.#43 I19 Def Alloc rdi |V7 a|V2 a| | |V5 a|I19a| | |
113.#44 I19 Use * Keep rdi |V7 a|V2 a| | |V5 a|I19i| | |
114.#45 V4 Def Alloc rdx |V7 a|V2 a|V4 a| |V5 a| | | |
121.#46 V4 Use Keep rdx |V7 a|V2 a|V4 a| |V5 a| | | |
--------------------------------+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsi |rdi |r12 |r13 |
--------------------------------+----+----+----+----+----+----+----+----+
125.#47 BB4 PredBB3 |V7 a|V2 a|V4 a| | | | | |
131.#48 V4 Use * Keep rdx |V7 a|V2 a|V4 i| | | | | |
132.#49 V5 Def Alloc rsi |V7 a|V2 a| | |V5 a| | | |
139.#50 V7 Use * Keep rax |V7 i|V2 a| | |V5 a| | | |
140.#51 I20 Def Alloc rax |I20a|V2 a| | |V5 a| | | |
141.#52 I20 Use * Keep rax |I20i|V2 a| | |V5 a| | | |
142.#53 V7 Def Alloc rax |V7 a|V2 a| | |V5 a| | | |
--------------------------------+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsi |rdi |r12 |r13 |
--------------------------------+----+----+----+----+----+----+----+----+
143.#54 BB5 PredBB3 |V7 a|V2 a| | |V5 a| | | |
149.#55 V7 Use Keep rax |V7 a|V2 a| | |V5 a| | | |
150.#56 I21 Def Alloc rdi |V7 a|V2 a| | |V5 a|I21a| | |
151.#57 I21 Use * Keep rdi |V7 a|V2 a| | |V5 a|I21i| | |
152.#58 V8 Def Alloc rdi |V7 a|V2 a| | |V5 a|V8 a| | |
159.#59 V7 Use * Keep rax |V7 i|V2 a| | |V5 a|V8 a| | |
159.#60 V2 Use *D Keep rcx | |V2 i| | |V5 a|V8 a| | |
160.#61 I22 Def Alloc rax |I22a| | | |V5 a|V8 a| | |
161.#62 I22 Use * Keep rax |I22i| | | |V5 a|V8 a| | |
162.#63 V11 Def Alloc rax |V11a| | | |V5 a|V8 a| | |
167.#64 V11 Use Keep rax |V11a| | | |V5 a|V8 a| | |
168.#65 I23 Def Alloc rcx |V11a|I23a| | |V5 a|V8 a| | |
171.#66 I23 Use * Keep rcx |V11a|I23i| | |V5 a|V8 a| | |
172.#67 I24 Def Alloc rcx |V11a|I24a| | |V5 a|V8 a| | |
175.#68 I24 Use * Keep rcx |V11a|I24i| | |V5 a|V8 a| | |
175.#69 V11 Use * Keep rax |V11i| | | |V5 a|V8 a| | |
176.#70 I25 Def Alloc rcx | |I25a| | |V5 a|V8 a| | |
179.#71 I25 Use * Keep rcx | |I25i| | |V5 a|V8 a| | |
180.#72 I26 Def Alloc rcx | |I26a| | |V5 a|V8 a| | |
183.#73 I26 Use * Keep rcx | |I26i| | |V5 a|V8 a| | |
184.#74 I27 Def Alloc rax |I27a| | | |V5 a|V8 a| | |
185.#75 I27 Use * Keep rax |I27i| | | |V5 a|V8 a| | |
186.#76 V9 Def Alloc rax |V9 a| | | |V5 a|V8 a| | |
193.#77 V5 Use Keep rsi |V9 a| | | |V5 a|V8 a| | |
--------------------------------+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsi |rdi |r12 |r13 |
--------------------------------+----+----+----+----+----+----+----+----+
197.#78 BB6 PredBB5 |V9 a| | | |V5 a|V8 a| | |
203.#79 V8 Use Keep rdi |V9 a| | | |V5 a|V8 a| | |
204.#80 I28 Def Alloc rcx |V9 a|I28a| | |V5 a|V8 a| | |
207.#81 I28 Use * Keep rcx |V9 a|I28i| | |V5 a|V8 a| | |
208.#82 I29 Def Alloc rcx |V9 a|I29a| | |V5 a|V8 a| | |
209.#83 I29 Use * Keep rcx |V9 a|I29i| | |V5 a|V8 a| | |
210.#84 V10 Def Alloc rcx |V9 a|V10a| | |V5 a|V8 a| | |
217.#85 V10 Use Keep rcx |V9 a|V10a| | |V5 a|V8 a| | |
218.#86 I30 Def Alloc rdx |V9 a|V10a|I30a| |V5 a|V8 a| | |
219.#87 V9 Use * Keep rax |V9 i|V10a|I30a| |V5 a|V8 a| | |
219.#88 I30 Use * Keep rdx | |V10a|I30i| |V5 a|V8 a| | |
220.#89 I31 Def Alloc rax |I31a|V10a| | |V5 a|V8 a| | |
221.#90 I31 Use * Keep rax |I31i|V10a| | |V5 a|V8 a| | |
222.#91 V9 Def Alloc rax |V9 a|V10a| | |V5 a|V8 a| | |
229.#92 V5 Use * Keep rsi |V9 a|V10a| | |V5 i|V8 a| | |
230.#93 I32 Def Alloc rsi |V9 a|V10a| | |I32a|V8 a| | |
231.#94 I32 Use * Keep rsi |V9 a|V10a| | |I32i|V8 a| | |
232.#95 V5 Def Alloc rsi |V9 a|V10a| | |V5 a|V8 a| | |
239.#96 V8 Use * Keep rdi |V9 a|V10a| | |V5 a|V8 i| | |
239.#97 rcx Fixd Keep rcx |V9 a|V10a| | |V5 a| | | |
239.#98 V10 Use *D Keep rcx |V9 a|V10i| | |V5 a| | | |
240.#99 rcx Kill Keep rcx |V9 a| | | |V5 a| | | |
240.#100 I33 Def Alloc rdi |V9 a| | | |V5 a|I33a| | |
241.#101 I33 Use * Keep rdi |V9 a| | | |V5 a|I33i| | |
242.#102 V8 Def Alloc rdi |V9 a| | | |V5 a|V8 a| | |
249.#103 V5 Use Keep rsi |V9 a| | | |V5 a|V8 a| | |
|V9 a| | | |V5 a|V8 a| | |
|V9 a| | | |V5 a|V8 a| | |
--------------------------------+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsi |rdi |r12 |r13 |
--------------------------------+----+----+----+----+----+----+----+----+
253.#106 BB7 PredBB6 |V9 a| | | | | | | |
259.#107 V9 Use * Keep rax |V9 i| | | | | | | |
260.#108 I34 Def Alloc rax |I34a| | | | | | | |
261.#109 rax Fixd Keep rax |I34a| | | | | | | |
261.#110 I34 Use * Keep rax |I34i| | | | | | | |
--------------------------------+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsi |rdi |r12 |r13 |
--------------------------------+----+----+----+----+----+----+----+----+
0.#0 BB9 PredBB2 | | | | | | | | |
261.#0 V3 Move rdi | |V2 a|V4 a| | |V3 a| | |
261.#0 V4 Move rax |V4 a|V2 a| | | |V3 a| | |
--------------------------------+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsi |rdi |r12 |r13 |
--------------------------------+----+----+----+----+----+----+----+----+
0.#0 BB8 PredBB1 |V4 i|V2 i| | | |V3 i| | |
261.#0 V3 Move rax |V3 a|V2 a| | |V5 a| | | |
Recording the maximum number of concurrent spills:
----------
LSRA Stats
----------
BB01 [ 100]: SpillCount = 0, ResolutionMovs = 0, SplitEdges = 1, CopyReg = 0
BB02 [ 200]: SpillCount = 0, ResolutionMovs = 0, SplitEdges = 1, CopyReg = 0
Total Tracked Vars: 11
Total Reg Cand Vars: 11
Total number of Intervals: 34
Total number of RefPositions: 110
Total Spill Count: 0 Weighted: 0
Total CopyReg Count: 0 Weighted: 0
Total ResolutionMov Count: 0 Weighted: 0
Total number of split edges: 2
Total Number of spill temps created: 0
TUPLE STYLE DUMP WITH REGISTER ASSIGNMENTS
Incoming Parameters: V00(rdi)
BB01 [000..011) -> BB08 (cond), preds={} succs={BB02,BB08}
=====
N003. IL_OFFSET IL offset: 0x0 REG NA
N005. rcx* = CNS_INT(h) 0x7fe9bcfc4498 static Fseq[_bits] REG rcx
N007. rcx = IND ; rcx*
* N009. V02(rcx); rcx
N011. IL_OFFSET IL offset: 0x0 REG NA
N013. V00(rdi*)
* N015. V04(rax); rdi*
N017. IL_OFFSET IL offset: 0x0 REG NA
N019. V02(rcx)
* N021. V03(rdi); rcx
N023. IL_OFFSET IL offset: 0x0 REG NA
N025. V04(rax)
* N027. V05(rsi); rax
N029. IL_OFFSET IL offset: 0x0 REG NA
N031. V05(rsi)
N033. CNS_INT 0 REG NA
N035. LE ; rsi
N037. JTRUE
Var=Reg end of BB01: V04=rax V05=rsi V03=rdi V02=rcx
BB02 [000..001) -> BB09 (cond), preds={BB01,BB09} succs={BB03,BB09}
=====
Predecessor for variable locations: BB01
Var=Reg beg of BB02: V04=rax V03=rdi V02=rcx
N041. IL_OFFSET IL offset: 0x0 REG NA
N043. V04(rax*)
* N045. V05(rsi); rax*
N047. IL_OFFSET IL offset: 0x0 REG NA
N049. V03(rdi*)
* N051. V06(rdi); rdi*
N053. IL_OFFSET IL offset: 0x0 REG NA
N055. V06(rdi)
N057. CNS_INT 8 REG NA
N059. rax = ADD ; rdi
* N061. V03(rax); rax
N063. IL_OFFSET IL offset: 0x0 REG NA
N065. V05(rsi)
N067. V06(rdi*)
N069. STK = IND ; rdi*
N071. rdi = HWIntrinsic; STK
N073. rdi = CAST ; rdi
N075. rdx = SUB ; rsi,rdi
* N077. V04(rdx); rdx
N079. IL_OFFSET IL offset: 0x0 REG NA
N081. V04(rdx)
N083. CNS_INT 0 REG NA
N085. GT ; rdx
N087. JTRUE
Var=Reg end of BB02: V04=rdx V05=rsi V03=rax V02=rcx
BB03 [000..001) -> BB05 (cond), preds={BB08,BB02} succs={BB04,BB05}
=====
Predecessor for variable locations: BB02
Var=Reg beg of BB03: V05=rsi V03=rax V02=rcx
N091. IL_OFFSET IL offset: 0x0 REG NA
N093. V03(rax*)
N095. CNS_INT -8 REG NA
N097. rax = ADD ; rax*
* N099. V07(rax); rax
N101. IL_OFFSET IL offset: 0x0 REG NA
N103. V05(rsi)
N105. V07(rax)
N107. STK = IND ; rax
N109. rdx = HWIntrinsic; STK
N111. rdi = SUB ; rsi,rdx
* N113. V04(rdx); rdi
N115. IL_OFFSET IL offset: 0x0 REG NA
N117. V04(rdx)
N119. CNS_INT 0 REG NA
N121. LE ; rdx
N123. JTRUE
Var=Reg end of BB03: V04=rdx V05=rsi V02=rcx V07=rax
BB04 [000..001), preds={BB03} succs={BB05}
=====
Predecessor for variable locations: BB03
Var=Reg beg of BB04: V04=rdx V02=rcx V07=rax
N127. IL_OFFSET IL offset: 0x0 REG NA
N129. V04(rdx*)
* N131. V05(rsi); rdx*
N133. IL_OFFSET IL offset: 0x0 REG NA
N135. V07(rax*)
N137. CNS_INT 4 REG NA
N139. rax = ADD ; rax*
* N141. V07(rax); rax
Var=Reg end of BB04: V05=rsi V02=rcx V07=rax
BB05 [000..001) -> BB07 (cond), preds={BB03,BB04} succs={BB06,BB07}
=====
Predecessor for variable locations: BB03
Var=Reg beg of BB05: V05=rsi V02=rcx V07=rax
N145. IL_OFFSET IL offset: 0x0 REG NA
N147. V07(rax)
N149. rdi = IND ; rax
* N151. V08(rdi); rdi
N153. IL_OFFSET IL offset: 0x0 REG NA
N155. V07(rax*)
N157. V02(rcx*)
N159. rax = SUB ; rax*,rcx*
* N161. V11(rax); rax
N163. V11(rax)
N165. CNS_INT 63 REG NA
N167. rcx = RSH ; rax
N169. CNS_INT 3 REG NA
N171. rcx = AND ; rcx
N173. V11(rax*)
N175. rcx = ADD ; rcx,rax*
N177. CNS_INT 2 REG NA
N179. rcx = RSH ; rcx
N181. CNS_INT 5 REG NA
N183. rax = LSH ; rcx
* N185. V09(rax); rax
N187. IL_OFFSET IL offset: 0x0 REG NA
N189. V05(rsi)
N191. CNS_INT 0 REG NA
N193. LE ; rsi
N195. JTRUE
Var=Reg end of BB05: V05=rsi V08=rdi V09=rax
BB06 [000..001) -> BB06 (cond), preds={BB05,BB06} succs={BB07,BB06}
=====
Predecessor for variable locations: BB05
Var=Reg beg of BB06: V05=rsi V08=rdi V09=rax
N199. IL_OFFSET IL offset: 0x0 REG NA
N201. V08(rdi)
N203. rcx = HWIntrinsic; rdi
N205. CNS_INT 1 REG NA
N207. rcx = ADD ; rcx
* N209. V10(rcx); rcx
N211. IL_OFFSET IL offset: 0x0 REG NA
N213. V09(rax*)
N215. V10(rcx)
N217. rdx = CAST ; rcx
N219. rax = ADD ; rax*,rdx
* N221. V09(rax); rax
N223. IL_OFFSET IL offset: 0x0 REG NA
N225. V05(rsi*)
N227. CNS_INT -1 REG NA
N229. rsi = ADD ; rsi*
* N231. V05(rsi); rsi
N233. IL_OFFSET IL offset: 0x0 REG NA
N235. V08(rdi*)
N237. V10(rcx*)
N239. rdi = RSZ ; rdi*,rcx*
* N241. V08(rdi); rdi
N243. IL_OFFSET IL offset: 0x0 REG NA
N245. V05(rsi)
N247. CNS_INT 0 REG NA
N249. GT ; rsi
N251. JTRUE
Var=Reg end of BB06: V05=rsi V08=rdi V09=rax
BB07 [000..001) (return), preds={BB05,BB06} succs={}
=====
Predecessor for variable locations: BB06
Var=Reg beg of BB07: V09=rax
N255. V09(rax*)
N257. CNS_INT -1 REG NA
N259. rax = ADD ; rax*
N261. RETURN ; rax
Var=Reg end of BB07: none
*************** In genGenerateCode()
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB08 ( cond ) i label target LIR
BB02 [0002] 2 BB01,BB09 2 [000..001)-> BB09 ( cond ) i Loop Loop0 label target bwd LIR
BB03 [0004] 2 BB08,BB02 0.50 [000..001)-> BB05 ( cond ) i label target LIR
BB04 [0005] 1 BB03 0.25 [000..001) i LIR
BB05 [0006] 2 BB03,BB04 0.50 [000..001)-> BB07 ( cond ) i label target LIR
BB06 [0007] 2 BB05,BB06 2 [000..001)-> BB06 ( cond ) i Loop Loop0 label target bwd LIR
BB07 [0009] 2 BB05,BB06 1 [000..001) (return) i label target LIR
BB09 [0012] 1 BB02 1 [???..???)-> BB02 (always) internal target bwd LIR
BB08 [0011] 1 BB01 0.50 [???..???)-> BB03 (always) internal target LIR
--------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
Finalizing stack frame
Recording Var Locations at start of BB01
V00(rdi)
Modified regs: [rax rcx rdx rsi rdi]
Callee-saved registers pushed: 0 []
*************** In lvaAssignFrameOffsets(FINAL_FRAME_LAYOUT)
; Final local variable assignments
;
; V00 arg0 [V00,T07] ( 3, 3 ) int -> rdi
;# V01 OutArgs [V01 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00]
; V02 tmp1 [V02,T08] ( 3, 5 ) long -> rcx
; V03 tmp2 [V03,T05] ( 4, 5.50) long -> registers
; V04 tmp3 [V04,T00] ( 8, 18.50) int -> registers
; V05 tmp4 [V05,T01] ( 10, 13.25) int -> rsi
; V06 tmp5 [V06,T02] ( 3, 12 ) long -> rdi
; V07 tmp6 [V07,T10] ( 6, 2.50) long -> rax
; V08 tmp7 [V08,T03] ( 4, 6.50) int -> rdi
; V09 tmp8 [V09,T06] ( 4, 5.50) long -> rax
; V10 tmp9 [V10,T04] ( 3, 6 ) int -> rcx
; V11 rat0 [V11,T09] ( 3, 3 ) long -> rax
;
; Lcl frame size = 0
=============== Generating BB01 [000..011) -> BB08 (cond), preds={} succs={BB02,BB08} flags=0x00000000.40030020: i label target LIR
BB01 IN (1)={ V00 } + ByrefExposed + GcHeap
OUT(4)={V04 V05 V03 V02} + ByrefExposed + GcHeap
Recording Var Locations at start of BB01
V00(rdi)
Change life 0000000000000000 {} -> 0000000000000080 {V00}
V00 in reg rdi is becoming live [------]
Live regs: 00000000 {} => 00000080 {rdi}
Live regs: (unchanged) 00000080 {rdi}
GC regs: (unchanged) 00000000 {}
Byref regs: (unchanged) 00000000 {}
L_M7892_BB01:
Label: IG02, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
Setting stack level from -572662307 to 0
Scope info: begin block BB01, IL range [000..011)
Scope info: open scopes =
0 (V00 arg0) [000..011)
Added IP mapping: 0x0000 STACK_EMPTY (G_M7892_IG02,ins#0,ofs#0) label
Generating: N003 ( 5, 12) [000147] ------------ IL_OFFSET void IL offset: 0x0 REG NA
Generating: N005 ( 3, 10) [000176] ------------ t176 = CNS_INT(h) long 0x7fe9bcfc4498 static Fseq[_bits] REG rcx $100
IN0001: mov rcx, 0x7FE9BCFC4498
/--* t176 long
Generating: N007 ( 5, 12) [000001] x---G------- t1 = * IND long REG rcx <l:$140, c:$180>
IN0002: mov rcx, qword ptr [rcx]
/--* t1 long
Generating: N009 ( 5, 12) [000146] DA--G------- * STORE_LCL_VAR long V02 tmp1 d:2 rcx REG rcx
V02 in reg rcx is becoming live [000146]
Live regs: 00000080 {rdi} => 00000082 {rcx rdi}
Live vars: {V00} => {V00 V02}
genIPmappingAdd: ignoring duplicate IL offset 0x0
Generating: N011 ( 1, 3) [000150] ------------ IL_OFFSET void IL offset: 0x0 REG NA
Generating: N013 ( 1, 1) [000003] ------------ t3 = LCL_VAR int V00 arg0 u:2 rdi (last use) REG rdi $80
/--* t3 int
Generating: N015 ( 1, 3) [000149] DA---------- * STORE_LCL_VAR int V04 tmp3 d:2 rax REG rax
V00 in reg rdi is becoming dead [000003]
Live regs: 00000082 {rcx rdi} => 00000002 {rcx}
Live vars: {V00 V02} => {V02}
IN0003: mov eax, edi
V04 in reg rax is becoming live [000149]
Live regs: 00000002 {rcx} => 00000003 {rax rcx}
Live vars: {V02} => {V02 V04}
genIPmappingAdd: ignoring duplicate IL offset 0x0
Generating: N017 ( 1, 3) [000016] ------------ IL_OFFSET void IL offset: 0x0 REG NA
Generating: N019 ( 1, 1) [000013] ------------ t13 = LCL_VAR long V02 tmp1 u:2 rcx REG rcx <l:$140, c:$180>
/--* t13 long
Generating: N021 ( 1, 3) [000015] DA---------- * STORE_LCL_VAR long V03 tmp2 d:2 rdi REG rdi
IN0004: mov rdi, rcx
V03 in reg rdi is becoming live [000015]
Live regs: 00000003 {rax rcx} => 00000083 {rax rcx rdi}
Live vars: {V02 V04} => {V02 V03 V04}
genIPmappingAdd: ignoring duplicate IL offset 0x0
Generating: N023 ( 1, 3) [000020] ------------ IL_OFFSET void IL offset: 0x0 REG NA
Generating: N025 ( 1, 1) [000017] ------------ t17 = LCL_VAR int V04 tmp3 u:2 rax REG rax $80
/--* t17 int
Generating: N027 ( 1, 3) [000019] DA---------- * STORE_LCL_VAR int V05 tmp4 d:2 rsi REG rsi
IN0005: mov esi, eax
V05 in reg rsi is becoming live [000019]
Live regs: 00000083 {rax rcx rdi} => 000000C3 {rax rcx rsi rdi}
Live vars: {V02 V03 V04} => {V02 V03 V04 V05}
genIPmappingAdd: ignoring duplicate IL offset 0x0
Generating: N029 ( 5, 5) [000181] ------------ IL_OFFSET void IL offset: 0x0 REG NA
Generating: N031 ( 1, 1) [000178] ------------ t178 = LCL_VAR int V05 tmp4 u:2 rsi REG rsi $80
Generating: N033 ( 1, 1) [000179] -c---------- t179 = CNS_INT int 0 REG NA $40
/--* t178 int
+--* t179 int
Generating: N035 ( 3, 3) [000177] J------N---- * LE void REG NA $200
IN0006: test esi, esi
Generating: N037 ( 5, 5) [000180] ------------ * JTRUE void REG NA
IN0007: jle L_M7892_BB08
Scope info: end block BB01, IL range [000..011)
Scope info: ending scope, LVnum=0 [000..011)
Scope info: open scopes =
<none>
=============== Generating BB02 [000..001) -> BB09 (cond), preds={BB01,BB09} succs={BB03,BB09} flags=0x00000000.42036020: i Loop Loop0 label target bwd LIR
BB02 IN (3)={V04 V03 V02} + ByrefExposed + GcHeap
OUT(4)={V04 V05 V03 V02} + ByrefExposed + GcHeap
Recording Var Locations at start of BB02
V04(rax) V03(rdi) V02(rcx)
Change life 0000000000000123 {V02 V03 V04 V05} -> 0000000000000121 {V02 V03 V04}
V05 in reg rsi is becoming dead [------]
Live regs: (unchanged) 00000000 {}
Live regs: 00000000 {} => 00000083 {rax rcx rdi}
GC regs: (unchanged) 00000000 {}
Byref regs: (unchanged) 00000000 {}
L_M7892_BB02:
G_M7892_IG02: ; offs=000000H, funclet=00
Label: IG03, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
Scope info: begin block BB02, IL range [000..001)
Scope info: open scopes =
<none>
genIPmappingAdd: ignoring duplicate IL offset 0x0
Generating: N041 ( 1, 3) [000031] ------------ IL_OFFSET void IL offset: 0x0 REG NA
Generating: N043 ( 1, 1) [000028] ------------ t28 = LCL_VAR int V04 tmp3 u:3 rax (last use) REG rax $280
/--* t28 int
Generating: N045 ( 1, 3) [000030] DA---------- * STORE_LCL_VAR int V05 tmp4 d:3 rsi REG rsi
V04 in reg rax is becoming dead [000028]
Live regs: 00000083 {rax rcx rdi} => 00000082 {rcx rdi}
Live vars: {V02 V03 V04} => {V02 V03}
IN0008: mov esi, eax
V05 in reg rsi is becoming live [000030]
Live regs: 00000082 {rcx rdi} => 000000C2 {rcx rsi rdi}
Live vars: {V02 V03} => {V02 V03 V05}
genIPmappingAdd: ignoring duplicate IL offset 0x0
Generating: N047 ( 1, 3) [000041] ------------ IL_OFFSET void IL offset: 0x0 REG NA
Generating: N049 ( 1, 1) [000033] ------------ t33 = LCL_VAR long V03 tmp2 u:3 rdi (last use) REG rdi $141
/--* t33 long
Generating: N051 ( 1, 3) [000040] DA---------- * STORE_LCL_VAR long V06 tmp5 d:2 rdi REG rdi
V03 in reg rdi is becoming dead [000033]
Live regs: 000000C2 {rcx rsi rdi} => 00000042 {rcx rsi}
Live vars: {V02 V03 V05} => {V02 V05}
V06 in reg rdi is becoming live [000040]
Live regs: 00000042 {rcx rsi} => 000000C2 {rcx rsi rdi}
Live vars: {V02 V05} => {V02 V05 V06}
genIPmappingAdd: ignoring duplicate IL offset 0x0
Generating: N053 ( 3, 3) [000044] ------------ IL_OFFSET void IL offset: 0x0 REG NA
Generating: N055 ( 1, 1) [000034] ------------ t34 = LCL_VAR long V06 tmp5 u:2 rdi REG rdi $141
Generating: N057 ( 1, 1) [000036] -c---------- t36 = CNS_INT long 8 REG NA $340
/--* t34 long
+--* t36 long
Generating: N059 ( 3, 3) [000037] ------------ t37 = * ADD long REG rax $241
IN0009: lea rax, [rdi+8]
/--* t37 long
Generating: N061 ( 3, 3) [000043] DA---------- * STORE_LCL_VAR long V03 tmp2 d:4 rax REG rax
V03 in reg rax is becoming live [000043]
Live regs: 000000C2 {rcx rsi rdi} => 000000C3 {rax rcx rsi rdi}
Live vars: {V02 V05 V06} => {V02 V03 V05 V06}
genIPmappingAdd: ignoring duplicate IL offset 0x0
Generating: N063 ( 7, 7) [000052] ------------ IL_OFFSET void IL offset: 0x0 REG NA
Generating: N065 ( 1, 1) [000032] ------------ t32 = LCL_VAR int V05 tmp4 u:3 rsi REG rsi $280
Generating: N067 ( 1, 1) [000042] ------------ t42 = LCL_VAR long V06 tmp5 u:2 rdi (last use) REG rdi $141
/--* t42 long
Generating: N069 ( 3, 2) [000045] *c-XG------- t45 = * IND long REG NA <l:$142, c:$302>
/--* t45 long
Generating: N071 ( 4, 3) [000046] ---XG------- t46 = * HWIntrinsic long PopCount REG rdi $380
V06 in reg rdi is becoming dead [000042]
Live regs: 000000C3 {rax rcx rsi rdi} => 00000043 {rax rcx rsi}
Live vars: {V02 V03 V05 V06} => {V02 V03 V05}
IN000a: popcnt rdi, qword ptr [rdi]
/--* t46 long
Generating: N073 ( 5, 5) [000047] ---XG------- t47 = * CAST int <- long REG rdi $201
/--* t32 int
+--* t47 int
Generating: N075 ( 7, 7) [000048] ---XG------- t48 = * SUB int REG rdx $202
IN000b: mov edx, esi
IN000c: sub edx, edi
/--* t48 int
Generating: N077 ( 7, 7) [000051] DA-XG------- * STORE_LCL_VAR int V04 tmp3 d:4 rdx REG rdx
V04 in reg rdx is becoming live [000051]
Live regs: 00000043 {rax rcx rsi} => 00000047 {rax rcx rdx rsi}
Live vars: {V02 V03 V05} => {V02 V03 V04 V05}
genIPmappingAdd: ignoring duplicate IL offset 0x0
Generating: N079 ( 5, 5) [000026] ------------ IL_OFFSET void IL offset: 0x0 REG NA
Generating: N081 ( 1, 1) [000022] ------------ t22 = LCL_VAR int V04 tmp3 u:4 rdx REG rdx $202
Generating: N083 ( 1, 1) [000023] -c---------- t23 = CNS_INT int 0 REG NA $40
/--* t22 int
+--* t23 int
Generating: N085 ( 3, 3) [000024] J------N---- * GT void REG NA $203
IN000d: test edx, edx
Generating: N087 ( 5, 5) [000025] ------------ * JTRUE void REG NA
IN000e: jg L_M7892_BB09
Scope info: end block BB02, IL range [000..001)
Scope info: open scopes =
<none>
=============== Generating BB03 [000..001) -> BB05 (cond), preds={BB08,BB02} succs={BB04,BB05} flags=0x00000000.40030020: i label target LIR
BB03 IN (3)={ V05 V03 V02 } + ByrefExposed + GcHeap
OUT(4)={V04 V05 V02 V07} + ByrefExposed + GcHeap
Recording Var Locations at start of BB03
V05(rsi) V03(rax) V02(rcx)
Change life 0000000000000123 {V02 V03 V04 V05} -> 0000000000000122 {V02 V03 V05}
V04 in reg rdx is becoming dead [------]
Live regs: (unchanged) 00000000 {}
Live regs: 00000000 {} => 00000043 {rax rcx rsi}
GC regs: (unchanged) 00000000 {}
Byref regs: (unchanged) 00000000 {}
L_M7892_BB03:
G_M7892_IG03: ; offs=00001CH, funclet=00
Label: IG04, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
Scope info: begin block BB03, IL range [000..001)
Scope info: open scopes =
<none>
genIPmappingAdd: ignoring duplicate IL offset 0x0
Generating: N091 ( 3, 3) [000060] ------------ IL_OFFSET void IL offset: 0x0 REG NA
Generating: N093 ( 1, 1) [000054] ------------ t54 = LCL_VAR long V03 tmp2 u:5 rax (last use) REG rax $143
Generating: N095 ( 1, 1) [000056] -c---------- t56 = CNS_INT long -8 REG NA $342
/--* t54 long
+--* t56 long
Generating: N097 ( 3, 3) [000057] ------------ t57 = * ADD long REG rax $242
V03 in reg rax is becoming dead [000054]
Live regs: 00000043 {rax rcx rsi} => 00000042 {rcx rsi}
Live vars: {V02 V03 V05} => {V02 V05}
IN000f: add rax, -8
/--* t57 long
Generating: N099 ( 3, 3) [000059] DA---------- * STORE_LCL_VAR long V07 tmp6 d:2 rax REG rax
V07 in reg rax is becoming live [000059]
Live regs: 00000042 {rcx rsi} => 00000043 {rax rcx rsi}
Live vars: {V02 V05} => {V02 V05 V07}
genIPmappingAdd: ignoring duplicate IL offset 0x0
Generating: N101 ( 6, 5) [000069] ------------ IL_OFFSET void IL offset: 0x0 REG NA
Generating: N103 ( 1, 1) [000061] ------------ t61 = LCL_VAR int V05 tmp4 u:4 rsi REG rsi $281
Generating: N105 ( 1, 1) [000062] ------------ t62 = LCL_VAR long V07 tmp6 u:2 rax REG rax $242
/--* t62 long
Generating: N107 ( 3, 2) [000063] *c-XG------- t63 = * IND int REG NA <l:$282, c:$1c2>
/--* t63 int
Generating: N109 ( 4, 3) [000064] ---XG------- t64 = * HWIntrinsic int PopCount REG rdx $3c0
IN0010: popcnt edx, dword ptr [rax]
/--* t61 int
+--* t64 int
Generating: N111 ( 6, 5) [000065] ---XG------- t65 = * SUB int REG rdi $205
IN0011: mov edi, esi
IN0012: sub edi, edx
/--* t65 int
Generating: N113 ( 6, 5) [000068] DA-XG------- * STORE_LCL_VAR int V04 tmp3 d:5 rdx REG rdx
IN0013: mov edx, edi
V04 in reg rdx is becoming live [000068]
Live regs: 00000043 {rax rcx rsi} => 00000047 {rax rcx rdx rsi}
Live vars: {V02 V05 V07} => {V02 V04 V05 V07}
genIPmappingAdd: ignoring duplicate IL offset 0x0
Generating: N115 ( 5, 5) [000074] ------------ IL_OFFSET void IL offset: 0x0 REG NA
Generating: N117 ( 1, 1) [000070] ------------ t70 = LCL_VAR int V04 tmp3 u:5 rdx REG rdx $205
Generating: N119 ( 1, 1) [000071] -c---------- t71 = CNS_INT int 0 REG NA $40
/--* t70 int
+--* t71 int
Generating: N121 ( 3, 3) [000072] J------N---- * LE void REG NA $206
IN0014: test edx, edx
Generating: N123 ( 5, 5) [000073] ------------ * JTRUE void REG NA
IN0015: jle L_M7892_BB05
Scope info: end block BB03, IL range [000..001)
Scope info: open scopes =
<none>
=============== Generating BB04 [000..001), preds={BB03} succs={BB05} flags=0x00000000.40000020: i LIR
BB04 IN (3)={V04 V02 V07} + ByrefExposed + GcHeap
OUT(3)={ V05 V02 V07} + ByrefExposed + GcHeap
Recording Var Locations at start of BB04
V04(rdx) V02(rcx) V07(rax)
Change life 0000000000000503 {V02 V04 V05 V07} -> 0000000000000501 {V02 V04 V07}
V05 in reg rsi is becoming dead [------]
Live regs: (unchanged) 00000000 {}
Live regs: 00000000 {} => 00000007 {rax rcx rdx}
GC regs: (unchanged) 00000000 {}
Byref regs: (unchanged) 00000000 {}
L_M7892_BB04:
Scope info: begin block BB04, IL range [000..001)
Scope info: open scopes =
<none>
genIPmappingAdd: ignoring duplicate IL offset 0x0
Generating: N127 ( 1, 3) [000137] ------------ IL_OFFSET void IL offset: 0x0 REG NA
Generating: N129 ( 1, 1) [000134] ------------ t134 = LCL_VAR int V04 tmp3 u:5 rdx (last use) REG rdx $205
/--* t134 int
Generating: N131 ( 1, 3) [000136] DA---------- * STORE_LCL_VAR int V05 tmp4 d:5 rsi REG rsi
V04 in reg rdx is becoming dead [000134]
Live regs: 00000007 {rax rcx rdx} => 00000003 {rax rcx}
Live vars: {V02 V04 V07} => {V02 V07}
IN0016: mov esi, edx
V05 in reg rsi is becoming live [000136]
Live regs: 00000003 {rax rcx} => 00000043 {rax rcx rsi}
Live vars: {V02 V07} => {V02 V05 V07}
genIPmappingAdd: ignoring duplicate IL offset 0x0
Generating: N133 ( 3, 3) [000144] ------------ IL_OFFSET void IL offset: 0x0 REG NA
Generating: N135 ( 1, 1) [000138] ------------ t138 = LCL_VAR long V07 tmp6 u:2 rax (last use) REG rax $242
Generating: N137 ( 1, 1) [000140] -c---------- t140 = CNS_INT long 4 REG NA $343
/--* t138 long
+--* t140 long
Generating: N139 ( 3, 3) [000141] ------------ t141 = * ADD long REG rax $243
V07 in reg rax is becoming dead [000138]
Live regs: 00000043 {rax rcx rsi} => 00000042 {rcx rsi}
Live vars: {V02 V05 V07} => {V02 V05}
IN0017: add rax, 4
/--* t141 long
Generating: N141 ( 3, 3) [000143] DA---------- * STORE_LCL_VAR long V07 tmp6 d:3 rax REG rax
V07 in reg rax is becoming live [000143]
Live regs: 00000042 {rcx rsi} => 00000043 {rax rcx rsi}
Live vars: {V02 V05} => {V02 V05 V07}
Scope info: end block BB04, IL range [000..001)
Scope info: open scopes =
<none>
=============== Generating BB05 [000..001) -> BB07 (cond), preds={BB03,BB04} succs={BB06,BB07} flags=0x00000000.40030020: i label target LIR
BB05 IN (3)={V05 V02 V07} + ByrefExposed + GcHeap
OUT(3)={V05 V08 V09 }
Recording Var Locations at start of BB05
V05(rsi) V02(rcx) V07(rax)
Liveness not changing: 0000000000000502 {V02 V05 V07}
Live regs: 00000000 {} => 00000043 {rax rcx rsi}
GC regs: (unchanged) 00000000 {}
Byref regs: (unchanged) 00000000 {}
L_M7892_BB05:
G_M7892_IG04: ; offs=000033H, funclet=00
Label: IG05, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
Scope info: begin block BB05, IL range [000..001)
Scope info: open scopes =
<none>
genIPmappingAdd: ignoring duplicate IL offset 0x0
Generating: N145 ( 3, 3) [000080] ------------ IL_OFFSET void IL offset: 0x0 REG NA
Generating: N147 ( 1, 1) [000076] ------------ t76 = LCL_VAR long V07 tmp6 u:4 rax REG rax $144
/--* t76 long
Generating: N149 ( 3, 2) [000077] *--XG------- t77 = * IND int REG rdi <l:$284, c:$1c5>
IN0018: mov edi, dword ptr [rax]
/--* t77 int
Generating: N151 ( 3, 3) [000079] DA-XG------- * STORE_LCL_VAR int V08 tmp7 d:2 rdi REG rdi
V08 in reg rdi is becoming live [000079]
Live regs: 00000043 {rax rcx rsi} => 000000C3 {rax rcx rsi rdi}
Live vars: {V02 V05 V07} => {V02 V05 V07 V08}
genIPmappingAdd: ignoring duplicate IL offset 0x0
Generating: N153 ( 26, 9) [000092] ------------ IL_OFFSET void IL offset: 0x0 REG NA
Generating: N155 ( 1, 1) [000081] ------------ t81 = LCL_VAR long V07 tmp6 u:4 rax (last use) REG rax $144
Generating: N157 ( 1, 1) [000082] ------------ t82 = LCL_VAR long V02 tmp1 u:2 rcx (last use) REG rcx <l:$140, c:$180>
/--* t81 long
+--* t82 long
Generating: N159 ( 3, 3) [000083] ------------ t83 = * SUB long REG rax <l:$244, c:$245>
V07 in reg rax is becoming dead [000081]
Live regs: 000000C3 {rax rcx rsi rdi} => 000000C2 {rcx rsi rdi}
Live vars: {V02 V05 V07 V08} => {V02 V05 V08}
V02 in reg rcx is becoming dead [000082]
Live regs: 000000C2 {rcx rsi rdi} => 000000C0 {rsi rdi}
Live vars: {V02 V05 V08} => {V05 V08}
IN0019: sub rax, rcx
/--* t83 long
Generating: N161 (???,???) [000268] DA---------- * STORE_LCL_VAR long V11 rat0 rax REG rax
V11 in reg rax is becoming live [000268]
Live regs: 000000C0 {rsi rdi} => 000000C1 {rax rsi rdi}
Live vars: {V05 V08} => {V05 V08 V11}
Generating: N163 ( 1, 1) [000269] ------------ t269 = LCL_VAR long V11 rat0 rax REG rax
Generating: N165 ( 1, 1) [000270] -c---------- t270 = CNS_INT int 63 REG NA
/--* t269 long
+--* t270 int
Generating: N167 ( 3, 3) [000271] ------------ t271 = * RSH long REG rcx
IN001a: mov rcx, rax
IN001b: sar rcx, 63
Generating: N169 ( 1, 1) [000272] -c---------- t272 = CNS_INT long 3 REG NA
/--* t271 long
+--* t272 long
Generating: N171 ( 5, 5) [000273] ------------ t273 = * AND long REG rcx
IN001c: and rcx, 3
Generating: N173 ( 1, 1) [000274] ------------ t274 = LCL_VAR long V11 rat0 rax (last use) REG rax
/--* t273 long
+--* t274 long
Generating: N175 ( 7, 7) [000275] ------------ t275 = * ADD long REG rcx
V11 in reg rax is becoming dead [000274]
Live regs: 000000C1 {rax rsi rdi} => 000000C0 {rsi rdi}
Live vars: {V05 V08 V11} => {V05 V08}
IN001d: add rcx, rax
Generating: N177 ( 1, 1) [000085] -c---------- t85 = CNS_INT long 2 REG NA $343
/--* t275 long
+--* t85 long
Generating: N179 ( 9, 9) [000276] ------------ t276 = * RSH long REG rcx
IN001e: sar rcx, 2
Generating: N181 ( 1, 1) [000088] -c---------- t88 = CNS_INT long 5 REG NA $345
/--* t276 long
+--* t88 long
Generating: N183 ( 26, 9) [000089] ------------ t89 = * LSH long REG rax <l:$248, c:$249>
IN001f: mov rax, rcx
IN0020: shl rax, 5
/--* t89 long
Generating: N185 ( 26, 9) [000091] DA---------- * STORE_LCL_VAR long V09 tmp8 d:2 rax REG rax
V09 in reg rax is becoming live [000091]
Live regs: 000000C0 {rsi rdi} => 000000C1 {rax rsi rdi}
Live vars: {V05 V08} => {V05 V08 V09}
genIPmappingAdd: ignoring duplicate IL offset 0x0
Generating: N187 ( 5, 5) [000186] ------------ IL_OFFSET void IL offset: 0x0 REG NA
Generating: N189 ( 1, 1) [000183] ------------ t183 = LCL_VAR int V05 tmp4 u:6 rsi REG rsi $283
Generating: N191 ( 1, 1) [000184] -c---------- t184 = CNS_INT int 0 REG NA $40
/--* t183 int
+--* t184 int
Generating: N193 ( 3, 3) [000182] J------N---- * LE void REG NA $208
IN0021: test esi, esi
Generating: N195 ( 5, 5) [000185] ------------ * JTRUE void REG NA
IN0022: jle L_M7892_BB07
Scope info: end block BB05, IL range [000..001)
Scope info: open scopes =
<none>
=============== Generating BB06 [000..001) -> BB06 (cond), preds={BB05,BB06} succs={BB07,BB06} flags=0x00000000.42036020: i Loop Loop0 label target bwd LIR
BB06 IN (3)={V05 V08 V09}
OUT(3)={V05 V08 V09}
Recording Var Locations at start of BB06
V05(rsi) V08(rdi) V09(rax)
Liveness not changing: 000000000000004A {V05 V08 V09}
Live regs: 00000000 {} => 000000C1 {rax rsi rdi}
GC regs: (unchanged) 00000000 {}
Byref regs: (unchanged) 00000000 {}
L_M7892_BB06:
G_M7892_IG05: ; offs=00004FH, funclet=00
Label: IG06, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
Scope info: begin block BB06, IL range [000..001)
Scope info: open scopes =
<none>
genIPmappingAdd: ignoring duplicate IL offset 0x0
Generating: N199 ( 4, 4) [000106] ------------ IL_OFFSET void IL offset: 0x0 REG NA
Generating: N201 ( 1, 1) [000100] ------------ t100 = LCL_VAR int V08 tmp7 u:3 rdi REG rdi $285
/--* t100 int
Generating: N203 ( 2, 2) [000101] ------------ t101 = * HWIntrinsic int TrailingZeroCount REG rcx $400
IN0023: tzcnt ecx, edi
Generating: N205 ( 1, 1) [000102] -c---------- t102 = CNS_INT int 1 REG NA $4b
/--* t101 int
+--* t102 int
Generating: N207 ( 4, 4) [000103] ------------ t103 = * ADD int REG rcx $20a
IN0024: inc ecx
/--* t103 int
Generating: N209 ( 4, 4) [000105] DA---------- * STORE_LCL_VAR int V10 tmp9 d:2 rcx REG rcx
V10 in reg rcx is becoming live [000105]
Live regs: 000000C1 {rax rsi rdi} => 000000C3 {rax rcx rsi rdi}
Live vars: {V05 V08 V09} => {V05 V08 V09 V10}
genIPmappingAdd: ignoring duplicate IL offset 0x0
Generating: N211 ( 4, 5) [000113] ------------ IL_OFFSET void IL offset: 0x0 REG NA
Generating: N213 ( 1, 1) [000107] ------------ t107 = LCL_VAR long V09 tmp8 u:3 rax (last use) REG rax $145
Generating: N215 ( 1, 1) [000108] ------------ t108 = LCL_VAR int V10 tmp9 u:2 rcx REG rcx $20a
/--* t108 int
Generating: N217 ( 2, 3) [000109] ---------U-- t109 = * CAST long <- ulong <- uint REG rdx $24a
IN0025: mov edx, ecx
/--* t107 long
+--* t109 long
Generating: N219 ( 4, 5) [000110] ------------ t110 = * ADD long REG rax $24b
V09 in reg rax is becoming dead [000107]
Live regs: 000000C3 {rax rcx rsi rdi} => 000000C2 {rcx rsi rdi}
Live vars: {V05 V08 V09 V10} => {V05 V08 V10}
IN0026: add rax, rdx
/--* t110 long
Generating: N221 ( 4, 5) [000112] DA---------- * STORE_LCL_VAR long V09 tmp8 d:4 rax REG rax
V09 in reg rax is becoming live [000112]
Live regs: 000000C2 {rcx rsi rdi} => 000000C3 {rax rcx rsi rdi}
Live vars: {V05 V08 V10} => {V05 V08 V09 V10}
genIPmappingAdd: ignoring duplicate IL offset 0x0
Generating: N223 ( 3, 3) [000119] ------------ IL_OFFSET void IL offset: 0x0 REG NA
Generating: N225 ( 1, 1) [000114] ------------ t114 = LCL_VAR int V05 tmp4 u:7 rsi (last use) REG rsi $286
Generating: N227 ( 1, 1) [000115] -c---------- t115 = CNS_INT int -1 REG NA $41
/--* t114 int
+--* t115 int
Generating: N229 ( 3, 3) [000116] ------------ t116 = * ADD int REG rsi $20b
V05 in reg rsi is becoming dead [000114]
Live regs: 000000C3 {rax rcx rsi rdi} => 00000083 {rax rcx rdi}
Live vars: {V05 V08 V09 V10} => {V08 V09 V10}
IN0027: dec esi
/--* t116 int
Generating: N231 ( 3, 3) [000118] DA---------- * STORE_LCL_VAR int V05 tmp4 d:8 rsi REG rsi
V05 in reg rsi is becoming live [000118]
Live regs: 00000083 {rax rcx rdi} => 000000C3 {rax rcx rsi rdi}
Live vars: {V08 V09 V10} => {V05 V08 V09 V10}
genIPmappingAdd: ignoring duplicate IL offset 0x0
Generating: N233 ( 8, 5) [000127] ------------ IL_OFFSET void IL offset: 0x0 REG NA
Generating: N235 ( 1, 1) [000120] ------------ t120 = LCL_VAR int V08 tmp7 u:3 rdi (last use) REG rdi $285
Generating: N237 ( 1, 1) [000121] ------------ t121 = LCL_VAR int V10 tmp9 u:2 rcx (last use) REG rcx $20a
/--* t120 int
+--* t121 int
Generating: N239 ( 8, 5) [000124] ------------ t124 = * RSZ int REG rdi $20d
V08 in reg rdi is becoming dead [000120]
Live regs: 000000C3 {rax rcx rsi rdi} => 00000043 {rax rcx rsi}
Live vars: {V05 V08 V09 V10} => {V05 V09 V10}
V10 in reg rcx is becoming dead [000121]
Live regs: 00000043 {rax rcx rsi} => 00000041 {rax rsi}
Live vars: {V05 V09 V10} => {V05 V09}
IN0028: shr edi, cl
/--* t124 int
Generating: N241 ( 8, 5) [000126] DA---------- * STORE_LCL_VAR int V08 tmp7 d:4 rdi REG rdi
V08 in reg rdi is becoming live [000126]
Live regs: 00000041 {rax rsi} => 000000C1 {rax rsi rdi}
Live vars: {V05 V09} => {V05 V08 V09}
genIPmappingAdd: ignoring duplicate IL offset 0x0
Generating: N243 ( 5, 5) [000098] ------------ IL_OFFSET void IL offset: 0x0 REG NA
Generating: N245 ( 1, 1) [000094] ------------ t94 = LCL_VAR int V05 tmp4 u:8 rsi REG rsi $20b
Generating: N247 ( 1, 1) [000095] -c---------- t95 = CNS_INT int 0 REG NA $40
/--* t94 int
+--* t95 int
Generating: N249 ( 3, 3) [000096] J------N---- * GT void REG NA $20e
IN0029: test esi, esi
Generating: N251 ( 5, 5) [000097] ------------ * JTRUE void REG NA
IN002a: jg SHORT L_M7892_BB06
Scope info: end block BB06, IL range [000..001)
Scope info: open scopes =
<none>
=============== Generating BB07 [000..001) (return), preds={BB05,BB06} succs={} flags=0x00000000.40030020: i label target LIR
BB07 IN (1)={V09}
OUT(0)={ }
Recording Var Locations at start of BB07
V09(rax)
Change life 000000000000004A {V05 V08 V09} -> 0000000000000040 {V09}
V05 in reg rsi is becoming dead [------]
Live regs: (unchanged) 00000000 {}
V08 in reg rdi is becoming dead [------]
Live regs: (unchanged) 00000000 {}
Live regs: 00000000 {} => 00000001 {rax}
GC regs: (unchanged) 00000000 {}
Byref regs: (unchanged) 00000000 {}
L_M7892_BB07:
G_M7892_IG06: ; offs=000075H, funclet=00
Label: IG07, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
Scope info: begin block BB07, IL range [000..001)
Scope info: open scopes =
<none>
Generating: N255 ( 1, 1) [000129] C----------- t129 = LCL_VAR int V09 tmp8 u:5 rax (last use) REG rax $20f
Generating: N257 ( 1, 1) [000131] -c---------- t131 = CNS_INT int -1 REG NA $41
/--* t129 int
+--* t131 int
Generating: N259 ( 3, 3) [000132] ------------ t132 = * ADD int REG rax $210
V09 in reg rax is becoming dead [000129]
Live regs: 00000001 {rax} => 00000000 {}
Live vars: {V09} => {}
IN002b: dec eax
/--* t132 int
Generating: N261 ( 4, 4) [000010] ------------ * RETURN int REG NA $1c7
Scope info: end block BB07, IL range [000..001)
Scope info: open scopes =
<none>
Added IP mapping: EPILOG STACK_EMPTY (G_M7892_IG07,ins#1,ofs#2) label
Reserving epilog IG for block BB07
G_M7892_IG07: ; offs=000088H, funclet=00
*************** After placeholder IG creation
G_M7892_IG01: ; func=00, offs=000000H, size=0000H, gcrefRegs=00000000 {} <-- Prolog IG
G_M7892_IG02: ; offs=000000H, size=001CH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M7892_IG03: ; offs=00001CH, size=0017H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M7892_IG04: ; offs=000033H, size=001CH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M7892_IG05: ; offs=00004FH, size=0026H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M7892_IG06: ; offs=000075H, size=0013H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M7892_IG07: ; offs=000088H, size=0002H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M7892_IG08: ; epilog placeholder, next placeholder=<END>, BB07 [0009], epilog, emitadd <-- First placeholder <-- Last placeholder
; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=00000000 {}, PrevByrefRegs=00000000 {}
; InitGCVars=0000000000000000 {}, InitGCrefRegs=00000000 {}, InitByrefRegs=00000000 {}
G_M7892_IG09: ; offs=00018AH, size=0000H, gcrefRegs=00000000 {} <-- Current IG
=============== Generating BB09 [???..???) -> BB02 (always), preds={BB02} succs={BB02} flags=0x00000000.42020040: internal target bwd LIR
BB09 IN (3)={V04 V03 V02}
OUT(3)={V04 V03 V02}
Recording Var Locations at start of BB09
V04(rdx) V03(rax) V02(rcx)
Change life 0000000000000000 {} -> 0000000000000121 {V02 V03 V04}
V04 in reg rdx is becoming live [------]
Live regs: 00000000 {} => 00000004 {rdx}
V03 in reg rax is becoming live [------]
Live regs: 00000004 {rdx} => 00000005 {rax rdx}
V02 in reg rcx is becoming live [------]
Live regs: 00000005 {rax rdx} => 00000007 {rax rcx rdx}
Live regs: (unchanged) 00000007 {rax rcx rdx}
GC regs: (unchanged) 00000000 {}
Byref regs: (unchanged) 00000000 {}
L_M7892_BB09:
Label: IG09, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
Scope info: begin block BB09, IL range [???..???)
Scope info: ignoring block beginning
Added IP mapping: NO_MAP STACK_EMPTY (G_M7892_IG09,ins#0,ofs#0) label
Generating: N001 ( 1, 1) [000279] ------------ t279 = LCL_VAR long V03 tmp2 rax REG rax
/--* t279 long
Generating: N002 ( 2, 2) [000280] ------------ t280 = * COPY long REG rdi
IN002c: mov rdi, rax
V03 in reg rax is becoming dead [000279]
Live regs: 00000007 {rax rcx rdx} => 00000006 {rcx rdx}
V03 in reg rdi is becoming live [000280]
Live regs: 00000006 {rcx rdx} => 00000086 {rcx rdx rdi}
Generating: N001 ( 1, 1) [000281] ------------ t281 = LCL_VAR int V04 tmp3 rdx REG rdx
/--* t281 int
Generating: N002 ( 2, 2) [000282] ------------ t282 = * COPY int REG rax
IN002d: mov eax, edx
V04 in reg rdx is becoming dead [000281]
Live regs: 00000086 {rcx rdx rdi} => 00000082 {rcx rdi}
V04 in reg rax is becoming live [000282]
Live regs: 00000082 {rcx rdi} => 00000083 {rax rcx rdi}
Scope info: end block BB09, IL range [???..???)
Scope info: ignoring block end
IN002e: jmp L_M7892_BB02
=============== Generating BB08 [???..???) -> BB03 (always), preds={BB01} succs={BB03} flags=0x00000000.40020040: internal target LIR
BB08 IN (3)={V05 V03 V02}
OUT(3)={V05 V03 V02}
Recording Var Locations at start of BB08
V05(rsi) V03(rdi) V02(rcx)
Change life 0000000000000121 {V02 V03 V04} -> 0000000000000122 {V02 V03 V05}
V04 in reg rax is becoming dead [------]
Live regs: (unchanged) 00000000 {}
V05 in reg rsi is becoming live [------]
Live regs: 00000000 {} => 00000040 {rsi}
Live regs: 00000040 {rsi} => 000000C2 {rcx rsi rdi}
GC regs: (unchanged) 00000000 {}
Byref regs: (unchanged) 00000000 {}
L_M7892_BB08:
G_M7892_IG09: ; offs=00018AH, funclet=00
Label: IG10, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
Scope info: begin block BB08, IL range [???..???)
Scope info: ignoring block beginning
genIPmappingAdd: ignoring duplicate IL offset 0xffffffff
Generating: N001 ( 1, 1) [000277] ------------ t277 = LCL_VAR long V03 tmp2 rdi REG rdi
/--* t277 long
Generating: N002 ( 2, 2) [000278] ------------ t278 = * COPY long REG rax
IN002f: mov rax, rdi
V03 in reg rdi is becoming dead [000277]
Live regs: 000000C2 {rcx rsi rdi} => 00000042 {rcx rsi}
V03 in reg rax is becoming live [000278]
Live regs: 00000042 {rcx rsi} => 00000043 {rax rcx rsi}
Scope info: end block BB08, IL range [???..???)
Scope info: ignoring block end
IN0030: jmp L_M7892_BB03
Change life 0000000000000122 {V02 V03 V05} -> 0000000000000000 {}
V05 in reg rsi is becoming dead [------]
Live regs: 00000043 {rax rcx rsi} => 00000003 {rax rcx}
V03 in reg rax is becoming dead [------]
Live regs: 00000003 {rax rcx} => 00000002 {rcx}
V02 in reg rcx is becoming dead [------]
Live regs: 00000002 {rcx} => 00000000 {}
# compCycleEstimate = 134, compSizeEstimate = 141 Program:POPCNTButNoBMI2(int):int
; Final local variable assignments
;
; V00 arg0 [V00,T07] ( 3, 3 ) int -> rdi
;# V01 OutArgs [V01 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00]
; V02 tmp1 [V02,T08] ( 3, 5 ) long -> rcx
; V03 tmp2 [V03,T05] ( 4, 5.50) long -> registers
; V04 tmp3 [V04,T00] ( 8, 18.50) int -> registers
; V05 tmp4 [V05,T01] ( 10, 13.25) int -> rsi
; V06 tmp5 [V06,T02] ( 3, 12 ) long -> rdi
; V07 tmp6 [V07,T10] ( 6, 2.50) long -> rax
; V08 tmp7 [V08,T03] ( 4, 6.50) int -> rdi
; V09 tmp8 [V09,T06] ( 4, 5.50) long -> rax
; V10 tmp9 [V10,T04] ( 3, 6 ) int -> rcx
; V11 rat0 [V11,T09] ( 3, 3 ) long -> rax
;
; Lcl frame size = 0
*************** Before prolog / epilog generation
G_M7892_IG01: ; func=00, offs=000000H, size=0000H, gcrefRegs=00000000 {} <-- Prolog IG
G_M7892_IG02: ; offs=000000H, size=001CH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M7892_IG03: ; offs=00001CH, size=0017H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M7892_IG04: ; offs=000033H, size=001CH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M7892_IG05: ; offs=00004FH, size=0026H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M7892_IG06: ; offs=000075H, size=0013H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M7892_IG07: ; offs=000088H, size=0002H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M7892_IG08: ; epilog placeholder, next placeholder=<END>, BB07 [0009], epilog, emitadd <-- First placeholder <-- Last placeholder
; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=00000000 {}, PrevByrefRegs=00000000 {}
; InitGCVars=0000000000000000 {}, InitGCrefRegs=00000000 {}, InitByrefRegs=00000000 {}
G_M7892_IG09: ; offs=00018AH, size=000AH, gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
G_M7892_IG10: ; offs=000194H, size=0000H, gcrefRegs=00000000 {} <-- Current IG
Recording Var Locations at start of BB01
V00(rdi)
G_M7892_IG10: ; offs=000194H, funclet=00
*************** In genFnProlog()
Added IP mapping to front: PROLOG STACK_EMPTY (G_M7892_IG01,ins#0,ofs#0) label
__prolog:
IN0031: push rbp
IN0032: mov rbp, rsp
*************** In genClearStackVec3ArgUpperBits()
*************** In genFnPrologCalleeRegArgs() for int regs
*************** In genEnregisterIncomingStackArgs()
IN0033: nop
G_M7892_IG01: ; offs=000000H, funclet=00
*************** In genFnEpilog()
__epilog:
gcVarPtrSetCur=0000000000000000 {}, gcRegGCrefSetCur=00000000 {}, gcRegByrefSetCur=00000000 {}
IN0034: pop rbp
IN0035: ret
G_M7892_IG08: ; offs=00008AH, funclet=00
0 prologs, 1 epilogs, 0 funclet prologs, 0 funclet epilogs
*************** After prolog / epilog generation
G_M7892_IG01: ; func=00, offs=000000H, size=0005H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
G_M7892_IG02: ; offs=000005H, size=001CH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M7892_IG03: ; offs=000021H, size=0017H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M7892_IG04: ; offs=000038H, size=001CH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M7892_IG05: ; offs=000054H, size=0026H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M7892_IG06: ; offs=00007AH, size=0013H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M7892_IG07: ; offs=00008DH, size=0002H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M7892_IG08: ; offs=00008FH, size=0002H, epilog, nogc, emitadd
G_M7892_IG09: ; offs=000091H, size=000AH, gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
G_M7892_IG10: ; offs=00009BH, size=0008H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
*************** In emitJumpDistBind()
Binding: IN0007: 000000 jle L_M7892_BB08
Binding L_M7892_BB08 to G_M7892_IG10
Estimate of fwd jump [0232D554/007]: 001B -> 009B = 007E
Shrinking jump [0232D554/007]
Adjusted offset of block 03 from 0021 to 001D
Binding: IN000e: 000000 jg L_M7892_BB09
Binding L_M7892_BB09 to G_M7892_IG09
Estimate of fwd jump [0232D7D4/014]: 002E -> 008D = 005D
Shrinking jump [0232D7D4/014]
Adjusted offset of block 04 from 0038 to 0030
Binding: IN0015: 000000 jle L_M7892_BB05
Binding L_M7892_BB05 to G_M7892_IG05
Estimate of fwd jump [0232DAD4/021]: 0040 -> 004C = 000A
Shrinking jump [0232DAD4/021]
Adjusted offset of block 05 from 0054 to 0048
Binding: IN0022: 000000 jle L_M7892_BB07
Binding L_M7892_BB07 to G_M7892_IG07
Estimate of fwd jump [0232DE54/034]: 0068 -> 0081 = 0017
Shrinking jump [0232DE54/034]
Adjusted offset of block 06 from 007A to 006A
Binding: IN002a: 000000 jg SHORT L_M7892_BB06
Binding L_M7892_BB06 to G_M7892_IG06
Estimate of bwd jump [0232E104/042]: 007B -> 006A = 0013
Shrinking jump [0232E104/042]
Adjusted offset of block 07 from 008D to 007D
Adjusted offset of block 08 from 008F to 007F
Adjusted offset of block 09 from 0091 to 0081
Binding: IN002e: 000000 jmp L_M7892_BB02
Binding L_M7892_BB02 to G_M7892_IG03
Estimate of bwd jump [0232E434/046]: 0086 -> 001D = 006B
Shrinking jump [0232E434/046]
Adjusted offset of block 10 from 009B to 0088
Binding: IN0030: 000000 jmp L_M7892_BB03
Binding L_M7892_BB03 to G_M7892_IG04
Estimate of bwd jump [0232E5AC/048]: 008B -> 0030 = 005D
Shrinking jump [0232E5AC/048]
Total shrinkage = 22, min extra jump size = 4294967295
Hot code size = 0x8D bytes
Cold code size = 0x0 bytes
reserveUnwindInfo(isFunclet=FALSE, isColdCode=FALSE, unwindSize=0x6)
*************** In emitEndCodeGen()
Converting emitMaxStackDepth from bytes (0) to elements (0)
***************************************************************************
Instructions as they come out of the scheduler
G_M7892_IG01: ; func=00, offs=000000H, size=0005H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
IN0031: 000000 55 push rbp
IN0032: 000001 488BEC mov rbp, rsp
IN0033: 000004 90 nop
G_M7892_IG02: ; func=00, offs=000005H, size=0018H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
IN0001: 000005 48B99844FCBCE97F0000 mov rcx, 0x7FE9BCFC4498
IN0002: 00000F 488B09 mov rcx, qword ptr [rcx]
IN0003: 000012 8BC7 mov eax, edi
IN0004: 000014 488BF9 mov rdi, rcx
IN0005: 000017 8BF0 mov esi, eax
IN0006: 000019 85F6 test esi, esi
IN0007: 00001B 7E6B jle SHORT G_M7892_IG10
G_M7892_IG03: ; func=00, offs=00001DH, size=0013H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
IN0008: 00001D 8BF0 mov esi, eax
IN0009: 00001F 488D4708 lea rax, [rdi+8]
IN000a: 000023 F3480FB83F popcnt rdi, qword ptr [rdi]
IN000b: 000028 8BD6 mov edx, esi
IN000c: 00002A 2BD7 sub edx, edi
IN000d: 00002C 85D2 test edx, edx
IN000e: 00002E 7F51 jg SHORT G_M7892_IG09
G_M7892_IG04: ; func=00, offs=000030H, size=0018H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
IN000f: 000030 4883C0F8 add rax, -8
IN0010: 000034 F30FB810 popcnt edx, dword ptr [rax]
IN0011: 000038 8BFE mov edi, esi
IN0012: 00003A 2BFA sub edi, edx
IN0013: 00003C 8BD7 mov edx, edi
IN0014: 00003E 85D2 test edx, edx
IN0015: 000040 7E06 jle SHORT G_M7892_IG05
IN0016: 000042 8BF2 mov esi, edx
IN0017: 000044 4883C004 add rax, 4
G_M7892_IG05: ; func=00, offs=000048H, size=0022H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
IN0018: 000048 8B38 mov edi, dword ptr [rax]
IN0019: 00004A 482BC1 sub rax, rcx
IN001a: 00004D 488BC8 mov rcx, rax
IN001b: 000050 48C1F93F sar rcx, 63
IN001c: 000054 4883E103 and rcx, 3
IN001d: 000058 4803C8 add rcx, rax
IN001e: 00005B 48C1F902 sar rcx, 2
IN001f: 00005F 488BC1 mov rax, rcx
IN0020: 000062 48C1E005 shl rax, 5
IN0021: 000066 85F6 test esi, esi
IN0022: 000068 7E13 jle SHORT G_M7892_IG07
G_M7892_IG06: ; func=00, offs=00006AH, size=0013H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
IN0023: 00006A F30FBCCF tzcnt ecx, edi
IN0024: 00006E FFC1 inc ecx
IN0025: 000070 8BD1 mov edx, ecx
IN0026: 000072 4803C2 add rax, rdx
IN0027: 000075 FFCE dec esi
IN0028: 000077 D3EF shr edi, cl
IN0029: 000079 85F6 test esi, esi
IN002a: 00007B 7FED jg SHORT G_M7892_IG06
G_M7892_IG07: ; func=00, offs=00007DH, size=0002H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
IN002b: 00007D FFC8 dec eax
G_M7892_IG08: ; func=00, offs=00007FH, size=0002H, epilog, nogc, emitadd
IN0034: 00007F 5D pop rbp
IN0035: 000080 C3 ret
G_M7892_IG09: ; func=00, offs=000081H, size=0007H, gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
IN002c: 000081 488BF8 mov rdi, rax
IN002d: 000084 8BC2 mov eax, edx
IN002e: 000086 EB95 jmp SHORT G_M7892_IG03
G_M7892_IG10: ; func=00, offs=000088H, size=0005H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
IN002f: 000088 488BC7 mov rax, rdi
IN0030: 00008B EBA3 jmp SHORT G_M7892_IG04
Allocated method code size = 141 , actual size = 141
*************** After end code gen, before unwindEmit()
G_M7892_IG01: ; func=00, offs=000000H, size=0005H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
IN0031: 000000 push rbp
IN0032: 000001 mov rbp, rsp
IN0033: 000004 nop
G_M7892_IG02: ; offs=000005H, size=0018H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
IN0001: 000005 mov rcx, 0x7FE9BCFC4498
IN0002: 00000F mov rcx, qword ptr [rcx]
IN0003: 000012 mov eax, edi
IN0004: 000014 mov rdi, rcx
IN0005: 000017 mov esi, eax
IN0006: 000019 test esi, esi
IN0007: 00001B jle SHORT G_M7892_IG10
G_M7892_IG03: ; offs=00001DH, size=0013H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
IN0008: 00001D mov esi, eax
IN0009: 00001F lea rax, [rdi+8]
IN000a: 000023 popcnt rdi, qword ptr [rdi]
IN000b: 000028 mov edx, esi
IN000c: 00002A sub edx, edi
IN000d: 00002C test edx, edx
IN000e: 00002E jg SHORT G_M7892_IG09
G_M7892_IG04: ; offs=000030H, size=0018H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
IN000f: 000030 add rax, -8
IN0010: 000034 popcnt edx, dword ptr [rax]
IN0011: 000038 mov edi, esi
IN0012: 00003A sub edi, edx
IN0013: 00003C mov edx, edi
IN0014: 00003E test edx, edx
IN0015: 000040 jle SHORT G_M7892_IG05
IN0016: 000042 mov esi, edx
IN0017: 000044 add rax, 4
G_M7892_IG05: ; offs=000048H, size=0022H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
IN0018: 000048 mov edi, dword ptr [rax]
IN0019: 00004A sub rax, rcx
IN001a: 00004D mov rcx, rax
IN001b: 000050 sar rcx, 63
IN001c: 000054 and rcx, 3
IN001d: 000058 add rcx, rax
IN001e: 00005B sar rcx, 2
IN001f: 00005F mov rax, rcx
IN0020: 000062 shl rax, 5
IN0021: 000066 test esi, esi
IN0022: 000068 jle SHORT G_M7892_IG07
G_M7892_IG06: ; offs=00006AH, size=0013H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
IN0023: 00006A tzcnt ecx, edi
IN0024: 00006E inc ecx
IN0025: 000070 mov edx, ecx
IN0026: 000072 add rax, rdx
IN0027: 000075 dec esi
IN0028: 000077 shr edi, cl
IN0029: 000079 test esi, esi
IN002a: 00007B jg SHORT G_M7892_IG06
G_M7892_IG07: ; offs=00007DH, size=0002H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
IN002b: 00007D dec eax
G_M7892_IG08: ; offs=00007FH, size=0002H, epilog, nogc, emitadd
IN0034: 00007F pop rbp
IN0035: 000080 ret
G_M7892_IG09: ; offs=000081H, size=0007H, gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
IN002c: 000081 mov rdi, rax
IN002d: 000084 mov eax, edx
IN002e: 000086 jmp SHORT G_M7892_IG03
G_M7892_IG10: ; offs=000088H, size=0005H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
IN002f: 000088 mov rax, rdi
IN0030: 00008B jmp SHORT G_M7892_IG04
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0x00008d (not in unwind data)
Version : 1
Flags : 0x00
SizeOfProlog : 0x01
CountOfUnwindCodes: 1
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
allocUnwindInfo(pHotCode=0x00007FE9BE13F9D0, pColdCode=0x0000000000000000, startOffset=0x0, endOffset=0x8d, unwindSize=0x6, pUnwindBlock=0x000000000230C91A, funKind=0 (main function))
*************** In genIPmappingGen()
IP mapping count : 4
IL offs PROLOG : 0x00000000 ( STACK_EMPTY )
IL offs 0x0000 : 0x00000005 ( STACK_EMPTY )
IL offs EPILOG : 0x0000007F ( STACK_EMPTY )
IL offs NO_MAP : 0x00000081 ( STACK_EMPTY )
*************** In genSetScopeInfo()
VarLocInfo count is 2
*************** Variable debug info
2 vars
0( UNKNOWN) : From 00000000h to 00000005h, in rdi
0( UNKNOWN) : From 00000005h to 00000012h, in rdi
*************** In gcInfoBlockHdrSave()
Set code length to 141.
Set ReturnKind to Scalar.
Set stack base register to rbp.
Set Outgoing stack arg area size to 0.
Defining interruptible range: [0x5, 0x7f).
Defining interruptible range: [0x81, 0x8d).
Method code size: 141
Allocations for Program:POPCNTButNoBMI2(int):int (MethodHash=622404b0)
count: 2091, size: 163426, max = 3072
allocateMemory: 196608, nraUsed: 169448
Alloc'd bytes by kind:
kind | size | pct
---------------------+------------+--------
AssertionProp | 6460 | 3.95%
ASTNode | 38976 | 23.85%
InstDesc | 5844 | 3.58%
ImpStack | 384 | 0.23%
BasicBlock | 4296 | 2.63%
fgArgInfo | 0 | 0.00%
fgArgInfoPtrArr | 0 | 0.00%
FlowList | 672 | 0.41%
TreeStatementList | 0 | 0.00%
SiScope | 224 | 0.14%
FlatFPStateX87 | 0 | 0.00%
DominatorMemory | 288 | 0.18%
LSRA | 3852 | 2.36%
LSRA_Interval | 2800 | 1.71%
LSRA_RefPosition | 7104 | 4.35%
Reachability | 16 | 0.01%
SSA | 3148 | 1.93%
ValueNumber | 13448 | 8.23%
LvaTable | 4280 | 2.62%
UnwindInfo | 0 | 0.00%
hashBv | 440 | 0.27%
bitset | 472 | 0.29%
FixedBitVect | 0 | 0.00%
Generic | 3482 | 2.13%
IndirAssignMap | 0 | 0.00%
FieldSeqStore | 176 | 0.11%
ZeroOffsetFieldMap | 40 | 0.02%
ArrayInfoMap | 40 | 0.02%
MemoryPhiArg | 0 | 0.00%
CSE | 2624 | 1.61%
GC | 1336 | 0.82%
CorSig | 104 | 0.06%
Inlining | 808 | 0.49%
ArrayStack | 0 | 0.00%
DebugInfo | 208 | 0.13%
DebugOnly | 55142 | 33.74%
Codegen | 1144 | 0.70%
LoopOpt | 2560 | 1.57%
LoopHoist | 536 | 0.33%
Unknown | 434 | 0.27%
RangeCheck | 0 | 0.00%
CopyProp | 2088 | 1.28%
SideEffects | 0 | 0.00%
****** DONE compiling Program:POPCNTButNoBMI2(int):int
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment