Instantly share code, notes, and snippets.

Embed
What would you like to do?
****** 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