Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
****** START compiling Program:IntrinsicsUnrolled(int):int (MethodHash=6b9d3a1b)
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 14 00 00 0a call 0xA000014
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:IntrinsicsUnrolled(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:IntrinsicsUnrolled(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:IntrinsicsUnrolled(int):int
OPTIONS: opts.MinOpts() == false
Basic block list for 'Program:IntrinsicsUnrolled(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:IntrinsicsUnrolled(int):int
impImportBlockPending for BB01
Importing BB01 (PC=000) of 'Program:IntrinsicsUnrolled(int):int'
[ 0] 0 (0x000) ldsfld 04000003
[ 1] 5 (0x005) ldc.i4 1024
[ 2] 10 (0x00a) ldarg.0
[ 3] 11 (0x00b) call 0A000014 (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.IntrinsicsUnrolled (exactContextHnd=0x00007F08AB887599)
[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.IntrinsicsUnrolled (exactContextHnd=0x00007F08AB887599)
[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:IntrinsicsUnrolled(long,int,int):int set to 0x00007F08AB887599:
Invoking compiler for the inlinee method GetNthBitOffset:IntrinsicsUnrolled(long,int,int):int :
IL to import:
IL_0000 02 ldarg.0
IL_0001 0a stloc.0
IL_0002 2b 37 br.s 55 (IL_003b)
IL_0004 04 ldarg.2
IL_0005 06 ldloc.0
IL_0006 4c ldind.i8
IL_0007 28 0d 00 00 0a call 0xA00000D
IL_000c 06 ldloc.0
IL_000d 1e ldc.i4.8
IL_000e 58 add
IL_000f 4c ldind.i8
IL_0010 28 0d 00 00 0a call 0xA00000D
IL_0015 58 add
IL_0016 06 ldloc.0
IL_0017 18 ldc.i4.2
IL_0018 d3 conv.i
IL_0019 1e ldc.i4.8
IL_001a 5a mul
IL_001b 58 add
IL_001c 4c ldind.i8
IL_001d 28 0d 00 00 0a call 0xA00000D
IL_0022 58 add
IL_0023 06 ldloc.0
IL_0024 19 ldc.i4.3
IL_0025 d3 conv.i
IL_0026 1e ldc.i4.8
IL_0027 5a mul
IL_0028 58 add
IL_0029 4c ldind.i8
IL_002a 28 0d 00 00 0a call 0xA00000D
IL_002f 58 add
IL_0030 69 conv.i4
IL_0031 59 sub
IL_0032 10 02 starg.s 0x2
IL_0034 06 ldloc.0
IL_0035 1a ldc.i4.4
IL_0036 d3 conv.i
IL_0037 1e ldc.i4.8
IL_0038 5a mul
IL_0039 58 add
IL_003a 0a stloc.0
IL_003b 04 ldarg.2
IL_003c 20 00 01 00 00 ldc.i4 0x100
IL_0041 2f c1 bge.s -63 (IL_0004)
IL_0043 04 ldarg.2
IL_0044 0b stloc.1
IL_0045 2b 12 br.s 18 (IL_0059)
IL_0047 04 ldarg.2
IL_0048 0b stloc.1
IL_0049 04 ldarg.2
IL_004a 06 ldloc.0
IL_004b 4c ldind.i8
IL_004c 28 0d 00 00 0a call 0xA00000D
IL_0051 69 conv.i4
IL_0052 59 sub
IL_0053 10 02 starg.s 0x2
IL_0055 06 ldloc.0
IL_0056 1e ldc.i4.8
IL_0057 58 add
IL_0058 0a stloc.0
IL_0059 04 ldarg.2
IL_005a 16 ldc.i4.0
IL_005b 30 ea bgt.s -22 (IL_0047)
IL_005d 06 ldloc.0
IL_005e 1e ldc.i4.8
IL_005f 59 sub
IL_0060 0a stloc.0
IL_0061 17 ldc.i4.1
IL_0062 6a conv.i8
IL_0063 07 ldloc.1
IL_0064 17 ldc.i4.1
IL_0065 59 sub
IL_0066 1f 3f ldc.i4.s 0x3F
IL_0068 5f and
IL_0069 62 shl
IL_006a 06 ldloc.0
IL_006b 4c ldind.i8
IL_006c 28 0f 00 00 0a call 0xA00000F
IL_0071 28 10 00 00 0a call 0xA000010
IL_0076 69 conv.i4
IL_0077 0c stloc.2
IL_0078 06 ldloc.0
IL_0079 02 ldarg.0
IL_007a 59 sub
IL_007b 1e ldc.i4.8
IL_007c 5b div
IL_007d 6a conv.i8
IL_007e 1f 40 ldc.i4.s 0x40
IL_0080 6a conv.i8
IL_0081 5a mul
IL_0082 69 conv.i4
IL_0083 08 ldloc.2
IL_0084 58 add
IL_0085 2a ret
INLINER impTokenLookupContextHandle for GetNthBitOffset:IntrinsicsUnrolled(long,int,int):int is 0x00007F08AB887599.
*************** In fgFindBasicBlocks() for GetNthBitOffset:IntrinsicsUnrolled(long,int,int):int
Jump targets:
IL_0004
IL_003b
IL_0047
IL_0059
New Basic Block BB02 [0001] created.
BB02 [000..004)
New Basic Block BB03 [0002] created.
BB03 [004..03B)
New Basic Block BB04 [0003] created.
BB04 [03B..043)
New Basic Block BB05 [0004] created.
BB05 [043..047)
New Basic Block BB06 [0005] created.
BB06 [047..059)
New Basic Block BB07 [0006] created.
BB07 [059..05D)
New Basic Block BB08 [0007] created.
BB08 [05D..086)
Basic block list for 'GetNthBitOffset:IntrinsicsUnrolled(long,int,int):int'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB02 [0001] 1 1 [000..004)-> BB04 (always)
BB03 [0002] 1 1 [004..03B) bwd
BB04 [0003] 2 1 [03B..043)-> BB03 ( cond ) bwd
BB05 [0004] 1 1 [043..047)-> BB07 (always)
BB06 [0005] 1 1 [047..059) bwd
BB07 [0006] 2 1 [059..05D)-> BB06 ( cond ) bwd
BB08 [0007] 1 1 [05D..086) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for GetNthBitOffset:IntrinsicsUnrolled(long,int,int):int
impImportBlockPending for BB02
Importing BB02 (PC=000) of 'GetNthBitOffset:IntrinsicsUnrolled(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) br.s
impImportBlockPending for BB04
Importing BB04 (PC=059) of 'GetNthBitOffset:IntrinsicsUnrolled(long,int,int):int'
[ 0] 59 (0x03b) ldarg.2
lvaGrabTemp returning 4 (V04 tmp3) called for Inlining Arg.
[ 1] 60 (0x03c) ldc.i4 256
[ 2] 65 (0x041) bge.s
[000022] ------------ * STMT void
[000021] ------------ \--* JTRUE void
[000019] ------------ | /--* CNS_INT int 256
[000020] ------------ \--* GE int
[000018] ------------ \--* LCL_VAR int V04 tmp3
impImportBlockPending for BB05
impImportBlockPending for BB03
Importing BB03 (PC=004) of 'GetNthBitOffset:IntrinsicsUnrolled(long,int,int):int'
[ 0] 4 (0x004) ldarg.2
[ 1] 5 (0x005) ldloc.0
[ 2] 6 (0x006) ldind.i8
[ 2] 7 (0x007) call 0A00000D
In Compiler::impImportCall: opcode is call, kind=0, callRetType is long, structSize is 0
[ 2] 12 (0x00c) ldloc.0
[ 3] 13 (0x00d) ldc.i4.8 8
[ 4] 14 (0x00e) add
[ 3] 15 (0x00f) ldind.i8
[ 3] 16 (0x010) call 0A00000D
In Compiler::impImportCall: opcode is call, kind=0, callRetType is long, structSize is 0
[ 3] 21 (0x015) add
[ 2] 22 (0x016) ldloc.0
[ 3] 23 (0x017) ldc.i4.2 2
[ 4] 24 (0x018) conv.i
[ 4] 25 (0x019) ldc.i4.8 8
[ 5] 26 (0x01a) mul
[ 4] 27 (0x01b) add
[ 3] 28 (0x01c) ldind.i8
[ 3] 29 (0x01d) call 0A00000D
In Compiler::impImportCall: opcode is call, kind=0, callRetType is long, structSize is 0
[ 3] 34 (0x022) add
[ 2] 35 (0x023) ldloc.0
[ 3] 36 (0x024) ldc.i4.3 3
[ 4] 37 (0x025) conv.i
[ 4] 38 (0x026) ldc.i4.8 8
[ 5] 39 (0x027) mul
[ 4] 40 (0x028) add
[ 3] 41 (0x029) ldind.i8
[ 3] 42 (0x02a) call 0A00000D
In Compiler::impImportCall: opcode is call, kind=0, callRetType is long, structSize is 0
[ 3] 47 (0x02f) add
[ 2] 48 (0x030) conv.i4
[ 2] 49 (0x031) sub
[ 1] 50 (0x032) starg.s 2
[000060] ------------ * STMT void
[000055] ---XG------- | /--* CAST int <- long
[000053] ---XG------- | | | /--* HWIntrinsic long PopCount
[000052] *--XG------- | | | | \--* IND long
[000049] ------------ | | | | | /--* CAST long <- int
[000048] ------------ | | | | | | \--* CNS_INT int 8
[000050] ------------ | | | | | /--* MUL long
[000047] ------------ | | | | | | \--* CAST long <- int
[000046] ------------ | | | | | | \--* CNS_INT int 3
[000051] ------------ | | | | \--* ADD long
[000045] ------------ | | | | \--* LCL_VAR long V03 tmp2
[000054] ---XG------- | | \--* ADD long
[000043] ---XG------- | | | /--* HWIntrinsic long PopCount
[000042] *--XG------- | | | | \--* IND long
[000039] ------------ | | | | | /--* CAST long <- int
[000038] ------------ | | | | | | \--* CNS_INT int 8
[000040] ------------ | | | | | /--* MUL long
[000037] ------------ | | | | | | \--* CAST long <- int
[000036] ------------ | | | | | | \--* CNS_INT int 2
[000041] ------------ | | | | \--* ADD long
[000035] ------------ | | | | \--* LCL_VAR long V03 tmp2
[000044] ---XG------- | | \--* ADD long
[000033] ---XG------- | | | /--* HWIntrinsic long PopCount
[000032] *--XG------- | | | | \--* IND long
[000030] ------------ | | | | | /--* CAST long <- int
[000029] ------------ | | | | | | \--* CNS_INT int 8
[000031] ------------ | | | | \--* ADD long
[000028] ------------ | | | | \--* LCL_VAR long V03 tmp2
[000034] ---XG------- | | \--* ADD long
[000027] ---XG------- | | \--* HWIntrinsic long PopCount
[000026] *--XG------- | | \--* IND long
[000025] ------------ | | \--* LCL_VAR long V03 tmp2
[000056] ---XG------- | /--* SUB int
[000024] ------------ | | \--* LCL_VAR int V04 tmp3
[000059] -A-XG------- \--* ASG int
[000058] D------N---- \--* LCL_VAR int V04 tmp3
[ 0] 52 (0x034) ldloc.0
[ 1] 53 (0x035) ldc.i4.4 4
[ 2] 54 (0x036) conv.i
[ 2] 55 (0x037) ldc.i4.8 8
[ 3] 56 (0x038) mul
[ 2] 57 (0x039) add
[ 1] 58 (0x03a) stloc.0
[000070] ------------ * STMT void
[000065] ------------ | /--* CAST long <- int
[000064] ------------ | | \--* CNS_INT int 8
[000066] ------------ | /--* MUL long
[000063] ------------ | | \--* CAST long <- int
[000062] ------------ | | \--* CNS_INT int 4
[000067] ------------ | /--* ADD long
[000061] ------------ | | \--* LCL_VAR long V03 tmp2
[000069] -A---------- \--* ASG long
[000068] D------N---- \--* LCL_VAR long V03 tmp2
impImportBlockPending for BB04
Importing BB05 (PC=067) of 'GetNthBitOffset:IntrinsicsUnrolled(long,int,int):int'
[ 0] 67 (0x043) ldarg.2
[ 1] 68 (0x044) stloc.1
lvaGrabTemp returning 5 (V05 tmp4) (a long lifetime temp) called for Inline stloc first use temp.
[000075] ------------ * STMT void
[000072] ------------ | /--* LCL_VAR int V04 tmp3
[000074] -A---------- \--* ASG int
[000073] D------N---- \--* LCL_VAR int V05 tmp4
[ 0] 69 (0x045) br.s
impImportBlockPending for BB07
Importing BB07 (PC=089) of 'GetNthBitOffset:IntrinsicsUnrolled(long,int,int):int'
[ 0] 89 (0x059) ldarg.2
[ 1] 90 (0x05a) ldc.i4.0 0
[ 2] 91 (0x05b) bgt.s
[000081] ------------ * STMT void
[000080] ------------ \--* JTRUE void
[000078] ------------ | /--* CNS_INT int 0
[000079] ------------ \--* GT int
[000077] ------------ \--* LCL_VAR int V04 tmp3
impImportBlockPending for BB08
impImportBlockPending for BB06
Importing BB06 (PC=071) of 'GetNthBitOffset:IntrinsicsUnrolled(long,int,int):int'
[ 0] 71 (0x047) ldarg.2
[ 1] 72 (0x048) stloc.1
[000086] ------------ * STMT void
[000083] ------------ | /--* LCL_VAR int V04 tmp3
[000085] -A---------- \--* ASG int
[000084] D------N---- \--* LCL_VAR int V05 tmp4
[ 0] 73 (0x049) ldarg.2
[ 1] 74 (0x04a) ldloc.0
[ 2] 75 (0x04b) ldind.i8
[ 2] 76 (0x04c) call 0A00000D
In Compiler::impImportCall: opcode is call, kind=0, callRetType is long, structSize is 0
[ 2] 81 (0x051) conv.i4
[ 2] 82 (0x052) sub
[ 1] 83 (0x053) starg.s 2
[000096] ------------ * STMT void
[000091] ---XG------- | /--* CAST int <- long
[000090] ---XG------- | | \--* HWIntrinsic long PopCount
[000089] *--XG------- | | \--* IND long
[000088] ------------ | | \--* LCL_VAR long V03 tmp2
[000092] ---XG------- | /--* SUB int
[000087] ------------ | | \--* LCL_VAR int V04 tmp3
[000095] -A-XG------- \--* ASG int
[000094] D------N---- \--* LCL_VAR int V04 tmp3
[ 0] 85 (0x055) ldloc.0
[ 1] 86 (0x056) ldc.i4.8 8
[ 2] 87 (0x057) add
[ 1] 88 (0x058) stloc.0
[000103] ------------ * STMT void
[000099] ------------ | /--* CAST long <- int
[000098] ------------ | | \--* CNS_INT int 8
[000100] ------------ | /--* ADD long
[000097] ------------ | | \--* LCL_VAR long V03 tmp2
[000102] -A---------- \--* ASG long
[000101] D------N---- \--* LCL_VAR long V03 tmp2
impImportBlockPending for BB07
Importing BB08 (PC=093) of 'GetNthBitOffset:IntrinsicsUnrolled(long,int,int):int'
[ 0] 93 (0x05d) ldloc.0
[ 1] 94 (0x05e) ldc.i4.8 8
[ 2] 95 (0x05f) sub
[ 1] 96 (0x060) stloc.0
[000111] ------------ * STMT void
[000107] ------------ | /--* CAST long <- int
[000106] ------------ | | \--* CNS_INT int 8
[000108] ------------ | /--* SUB long
[000105] ------------ | | \--* LCL_VAR long V03 tmp2
[000110] -A---------- \--* ASG long
[000109] D------N---- \--* LCL_VAR long V03 tmp2
[ 0] 97 (0x061) ldc.i4.1 1
[ 1] 98 (0x062) conv.i8
[ 1] 99 (0x063) ldloc.1
[ 2] 100 (0x064) ldc.i4.1 1
[ 3] 101 (0x065) sub
[ 2] 102 (0x066) ldc.i4.s 63
[ 3] 104 (0x068) and
[ 2] 105 (0x069) shl
[ 1] 106 (0x06a) ldloc.0
[ 2] 107 (0x06b) ldind.i8
[ 2] 108 (0x06c) call 0A00000F
In Compiler::impImportCall: opcode is call, kind=0, callRetType is long, structSize is 0
[ 1] 113 (0x071) call 0A000010
In Compiler::impImportCall: opcode is call, kind=0, callRetType is long, structSize is 0
[ 1] 118 (0x076) conv.i4
[ 1] 119 (0x077) stloc.2
lvaGrabTemp returning 6 (V06 tmp5) (a long lifetime temp) called for Inline stloc first use temp.
[000127] ------------ * STMT void
[000124] ---XG------- | /--* CAST int <- long
[000123] ---XG------- | | \--* HWIntrinsic long TrailingZeroCount
[000121] *--XG------- | | | /--* IND long
[000120] ------------ | | | | \--* LCL_VAR long V03 tmp2
[000122] ---XG------- | | \--* HWIntrinsic long ParallelBitDeposit
[000117] ------------ | | | /--* CNS_INT int 63
[000118] ------------ | | | /--* AND int
[000115] ------------ | | | | | /--* CNS_INT int 1
[000116] ------------ | | | | \--* SUB int
[000114] ------------ | | | | \--* LCL_VAR int V05 tmp4
[000119] ------------ | | \--* LSH long
[000113] ------------ | | \--* CAST long <- int
[000112] ------------ | | \--* CNS_INT int 1
[000126] -A-XG------- \--* ASG int
[000125] D------N---- \--* LCL_VAR int V06 tmp5
[ 0] 120 (0x078) ldloc.0
[ 1] 121 (0x079) ldarg.0
[ 2] 122 (0x07a) sub
[ 1] 123 (0x07b) ldc.i4.8 8
[ 2] 124 (0x07c) div
[ 1] 125 (0x07d) conv.i8
[ 1] 126 (0x07e) ldc.i4.s 64
[ 2] 128 (0x080) conv.i8
[ 2] 129 (0x081) mul
[ 1] 130 (0x082) conv.i4
[ 1] 131 (0x083) ldloc.2
[ 2] 132 (0x084) add
[ 1] 133 (0x085) ret
Inlinee Return expression (before normalization) =>
[000138] ------------ /--* LCL_VAR int V06 tmp5
[000139] ---X-------- * ADD int
[000137] ---X-------- \--* CAST int <- long
[000135] ------------ | /--* CAST long <- int
[000134] ------------ | | \--* CNS_INT int 64
[000136] ---X-------- \--* MUL long
[000132] ------------ | /--* CAST long <- int
[000131] ------------ | | \--* CNS_INT int 8
[000133] ---X-------- \--* DIV long
[000129] ------------ | /--* LCL_VAR long V02 tmp1
[000130] ------------ \--* SUB long
[000128] ------------ \--* LCL_VAR long V03 tmp2
Inlinee Return expression (after normalization) =>
[000138] ------------ /--* LCL_VAR int V06 tmp5
[000139] ---X-------- * ADD int
[000137] ---X-------- \--* CAST int <- long
[000135] ------------ | /--* CAST long <- int
[000134] ------------ | | \--* CNS_INT int 64
[000136] ---X-------- \--* MUL long
[000132] ------------ | /--* CAST long <- int
[000131] ------------ | | \--* CNS_INT int 8
[000133] ---X-------- \--* DIV long
[000129] ------------ | /--* LCL_VAR long V02 tmp1
[000130] ------------ \--* SUB long
[000128] ------------ \--* LCL_VAR long V03 tmp2
----------- Statements (and blocks) added due to the inlining of call [000004] -----------
Arguments setup:
[000142] ------------ * STMT void (IL 0x000... ???)
[000001] ----G------- | /--* FIELD long _bits
[000141] -A--G------- \--* ASG long
[000140] D------N---- \--* LCL_VAR long V02 tmp1
[000145] ------------ * STMT void (IL 0x000... ???)
[000003] ------------ | /--* LCL_VAR int V00 arg0
[000144] -A---------- \--* ASG int
[000143] D------N---- \--* LCL_VAR int V04 tmp3
Zero init inlinee locals:
[000149] ------------ * STMT void (IL 0x000... ???)
[000146] ------------ | /--* CNS_INT long 0
[000148] -A---------- \--* ASG long
[000147] D------N---- \--* LCL_VAR long V03 tmp2
[000153] ------------ * STMT void (IL 0x000... ???)
[000150] ------------ | /--* CNS_INT int 0
[000152] -A---------- \--* ASG int
[000151] D------N---- \--* LCL_VAR int V05 tmp4
[000157] ------------ * STMT void (IL 0x000... ???)
[000154] ------------ | /--* CNS_INT int 0
[000156] -A---------- \--* ASG int
[000155] D------N---- \--* LCL_VAR int V06 tmp5
Inlinee method body:New Basic Block BB09 [0008] created.
Convert bbJumpKind of BB08 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 (always) i
BB06 [0005] 1 0.50 [000..001) i bwd
BB07 [0006] 2 0.50 [000..001)-> BB06 ( cond ) i bwd
BB08 [0007] 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
------------ BB03 [000..001), preds={} succs={BB04}
***** BB03, stmt 2
[000060] ------------ * STMT void (IL 0x000... ???)
[000055] ---XG------- | /--* CAST int <- long
[000053] ---XG------- | | | /--* HWIntrinsic long PopCount
[000052] *--XG------- | | | | \--* IND long
[000049] ------------ | | | | | /--* CAST long <- int
[000048] ------------ | | | | | | \--* CNS_INT int 8
[000050] ------------ | | | | | /--* MUL long
[000047] ------------ | | | | | | \--* CAST long <- int
[000046] ------------ | | | | | | \--* CNS_INT int 3
[000051] ------------ | | | | \--* ADD long
[000045] ------------ | | | | \--* LCL_VAR long V03 tmp2
[000054] ---XG------- | | \--* ADD long
[000043] ---XG------- | | | /--* HWIntrinsic long PopCount
[000042] *--XG------- | | | | \--* IND long
[000039] ------------ | | | | | /--* CAST long <- int
[000038] ------------ | | | | | | \--* CNS_INT int 8
[000040] ------------ | | | | | /--* MUL long
[000037] ------------ | | | | | | \--* CAST long <- int
[000036] ------------ | | | | | | \--* CNS_INT int 2
[000041] ------------ | | | | \--* ADD long
[000035] ------------ | | | | \--* LCL_VAR long V03 tmp2
[000044] ---XG------- | | \--* ADD long
[000033] ---XG------- | | | /--* HWIntrinsic long PopCount
[000032] *--XG------- | | | | \--* IND long
[000030] ------------ | | | | | /--* CAST long <- int
[000029] ------------ | | | | | | \--* CNS_INT int 8
[000031] ------------ | | | | \--* ADD long
[000028] ------------ | | | | \--* LCL_VAR long V03 tmp2
[000034] ---XG------- | | \--* ADD long
[000027] ---XG------- | | \--* HWIntrinsic long PopCount
[000026] *--XG------- | | \--* IND long
[000025] ------------ | | \--* LCL_VAR long V03 tmp2
[000056] ---XG------- | /--* SUB int
[000024] ------------ | | \--* LCL_VAR int V04 tmp3
[000059] -A-XG------- \--* ASG int
[000058] D------N---- \--* LCL_VAR int V04 tmp3
***** BB03, stmt 3
[000070] ------------ * STMT void (IL 0x000... ???)
[000065] ------------ | /--* CAST long <- int
[000064] ------------ | | \--* CNS_INT int 8
[000066] ------------ | /--* MUL long
[000063] ------------ | | \--* CAST long <- int
[000062] ------------ | | \--* CNS_INT int 4
[000067] ------------ | /--* ADD long
[000061] ------------ | | \--* LCL_VAR long V03 tmp2
[000069] -A---------- \--* ASG long
[000068] D------N---- \--* LCL_VAR long V03 tmp2
------------ BB04 [000..001) -> BB03 (cond), preds={} succs={BB05,BB03}
***** BB04, stmt 4
[000022] ------------ * STMT void (IL 0x000... ???)
[000021] ------------ \--* JTRUE void
[000019] ------------ | /--* CNS_INT int 256
[000020] ------------ \--* GE int
[000018] ------------ \--* LCL_VAR int V04 tmp3
------------ BB05 [000..001) -> BB07 (always), preds={} succs={BB07}
***** BB05, stmt 5
[000075] ------------ * STMT void (IL 0x000... ???)
[000072] ------------ | /--* LCL_VAR int V04 tmp3
[000074] -A---------- \--* ASG int
[000073] D------N---- \--* LCL_VAR int V05 tmp4
------------ BB06 [000..001), preds={} succs={BB07}
***** BB06, stmt 6
[000086] ------------ * STMT void (IL 0x000... ???)
[000083] ------------ | /--* LCL_VAR int V04 tmp3
[000085] -A---------- \--* ASG int
[000084] D------N---- \--* LCL_VAR int V05 tmp4
***** BB06, stmt 7
[000096] ------------ * STMT void (IL 0x000... ???)
[000091] ---XG------- | /--* CAST int <- long
[000090] ---XG------- | | \--* HWIntrinsic long PopCount
[000089] *--XG------- | | \--* IND long
[000088] ------------ | | \--* LCL_VAR long V03 tmp2
[000092] ---XG------- | /--* SUB int
[000087] ------------ | | \--* LCL_VAR int V04 tmp3
[000095] -A-XG------- \--* ASG int
[000094] D------N---- \--* LCL_VAR int V04 tmp3
***** BB06, stmt 8
[000103] ------------ * STMT void (IL 0x000... ???)
[000099] ------------ | /--* CAST long <- int
[000098] ------------ | | \--* CNS_INT int 8
[000100] ------------ | /--* ADD long
[000097] ------------ | | \--* LCL_VAR long V03 tmp2
[000102] -A---------- \--* ASG long
[000101] D------N---- \--* LCL_VAR long V03 tmp2
------------ BB07 [000..001) -> BB06 (cond), preds={} succs={BB08,BB06}
***** BB07, stmt 9
[000081] ------------ * STMT void (IL 0x000... ???)
[000080] ------------ \--* JTRUE void
[000078] ------------ | /--* CNS_INT int 0
[000079] ------------ \--* GT int
[000077] ------------ \--* LCL_VAR int V04 tmp3
------------ BB08 [000..001), preds={} succs={BB09}
***** BB08, stmt 10
[000111] ------------ * STMT void (IL 0x000... ???)
[000107] ------------ | /--* CAST long <- int
[000106] ------------ | | \--* CNS_INT int 8
[000108] ------------ | /--* SUB long
[000105] ------------ | | \--* LCL_VAR long V03 tmp2
[000110] -A---------- \--* ASG long
[000109] D------N---- \--* LCL_VAR long V03 tmp2
***** BB08, stmt 11
[000127] ------------ * STMT void (IL 0x000... ???)
[000124] ---XG------- | /--* CAST int <- long
[000123] ---XG------- | | \--* HWIntrinsic long TrailingZeroCount
[000121] *--XG------- | | | /--* IND long
[000120] ------------ | | | | \--* LCL_VAR long V03 tmp2
[000122] ---XG------- | | \--* HWIntrinsic long ParallelBitDeposit
[000117] ------------ | | | /--* CNS_INT int 63
[000118] ------------ | | | /--* AND int
[000115] ------------ | | | | | /--* CNS_INT int 1
[000116] ------------ | | | | \--* SUB int
[000114] ------------ | | | | \--* LCL_VAR int V05 tmp4
[000119] ------------ | | \--* LSH long
[000113] ------------ | | \--* CAST long <- int
[000112] ------------ | | \--* CNS_INT int 1
[000126] -A-XG------- \--* ASG int
[000125] D------N---- \--* LCL_VAR int V06 tmp5
-------------------------------------------------------------------------------------------------------------------
Return expression for call at [000004] is
[000138] ------------ /--* LCL_VAR int V06 tmp5
[000139] ---X-------- * ADD int
[000137] ---X-------- \--* CAST int <- long
[000135] ------------ | /--* CAST long <- int
[000134] ------------ | | \--* CNS_INT int 64
[000136] ---X-------- \--* MUL long
[000132] ------------ | /--* CAST long <- int
[000131] ------------ | | \--* CNS_INT int 8
[000133] ---X-------- \--* DIV long
[000129] ------------ | /--* LCL_VAR long V02 tmp1
[000130] ------------ \--* SUB long
[000128] ------------ \--* LCL_VAR long V03 tmp2
Successfully inlined GetNthBitOffset:IntrinsicsUnrolled(long,int,int):int (134 IL bytes) (depth 1) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'Program:IntrinsicsUnrolled(int):int' calling 'GetNthBitOffset:IntrinsicsUnrolled(long,int,int):int'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000009] with [000139]
[000009] --C--------- * RET_EXPR int (inl return from call [000139])
Inserting the inline return expression
[000138] ------------ /--* LCL_VAR int V06 tmp5
[000139] ---X-------- * ADD int
[000137] ---X-------- \--* CAST int <- long
[000135] ------------ | /--* CAST long <- int
[000134] ------------ | | \--* CNS_INT int 64
[000136] ---X-------- \--* MUL long
[000132] ------------ | /--* CAST long <- int
[000131] ------------ | | \--* CNS_INT int 8
[000133] ---X-------- \--* DIV long
[000129] ------------ | /--* LCL_VAR long V02 tmp1
[000130] ------------ \--* SUB long
[000128] ------------ \--* LCL_VAR long V03 tmp2
*************** 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 (always) i
BB06 [0005] 1 0.50 [000..001) i bwd
BB07 [0006] 2 0.50 [000..001)-> BB06 ( cond ) i bwd
BB08 [0007] 1 1 [000..001) i
BB09 [0008] 1 1 [???..???) (return) internal
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011), preds={} succs={BB02}
***** BB01, stmt 1
[000142] ------------ * STMT void (IL 0x000... ???)
[000001] ----G------- | /--* FIELD long _bits
[000141] -A--G------- \--* ASG long
[000140] D------N---- \--* LCL_VAR long V02 tmp1
***** BB01, stmt 2
[000145] ------------ * STMT void (IL 0x000... ???)
[000003] ------------ | /--* LCL_VAR int V00 arg0
[000144] -A---------- \--* ASG int
[000143] D------N---- \--* LCL_VAR int V04 tmp3
***** BB01, stmt 3
[000149] ------------ * STMT void (IL 0x000... ???)
[000146] ------------ | /--* CNS_INT long 0
[000148] -A---------- \--* ASG long
[000147] D------N---- \--* LCL_VAR long V03 tmp2
***** BB01, stmt 4
[000153] ------------ * STMT void (IL 0x000... ???)
[000150] ------------ | /--* CNS_INT int 0
[000152] -A---------- \--* ASG int
[000151] D------N---- \--* LCL_VAR int V05 tmp4
***** BB01, stmt 5
[000157] ------------ * STMT void (IL 0x000... ???)
[000154] ------------ | /--* CNS_INT int 0
[000156] -A---------- \--* ASG int
[000155] D------N---- \--* LCL_VAR int V06 tmp5
------------ BB02 [000..001) -> BB04 (always), preds={} succs={BB04}
***** BB02, stmt 6
[000016] ------------ * STMT void (IL 0x000... ???)
[000013] ------------ | /--* LCL_VAR long V02 tmp1
[000015] -A---------- \--* ASG long
[000014] D------N---- \--* LCL_VAR long V03 tmp2
------------ BB03 [000..001), preds={} succs={BB04}
***** BB03, stmt 7
[000060] ------------ * STMT void (IL 0x000... ???)
[000055] ---XG------- | /--* CAST int <- long
[000053] ---XG------- | | | /--* HWIntrinsic long PopCount
[000052] *--XG------- | | | | \--* IND long
[000049] ------------ | | | | | /--* CAST long <- int
[000048] ------------ | | | | | | \--* CNS_INT int 8
[000050] ------------ | | | | | /--* MUL long
[000047] ------------ | | | | | | \--* CAST long <- int
[000046] ------------ | | | | | | \--* CNS_INT int 3
[000051] ------------ | | | | \--* ADD long
[000045] ------------ | | | | \--* LCL_VAR long V03 tmp2
[000054] ---XG------- | | \--* ADD long
[000043] ---XG------- | | | /--* HWIntrinsic long PopCount
[000042] *--XG------- | | | | \--* IND long
[000039] ------------ | | | | | /--* CAST long <- int
[000038] ------------ | | | | | | \--* CNS_INT int 8
[000040] ------------ | | | | | /--* MUL long
[000037] ------------ | | | | | | \--* CAST long <- int
[000036] ------------ | | | | | | \--* CNS_INT int 2
[000041] ------------ | | | | \--* ADD long
[000035] ------------ | | | | \--* LCL_VAR long V03 tmp2
[000044] ---XG------- | | \--* ADD long
[000033] ---XG------- | | | /--* HWIntrinsic long PopCount
[000032] *--XG------- | | | | \--* IND long
[000030] ------------ | | | | | /--* CAST long <- int
[000029] ------------ | | | | | | \--* CNS_INT int 8
[000031] ------------ | | | | \--* ADD long
[000028] ------------ | | | | \--* LCL_VAR long V03 tmp2
[000034] ---XG------- | | \--* ADD long
[000027] ---XG------- | | \--* HWIntrinsic long PopCount
[000026] *--XG------- | | \--* IND long
[000025] ------------ | | \--* LCL_VAR long V03 tmp2
[000056] ---XG------- | /--* SUB int
[000024] ------------ | | \--* LCL_VAR int V04 tmp3
[000059] -A-XG------- \--* ASG int
[000058] D------N---- \--* LCL_VAR int V04 tmp3
***** BB03, stmt 8
[000070] ------------ * STMT void (IL 0x000... ???)
[000065] ------------ | /--* CAST long <- int
[000064] ------------ | | \--* CNS_INT int 8
[000066] ------------ | /--* MUL long
[000063] ------------ | | \--* CAST long <- int
[000062] ------------ | | \--* CNS_INT int 4
[000067] ------------ | /--* ADD long
[000061] ------------ | | \--* LCL_VAR long V03 tmp2
[000069] -A---------- \--* ASG long
[000068] D------N---- \--* LCL_VAR long V03 tmp2
------------ BB04 [000..001) -> BB03 (cond), preds={} succs={BB05,BB03}
***** BB04, stmt 9
[000022] ------------ * STMT void (IL 0x000... ???)
[000021] ------------ \--* JTRUE void
[000019] ------------ | /--* CNS_INT int 256
[000020] ------------ \--* GE int
[000018] ------------ \--* LCL_VAR int V04 tmp3
------------ BB05 [000..001) -> BB07 (always), preds={} succs={BB07}
***** BB05, stmt 10
[000075] ------------ * STMT void (IL 0x000... ???)
[000072] ------------ | /--* LCL_VAR int V04 tmp3
[000074] -A---------- \--* ASG int
[000073] D------N---- \--* LCL_VAR int V05 tmp4
------------ BB06 [000..001), preds={} succs={BB07}
***** BB06, stmt 11
[000086] ------------ * STMT void (IL 0x000... ???)
[000083] ------------ | /--* LCL_VAR int V04 tmp3
[000085] -A---------- \--* ASG int
[000084] D------N---- \--* LCL_VAR int V05 tmp4
***** BB06, stmt 12
[000096] ------------ * STMT void (IL 0x000... ???)
[000091] ---XG------- | /--* CAST int <- long
[000090] ---XG------- | | \--* HWIntrinsic long PopCount
[000089] *--XG------- | | \--* IND long
[000088] ------------ | | \--* LCL_VAR long V03 tmp2
[000092] ---XG------- | /--* SUB int
[000087] ------------ | | \--* LCL_VAR int V04 tmp3
[000095] -A-XG------- \--* ASG int
[000094] D------N---- \--* LCL_VAR int V04 tmp3
***** BB06, stmt 13
[000103] ------------ * STMT void (IL 0x000... ???)
[000099] ------------ | /--* CAST long <- int
[000098] ------------ | | \--* CNS_INT int 8
[000100] ------------ | /--* ADD long
[000097] ------------ | | \--* LCL_VAR long V03 tmp2
[000102] -A---------- \--* ASG long
[000101] D------N---- \--* LCL_VAR long V03 tmp2
------------ BB07 [000..001) -> BB06 (cond), preds={} succs={BB08,BB06}
***** BB07, stmt 14
[000081] ------------ * STMT void (IL 0x000... ???)
[000080] ------------ \--* JTRUE void
[000078] ------------ | /--* CNS_INT int 0
[000079] ------------ \--* GT int
[000077] ------------ \--* LCL_VAR int V04 tmp3
------------ BB08 [000..001), preds={} succs={BB09}
***** BB08, stmt 15
[000111] ------------ * STMT void (IL 0x000... ???)
[000107] ------------ | /--* CAST long <- int
[000106] ------------ | | \--* CNS_INT int 8
[000108] ------------ | /--* SUB long
[000105] ------------ | | \--* LCL_VAR long V03 tmp2
[000110] -A---------- \--* ASG long
[000109] D------N---- \--* LCL_VAR long V03 tmp2
***** BB08, stmt 16
[000127] ------------ * STMT void (IL 0x000... ???)
[000124] ---XG------- | /--* CAST int <- long
[000123] ---XG------- | | \--* HWIntrinsic long TrailingZeroCount
[000121] *--XG------- | | | /--* IND long
[000120] ------------ | | | | \--* LCL_VAR long V03 tmp2
[000122] ---XG------- | | \--* HWIntrinsic long ParallelBitDeposit
[000117] ------------ | | | /--* CNS_INT int 63
[000118] ------------ | | | /--* AND int
[000115] ------------ | | | | | /--* CNS_INT int 1
[000116] ------------ | | | | \--* SUB int
[000114] ------------ | | | | \--* LCL_VAR int V05 tmp4
[000119] ------------ | | \--* LSH long
[000113] ------------ | | \--* CAST long <- int
[000112] ------------ | | \--* CNS_INT int 1
[000126] -A-XG------- \--* ASG int
[000125] D------N---- \--* LCL_VAR int V06 tmp5
------------ BB09 [???..???) (return), preds={} succs={}
***** BB09, stmt 17
[000011] ------------ * STMT void (IL ???... ???)
[000010] --C--------- \--* RETURN int
[000138] ------------ | /--* LCL_VAR int V06 tmp5
[000139] ---X-------- \--* ADD int
[000137] ---X-------- \--* CAST int <- long
[000135] ------------ | /--* CAST long <- int
[000134] ------------ | | \--* CNS_INT int 64
[000136] ---X-------- \--* MUL long
[000132] ------------ | /--* CAST long <- int
[000131] ------------ | | \--* CNS_INT int 8
[000133] ---X-------- \--* DIV long
[000129] ------------ | /--* LCL_VAR long V02 tmp1
[000130] ------------ \--* SUB long
[000128] ------------ \--* LCL_VAR long V03 tmp2
-------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
**************** Inline Tree
Inlines into 06000007 Program:IntrinsicsUnrolled(int):int
[1 IL=0011 TR=000004 06000008] [aggressive inline attribute] GetNthBitOffset:IntrinsicsUnrolled(long,int,int):int
Budget: initialTime=111, finalTime=365, initialBudget=1110, currentBudget=1364
Budget: increased by 254 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 (always) i
BB06 [0005] 1 0.50 [000..001) i bwd
BB07 [0006] 2 0.50 [000..001)-> BB06 ( cond ) i bwd
BB08 [0007] 1 1 [000..001) i
BB09 [0008] 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 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 int
*************** In fgMarkAddressExposedLocals()
*************** In fgMorphBlocks()
Morphing BB01 of 'Program:IntrinsicsUnrolled(int):int'
fgMorphTree BB01, stmt 1 (before)
[000001] ----G------- /--* FIELD long _bits
[000141] -A--G------- * ASG long
[000140] D------N---- \--* LCL_VAR long V02 tmp1
fgMorphTree BB01, stmt 1 (after)
[000001] x---G+------ /--* IND long
[000159] -----+------ | \--* CNS_INT(h) long 0x7f08ab884498 static Fseq[_bits]
[000141] -A--G+------ * ASG long
[000140] D----+-N---- \--* LCL_VAR long V02 tmp1
fgMorphTree BB01, stmt 2 (before)
[000003] ------------ /--* LCL_VAR int V00 arg0
[000144] -A---------- * ASG int
[000143] D------N---- \--* LCL_VAR int V04 tmp3
GenTreeNode creates assertion:
[000144] -A---------- * ASG int
In BB01 New Local Copy Assertion: V04 == V00 index=#01, mask=0000000000000001
fgMorphTree BB01, stmt 3 (before)
[000146] ------------ /--* CNS_INT long 0
[000148] -A---------- * ASG long
[000147] D------N---- \--* LCL_VAR long V03 tmp2
GenTreeNode creates assertion:
[000148] -A---------- * ASG long
In BB01 New Local Constant Assertion: V03 == 0 index=#02, mask=0000000000000002
fgMorphTree BB01, stmt 4 (before)
[000150] ------------ /--* CNS_INT int 0
[000152] -A---------- * ASG int
[000151] D------N---- \--* LCL_VAR int V05 tmp4
GenTreeNode creates assertion:
[000152] -A---------- * ASG int
In BB01 New Local Constant Assertion: V05 == 0 index=#03, mask=0000000000000004
fgMorphTree BB01, stmt 5 (before)
[000154] ------------ /--* CNS_INT int 0
[000156] -A---------- * ASG int
[000155] D------N---- \--* LCL_VAR int V06 tmp5
GenTreeNode creates assertion:
[000156] -A---------- * ASG int
In BB01 New Local Constant Assertion: V06 == 0 index=#04, mask=0000000000000008
Morphing BB02 of 'Program:IntrinsicsUnrolled(int):int'
fgMorphTree BB02, stmt 6 (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
Morphing BB03 of 'Program:IntrinsicsUnrolled(int):int'
fgMorphTree BB03, stmt 7 (before)
[000055] ---XG------- /--* CAST int <- long
[000053] ---XG------- | | /--* HWIntrinsic long PopCount
[000052] *--XG------- | | | \--* IND long
[000049] ------------ | | | | /--* CAST long <- int
[000048] ------------ | | | | | \--* CNS_INT int 8
[000050] ------------ | | | | /--* MUL long
[000047] ------------ | | | | | \--* CAST long <- int
[000046] ------------ | | | | | \--* CNS_INT int 3
[000051] ------------ | | | \--* ADD long
[000045] ------------ | | | \--* LCL_VAR long V03 tmp2
[000054] ---XG------- | \--* ADD long
[000043] ---XG------- | | /--* HWIntrinsic long PopCount
[000042] *--XG------- | | | \--* IND long
[000039] ------------ | | | | /--* CAST long <- int
[000038] ------------ | | | | | \--* CNS_INT int 8
[000040] ------------ | | | | /--* MUL long
[000037] ------------ | | | | | \--* CAST long <- int
[000036] ------------ | | | | | \--* CNS_INT int 2
[000041] ------------ | | | \--* ADD long
[000035] ------------ | | | \--* LCL_VAR long V03 tmp2
[000044] ---XG------- | \--* ADD long
[000033] ---XG------- | | /--* HWIntrinsic long PopCount
[000032] *--XG------- | | | \--* IND long
[000030] ------------ | | | | /--* CAST long <- int
[000029] ------------ | | | | | \--* CNS_INT int 8
[000031] ------------ | | | \--* ADD long
[000028] ------------ | | | \--* LCL_VAR long V03 tmp2
[000034] ---XG------- | \--* ADD long
[000027] ---XG------- | \--* HWIntrinsic long PopCount
[000026] *--XG------- | \--* IND long
[000025] ------------ | \--* LCL_VAR long V03 tmp2
[000056] ---XG------- /--* SUB int
[000024] ------------ | \--* LCL_VAR int V04 tmp3
[000059] -A-XG------- * ASG int
[000058] D------N---- \--* LCL_VAR int V04 tmp3
Folding long operator with constant nodes into a constant:
[000030] ------------ * CAST long <- int
[000029] -----+------ \--* CNS_INT int 8
Bashed to long constant:
[000030] ------------ * CNS_INT long 8
Folding long operator with constant nodes into a constant:
[000037] ------------ * CAST long <- int
[000036] -----+------ \--* CNS_INT int 2
Bashed to long constant:
[000037] ------------ * CNS_INT long 2
Folding long operator with constant nodes into a constant:
[000039] ------------ * CAST long <- int
[000038] -----+------ \--* CNS_INT int 8
Bashed to long constant:
[000039] ------------ * CNS_INT long 8
Folding long operator with constant nodes into a constant:
[000039] -----+------ /--* CNS_INT long 8
[000040] ------------ * MUL long
[000037] -----+------ \--* CNS_INT long 2
Bashed to long constant:
[000040] ------------ * CNS_INT long 16
Folding long operator with constant nodes into a constant:
[000047] ------------ * CAST long <- int
[000046] -----+------ \--* CNS_INT int 3
Bashed to long constant:
[000047] ------------ * CNS_INT long 3
Folding long operator with constant nodes into a constant:
[000049] ------------ * CAST long <- int
[000048] -----+------ \--* CNS_INT int 8
Bashed to long constant:
[000049] ------------ * CNS_INT long 8
Folding long operator with constant nodes into a constant:
[000049] -----+------ /--* CNS_INT long 8
[000050] ------------ * MUL long
[000047] -----+------ \--* CNS_INT long 3
Bashed to long constant:
[000050] ------------ * CNS_INT long 24
fgMorphTree BB03, stmt 7 (after)
[000161] ---XG+------ /--* CAST int <- long
[000053] ---XG+------ | \--* HWIntrinsic long PopCount
[000052] *--XG+------ | \--* IND long
[000050] -----+------ | | /--* CNS_INT long 24
[000051] -----+------ | \--* ADD long
[000045] -----+------ | \--* LCL_VAR long V03 tmp2
[000054] ---XG+------ /--* ADD int
[000163] ---XG+------ | | /--* CAST int <- long
[000043] ---XG+------ | | | \--* HWIntrinsic long PopCount
[000042] *--XG+------ | | | \--* IND long
[000040] -----+------ | | | | /--* CNS_INT long 16
[000041] -----+------ | | | \--* ADD long
[000035] -----+------ | | | \--* LCL_VAR long V03 tmp2
[000044] ---XG+------ | \--* ADD int
[000165] ---XG+------ | | /--* CAST int <- long
[000033] ---XG+------ | | | \--* HWIntrinsic long PopCount
[000032] *--XG+------ | | | \--* IND long
[000030] -----+------ | | | | /--* CNS_INT long 8
[000031] -----+------ | | | \--* ADD long
[000028] -----+------ | | | \--* LCL_VAR long V03 tmp2
[000034] ---XG+------ | \--* ADD int
[000164] ---XG+------ | \--* CAST int <- long
[000027] ---XG+------ | \--* HWIntrinsic long PopCount
[000026] *--XG+------ | \--* IND long
[000025] -----+------ | \--* LCL_VAR long V03 tmp2
[000056] ---XG+------ /--* SUB int
[000024] -----+------ | \--* LCL_VAR int V04 tmp3
[000059] -A-XG+------ * ASG int
[000058] D----+-N---- \--* LCL_VAR int V04 tmp3
fgMorphTree BB03, stmt 8 (before)
[000065] ------------ /--* CAST long <- int
[000064] ------------ | \--* CNS_INT int 8
[000066] ------------ /--* MUL long
[000063] ------------ | \--* CAST long <- int
[000062] ------------ | \--* CNS_INT int 4
[000067] ------------ /--* ADD long
[000061] ------------ | \--* LCL_VAR long V03 tmp2
[000069] -A---------- * ASG long
[000068] D------N---- \--* LCL_VAR long V03 tmp2
Folding long operator with constant nodes into a constant:
[000063] ------------ * CAST long <- int
[000062] -----+------ \--* CNS_INT int 4
Bashed to long constant:
[000063] ------------ * CNS_INT long 4
Folding long operator with constant nodes into a constant:
[000065] ------------ * CAST long <- int
[000064] -----+------ \--* CNS_INT int 8
Bashed to long constant:
[000065] ------------ * CNS_INT long 8
Folding long operator with constant nodes into a constant:
[000065] -----+------ /--* CNS_INT long 8
[000066] ------------ * MUL long
[000063] -----+------ \--* CNS_INT long 4
Bashed to long constant:
[000066] ------------ * CNS_INT long 32
fgMorphTree BB03, stmt 8 (after)
[000066] -----+------ /--* CNS_INT long 32
[000067] -----+------ /--* ADD long
[000061] -----+------ | \--* LCL_VAR long V03 tmp2
[000069] -A---+------ * ASG long
[000068] D----+-N---- \--* LCL_VAR long V03 tmp2
Morphing BB04 of 'Program:IntrinsicsUnrolled(int):int'
fgMorphTree BB04, stmt 9 (before)
[000021] ------------ * JTRUE void
[000019] ------------ | /--* CNS_INT int 256
[000020] ------------ \--* GE int
[000018] ------------ \--* LCL_VAR int V04 tmp3
Morphing BB05 of 'Program:IntrinsicsUnrolled(int):int'
fgMorphTree BB05, stmt 10 (before)
[000072] ------------ /--* LCL_VAR int V04 tmp3
[000074] -A---------- * ASG int
[000073] D------N---- \--* LCL_VAR int V05 tmp4
GenTreeNode creates assertion:
[000074] -A---------- * ASG int
In BB05 New Local Copy Assertion: V05 == V04 index=#01, mask=0000000000000001
Morphing BB06 of 'Program:IntrinsicsUnrolled(int):int'
fgMorphTree BB06, stmt 11 (before)
[000083] ------------ /--* LCL_VAR int V04 tmp3
[000085] -A---------- * ASG int
[000084] D------N---- \--* LCL_VAR int V05 tmp4
GenTreeNode creates assertion:
[000085] -A---------- * ASG int
In BB06 New Local Copy Assertion: V05 == V04 index=#01, mask=0000000000000001
fgMorphTree BB06, stmt 12 (before)
[000091] ---XG------- /--* CAST int <- long
[000090] ---XG------- | \--* HWIntrinsic long PopCount
[000089] *--XG------- | \--* IND long
[000088] ------------ | \--* LCL_VAR long V03 tmp2
[000092] ---XG------- /--* SUB int
[000087] ------------ | \--* LCL_VAR int V04 tmp3
[000095] -A-XG------- * ASG int
[000094] D------N---- \--* LCL_VAR int V04 tmp3
The assignment [000095] using V05 removes: Copy Assertion: V05 == V04
fgMorphTree BB06, stmt 13 (before)
[000099] ------------ /--* CAST long <- int
[000098] ------------ | \--* CNS_INT int 8
[000100] ------------ /--* ADD long
[000097] ------------ | \--* LCL_VAR long V03 tmp2
[000102] -A---------- * ASG long
[000101] D------N---- \--* LCL_VAR long V03 tmp2
Folding long operator with constant nodes into a constant:
[000099] ------------ * CAST long <- int
[000098] -----+------ \--* CNS_INT int 8
Bashed to long constant:
[000099] ------------ * CNS_INT long 8
fgMorphTree BB06, stmt 13 (after)
[000099] -----+------ /--* CNS_INT long 8
[000100] -----+------ /--* ADD long
[000097] -----+------ | \--* LCL_VAR long V03 tmp2
[000102] -A---+------ * ASG long
[000101] D----+-N---- \--* LCL_VAR long V03 tmp2
Morphing BB07 of 'Program:IntrinsicsUnrolled(int):int'
fgMorphTree BB07, stmt 14 (before)
[000080] ------------ * JTRUE void
[000078] ------------ | /--* CNS_INT int 0
[000079] ------------ \--* GT int
[000077] ------------ \--* LCL_VAR int V04 tmp3
Morphing BB08 of 'Program:IntrinsicsUnrolled(int):int'
fgMorphTree BB08, stmt 15 (before)
[000107] ------------ /--* CAST long <- int
[000106] ------------ | \--* CNS_INT int 8
[000108] ------------ /--* SUB long
[000105] ------------ | \--* LCL_VAR long V03 tmp2
[000110] -A---------- * ASG long
[000109] D------N---- \--* LCL_VAR long V03 tmp2
Folding long operator with constant nodes into a constant:
[000107] ------------ * CAST long <- int
[000106] -----+------ \--* CNS_INT int 8
Bashed to long constant:
[000107] ------------ * CNS_INT long 8
fgMorphTree BB08, stmt 15 (after)
[000107] -----+------ /--* CNS_INT long -8
[000108] -----+------ /--* ADD long
[000105] -----+------ | \--* LCL_VAR long V03 tmp2
[000110] -A---+------ * ASG long
[000109] D----+-N---- \--* LCL_VAR long V03 tmp2
fgMorphTree BB08, stmt 16 (before)
[000124] ---XG------- /--* CAST int <- long
[000123] ---XG------- | \--* HWIntrinsic long TrailingZeroCount
[000121] *--XG------- | | /--* IND long
[000120] ------------ | | | \--* LCL_VAR long V03 tmp2
[000122] ---XG------- | \--* HWIntrinsic long ParallelBitDeposit
[000117] ------------ | | /--* CNS_INT int 63
[000118] ------------ | | /--* AND int
[000115] ------------ | | | | /--* CNS_INT int 1
[000116] ------------ | | | \--* SUB int
[000114] ------------ | | | \--* LCL_VAR int V05 tmp4
[000119] ------------ | \--* LSH long
[000113] ------------ | \--* CAST long <- int
[000112] ------------ | \--* CNS_INT int 1
[000126] -A-XG------- * ASG int
[000125] D------N---- \--* LCL_VAR int V06 tmp5
Folding long operator with constant nodes into a constant:
[000113] ------------ * CAST long <- int
[000112] -----+------ \--* CNS_INT int 1
Bashed to long constant:
[000113] ------------ * CNS_INT long 1
GenTreeNode creates assertion:
[000126] -A-XG------- * ASG int
In BB08 New Local Subrange Assertion: V06 in [-2147483648..2147483647] index=#01, mask=0000000000000001
fgMorphTree BB08, stmt 16 (after)
[000124] ---XG+------ /--* CAST int <- long
[000123] ---XG+------ | \--* HWIntrinsic long TrailingZeroCount
[000121] *--XG+------ | | /--* IND long
[000120] -----+------ | | | \--* LCL_VAR long V03 tmp2
[000122] ---XG+------ | \--* HWIntrinsic long ParallelBitDeposit
[000117] -----+------ | | /--* CNS_INT int 63
[000118] -----+------ | | /--* AND int
[000115] -----+------ | | | | /--* CNS_INT int -1
[000116] -----+------ | | | \--* ADD int
[000114] -----+------ | | | \--* LCL_VAR int V05 tmp4
[000119] -----+------ | \--* LSH long
[000113] -----+------ | \--* CNS_INT long 1
[000126] -A-XG+------ * ASG int
[000125] D----+-N---- \--* LCL_VAR int V06 tmp5
Morphing BB09 of 'Program:IntrinsicsUnrolled(int):int'
fgMorphTree BB09, stmt 17 (before)
[000010] --C--------- * RETURN int
[000138] ------------ | /--* LCL_VAR int V06 tmp5
[000139] ---X-------- \--* ADD int
[000137] ---X-------- \--* CAST int <- long
[000135] ------------ | /--* CAST long <- int
[000134] ------------ | | \--* CNS_INT int 64
[000136] ---X-------- \--* MUL long
[000132] ------------ | /--* CAST long <- int
[000131] ------------ | | \--* CNS_INT int 8
[000133] ---X-------- \--* DIV long
[000129] ------------ | /--* LCL_VAR long V02 tmp1
[000130] ------------ \--* SUB long
[000128] ------------ \--* LCL_VAR long V03 tmp2
Folding long operator with constant nodes into a constant:
[000132] ------------ * CAST long <- int
[000131] ------------ \--* CNS_INT int 8
Bashed to long constant:
[000132] ------------ * CNS_INT long 8
Folding long operator with constant nodes into a constant:
[000135] ------------ * CAST long <- int
[000134] -----+------ \--* CNS_INT int 64
Bashed to long constant:
[000135] ------------ * CNS_INT long 64
fgMorphTree BB09, stmt 17 (after)
[000010] -----+------ * RETURN int
[000138] -----+------ | /--* LCL_VAR int V06 tmp5
[000139] -----+------ \--* ADD int
[000135] -----+------ | /--* CNS_INT int 6
[000136] -----+------ \--* LSH int
[000166] -----+------ \--* CAST int <- long
[000132] -----+------ | /--* CNS_INT long 8
[000133] -----+------ \--* DIV long
[000129] -----+------ | /--* LCL_VAR long V02 tmp1
[000130] -----+------ \--* SUB long
[000128] -----+------ \--* LCL_VAR long V03 tmp2
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 (always) i
BB06 [0005] 1 0.50 [000..001) i bwd
BB07 [0006] 2 0.50 [000..001)-> BB06 ( cond ) i bwd
BB08 [0007] 1 1 [000..001) i
BB09 [0008] 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): 10, 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 (always) i
BB06 [0005] 1 0.50 [000..001) i bwd
BB07 [0006] 2 0.50 [000..001)-> BB06 ( cond ) i bwd
BB08 [0007] 1 1 [000..001) i
BB09 [0008] 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 (always) i
BB06 [0005] 1 BB07 0.50 [000..001) i label target bwd
BB07 [0006] 2 BB05,BB06 0.50 [000..001)-> BB06 ( cond ) i label target bwd
BB08 [0007] 1 BB07 1 [000..001) i
BB09 [0008] 1 BB08 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 (always) i
BB06 [0005] 1 BB07 0.50 [000..001) i label target bwd
BB07 [0006] 2 BB05,BB06 0.50 [000..001)-> BB06 ( cond ) i label target bwd
BB08 [0007] 1 BB07 1 [000..001) i
BB09 [0008] 1 BB08 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 (always) i
BB06 [0005] 1 BB07 0.50 [000..001) i label target bwd
BB07 [0006] 2 BB05,BB06 0.50 [000..001)-> BB06 ( cond ) i label target bwd
BB08 [0007] 1 BB07 1 [000..001) i
BB09 [0008] 1 BB08 1 [???..???) (return) internal
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
*************** In fgDebugCheckBBlist
*************** In optOptimizeLayout()
*************** Exception Handling table is empty
*************** In fgDebugCheckBBlist
Duplication of loop condition [000020] is performed, because the cost of duplication (7) 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 7
[000172] ------------ * STMT void (IL 0x000... ???)
[000171] ------------ \--* JTRUE void
( 1, 4) [000170] ------------ | /--* CNS_INT int 256
( 5, 7) [000168] J------N---- \--* LT int
( 3, 2) [000169] ------------ \--* LCL_VAR int V04 tmp3
Duplication of loop condition [000079] 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 BB05 for loop (BB06 - BB07)
Estimated code size expansion is 4
[000177] ------------ * STMT void (IL 0x000... ???)
[000176] ------------ \--* JTRUE void
( 1, 1) [000175] ------------ | /--* CNS_INT int 0
( 5, 4) [000173] J------N---- \--* LE int
( 3, 2) [000174] ------------ \--* LCL_VAR int V04 tmp3
*************** 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)-> BB08 ( cond ) i label target
BB06 [0005] 2 BB05,BB07 0.50 [000..001) i label target bwd
BB07 [0006] 1 BB06 0.50 [000..001)-> BB06 ( cond ) i label target bwd
BB08 [0007] 2 BB05,BB07 1 [000..001) i label target
BB09 [0008] 1 BB08 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)-> BB08 ( cond ) i label target
BB06 [0005] 2 BB05,BB07 0.50 [000..001) i label target bwd
BB07 [0006] 1 BB06 0.50 [000..001)-> BB06 ( cond ) i label target bwd
BB08 [0007] 2 BB05,BB07 1 [000..001) i label target
BB09 [0008] 1 BB08 1 [???..???) (return) internal
--------------------------------------------------------------------------------------------------------------------------------------
Compacting blocks BB01 and BB02:
*************** In fgDebugCheckBBlist
Compacting blocks BB03 and BB04:
*************** In fgDebugCheckBBlist
Compacting blocks BB06 and BB07:
*************** In fgDebugCheckBBlist
Compacting blocks BB08 and BB09:
*************** 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)-> BB08 ( cond ) i label target
BB06 [0005] 2 BB05,BB06 0.50 [000..001)-> BB06 ( cond ) i label target bwd
BB08 [0007] 2 BB05,BB06 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)-> BB08 ( cond ) i label target
BB06 [0005] 2 BB05,BB06 0.50 [000..001)-> BB06 ( cond ) i label target bwd
BB08 [0007] 2 BB05,BB06 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)-> BB08 ( cond ) i label target
BB06 [0005] 2 BB05,BB06 0.50 [000..001)-> BB06 ( cond ) i label target bwd
BB08 [0007] 2 BB05,BB06 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)-> BB08 ( cond ) i label target
BB06 [0005] 2 BB05,BB06 0.50 [000..001)-> BB06 ( cond ) i label target bwd
BB08 [0007] 2 BB05,BB06 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 BB08 to BB05
*************** 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] 2 BB03,BB04 0.50 [000..001)-> BB04 ( cond ) i label target bwd
BB05 [0007] 2 BB03,BB04 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
New BlockSet epoch 3, # of blocks (including unused BB00): 6, 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
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] 2 BB03,BB04 0.50 [000..001)-> BB04 ( cond ) i Loop label target bwd
BB05 [0007] 2 BB03,BB04 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
Inside fgBuildDomTree
After computing the Dominance Tree:
BB01 : BB03 BB02
BB03 : BB05 BB04
*************** 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] 2 BB03,BB04 0.50 [000..001)-> BB04 ( cond ) i Loop label target bwd
BB05 [0007] 2 BB03,BB04 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
[000142] ------------ * STMT void (IL 0x000... ???)
[000001] x---G+------ | /--* IND long
[000159] -----+------ | | \--* CNS_INT(h) long 0x7f08ab884498 static Fseq[_bits]
[000141] -A--G+------ \--* ASG long
[000140] D----+-N---- \--* LCL_VAR long V02 tmp1
***** BB01, stmt 2
[000145] ------------ * STMT void (IL 0x000... ???)
[000003] -----+------ | /--* LCL_VAR int V00 arg0
[000144] -A---+------ \--* ASG int
[000143] D----+-N---- \--* LCL_VAR int V04 tmp3
***** BB01, stmt 3
[000149] ------------ * STMT void (IL 0x000... ???)
[000146] -----+------ | /--* CNS_INT long 0
[000148] -A---+------ \--* ASG long
[000147] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB01, stmt 4
[000153] ------------ * STMT void (IL 0x000... ???)
[000150] -----+------ | /--* CNS_INT int 0
[000152] -A---+------ \--* ASG int
[000151] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB01, stmt 5
[000157] ------------ * STMT void (IL 0x000... ???)
[000154] -----+------ | /--* CNS_INT int 0
[000156] -A---+------ \--* ASG int
[000155] D----+-N---- \--* LCL_VAR int V06 tmp5
***** BB01, stmt 6
[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 7
[000172] ------------ * STMT void (IL 0x000... ???)
[000171] ------------ \--* JTRUE void
( 1, 4) [000170] ------------ | /--* CNS_INT int 256
( 5, 7) [000168] J------N---- \--* LT int
( 3, 2) [000169] ------------ \--* LCL_VAR int V04 tmp3
------------ BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
***** BB02, stmt 8
[000060] ------------ * STMT void (IL 0x000... ???)
[000161] ---XG+------ | /--* CAST int <- long
[000053] ---XG+------ | | \--* HWIntrinsic long PopCount
[000052] *--XG+------ | | \--* IND long
[000050] -----+------ | | | /--* CNS_INT long 24
[000051] -----+------ | | \--* ADD long
[000045] -----+------ | | \--* LCL_VAR long V03 tmp2
[000054] ---XG+------ | /--* ADD int
[000163] ---XG+------ | | | /--* CAST int <- long
[000043] ---XG+------ | | | | \--* HWIntrinsic long PopCount
[000042] *--XG+------ | | | | \--* IND long
[000040] -----+------ | | | | | /--* CNS_INT long 16
[000041] -----+------ | | | | \--* ADD long
[000035] -----+------ | | | | \--* LCL_VAR long V03 tmp2
[000044] ---XG+------ | | \--* ADD int
[000165] ---XG+------ | | | /--* CAST int <- long
[000033] ---XG+------ | | | | \--* HWIntrinsic long PopCount
[000032] *--XG+------ | | | | \--* IND long
[000030] -----+------ | | | | | /--* CNS_INT long 8
[000031] -----+------ | | | | \--* ADD long
[000028] -----+------ | | | | \--* LCL_VAR long V03 tmp2
[000034] ---XG+------ | | \--* ADD int
[000164] ---XG+------ | | \--* CAST int <- long
[000027] ---XG+------ | | \--* HWIntrinsic long PopCount
[000026] *--XG+------ | | \--* IND long
[000025] -----+------ | | \--* LCL_VAR long V03 tmp2
[000056] ---XG+------ | /--* SUB int
[000024] -----+------ | | \--* LCL_VAR int V04 tmp3
[000059] -A-XG+------ \--* ASG int
[000058] D----+-N---- \--* LCL_VAR int V04 tmp3
***** BB02, stmt 9
[000070] ------------ * STMT void (IL 0x000... ???)
[000066] -----+------ | /--* CNS_INT long 32
[000067] -----+------ | /--* ADD long
[000061] -----+------ | | \--* LCL_VAR long V03 tmp2
[000069] -A---+------ \--* ASG long
[000068] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB02, stmt 10
[000022] ------------ * STMT void (IL 0x000... ???)
[000021] -----+------ \--* JTRUE void
( 1, 4) [000019] ------------ | /--* CNS_INT int 256
( 5, 7) [000020] J------N---- \--* GE int
( 3, 2) [000018] ------------ \--* LCL_VAR int V04 tmp3
------------ BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 11
[000075] ------------ * STMT void (IL 0x000... ???)
[000072] -----+------ | /--* LCL_VAR int V04 tmp3
[000074] -A---+------ \--* ASG int
[000073] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB03, stmt 12
[000177] ------------ * STMT void (IL 0x000... ???)
[000176] ------------ \--* JTRUE void
( 1, 1) [000175] ------------ | /--* CNS_INT int 0
( 5, 4) [000173] J------N---- \--* LE int
( 3, 2) [000174] ------------ \--* LCL_VAR int V04 tmp3
------------ BB04 [000..001) -> BB04 (cond), preds={BB03,BB04} succs={BB05,BB04}
***** BB04, stmt 13
[000086] ------------ * STMT void (IL 0x000... ???)
[000083] -----+------ | /--* LCL_VAR int V04 tmp3
[000085] -A---+------ \--* ASG int
[000084] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB04, stmt 14
[000096] ------------ * STMT void (IL 0x000... ???)
[000091] ---XG+------ | /--* CAST int <- long
[000090] ---XG+------ | | \--* HWIntrinsic long PopCount
[000089] *--XG+------ | | \--* IND long
[000088] -----+------ | | \--* LCL_VAR long V03 tmp2
[000092] ---XG+------ | /--* SUB int
[000087] -----+------ | | \--* LCL_VAR int V04 tmp3
[000095] -A-XG+------ \--* ASG int
[000094] D----+-N---- \--* LCL_VAR int V04 tmp3
***** BB04, stmt 15
[000103] ------------ * STMT void (IL 0x000... ???)
[000099] -----+------ | /--* CNS_INT long 8
[000100] -----+------ | /--* ADD long
[000097] -----+------ | | \--* LCL_VAR long V03 tmp2
[000102] -A---+------ \--* ASG long
[000101] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB04, stmt 16
[000081] ------------ * STMT void (IL 0x000... ???)
[000080] -----+------ \--* JTRUE void
( 1, 1) [000078] ------------ | /--* CNS_INT int 0
( 5, 4) [000079] J------N---- \--* GT int
( 3, 2) [000077] ------------ \--* LCL_VAR int V04 tmp3
------------ BB05 [000..001) (return), preds={BB03,BB04} succs={}
***** BB05, stmt 17
[000111] ------------ * STMT void (IL 0x000... ???)
[000107] -----+------ | /--* CNS_INT long -8
[000108] -----+------ | /--* ADD long
[000105] -----+------ | | \--* LCL_VAR long V03 tmp2
[000110] -A---+------ \--* ASG long
[000109] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB05, stmt 18
[000127] ------------ * STMT void (IL 0x000... ???)
[000124] ---XG+------ | /--* CAST int <- long
[000123] ---XG+------ | | \--* HWIntrinsic long TrailingZeroCount
[000121] *--XG+------ | | | /--* IND long
[000120] -----+------ | | | | \--* LCL_VAR long V03 tmp2
[000122] ---XG+------ | | \--* HWIntrinsic long ParallelBitDeposit
[000117] -----+------ | | | /--* CNS_INT int 63
[000118] -----+------ | | | /--* AND int
[000115] -----+------ | | | | | /--* CNS_INT int -1
[000116] -----+------ | | | | \--* ADD int
[000114] -----+------ | | | | \--* LCL_VAR int V05 tmp4
[000119] -----+------ | | \--* LSH long
[000113] -----+------ | | \--* CNS_INT long 1
[000126] -A-XG+------ \--* ASG int
[000125] D----+-N---- \--* LCL_VAR int V06 tmp5
***** BB05, stmt 19
[000011] ------------ * STMT void (IL ???... ???)
[000010] -----+------ \--* RETURN int
[000138] -----+------ | /--* LCL_VAR int V06 tmp5
[000139] -----+------ \--* ADD int
[000135] -----+------ | /--* CNS_INT int 6
[000136] -----+------ \--* LSH int
[000166] -----+------ \--* CAST int <- long
[000132] -----+------ | /--* CNS_INT long 8
[000133] -----+------ \--* DIV long
[000129] -----+------ | /--* LCL_VAR long V02 tmp1
[000130] -----+------ \--* SUB long
[000128] -----+------ \--* LCL_VAR long V03 tmp2
-------------------------------------------------------------------------------------------------------------------
*************** 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] 2 BB03,BB04 0.50 [000..001)-> BB04 ( cond ) i Loop label target bwd
BB05 [0007] 2 BB03,BB04 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
[000142] ------------ * STMT void (IL 0x000... ???)
[000001] x---G+------ | /--* IND long
[000159] -----+------ | | \--* CNS_INT(h) long 0x7f08ab884498 static Fseq[_bits]
[000141] -A--G+------ \--* ASG long
[000140] D----+-N---- \--* LCL_VAR long V02 tmp1
***** BB01, stmt 2
[000145] ------------ * STMT void (IL 0x000... ???)
[000003] -----+------ | /--* LCL_VAR int V00 arg0
[000144] -A---+------ \--* ASG int
[000143] D----+-N---- \--* LCL_VAR int V04 tmp3
***** BB01, stmt 3
[000149] ------------ * STMT void (IL 0x000... ???)
[000146] -----+------ | /--* CNS_INT long 0
[000148] -A---+------ \--* ASG long
[000147] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB01, stmt 4
[000153] ------------ * STMT void (IL 0x000... ???)
[000150] -----+------ | /--* CNS_INT int 0
[000152] -A---+------ \--* ASG int
[000151] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB01, stmt 5
[000157] ------------ * STMT void (IL 0x000... ???)
[000154] -----+------ | /--* CNS_INT int 0
[000156] -A---+------ \--* ASG int
[000155] D----+-N---- \--* LCL_VAR int V06 tmp5
***** BB01, stmt 6
[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 7
[000172] ------------ * STMT void (IL 0x000... ???)
[000171] ------------ \--* JTRUE void
( 1, 4) [000170] ------------ | /--* CNS_INT int 256
( 5, 7) [000168] J------N---- \--* LT int
( 3, 2) [000169] ------------ \--* LCL_VAR int V04 tmp3
------------ BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
***** BB02, stmt 8
[000060] ------------ * STMT void (IL 0x000... ???)
[000161] ---XG+------ | /--* CAST int <- long
[000053] ---XG+------ | | \--* HWIntrinsic long PopCount
[000052] *--XG+------ | | \--* IND long
[000050] -----+------ | | | /--* CNS_INT long 24
[000051] -----+------ | | \--* ADD long
[000045] -----+------ | | \--* LCL_VAR long V03 tmp2
[000054] ---XG+------ | /--* ADD int
[000163] ---XG+------ | | | /--* CAST int <- long
[000043] ---XG+------ | | | | \--* HWIntrinsic long PopCount
[000042] *--XG+------ | | | | \--* IND long
[000040] -----+------ | | | | | /--* CNS_INT long 16
[000041] -----+------ | | | | \--* ADD long
[000035] -----+------ | | | | \--* LCL_VAR long V03 tmp2
[000044] ---XG+------ | | \--* ADD int
[000165] ---XG+------ | | | /--* CAST int <- long
[000033] ---XG+------ | | | | \--* HWIntrinsic long PopCount
[000032] *--XG+------ | | | | \--* IND long
[000030] -----+------ | | | | | /--* CNS_INT long 8
[000031] -----+------ | | | | \--* ADD long
[000028] -----+------ | | | | \--* LCL_VAR long V03 tmp2
[000034] ---XG+------ | | \--* ADD int
[000164] ---XG+------ | | \--* CAST int <- long
[000027] ---XG+------ | | \--* HWIntrinsic long PopCount
[000026] *--XG+------ | | \--* IND long
[000025] -----+------ | | \--* LCL_VAR long V03 tmp2
[000056] ---XG+------ | /--* SUB int
[000024] -----+------ | | \--* LCL_VAR int V04 tmp3
[000059] -A-XG+------ \--* ASG int
[000058] D----+-N---- \--* LCL_VAR int V04 tmp3
***** BB02, stmt 9
[000070] ------------ * STMT void (IL 0x000... ???)
[000066] -----+------ | /--* CNS_INT long 32
[000067] -----+------ | /--* ADD long
[000061] -----+------ | | \--* LCL_VAR long V03 tmp2
[000069] -A---+------ \--* ASG long
[000068] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB02, stmt 10
[000022] ------------ * STMT void (IL 0x000... ???)
[000021] -----+------ \--* JTRUE void
( 1, 4) [000019] ------------ | /--* CNS_INT int 256
( 5, 7) [000020] J------N---- \--* GE int
( 3, 2) [000018] ------------ \--* LCL_VAR int V04 tmp3
------------ BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 11
[000075] ------------ * STMT void (IL 0x000... ???)
[000072] -----+------ | /--* LCL_VAR int V04 tmp3
[000074] -A---+------ \--* ASG int
[000073] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB03, stmt 12
[000177] ------------ * STMT void (IL 0x000... ???)
[000176] ------------ \--* JTRUE void
( 1, 1) [000175] ------------ | /--* CNS_INT int 0
( 5, 4) [000173] J------N---- \--* LE int
( 3, 2) [000174] ------------ \--* LCL_VAR int V04 tmp3
------------ BB04 [000..001) -> BB04 (cond), preds={BB03,BB04} succs={BB05,BB04}
***** BB04, stmt 13
[000086] ------------ * STMT void (IL 0x000... ???)
[000083] -----+------ | /--* LCL_VAR int V04 tmp3
[000085] -A---+------ \--* ASG int
[000084] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB04, stmt 14
[000096] ------------ * STMT void (IL 0x000... ???)
[000091] ---XG+------ | /--* CAST int <- long
[000090] ---XG+------ | | \--* HWIntrinsic long PopCount
[000089] *--XG+------ | | \--* IND long
[000088] -----+------ | | \--* LCL_VAR long V03 tmp2
[000092] ---XG+------ | /--* SUB int
[000087] -----+------ | | \--* LCL_VAR int V04 tmp3
[000095] -A-XG+------ \--* ASG int
[000094] D----+-N---- \--* LCL_VAR int V04 tmp3
***** BB04, stmt 15
[000103] ------------ * STMT void (IL 0x000... ???)
[000099] -----+------ | /--* CNS_INT long 8
[000100] -----+------ | /--* ADD long
[000097] -----+------ | | \--* LCL_VAR long V03 tmp2
[000102] -A---+------ \--* ASG long
[000101] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB04, stmt 16
[000081] ------------ * STMT void (IL 0x000... ???)
[000080] -----+------ \--* JTRUE void
( 1, 1) [000078] ------------ | /--* CNS_INT int 0
( 5, 4) [000079] J------N---- \--* GT int
( 3, 2) [000077] ------------ \--* LCL_VAR int V04 tmp3
------------ BB05 [000..001) (return), preds={BB03,BB04} succs={}
***** BB05, stmt 17
[000111] ------------ * STMT void (IL 0x000... ???)
[000107] -----+------ | /--* CNS_INT long -8
[000108] -----+------ | /--* ADD long
[000105] -----+------ | | \--* LCL_VAR long V03 tmp2
[000110] -A---+------ \--* ASG long
[000109] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB05, stmt 18
[000127] ------------ * STMT void (IL 0x000... ???)
[000124] ---XG+------ | /--* CAST int <- long
[000123] ---XG+------ | | \--* HWIntrinsic long TrailingZeroCount
[000121] *--XG+------ | | | /--* IND long
[000120] -----+------ | | | | \--* LCL_VAR long V03 tmp2
[000122] ---XG+------ | | \--* HWIntrinsic long ParallelBitDeposit
[000117] -----+------ | | | /--* CNS_INT int 63
[000118] -----+------ | | | /--* AND int
[000115] -----+------ | | | | | /--* CNS_INT int -1
[000116] -----+------ | | | | \--* ADD int
[000114] -----+------ | | | | \--* LCL_VAR int V05 tmp4
[000119] -----+------ | | \--* LSH long
[000113] -----+------ | | \--* CNS_INT long 1
[000126] -A-XG+------ \--* ASG int
[000125] D----+-N---- \--* LCL_VAR int V06 tmp5
***** BB05, stmt 19
[000011] ------------ * STMT void (IL ???... ???)
[000010] -----+------ \--* RETURN int
[000138] -----+------ | /--* LCL_VAR int V06 tmp5
[000139] -----+------ \--* ADD int
[000135] -----+------ | /--* CNS_INT int 6
[000136] -----+------ \--* LSH int
[000166] -----+------ \--* CAST int <- long
[000132] -----+------ | /--* CNS_INT long 8
[000133] -----+------ \--* DIV long
[000129] -----+------ | /--* LCL_VAR long V02 tmp1
[000130] -----+------ \--* SUB long
[000128] -----+------ \--* LCL_VAR long V03 tmp2
-------------------------------------------------------------------------------------------------------------------
*************** 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] 2 BB03,BB04 0.25 [000..001)-> BB04 ( cond ) i Loop label target bwd
BB05 [0007] 2 BB03,BB04 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 BB04 to BB04 (Head=BB03, Entry=BB04, ExitCnt=1 at BB04)
Final natural loop table:
L00, from BB02 to BB02 (Head=BB01, Entry=BB02, ExitCnt=1 at BB02)
L01, from BB04 to BB04 (Head=BB03, Entry=BB04, ExitCnt=1 at BB04)
Marking loop L01
BB02(wt=2 )
Marking loop L02
BB04(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] 2 BB03,BB04 2 [000..001)-> BB04 ( cond ) i Loop label target bwd
BB05 [0007] 2 BB03,BB04 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] 2 BB03,BB04 2 [000..001)-> BB04 ( cond ) i Loop label target bwd
BB05 [0007] 2 BB03,BB04 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
[000142] ------------ * STMT void (IL 0x000... ???)
[000001] x---G+------ | /--* IND long
[000159] -----+------ | | \--* CNS_INT(h) long 0x7f08ab884498 static Fseq[_bits]
[000141] -A--G+------ \--* ASG long
[000140] D----+-N---- \--* LCL_VAR long V02 tmp1
***** BB01, stmt 2
[000145] ------------ * STMT void (IL 0x000... ???)
[000003] -----+------ | /--* LCL_VAR int V00 arg0
[000144] -A---+------ \--* ASG int
[000143] D----+-N---- \--* LCL_VAR int V04 tmp3
***** BB01, stmt 3
[000149] ------------ * STMT void (IL 0x000... ???)
[000146] -----+------ | /--* CNS_INT long 0
[000148] -A---+------ \--* ASG long
[000147] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB01, stmt 4
[000153] ------------ * STMT void (IL 0x000... ???)
[000150] -----+------ | /--* CNS_INT int 0
[000152] -A---+------ \--* ASG int
[000151] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB01, stmt 5
[000157] ------------ * STMT void (IL 0x000... ???)
[000154] -----+------ | /--* CNS_INT int 0
[000156] -A---+------ \--* ASG int
[000155] D----+-N---- \--* LCL_VAR int V06 tmp5
***** BB01, stmt 6
[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 7
[000172] ------------ * STMT void (IL 0x000... ???)
[000171] ------------ \--* JTRUE void
( 1, 4) [000170] ------------ | /--* CNS_INT int 256
( 5, 7) [000168] J------N---- \--* LT int
( 3, 2) [000169] ------------ \--* LCL_VAR int V04 tmp3
------------ BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
***** BB02, stmt 8
[000060] ------------ * STMT void (IL 0x000... ???)
[000161] ---XG+------ | /--* CAST int <- long
[000053] ---XG+------ | | \--* HWIntrinsic long PopCount
[000052] *--XG+------ | | \--* IND long
[000050] -----+------ | | | /--* CNS_INT long 24
[000051] -----+------ | | \--* ADD long
[000045] -----+------ | | \--* LCL_VAR long V03 tmp2
[000054] ---XG+------ | /--* ADD int
[000163] ---XG+------ | | | /--* CAST int <- long
[000043] ---XG+------ | | | | \--* HWIntrinsic long PopCount
[000042] *--XG+------ | | | | \--* IND long
[000040] -----+------ | | | | | /--* CNS_INT long 16
[000041] -----+------ | | | | \--* ADD long
[000035] -----+------ | | | | \--* LCL_VAR long V03 tmp2
[000044] ---XG+------ | | \--* ADD int
[000165] ---XG+------ | | | /--* CAST int <- long
[000033] ---XG+------ | | | | \--* HWIntrinsic long PopCount
[000032] *--XG+------ | | | | \--* IND long
[000030] -----+------ | | | | | /--* CNS_INT long 8
[000031] -----+------ | | | | \--* ADD long
[000028] -----+------ | | | | \--* LCL_VAR long V03 tmp2
[000034] ---XG+------ | | \--* ADD int
[000164] ---XG+------ | | \--* CAST int <- long
[000027] ---XG+------ | | \--* HWIntrinsic long PopCount
[000026] *--XG+------ | | \--* IND long
[000025] -----+------ | | \--* LCL_VAR long V03 tmp2
[000056] ---XG+------ | /--* SUB int
[000024] -----+------ | | \--* LCL_VAR int V04 tmp3
[000059] -A-XG+------ \--* ASG int
[000058] D----+-N---- \--* LCL_VAR int V04 tmp3
***** BB02, stmt 9
[000070] ------------ * STMT void (IL 0x000... ???)
[000066] -----+------ | /--* CNS_INT long 32
[000067] -----+------ | /--* ADD long
[000061] -----+------ | | \--* LCL_VAR long V03 tmp2
[000069] -A---+------ \--* ASG long
[000068] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB02, stmt 10
[000022] ------------ * STMT void (IL 0x000... ???)
[000021] -----+------ \--* JTRUE void
( 1, 4) [000019] ------------ | /--* CNS_INT int 256
( 5, 7) [000020] J------N---- \--* GE int
( 3, 2) [000018] ------------ \--* LCL_VAR int V04 tmp3
------------ BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 11
[000075] ------------ * STMT void (IL 0x000... ???)
[000072] -----+------ | /--* LCL_VAR int V04 tmp3
[000074] -A---+------ \--* ASG int
[000073] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB03, stmt 12
[000177] ------------ * STMT void (IL 0x000... ???)
[000176] ------------ \--* JTRUE void
( 1, 1) [000175] ------------ | /--* CNS_INT int 0
( 5, 4) [000173] J------N---- \--* LE int
( 3, 2) [000174] ------------ \--* LCL_VAR int V04 tmp3
------------ BB04 [000..001) -> BB04 (cond), preds={BB03,BB04} succs={BB05,BB04}
***** BB04, stmt 13
[000086] ------------ * STMT void (IL 0x000... ???)
[000083] -----+------ | /--* LCL_VAR int V04 tmp3
[000085] -A---+------ \--* ASG int
[000084] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB04, stmt 14
[000096] ------------ * STMT void (IL 0x000... ???)
[000091] ---XG+------ | /--* CAST int <- long
[000090] ---XG+------ | | \--* HWIntrinsic long PopCount
[000089] *--XG+------ | | \--* IND long
[000088] -----+------ | | \--* LCL_VAR long V03 tmp2
[000092] ---XG+------ | /--* SUB int
[000087] -----+------ | | \--* LCL_VAR int V04 tmp3
[000095] -A-XG+------ \--* ASG int
[000094] D----+-N---- \--* LCL_VAR int V04 tmp3
***** BB04, stmt 15
[000103] ------------ * STMT void (IL 0x000... ???)
[000099] -----+------ | /--* CNS_INT long 8
[000100] -----+------ | /--* ADD long
[000097] -----+------ | | \--* LCL_VAR long V03 tmp2
[000102] -A---+------ \--* ASG long
[000101] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB04, stmt 16
[000081] ------------ * STMT void (IL 0x000... ???)
[000080] -----+------ \--* JTRUE void
( 1, 1) [000078] ------------ | /--* CNS_INT int 0
( 5, 4) [000079] J------N---- \--* GT int
( 3, 2) [000077] ------------ \--* LCL_VAR int V04 tmp3
------------ BB05 [000..001) (return), preds={BB03,BB04} succs={}
***** BB05, stmt 17
[000111] ------------ * STMT void (IL 0x000... ???)
[000107] -----+------ | /--* CNS_INT long -8
[000108] -----+------ | /--* ADD long
[000105] -----+------ | | \--* LCL_VAR long V03 tmp2
[000110] -A---+------ \--* ASG long
[000109] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB05, stmt 18
[000127] ------------ * STMT void (IL 0x000... ???)
[000124] ---XG+------ | /--* CAST int <- long
[000123] ---XG+------ | | \--* HWIntrinsic long TrailingZeroCount
[000121] *--XG+------ | | | /--* IND long
[000120] -----+------ | | | | \--* LCL_VAR long V03 tmp2
[000122] ---XG+------ | | \--* HWIntrinsic long ParallelBitDeposit
[000117] -----+------ | | | /--* CNS_INT int 63
[000118] -----+------ | | | /--* AND int
[000115] -----+------ | | | | | /--* CNS_INT int -1
[000116] -----+------ | | | | \--* ADD int
[000114] -----+------ | | | | \--* LCL_VAR int V05 tmp4
[000119] -----+------ | | \--* LSH long
[000113] -----+------ | | \--* CNS_INT long 1
[000126] -A-XG+------ \--* ASG int
[000125] D----+-N---- \--* LCL_VAR int V06 tmp5
***** BB05, stmt 19
[000011] ------------ * STMT void (IL ???... ???)
[000010] -----+------ \--* RETURN int
[000138] -----+------ | /--* LCL_VAR int V06 tmp5
[000139] -----+------ \--* ADD int
[000135] -----+------ | /--* CNS_INT int 6
[000136] -----+------ \--* LSH int
[000166] -----+------ \--* CAST int <- long
[000132] -----+------ | /--* CNS_INT long 8
[000133] -----+------ \--* DIV long
[000129] -----+------ | /--* LCL_VAR long V02 tmp1
[000130] -----+------ \--* SUB long
[000128] -----+------ \--* LCL_VAR long V03 tmp2
-------------------------------------------------------------------------------------------------------------------
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] 2 BB03,BB04 2 [000..001)-> BB04 ( cond ) i Loop label target bwd
BB05 [0007] 2 BB03,BB04 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
[000142] ------------ * STMT void (IL 0x000... ???)
[000001] x---G+------ | /--* IND long
[000159] -----+------ | | \--* CNS_INT(h) long 0x7f08ab884498 static Fseq[_bits]
[000141] -A--G+------ \--* ASG long
[000140] D----+-N---- \--* LCL_VAR long V02 tmp1
***** BB01, stmt 2
[000145] ------------ * STMT void (IL 0x000... ???)
[000003] -----+------ | /--* LCL_VAR int V00 arg0
[000144] -A---+------ \--* ASG int
[000143] D----+-N---- \--* LCL_VAR int V04 tmp3
***** BB01, stmt 3
[000149] ------------ * STMT void (IL 0x000... ???)
[000146] -----+------ | /--* CNS_INT long 0
[000148] -A---+------ \--* ASG long
[000147] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB01, stmt 4
[000153] ------------ * STMT void (IL 0x000... ???)
[000150] -----+------ | /--* CNS_INT int 0
[000152] -A---+------ \--* ASG int
[000151] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB01, stmt 5
[000157] ------------ * STMT void (IL 0x000... ???)
[000154] -----+------ | /--* CNS_INT int 0
[000156] -A---+------ \--* ASG int
[000155] D----+-N---- \--* LCL_VAR int V06 tmp5
***** BB01, stmt 6
[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 7
[000172] ------------ * STMT void (IL 0x000... ???)
[000171] ------------ \--* JTRUE void
( 1, 4) [000170] ------------ | /--* CNS_INT int 256
( 5, 7) [000168] J------N---- \--* LT int
( 3, 2) [000169] ------------ \--* LCL_VAR int V04 tmp3
------------ BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
***** BB02, stmt 8
[000060] ------------ * STMT void (IL 0x000... ???)
[000161] ---XG+------ | /--* CAST int <- long
[000053] ---XG+------ | | \--* HWIntrinsic long PopCount
[000052] *--XG+------ | | \--* IND long
[000050] -----+------ | | | /--* CNS_INT long 24
[000051] -----+------ | | \--* ADD long
[000045] -----+------ | | \--* LCL_VAR long V03 tmp2
[000054] ---XG+------ | /--* ADD int
[000163] ---XG+------ | | | /--* CAST int <- long
[000043] ---XG+------ | | | | \--* HWIntrinsic long PopCount
[000042] *--XG+------ | | | | \--* IND long
[000040] -----+------ | | | | | /--* CNS_INT long 16
[000041] -----+------ | | | | \--* ADD long
[000035] -----+------ | | | | \--* LCL_VAR long V03 tmp2
[000044] ---XG+------ | | \--* ADD int
[000165] ---XG+------ | | | /--* CAST int <- long
[000033] ---XG+------ | | | | \--* HWIntrinsic long PopCount
[000032] *--XG+------ | | | | \--* IND long
[000030] -----+------ | | | | | /--* CNS_INT long 8
[000031] -----+------ | | | | \--* ADD long
[000028] -----+------ | | | | \--* LCL_VAR long V03 tmp2
[000034] ---XG+------ | | \--* ADD int
[000164] ---XG+------ | | \--* CAST int <- long
[000027] ---XG+------ | | \--* HWIntrinsic long PopCount
[000026] *--XG+------ | | \--* IND long
[000025] -----+------ | | \--* LCL_VAR long V03 tmp2
[000056] ---XG+------ | /--* SUB int
[000024] -----+------ | | \--* LCL_VAR int V04 tmp3
[000059] -A-XG+------ \--* ASG int
[000058] D----+-N---- \--* LCL_VAR int V04 tmp3
***** BB02, stmt 9
[000070] ------------ * STMT void (IL 0x000... ???)
[000066] -----+------ | /--* CNS_INT long 32
[000067] -----+------ | /--* ADD long
[000061] -----+------ | | \--* LCL_VAR long V03 tmp2
[000069] -A---+------ \--* ASG long
[000068] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB02, stmt 10
[000022] ------------ * STMT void (IL 0x000... ???)
[000021] -----+------ \--* JTRUE void
( 1, 4) [000019] ------------ | /--* CNS_INT int 256
( 5, 7) [000020] J------N---- \--* GE int
( 3, 2) [000018] ------------ \--* LCL_VAR int V04 tmp3
------------ BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 11
[000075] ------------ * STMT void (IL 0x000... ???)
[000072] -----+------ | /--* LCL_VAR int V04 tmp3
[000074] -A---+------ \--* ASG int
[000073] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB03, stmt 12
[000177] ------------ * STMT void (IL 0x000... ???)
[000176] ------------ \--* JTRUE void
( 1, 1) [000175] ------------ | /--* CNS_INT int 0
( 5, 4) [000173] J------N---- \--* LE int
( 3, 2) [000174] ------------ \--* LCL_VAR int V04 tmp3
------------ BB04 [000..001) -> BB04 (cond), preds={BB03,BB04} succs={BB05,BB04}
***** BB04, stmt 13
[000086] ------------ * STMT void (IL 0x000... ???)
[000083] -----+------ | /--* LCL_VAR int V04 tmp3
[000085] -A---+------ \--* ASG int
[000084] D----+-N---- \--* LCL_VAR int V05 tmp4
***** BB04, stmt 14
[000096] ------------ * STMT void (IL 0x000... ???)
[000091] ---XG+------ | /--* CAST int <- long
[000090] ---XG+------ | | \--* HWIntrinsic long PopCount
[000089] *--XG+------ | | \--* IND long
[000088] -----+------ | | \--* LCL_VAR long V03 tmp2
[000092] ---XG+------ | /--* SUB int
[000087] -----+------ | | \--* LCL_VAR int V04 tmp3
[000095] -A-XG+------ \--* ASG int
[000094] D----+-N---- \--* LCL_VAR int V04 tmp3
***** BB04, stmt 15
[000103] ------------ * STMT void (IL 0x000... ???)
[000099] -----+------ | /--* CNS_INT long 8
[000100] -----+------ | /--* ADD long
[000097] -----+------ | | \--* LCL_VAR long V03 tmp2
[000102] -A---+------ \--* ASG long
[000101] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB04, stmt 16
[000081] ------------ * STMT void (IL 0x000... ???)
[000080] -----+------ \--* JTRUE void
( 1, 1) [000078] ------------ | /--* CNS_INT int 0
( 5, 4) [000079] J------N---- \--* GT int
( 3, 2) [000077] ------------ \--* LCL_VAR int V04 tmp3
------------ BB05 [000..001) (return), preds={BB03,BB04} succs={}
***** BB05, stmt 17
[000111] ------------ * STMT void (IL 0x000... ???)
[000107] -----+------ | /--* CNS_INT long -8
[000108] -----+------ | /--* ADD long
[000105] -----+------ | | \--* LCL_VAR long V03 tmp2
[000110] -A---+------ \--* ASG long
[000109] D----+-N---- \--* LCL_VAR long V03 tmp2
***** BB05, stmt 18
[000127] ------------ * STMT void (IL 0x000... ???)
[000124] ---XG+------ | /--* CAST int <- long
[000123] ---XG+------ | | \--* HWIntrinsic long TrailingZeroCount
[000121] *--XG+------ | | | /--* IND long
[000120] -----+------ | | | | \--* LCL_VAR long V03 tmp2
[000122] ---XG+------ | | \--* HWIntrinsic long ParallelBitDeposit
[000117] -----+------ | | | /--* CNS_INT int 63
[000118] -----+------ | | | /--* AND int
[000115] -----+------ | | | | | /--* CNS_INT int -1
[000116] -----+------ | | | | \--* ADD int
[000114] -----+------ | | | | \--* LCL_VAR int V05 tmp4
[000119] -----+------ | | \--* LSH long
[000113] -----+------ | | \--* CNS_INT long 1
[000126] -A-XG+------ \--* ASG int
[000125] D----+-N---- \--* LCL_VAR int V06 tmp5
***** BB05, stmt 19
[000011] ------------ * STMT void (IL ???... ???)
[000010] -----+------ \--* RETURN int
[000138] -----+------ | /--* LCL_VAR int V06 tmp5
[000139] -----+------ \--* ADD int
[000135] -----+------ | /--* CNS_INT int 6
[000136] -----+------ \--* LSH int
[000166] -----+------ \--* CAST int <- long
[000132] -----+------ | /--* CNS_INT long 8
[000133] -----+------ \--* DIV long
[000129] -----+------ | /--* LCL_VAR long V02 tmp1
[000130] -----+------ \--* SUB long
[000128] -----+------ \--* LCL_VAR long V03 tmp2
-------------------------------------------------------------------------------------------------------------------
*************** In optUnrollLoops()
*************** In fgDebugCheckBBlist
*************** In lvaMarkLocalVars()
*** marking local variables in block BB01 (weight=1 )
[000142] ------------ * STMT void (IL 0x000... ???)
[000001] x---G+------ | /--* IND long
[000159] -----+------ | | \--* CNS_INT(h) long 0x7f08ab884498 static Fseq[_bits]
[000141] -A--G+------ \--* ASG long
[000140] D----+-N---- \--* LCL_VAR long V02 tmp1
New refCnts for V02: refCnt = 1, refCntWtd = 2
[000145] ------------ * STMT void (IL 0x000... ???)
[000003] -----+------ | /--* LCL_VAR int V00 arg0
[000144] -A---+------ \--* ASG int
[000143] D----+-N---- \--* LCL_VAR int V04 tmp3
New refCnts for V04: refCnt = 1, refCntWtd = 2
New refCnts for V00: refCnt = 1, refCntWtd = 1
[000149] ------------ * STMT void (IL 0x000... ???)
[000146] -----+------ | /--* CNS_INT long 0
[000148] -A---+------ \--* ASG long
[000147] D----+-N---- \--* LCL_VAR long V03 tmp2
New refCnts for V03: refCnt = 1, refCntWtd = 1
[000153] ------------ * STMT void (IL 0x000... ???)
[000150] -----+------ | /--* CNS_INT int 0
[000152] -A---+------ \--* ASG int
[000151] D----+-N---- \--* LCL_VAR int V05 tmp4
New refCnts for V05: refCnt = 1, refCntWtd = 1
[000157] ------------ * STMT void (IL 0x000... ???)
[000154] -----+------ | /--* CNS_INT int 0
[000156] -A---+------ \--* ASG int
[000155] D----+-N---- \--* LCL_VAR int V06 tmp5
New refCnts for V06: 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
[000172] ------------ * STMT void (IL 0x000... ???)
[000171] ------------ \--* JTRUE void
( 1, 4) [000170] ------------ | /--* CNS_INT int 256
( 5, 7) [000168] J------N---- \--* LT int
( 3, 2) [000169] ------------ \--* LCL_VAR int V04 tmp3
New refCnts for V04: refCnt = 2, refCntWtd = 4
*** marking local variables in block BB02 (weight=2 )
[000060] ------------ * STMT void (IL 0x000... ???)
[000161] ---XG+------ | /--* CAST int <- long
[000053] ---XG+------ | | \--* HWIntrinsic long PopCount
[000052] *--XG+------ | | \--* IND long
[000050] -----+------ | | | /--* CNS_INT long 24
[000051] -----+------ | | \--* ADD long
[000045] -----+------ | | \--* LCL_VAR long V03 tmp2
[000054] ---XG+------ | /--* ADD int
[000163] ---XG+------ | | | /--* CAST int <- long
[000043] ---XG+------ | | | | \--* HWIntrinsic long PopCount
[000042] *--XG+------ | | | | \--* IND long
[000040] -----+------ | | | | | /--* CNS_INT long 16
[000041] -----+------ | | | | \--* ADD long
[000035] -----+------ | | | | \--* LCL_VAR long V03 tmp2
[000044] ---XG+------ | | \--* ADD int
[000165] ---XG+------ | | | /--* CAST int <- long
[000033] ---XG+------ | | | | \--* HWIntrinsic long PopCount
[000032] *--XG+------ | | | | \--* IND long
[000030] -----+------ | | | | | /--* CNS_INT long 8
[000031] -----+------ | | | | \--* ADD long
[000028] -----+------ | | | | \--* LCL_VAR long V03 tmp2
[000034] ---XG+------ | | \--* ADD int
[000164] ---XG+------ | | \--* CAST int <- long
[000027] ---XG+------ | | \--* HWIntrinsic long PopCount
[000026] *--XG+------ | | \--* IND long
[000025] -----+------ | | \--* LCL_VAR long V03 tmp2
[000056] ---XG+------ | /--* SUB int
[000024] -----+------ | | \--* LCL_VAR int V04 tmp3
[000059] -A-XG+------ \--* ASG int
[000058] D----+-N---- \--* LCL_VAR int V04 tmp3
New refCnts for V04: refCnt = 3, refCntWtd = 8
New refCnts for V04: refCnt = 4, refCntWtd = 12
New refCnts for V03: refCnt = 3, refCntWtd = 4
New refCnts for V03: refCnt = 4, refCntWtd = 6
New refCnts for V03: refCnt = 5, refCntWtd = 8
New refCnts for V03: refCnt = 6, refCntWtd = 10
[000070] ------------ * STMT void (IL 0x000... ???)
[000066] -----+------ | /--* CNS_INT long 32
[000067] -----+------ | /--* ADD long
[000061] -----+------ | | \--* LCL_VAR long V03 tmp2
[000069] -A---+------ \--* ASG long
[000068] D----+-N---- \--* LCL_VAR long V03 tmp2
New refCnts for V03: refCnt = 7, refCntWtd = 12
New refCnts for V03: refCnt = 8, refCntWtd = 14
[000022] ------------ * STMT void (IL 0x000... ???)
[000021] -----+------ \--* JTRUE void
( 1, 4) [000019] ------------ | /--* CNS_INT int 256
( 5, 7) [000020] J------N---- \--* GE int
( 3, 2) [000018] ------------ \--* LCL_VAR int V04 tmp3
New refCnts for V04: refCnt = 5, refCntWtd = 16
*** marking local variables in block BB03 (weight=0.50)
[000075] ------------ * STMT void (IL 0x000... ???)
[000072] -----+------ | /--* LCL_VAR int V04 tmp3
[000074] -A---+------ \--* ASG int
[000073] D----+-N---- \--* LCL_VAR int V05 tmp4
New refCnts for V05: refCnt = 2, refCntWtd = 1.50
New refCnts for V04: refCnt = 6, refCntWtd = 17
[000177] ------------ * STMT void (IL 0x000... ???)
[000176] ------------ \--* JTRUE void
( 1, 1) [000175] ------------ | /--* CNS_INT int 0
( 5, 4) [000173] J------N---- \--* LE int
( 3, 2) [000174] ------------ \--* LCL_VAR int V04 tmp3
New refCnts for V04: refCnt = 7, refCntWtd = 18
*** marking local variables in block BB04 (weight=2 )
[000086] ------------ * STMT void (IL 0x000... ???)
[000083] -----+------ | /--* LCL_VAR int V04 tmp3
[000085] -A---+------ \--* ASG int
[000084] D----+-N---- \--* LCL_VAR int V05 tmp4
New refCnts for V05: refCnt = 3, refCntWtd = 3.50
New refCnts for V04: refCnt = 8, refCntWtd = 22
[000096] ------------ * STMT void (IL 0x000... ???)
[000091] ---XG+------ | /--* CAST int <- long
[000090] ---XG+------ | | \--* HWIntrinsic long PopCount
[000089] *--XG+------ | | \--* IND long
[000088] -----+------ | | \--* LCL_VAR long V03 tmp2
[000092] ---XG+------ | /--* SUB int
[000087] -----+------ | | \--* LCL_VAR int V04 tmp3
[000095] -A-XG+------ \--* ASG int
[000094] D----+-N---- \--* LCL_VAR int V04 tmp3
New refCnts for V04: refCnt = 9, refCntWtd = 26
New refCnts for V04: refCnt = 10, refCntWtd = 30
New refCnts for V03: refCnt = 9, refCntWtd = 16
[000103] ------------ * STMT void (IL 0x000... ???)
[000099] -----+------ | /--* CNS_INT long 8
[000100] -----+------ | /--* ADD long
[000097] -----+------ | | \--* LCL_VAR long V03 tmp2
[000102] -A---+------ \--* ASG long
[000101] D----+-N---- \--* LCL_VAR long V03 tmp2
New refCnts for V03: refCnt = 10, refCntWtd = 18
New refCnts for V03: refCnt = 11, refCntWtd = 20
[000081] ------------ * STMT void (IL 0x000... ???)
[000080] -----+------ \--* JTRUE void
( 1, 1) [000078] ------------ | /--* CNS_INT int 0
( 5, 4) [000079] J------N---- \--* GT int
( 3, 2) [000077] ------------ \--* LCL_VAR int V04 tmp3
New refCnts for V04: refCnt = 11, refCntWtd = 34
*** marking local variables in block BB05 (weight=1 )
[000111] ------------ * STMT void (IL 0x000... ???)
[000107] -----+------ | /--* CNS_INT long -8
[000108] -----+------ | /--* ADD long
[000105] -----+------ | | \--* LCL_VAR long V03 tmp2
[000110] -A---+------ \--* ASG long
[000109] D----+-N---- \--* LCL_VAR long V03 tmp2
New refCnts for V03: refCnt = 12, refCntWtd = 21
New refCnts for V03: refCnt = 13, refCntWtd = 22
[000127] ------------ * STMT void (IL 0x000... ???)
[000124] ---XG+------ | /--* CAST int <- long
[000123] ---XG+------ | | \--* HWIntrinsic long TrailingZeroCount
[000121] *--XG+------ | | | /--* IND long
[000120] -----+------ | | | | \--* LCL_VAR long V03 tmp2
[000122] ---XG+------ | | \--* HWIntrinsic long ParallelBitDeposit
[000117] -----+------ | | | /--* CNS_INT int 63
[000118] -----+------ | | | /--* AND int
[000115] -----+------ | | | | | /--* CNS_INT int -1
[000116] -----+------ | | | | \--* ADD int
[000114] -----+------ | | | | \--* LCL_VAR int V05 tmp4
[000119] -----+------ | | \--* LSH long
[000113] -----+------ | | \--* CNS_INT long 1
[000126] -A-XG+------ \--* ASG int
[000125] D----+-N---- \--* LCL_VAR int V06 tmp5
New refCnts for V06: refCnt = 2, refCntWtd = 2
New refCnts for V05: refCnt = 4, refCntWtd = 4.50
New refCnts for V03: refCnt = 14, refCntWtd = 23
[000011] ------------ * STMT void (IL ???... ???)
[000010] -----+------ \--* RETURN int
[000138] -----+------ | /--* LCL_VAR int V06 tmp5
[000139] -----+------ \--* ADD int
[000135] -----+------ | /--* CNS_INT int 6
[000136] -----+------ \--* LSH int
[000166] -----+------ \--* CAST int <- long
[000132] -----+------ | /--* CNS_INT long 8
[000133] -----+------ \--* DIV long
[000129] -----+------ | /--* LCL_VAR long V02 tmp1
[000130] -----+------ \--* SUB long
[000128] -----+------ \--* LCL_VAR long V03 tmp2
New refCnts for V03: refCnt = 15, refCntWtd = 24
New refCnts for V02: refCnt = 3, refCntWtd = 6
New refCnts for V06: refCnt = 3, refCntWtd = 3
New refCnts for V00: refCnt = 2, refCntWtd = 2
New refCnts for V00: refCnt = 3, refCntWtd = 3
*************** In optAddCopies()
refCnt table for 'IntrinsicsUnrolled':
V04 tmp3 [ int]: refCnt = 11, refCntWtd = 34
V03 tmp2 [ long]: refCnt = 15, refCntWtd = 24
V02 tmp1 [ long]: refCnt = 3, refCntWtd = 6
V00 arg0 [ int]: refCnt = 3, refCntWtd = 3
V05 tmp4 [ int]: refCnt = 4, refCntWtd = 4.50
V06 tmp5 [ int]: refCnt = 3, refCntWtd = 3
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 BB04: method is already fully interruptible
The biggest BB has 29 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] 2 BB03,BB04 2 [000..001)-> BB04 ( cond ) i Loop Loop0 label target bwd
BB05 [0007] 2 BB03,BB04 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
( 5, 12) [000142] ------------ * STMT void (IL 0x000... ???)
N002 ( 5, 12) [000001] x---G------- | /--* IND long
N001 ( 3, 10) [000159] ------------ | | \--* CNS_INT(h) long 0x7f08ab884498 static Fseq[_bits]
N004 ( 5, 12) [000141] -A--G---R--- \--* ASG long
N003 ( 1, 1) [000140] D------N---- \--* LCL_VAR long V02 tmp1
***** BB01, stmt 2
( 1, 3) [000145] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000003] ------------ | /--* LCL_VAR int V00 arg0
N003 ( 1, 3) [000144] -A------R--- \--* ASG int
N002 ( 1, 1) [000143] D------N---- \--* LCL_VAR int V04 tmp3
***** BB01, stmt 3
( 1, 3) [000149] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000146] ------------ | /--* CNS_INT long 0
N003 ( 1, 3) [000148] -A------R--- \--* ASG long
N002 ( 1, 1) [000147] D------N---- \--* LCL_VAR long V03 tmp2
***** BB01, stmt 4
( 1, 3) [000153] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000150] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000152] -A------R--- \--* ASG int
N002 ( 1, 1) [000151] D------N---- \--* LCL_VAR int V05 tmp4
***** BB01, stmt 5
( 1, 3) [000157] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000154] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000156] -A------R--- \--* ASG int
N002 ( 1, 1) [000155] D------N---- \--* LCL_VAR int V06 tmp5
***** BB01, stmt 6
( 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 7
( 5, 8) [000172] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 8) [000171] ------------ \--* JTRUE void
N002 ( 1, 4) [000170] ------------ | /--* CNS_INT int 256
N003 ( 3, 6) [000168] J------N---- \--* LT int
N001 ( 1, 1) [000169] ------------ \--* LCL_VAR int V04 tmp3
------------ BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
***** BB02, stmt 8
( 28, 31) [000060] ------------ * STMT void (IL 0x000... ???)
N024 ( 6, 7) [000161] ---XG------- | /--* CAST int <- long
N023 ( 5, 5) [000053] ---XG------- | | \--* HWIntrinsic long PopCount
N022 ( 4, 4) [000052] *--XG------- | | \--* IND long
N020 ( 1, 1) [000050] ------------ | | | /--* CNS_INT long 24
N021 ( 2, 2) [000051] -------N---- | | \--* ADD long
N019 ( 1, 1) [000045] ------------ | | \--* LCL_VAR long V03 tmp2
N025 ( 26, 29) [000054] ---XG------- | /--* ADD int
N017 ( 6, 7) [000163] ---XG------- | | | /--* CAST int <- long
N016 ( 5, 5) [000043] ---XG------- | | | | \--* HWIntrinsic long PopCount
N015 ( 4, 4) [000042] *--XG------- | | | | \--* IND long
N013 ( 1, 1) [000040] ------------ | | | | | /--* CNS_INT long 16
N014 ( 2, 2) [000041] -------N---- | | | | \--* ADD long
N012 ( 1, 1) [000035] ------------ | | | | \--* LCL_VAR long V03 tmp2
N018 ( 19, 21) [000044] ---XG------- | | \--* ADD int
N010 ( 6, 7) [000165] ---XG------- | | | /--* CAST int <- long
N009 ( 5, 5) [000033] ---XG------- | | | | \--* HWIntrinsic long PopCount
N008 ( 4, 4) [000032] *--XG------- | | | | \--* IND long
N006 ( 1, 1) [000030] ------------ | | | | | /--* CNS_INT long 8
N007 ( 2, 2) [000031] -------N---- | | | | \--* ADD long
N005 ( 1, 1) [000028] ------------ | | | | \--* LCL_VAR long V03 tmp2
N011 ( 12, 13) [000034] ---XG------- | | \--* ADD int
N004 ( 5, 5) [000164] ---XG------- | | \--* CAST int <- long
N003 ( 4, 3) [000027] ---XG------- | | \--* HWIntrinsic long PopCount
N002 ( 3, 2) [000026] *--XG------- | | \--* IND long
N001 ( 1, 1) [000025] ------------ | | \--* LCL_VAR long V03 tmp2
N027 ( 28, 31) [000056] ---XG---R--- | /--* SUB int
N026 ( 1, 1) [000024] ------------ | | \--* LCL_VAR int V04 tmp3
N029 ( 28, 31) [000059] -A-XG---R--- \--* ASG int
N028 ( 1, 1) [000058] D------N---- \--* LCL_VAR int V04 tmp3
***** BB02, stmt 9
( 3, 3) [000070] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000066] ------------ | /--* CNS_INT long 32
N003 ( 3, 3) [000067] ------------ | /--* ADD long
N001 ( 1, 1) [000061] ------------ | | \--* LCL_VAR long V03 tmp2
N005 ( 3, 3) [000069] -A------R--- \--* ASG long
N004 ( 1, 1) [000068] D------N---- \--* LCL_VAR long V03 tmp2
***** BB02, stmt 10
( 5, 8) [000022] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 8) [000021] ------------ \--* JTRUE void
N002 ( 1, 4) [000019] ------------ | /--* CNS_INT int 256
N003 ( 3, 6) [000020] J------N---- \--* GE int
N001 ( 1, 1) [000018] ------------ \--* LCL_VAR int V04 tmp3
------------ BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 11
( 1, 3) [000075] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000072] ------------ | /--* LCL_VAR int V04 tmp3
N003 ( 1, 3) [000074] -A------R--- \--* ASG int
N002 ( 1, 1) [000073] D------N---- \--* LCL_VAR int V05 tmp4
***** BB03, stmt 12
( 5, 5) [000177] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000176] ------------ \--* JTRUE void
N002 ( 1, 1) [000175] ------------ | /--* CNS_INT int 0
N003 ( 3, 3) [000173] J------N---- \--* LE int
N001 ( 1, 1) [000174] ------------ \--* LCL_VAR int V04 tmp3
------------ BB04 [000..001) -> BB04 (cond), preds={BB03,BB04} succs={BB05,BB04}
***** BB04, stmt 13
( 1, 3) [000086] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000083] ------------ | /--* LCL_VAR int V04 tmp3
N003 ( 1, 3) [000085] -A------R--- \--* ASG int
N002 ( 1, 1) [000084] D------N---- \--* LCL_VAR int V05 tmp4
***** BB04, stmt 14
( 7, 7) [000096] ------------ * STMT void (IL 0x000... ???)
N005 ( 5, 5) [000091] ---XG------- | /--* CAST int <- long
N004 ( 4, 3) [000090] ---XG------- | | \--* HWIntrinsic long PopCount
N003 ( 3, 2) [000089] *--XG------- | | \--* IND long
N002 ( 1, 1) [000088] ------------ | | \--* LCL_VAR long V03 tmp2
N006 ( 7, 7) [000092] ---XG------- | /--* SUB int
N001 ( 1, 1) [000087] ------------ | | \--* LCL_VAR int V04 tmp3
N008 ( 7, 7) [000095] -A-XG---R--- \--* ASG int
N007 ( 1, 1) [000094] D------N---- \--* LCL_VAR int V04 tmp3
***** BB04, stmt 15
( 3, 3) [000103] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000099] ------------ | /--* CNS_INT long 8
N003 ( 3, 3) [000100] ------------ | /--* ADD long
N001 ( 1, 1) [000097] ------------ | | \--* LCL_VAR long V03 tmp2
N005 ( 3, 3) [000102] -A------R--- \--* ASG long
N004 ( 1, 1) [000101] D------N---- \--* LCL_VAR long V03 tmp2
***** BB04, stmt 16
( 5, 5) [000081] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 5) [000080] ------------ \--* JTRUE void
N002 ( 1, 1) [000078] ------------ | /--* CNS_INT int 0
N003 ( 3, 3) [000079] J------N---- \--* GT int
N001 ( 1, 1) [000077] ------------ \--* LCL_VAR int V04 tmp3
------------ BB05 [000..001) (return), preds={BB03,BB04} succs={}
***** BB05, stmt 17
( 3, 3) [000111] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000107] ------------ | /--* CNS_INT long -8
N003 ( 3, 3) [000108] ------------ | /--* ADD long
N001 ( 1, 1) [000105] ------------ | | \--* LCL_VAR long V03 tmp2
N005 ( 3, 3) [000110] -A------R--- \--* ASG long
N004 ( 1, 1) [000109] D------N---- \--* LCL_VAR long V03 tmp2
***** BB05, stmt 18
( 16, 13) [000127] ------------ * STMT void (IL 0x000... ???)
N012 ( 16, 13) [000124] ---XG------- | /--* CAST int <- long
N011 ( 15, 11) [000123] ---XG------- | | \--* HWIntrinsic long TrailingZeroCount
N009 ( 3, 2) [000121] *--XG------- | | | /--* IND long
N008 ( 1, 1) [000120] ------------ | | | | \--* LCL_VAR long V03 tmp2
N010 ( 14, 10) [000122] ---XG------- | | \--* HWIntrinsic long ParallelBitDeposit
N004 ( 1, 1) [000117] ------------ | | | /--* CNS_INT int 63
N005 ( 5, 5) [000118] ------------ | | | /--* AND int
N002 ( 1, 1) [000115] ------------ | | | | | /--* CNS_INT int -1
N003 ( 3, 3) [000116] ------------ | | | | \--* ADD int
N001 ( 1, 1) [000114] ------------ | | | | \--* LCL_VAR int V05 tmp4
N007 ( 10, 7) [000119] --------R--- | | \--* LSH long
N006 ( 1, 1) [000113] ------------ | | \--* CNS_INT long 1
N014 ( 16, 13) [000126] -A-XG---R--- \--* ASG int
N013 ( 1, 1) [000125] D------N---- \--* LCL_VAR int V06 tmp5
***** BB05, stmt 19
( 30, 14) [000011] ------------ * STMT void (IL ???... ???)
N011 ( 30, 14) [000010] ------------ \--* RETURN int
N009 ( 1, 1) [000138] ------------ | /--* LCL_VAR int V06 tmp5
N010 ( 29, 13) [000139] ------------ \--* ADD int
N007 ( 1, 1) [000135] ------------ | /--* CNS_INT int 6
N008 ( 27, 11) [000136] ------------ \--* LSH int
N006 ( 25, 9) [000166] ------------ \--* CAST int <- long
N004 ( 1, 1) [000132] ------------ | /--* CNS_INT long 8
N005 ( 24, 7) [000133] ------------ \--* DIV long
N002 ( 1, 1) [000129] ------------ | /--* LCL_VAR long V02 tmp1
N003 ( 3, 3) [000130] ------------ \--* SUB long
N001 ( 1, 1) [000128] ------------ \--* LCL_VAR long V03 tmp2
-------------------------------------------------------------------------------------------------------------------
*************** In SsaBuilder::Build()
[SsaBuilder] Max block count is 6.
--------------------------------------------------------------------------------------------------------------------------------------
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] 2 BB03,BB04 2 [000..001)-> BB04 ( cond ) i Loop Loop0 label target bwd
BB05 [0007] 2 BB03,BB04 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
[SsaBuilder] Topologically sorted the graph.
[SsaBuilder::ComputeImmediateDom]
*************** In SsaBuilder::ComputeDominators(BasicBlock** postOrder, int count, ...)
*************** In SsaBuilder::InsertPhiFunctions()
*************** In fgLocalVarLiveness()
*************** In fgPerBlockLocalVarLiveness()
BB01 USE(1)={ V00 } + ByrefExposed + GcHeap
DEF(5)={V04 V03 V02 V05 V06}
BB02 USE(2)={V04 V03} + ByrefExposed + GcHeap
DEF(2)={V04 V03}
BB03 USE(1)={V04 }
DEF(1)={ V05}
BB04 USE(2)={V04 V03 } + ByrefExposed + GcHeap
DEF(3)={V04 V03 V05}
BB05 USE(3)={V03 V02 V05 } + ByrefExposed + GcHeap
DEF(2)={V03 V06}
** Memory liveness computed, GcHeap states and ByrefExposed states match
*************** In fgInterBlockLocalVarLiveness()
BB liveness after fgLiveVarAnalysis():
BB01 IN (1)={ V00} + ByrefExposed + GcHeap
OUT(3)={V04 V03 V02 } + ByrefExposed + GcHeap
BB02 IN (3)={V04 V03 V02} + ByrefExposed + GcHeap
OUT(3)={V04 V03 V02} + ByrefExposed + GcHeap
BB03 IN (3)={V04 V03 V02 } + ByrefExposed + GcHeap
OUT(4)={V04 V03 V02 V05} + ByrefExposed + GcHeap
BB04 IN (3)={V04 V03 V02 } + ByrefExposed + GcHeap
OUT(4)={V04 V03 V02 V05} + ByrefExposed + GcHeap
BB05 IN (3)={V03 V02 V05} + ByrefExposed + GcHeap
OUT(0)={ }
top level assign
removing stmt with no side effects
Removing statement [000157] in BB01 as useless:
( 1, 3) [000157] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000154] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000156] -A------R--- \--* ASG int
N002 ( 1, 1) [000155] D------N---- \--* LCL_VAR int V06 tmp5
New refCnts for V06: refCnt = 2, refCntWtd = 2
top level assign
removing stmt with no side effects
Removing statement [000153] in BB01 as useless:
( 1, 3) [000153] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000150] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000152] -A------R--- \--* ASG int
N002 ( 1, 1) [000151] D------N---- \--* LCL_VAR int V05 tmp4
New refCnts for V05: refCnt = 3, refCntWtd = 3.50
top level assign
removing stmt with no side effects
Removing statement [000149] in BB01 as useless:
( 1, 3) [000149] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000146] ------------ | /--* CNS_INT long 0
N003 ( 1, 3) [000148] -A------R--- \--* ASG long
N002 ( 1, 1) [000147] D------N---- \--* LCL_VAR long V03 tmp2
New refCnts for V03: refCnt = 14, refCntWtd = 23
In fgLocalVarLiveness, setting lvaSortAgain back to false (set during dead-code removal)
Inserting phi functions:
Inserting phi definition for V04 at start of BB04.
Inserting phi definition for V03 at start of BB05.
Inserting phi definition for V03 at start of BB04.
Inserting phi definition for V05 at start of BB05.
Inserting phi definition for V04 at start of BB03.
Inserting phi definition for V04 at start of BB02.
Inserting phi definition for V03 at start of BB03.
Inserting phi definition for V03 at start of BB02.
*************** In SsaBuilder::RenameVariables()
After fgSsaBuild:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..011)-> BB03 ( cond ) i label target
BB02 [0002] 2 BB01,BB02 2 [000..001)-> BB02 ( cond ) i Loop Loop0 label target bwd
BB03 [0004] 2 BB01,BB02 0.50 [000..001)-> BB05 ( cond ) i label target
BB04 [0005] 2 BB03,BB04 2 [000..001)-> BB04 ( cond ) i Loop Loop0 label target bwd
BB05 [0007] 2 BB03,BB04 1 [000..001) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..011) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
( 5, 12) [000142] ------------ * STMT void (IL 0x000... ???)
N002 ( 5, 12) [000001] x---G------- | /--* IND long
N001 ( 3, 10) [000159] ------------ | | \--* CNS_INT(h) long 0x7f08ab884498 static Fseq[_bits]
N004 ( 5, 12) [000141] -A--G---R--- \--* ASG long
N003 ( 1, 1) [000140] D------N---- \--* LCL_VAR long V02 tmp1 d:2
***** BB01, stmt 2
( 1, 3) [000145] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000003] ------------ | /--* LCL_VAR int V00 arg0 u:2 (last use)
N003 ( 1, 3) [000144] -A------R--- \--* ASG int
N002 ( 1, 1) [000143] D------N---- \--* LCL_VAR int V04 tmp3 d:2
***** BB01, stmt 3
( 1, 3) [000016] ------------ * STMT void (IL 0x000... ???)
N001 ( 1, 1) [000013] ------------ | /--* LCL_VAR long V02 tmp1 u:2
N003 ( 1, 3) [000015] -A------R--- \--* ASG long
N002 ( 1, 1) [000014] D------N---- \--* LCL_VAR long V03 tmp2 d:2
***** BB01, stmt 4
( 5, 8) [000172] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 8) [000171] ------------ \--* JTRUE void
N002 ( 1, 4) [000170] ------------ | /--* CNS_INT int 256
N003 ( 3, 6) [000168] J------N---- \--* LT int
N001 ( 1, 1) [000169] ------------ \--* LCL_VAR int V04 tmp3 u:2
------------ BB02 [000..001) -> BB02 (cond), preds={BB01,BB02} succs={BB03,BB02}
***** BB02, stmt 5
( 2, 3) [000209] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000207] ------------ | * PHI long
N001 ( 0, 0) [000222] ------------ | /--* PHI_ARG long V03 tmp2 u:4
N002 ( 0, 0) [000210] ------------ | \--* PHI_ARG long V03 tmp2 u:2
N007 ( 2, 3) [000208] -A------R--- \--* ASG long
N006 ( 1, 1) [000206] D------N---- \--* LCL_VAR long V03 tmp2 d:3
***** BB02, stmt 6
( 2, 3) [000201] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000199] ------------ | * PHI int
N001 ( 0, 0) [000224] ------------ | /--* PHI_ARG int V04 tmp3 u:4
N002 ( 0, 0) [000212] ------------ | \--* PHI_ARG int V04 tmp3 u:2
N007 ( 2, 3) [000200] -A------R--- \--* ASG int
N006 ( 1, 1) [000198] D------N---- \--* LCL_VAR int V04 tmp3 d:3
***** BB02, stmt 7
( 28, 31) [000060] ------------ * STMT void (IL 0x000... ???)
N024 ( 6, 7) [000161] ---XG------- | /--* CAST int <- long
N023 ( 5, 5) [000053] ---XG------- | | \--* HWIntrinsic long PopCount
N022 ( 4, 4) [000052] *--XG------- | | \--* IND long
N020 ( 1, 1) [000050] ------------ | | | /--* CNS_INT long 24
N021 ( 2, 2) [000051] -------N---- | | \--* ADD long
N019 ( 1, 1) [000045] ------------ | | \--* LCL_VAR long V03 tmp2 u:3
N025 ( 26, 29) [000054] ---XG------- | /--* ADD int
N017 ( 6, 7) [000163] ---XG------- | | | /--* CAST int <- long
N016 ( 5, 5) [000043] ---XG------- | | | | \--* HWIntrinsic long PopCount
N015 ( 4, 4) [000042] *--XG------- | | | | \--* IND long
N013 ( 1, 1) [000040] ------------ | | | | | /--* CNS_INT long 16
N014 ( 2, 2) [000041] -------N---- | | | | \--* ADD long
N012 ( 1, 1) [000035] ------------ | | | | \--* LCL_VAR long V03 tmp2 u:3
N018 ( 19, 21) [000044] ---XG------- | | \--* ADD int
N010 ( 6, 7) [000165] ---XG------- | | | /--* CAST int <- long
N009 ( 5, 5) [000033] ---XG------- | | | | \--* HWIntrinsic long PopCount
N008 ( 4, 4) [000032] *--XG------- | | | | \--* IND long
N006 ( 1, 1) [000030] ------------ | | | | | /--* CNS_INT long 8
N007 ( 2, 2) [000031] -------N---- | | | | \--* ADD long
N005 ( 1, 1) [000028] ------------ | | | | \--* LCL_VAR long V03 tmp2 u:3
N011 ( 12, 13) [000034] ---XG------- | | \--* ADD int
N004 ( 5, 5) [000164] ---XG------- | | \--* CAST int <- long
N003 ( 4, 3) [000027] ---XG------- | | \--* HWIntrinsic long PopCount
N002 ( 3, 2) [000026] *--XG------- | | \--* IND long
N001 ( 1, 1) [000025] ------------ | | \--* LCL_VAR long V03 tmp2 u:3
N027 ( 28, 31) [000056] ---XG---R--- | /--* SUB int
N026 ( 1, 1) [000024] ------------ | | \--* LCL_VAR int V04 tmp3 u:3 (last use)
N029 ( 28, 31) [000059] -A-XG---R--- \--* ASG int
N028 ( 1, 1) [000058] D------N---- \--* LCL_VAR int V04 tmp3 d:4
***** BB02, stmt 8
( 3, 3) [000070] ------------ * STMT void (IL 0x000... ???)
N002 ( 1, 1) [000066] ------------ | /--* CNS_INT long 32
N003 ( 3, 3) [000067] ------------ | /--* ADD long
N001 ( 1, 1) [000061] ------------ | | \--* LCL_VAR long V03 tmp2 u:3 (last use)
N005 ( 3, 3) [000069] -A------R--- \--* ASG long
N004 ( 1, 1) [000068] D------N---- \--* LCL_VAR long V03 tmp2 d:4
***** BB02, stmt 9
( 5, 8) [000022] ------------ * STMT void (IL 0x000... ???)
N004 ( 5, 8) [000021] ------------ \--* JTRUE void
N002 ( 1, 4) [000019] ------------ | /--* CNS_INT int 256
N003 ( 3, 6) [000020] J------N---- \--* GE int
N001 ( 1, 1) [000018] ------------ \--* LCL_VAR int V04 tmp3 u:4
------------ BB03 [000..001) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 10
( 2, 3) [000205] ------------ * STMT void (IL ???... ???)