Created
September 15, 2018 06:43
-
-
Save damageboy/0266018efbbf0a8478aa4d50de1c894f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
****** START compiling Program:POPCNTAndBMI2Unrolled(int):int (MethodHash=8edbbc1e) | |
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:POPCNTAndBMI2Unrolled(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:POPCNTAndBMI2Unrolled(int):int | |
Jump targets: | |
none | |
New Basic Block BB01 [0000] created. | |
BB01 [000..011) | |
CLFLG_MINOPT set for method Program:POPCNTAndBMI2Unrolled(int):int | |
IL Code Size,Instr 17, 5, Basic Block count 1, Local Variable Num,Ref count 2, 1 for method Program:POPCNTAndBMI2Unrolled(int):int | |
IL Code Size,Instr 17, 5, Basic Block count 1, Local Variable Num,Ref count 2, 1 for method Program:POPCNTAndBMI2Unrolled(int):int | |
OPTIONS: opts.MinOpts() == true | |
Basic block list for 'Program:POPCNTAndBMI2Unrolled(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:POPCNTAndBMI2Unrolled(int):int | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'Program:POPCNTAndBMI2Unrolled(int):int' | |
[ 0] 0 (0x000) ldsfld 04000003 | |
[ 1] 5 (0x005) ldc.i4 1024 | |
[ 2] 10 (0x00a) ldarg.0 | |
[ 3] 11 (0x00b) call 0A000014 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0 | |
[ 1] 16 (0x010) ret | |
[000009] ------------ * STMT void (IL 0x000... ???) | |
[000008] --C-G------- \--* RETURN int | |
[000004] --C-G------- \--* CALL int GetNthBitOffset.POPCNTAndBMI2Unrolled | |
[000001] ----G------- arg0 +--* FIELD long _bits | |
[000002] ------------ arg1 +--* CNS_INT int 0x400 | |
[000003] ------------ arg2 \--* LCL_VAR int V00 arg0 | |
New BlockSet epoch 1, # of blocks (including unused BB00): 2, bitset array size: 1 (short) | |
*************** In fgMorph() | |
*************** In fgDebugCheckBBlist | |
*************** After fgAddInternal() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..011) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** 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() | |
promotion opt flag not enabled | |
*************** In fgMarkAddressExposedLocals() | |
*************** In fgMorphBlocks() | |
Morphing BB01 of 'Program:POPCNTAndBMI2Unrolled(int):int' | |
fgMorphTree BB01, stmt 1 (before) | |
[000008] --C-G------- * RETURN int | |
[000004] --C-G------- \--* CALL int GetNthBitOffset.POPCNTAndBMI2Unrolled | |
[000001] ----G------- arg0 +--* FIELD long _bits | |
[000002] ------------ arg1 +--* CNS_INT int 0x400 | |
[000003] ------------ arg2 \--* LCL_VAR int V00 arg0 | |
Morphing args for 4.CALL: | |
argSlots=3, preallocatedArgCount=0, nextSlotNum=0, outgoingArgSpaceSize=0 | |
Sorting the arguments: | |
Deferred argument ('rdi'): | |
[000001] x---G+------ * IND long | |
[000010] -----+------ \--* CNS_INT(h) long 0x7fec25be4cb8 static Fseq[_bits] | |
Replaced with placeholder node: | |
[000011] ----------L- * ARGPLACE long | |
Deferred argument ('rdx'): | |
[000003] -----+------ * LCL_VAR int V00 arg0 | |
Replaced with placeholder node: | |
[000013] ----------L- * ARGPLACE int | |
Deferred argument ('rsi'): | |
[000002] -----+------ * CNS_INT int 0x400 | |
Replaced with placeholder node: | |
[000015] ----------L- * ARGPLACE int | |
Shuffled argument table: rdi rdx rsi | |
fgArgTabEntry[arg 0 1.IND, 1 reg: rdi, align=1, lateArgInx=0, processed] | |
fgArgTabEntry[arg 2 3.LCL_VAR, 1 reg: rdx, align=1, lateArgInx=1, processed] | |
fgArgTabEntry[arg 1 2.CNS_INT, 1 reg: rsi, align=1, lateArgInx=2, processed] | |
fgMorphTree BB01, stmt 1 (after) | |
[000008] --CXG+------ * RETURN int | |
[000004] --CXG+------ \--* CALL int GetNthBitOffset.POPCNTAndBMI2Unrolled | |
[000001] x---G+------ arg0 in rdi +--* IND long | |
[000010] -----+------ | \--* CNS_INT(h) long 0x7fec25be4cb8 static Fseq[_bits] | |
[000003] -----+------ arg2 in rdx +--* LCL_VAR int V00 arg0 | |
[000002] -----+------ arg1 in rsi \--* CNS_INT int 0x400 | |
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) (return) i gcsafe | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table is empty | |
*************** After renumbering the basic blocks | |
=============== No blocks renumbered! | |
*************** In fgComputePreds() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..011) (return) i gcsafe | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** After fgComputePreds() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..011) (return) i label target gcsafe | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In fgComputeBlockAndEdgeWeights() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..011) (return) i label target gcsafe | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
-- no profile data, so using default called count | |
-- not optimizing, so not computing 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) (return) i label target gcsafe | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table is empty | |
*************** In fgDebugCheckBBlist | |
*************** 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) (return) i label target gcsafe | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..011) (return), preds={} succs={} | |
***** BB01, stmt 1 | |
[000009] ------------ * STMT void (IL 0x000...0x010) | |
[000008] --CXG+------ \--* RETURN int | |
[000004] --CXG+------ \--* CALL int GetNthBitOffset.POPCNTAndBMI2Unrolled | |
[000001] x---G+------ arg0 in rdi +--* IND long | |
[000010] -----+------ | \--* CNS_INT(h) long 0x7fec25be4cb8 static Fseq[_bits] | |
[000003] -----+------ arg2 in rdx +--* LCL_VAR int V00 arg0 | |
[000002] -----+------ arg1 in rsi \--* CNS_INT int 0x400 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** 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) (return) i label target gcsafe | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..011) (return), preds={} succs={} | |
***** BB01, stmt 1 | |
[000009] ------------ * STMT void (IL 0x000...0x010) | |
[000008] --CXG+------ \--* RETURN int | |
[000004] --CXG+------ \--* CALL int GetNthBitOffset.POPCNTAndBMI2Unrolled | |
[000001] x---G+------ arg0 in rdi +--* IND long | |
[000010] -----+------ | \--* CNS_INT(h) long 0x7fec25be4cb8 static Fseq[_bits] | |
[000003] -----+------ arg2 in rdx +--* LCL_VAR int V00 arg0 | |
[000002] -----+------ arg1 in rsi \--* CNS_INT int 0x400 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** In lvaMarkLocalVars() | |
*** lvaComputeRefCounts *** | |
*************** In fgFindOperOrder() | |
*************** In fgSetBlockOrder() | |
The biggest BB has 15 tree nodes | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..011) (return) i label target gcsafe | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..011) (return), preds={} succs={} | |
***** BB01, stmt 1 | |
( 24, 27) [000009] ------------ * STMT void (IL 0x000...0x010) | |
N015 ( 24, 27) [000008] --CXG------- \--* RETURN int | |
N014 ( 23, 26) [000004] --CXG------- \--* CALL int GetNthBitOffset.POPCNTAndBMI2Unrolled | |
N008 ( 5, 12) [000001] x---G------- arg0 in rdi +--* IND long | |
N007 ( 3, 10) [000010] ------------ | \--* CNS_INT(h) long 0x7fec25be4cb8 static Fseq[_bits] | |
N009 ( 3, 2) [000003] ------------ arg2 in rdx +--* LCL_VAR int V00 arg0 | |
N010 ( 1, 4) [000002] ------------ arg1 in rsi \--* CNS_INT int 0x400 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDetermineFirstColdBlock() | |
No procedure splitting will be done for this method | |
*************** In IR Rationalize | |
Trees before IR Rationalize | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..011) (return) i label target gcsafe | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..011) (return), preds={} succs={} | |
***** BB01, stmt 1 | |
( 24, 27) [000009] ------------ * STMT void (IL 0x000...0x010) | |
N015 ( 24, 27) [000008] --CXG------- \--* RETURN int | |
N014 ( 23, 26) [000004] --CXG------- \--* CALL int GetNthBitOffset.POPCNTAndBMI2Unrolled | |
N008 ( 5, 12) [000001] x---G------- arg0 in rdi +--* IND long | |
N007 ( 3, 10) [000010] ------------ | \--* CNS_INT(h) long 0x7fec25be4cb8 static Fseq[_bits] | |
N009 ( 3, 2) [000003] ------------ arg2 in rdx +--* LCL_VAR int V00 arg0 | |
N010 ( 1, 4) [000002] ------------ arg1 in rsi \--* CNS_INT int 0x400 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** Exiting IR Rationalize | |
Trees after IR Rationalize | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..011) (return) i label target gcsafe LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..011) (return), preds={} succs={} | |
( 24, 27) [000009] ------------ IL_OFFSET void IL offset: 0x0 | |
N007 ( 3, 10) [000010] ------------ t10 = CNS_INT(h) long 0x7fec25be4cb8 static Fseq[_bits] | |
/--* t10 long | |
N008 ( 5, 12) [000001] x---G------- t1 = * IND long | |
N009 ( 3, 2) [000003] ------------ t3 = LCL_VAR int V00 arg0 | |
N010 ( 1, 4) [000002] ------------ t2 = CNS_INT int 0x400 | |
/--* t1 long arg0 in rdi | |
+--* t3 int arg2 in rdx | |
+--* t2 int arg1 in rsi | |
N014 ( 23, 26) [000004] --CXG------- t4 = * CALL int GetNthBitOffset.POPCNTAndBMI2Unrolled | |
/--* t4 int | |
N015 ( 24, 27) [000008] ---XG------- * RETURN int | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
outgoingArgSpaceSize 0 sufficient for call [000004], which needs 0 | |
*************** In fgDebugCheckBBlist | |
*************** In Lowering | |
Trees before Lowering | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..011) (return) i label target gcsafe LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..011) (return), preds={} succs={} | |
( 24, 27) [000009] ------------ IL_OFFSET void IL offset: 0x0 | |
N007 ( 3, 10) [000010] ------------ t10 = CNS_INT(h) long 0x7fec25be4cb8 static Fseq[_bits] | |
/--* t10 long | |
N008 ( 5, 12) [000001] x---G------- t1 = * IND long | |
N009 ( 3, 2) [000003] ------------ t3 = LCL_VAR int V00 arg0 | |
N010 ( 1, 4) [000002] ------------ t2 = CNS_INT int 0x400 | |
/--* t1 long arg0 in rdi | |
+--* t3 int arg2 in rdx | |
+--* t2 int arg1 in rsi | |
N014 ( 23, 26) [000004] --CXG------- t4 = * CALL int GetNthBitOffset.POPCNTAndBMI2Unrolled | |
/--* t4 int | |
N015 ( 24, 27) [000008] ---XG------- * RETURN int | |
------------------------------------------------------------------------------------------------------------------- | |
No addressing mode: | |
N007 ( 3, 10) [000010] ------------ * CNS_INT(h) long 0x7fec25be4cb8 static Fseq[_bits] | |
lowering call (before): | |
N007 ( 3, 10) [000010] ------------ t10 = CNS_INT(h) long 0x7fec25be4cb8 static Fseq[_bits] | |
/--* t10 long | |
N008 ( 5, 12) [000001] x---G------- t1 = * IND long | |
N009 ( 3, 2) [000003] ------------ t3 = LCL_VAR int V00 arg0 | |
N010 ( 1, 4) [000002] ------------ t2 = CNS_INT int 0x400 | |
/--* t1 long arg0 in rdi | |
+--* t3 int arg2 in rdx | |
+--* t2 int arg1 in rsi | |
N014 ( 23, 26) [000004] --CXG------- t4 = * CALL int GetNthBitOffset.POPCNTAndBMI2Unrolled | |
objp: | |
====== | |
args: | |
====== | |
lowering arg : N001 ( 0, 0) [000011] ----------L- * ARGPLACE long | |
lowering arg : N002 ( 0, 0) [000015] ----------L- * ARGPLACE int | |
lowering arg : N003 ( 0, 0) [000013] ----------L- * ARGPLACE int | |
late: | |
====== | |
lowering arg : N008 ( 5, 12) [000001] x---G------- * IND long | |
new node is : [000017] ----G------- * PUTARG_REG long REG rdi | |
lowering arg : N009 ( 3, 2) [000003] ------------ * LCL_VAR int V00 arg0 | |
new node is : [000018] ------------ * PUTARG_REG int REG rdx | |
lowering arg : N010 ( 1, 4) [000002] ------------ * CNS_INT int 0x400 | |
new node is : [000019] ------------ * PUTARG_REG int REG rsi | |
lowering call (after): | |
N007 ( 3, 10) [000010] ------------ t10 = CNS_INT(h) long 0x7fec25be4cb8 static Fseq[_bits] | |
/--* t10 long | |
N008 ( 5, 12) [000001] x---G------- t1 = * IND long | |
/--* t1 long | |
[000017] ----G------- t17 = * PUTARG_REG long REG rdi | |
N009 ( 3, 2) [000003] ------------ t3 = LCL_VAR int V00 arg0 | |
/--* t3 int | |
[000018] ------------ t18 = * PUTARG_REG int REG rdx | |
N010 ( 1, 4) [000002] ------------ t2 = CNS_INT int 0x400 | |
/--* t2 int | |
[000019] ------------ t19 = * PUTARG_REG int REG rsi | |
/--* t17 long arg0 in rdi | |
+--* t18 int arg2 in rdx | |
+--* t19 int arg1 in rsi | |
N014 ( 23, 26) [000004] --CXG------- t4 = * CALL int GetNthBitOffset.POPCNTAndBMI2Unrolled | |
lowering GT_RETURN | |
N015 ( 24, 27) [000008] ---XG------- * RETURN int | |
============Lower has completed modifying nodes. | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..011) (return) i label target gcsafe LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..011) (return), preds={} succs={} | |
( 24, 27) [000009] ------------ IL_OFFSET void IL offset: 0x0 | |
N007 ( 3, 10) [000010] ------------ t10 = CNS_INT(h) long 0x7fec25be4cb8 static Fseq[_bits] | |
/--* t10 long | |
N008 ( 5, 12) [000001] x---G------- t1 = * IND long | |
/--* t1 long | |
[000017] ----G------- t17 = * PUTARG_REG long REG rdi | |
N009 ( 3, 2) [000003] ------------ t3 = LCL_VAR int V00 arg0 | |
/--* t3 int | |
[000018] ------------ t18 = * PUTARG_REG int REG rdx | |
N010 ( 1, 4) [000002] ------------ t2 = CNS_INT int 0x400 | |
/--* t2 int | |
[000019] ------------ t19 = * PUTARG_REG int REG rsi | |
/--* t17 long arg0 in rdi | |
+--* t18 int arg2 in rdx | |
+--* t19 int arg1 in rsi | |
N014 ( 23, 26) [000004] --CXG------- t4 = * CALL int GetNthBitOffset.POPCNTAndBMI2Unrolled | |
/--* t4 int | |
N015 ( 24, 27) [000008] ---XG------- * RETURN int | |
------------------------------------------------------------------------------------------------------------------- | |
*** lvaComputeRefCounts *** | |
*************** In fgLocalVarLiveness() | |
; Initial local variable assignments | |
; | |
; V00 arg0 int | |
; V01 OutArgs lclBlk ( 0) | |
In fgLocalVarLivenessInit | |
*************** In fgPerBlockLocalVarLiveness() | |
*************** In fgInterBlockLocalVarLiveness() | |
*** lvaComputeRefCounts *** | |
Liveness pass finished after lowering, IR: | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..011) (return) i label target gcsafe LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..011) (return), preds={} succs={} | |
( 24, 27) [000009] ------------ IL_OFFSET void IL offset: 0x0 | |
N007 ( 3, 10) [000010] ------------ t10 = CNS_INT(h) long 0x7fec25be4cb8 static Fseq[_bits] | |
/--* t10 long | |
N008 ( 5, 12) [000001] x---G------- t1 = * IND long | |
/--* t1 long | |
[000017] ----G------- t17 = * PUTARG_REG long REG rdi | |
N009 ( 3, 2) [000003] ------------ t3 = LCL_VAR int V00 arg0 | |
/--* t3 int | |
[000018] ------------ t18 = * PUTARG_REG int REG rdx | |
N010 ( 1, 4) [000002] ------------ t2 = CNS_INT int 0x400 | |
/--* t2 int | |
[000019] ------------ t19 = * PUTARG_REG int REG rsi | |
/--* t17 long arg0 in rdi | |
+--* t18 int arg2 in rdx | |
+--* t19 int arg1 in rsi | |
N014 ( 23, 26) [000004] --CXG------- t4 = * CALL int GetNthBitOffset.POPCNTAndBMI2Unrolled | |
/--* t4 int | |
N015 ( 24, 27) [000008] ---XG------- * RETURN int | |
------------------------------------------------------------------------------------------------------------------- | |
*************** Exiting Lowering | |
Trees after Lowering | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..011) (return) i label target gcsafe LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..011) (return), preds={} succs={} | |
( 24, 27) [000009] ------------ IL_OFFSET void IL offset: 0x0 | |
N007 ( 3, 10) [000010] ------------ t10 = CNS_INT(h) long 0x7fec25be4cb8 static Fseq[_bits] | |
/--* t10 long | |
N008 ( 5, 12) [000001] x---G------- t1 = * IND long | |
/--* t1 long | |
[000017] ----G------- t17 = * PUTARG_REG long REG rdi | |
N009 ( 3, 2) [000003] ------------ t3 = LCL_VAR int V00 arg0 | |
/--* t3 int | |
[000018] ------------ t18 = * PUTARG_REG int REG rdx | |
N010 ( 1, 4) [000002] ------------ t2 = CNS_INT int 0x400 | |
/--* t2 int | |
[000019] ------------ t19 = * PUTARG_REG int REG rsi | |
/--* t17 long arg0 in rdi | |
+--* t18 int arg2 in rdx | |
+--* t19 int arg1 in rsi | |
N014 ( 23, 26) [000004] --CXG------- t4 = * CALL int GetNthBitOffset.POPCNTAndBMI2Unrolled | |
/--* t4 int | |
N015 ( 24, 27) [000008] ---XG------- * RETURN int | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** In StackLevelSetter | |
Trees before StackLevelSetter | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..011) (return) i label target gcsafe LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..011) (return), preds={} succs={} | |
( 24, 27) [000009] ------------ IL_OFFSET void IL offset: 0x0 | |
N007 ( 3, 10) [000010] ------------ t10 = CNS_INT(h) long 0x7fec25be4cb8 static Fseq[_bits] | |
/--* t10 long | |
N008 ( 5, 12) [000001] x---G------- t1 = * IND long | |
/--* t1 long | |
[000017] ----G------- t17 = * PUTARG_REG long REG rdi | |
N009 ( 3, 2) [000003] ------------ t3 = LCL_VAR int V00 arg0 | |
/--* t3 int | |
[000018] ------------ t18 = * PUTARG_REG int REG rdx | |
N010 ( 1, 4) [000002] ------------ t2 = CNS_INT int 0x400 | |
/--* t2 int | |
[000019] ------------ t19 = * PUTARG_REG int REG rsi | |
/--* t17 long arg0 in rdi | |
+--* t18 int arg2 in rdx | |
+--* t19 int arg1 in rsi | |
N014 ( 23, 26) [000004] --CXG------- t4 = * CALL int GetNthBitOffset.POPCNTAndBMI2Unrolled | |
/--* t4 int | |
N015 ( 24, 27) [000008] ---XG------- * RETURN int | |
------------------------------------------------------------------------------------------------------------------- | |
*************** Exiting StackLevelSetter | |
Trees after StackLevelSetter | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..011) (return) i label target gcsafe LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..011) (return), preds={} succs={} | |
( 24, 27) [000009] ------------ IL_OFFSET void IL offset: 0x0 | |
N007 ( 3, 10) [000010] ------------ t10 = CNS_INT(h) long 0x7fec25be4cb8 static Fseq[_bits] | |
/--* t10 long | |
N008 ( 5, 12) [000001] x---G------- t1 = * IND long | |
/--* t1 long | |
[000017] ----G------- t17 = * PUTARG_REG long REG rdi | |
N009 ( 3, 2) [000003] ------------ t3 = LCL_VAR int V00 arg0 | |
/--* t3 int | |
[000018] ------------ t18 = * PUTARG_REG int REG rdx | |
N010 ( 1, 4) [000002] ------------ t2 = CNS_INT int 0x400 | |
/--* t2 int | |
[000019] ------------ t19 = * PUTARG_REG int REG rsi | |
/--* t17 long arg0 in rdi | |
+--* t18 int arg2 in rdx | |
+--* t19 int arg1 in rsi | |
N014 ( 23, 26) [000004] --CXG------- t4 = * CALL int GetNthBitOffset.POPCNTAndBMI2Unrolled | |
/--* t4 int | |
N015 ( 24, 27) [000008] ---XG------- * RETURN int | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Clearing modified regs. | |
buildIntervals ======== | |
----------------- | |
LIVENESS: | |
----------------- | |
BB01 use def in out | |
{} | |
{} | |
{} | |
{} | |
FP callee save candidate vars: None | |
floatVarCount = 0; hasLoops = 0, singleExit = 1 | |
; Decided to create an EBP based frame for ETW stackwalking (Debug Code) | |
TUPLE STYLE DUMP BEFORE LSRA | |
LSRA Block Sequence: BB01( 1 ) | |
BB01 [000..011) (return), preds={} succs={} | |
===== | |
N000. IL_OFFSET IL offset: 0x0 | |
N007. t10* = CNS_INT(h) 0x7fec25be4cb8 static Fseq[_bits] | |
N008. t1 = IND ; t10* | |
N000. t17 = PUTARG_REG; t1 | |
N009. t3 = V00 MEM | |
N000. t18 = PUTARG_REG; t3 | |
N010. t2 = CNS_INT 0x400 | |
N000. t19 = PUTARG_REG; t2 | |
N014. t4 = CALL ; t17,t18,t19 | |
N015. RETURN ; t4 | |
buildIntervals second part ======== | |
Int arg V00 in reg rdi | |
NEW BLOCK BB01 | |
<RefPosition #0 @0 RefTypeBB BB01 regmask=[] minReg=1> | |
DefList: { } | |
N002 ( 24, 27) [000009] ------------ * IL_OFFSET void IL offset: 0x0 REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N004 ( 3, 10) [000010] ------------ * CNS_INT(h) long 0x7fec25be4cb8 static Fseq[_bits] REG NA | |
Interval 0: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #1 @5 RefTypeDef <Ivl:0> CNS_INT BB01 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N004.t10. CNS_INT } | |
N006 ( 5, 12) [000001] x---G------- * IND long REG NA | |
<RefPosition #2 @6 RefTypeUse <Ivl:0> BB01 regmask=[allInt] minReg=1 last> | |
Interval 1: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #3 @7 RefTypeDef <Ivl:1> IND BB01 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=1 | |
DefList: { N006.t1. IND } | |
N008 (???,???) [000017] ----G------- * PUTARG_REG long REG rdi | |
<RefPosition #4 @8 RefTypeFixedReg <Reg:rdi> BB01 regmask=[rdi] minReg=1> | |
<RefPosition #5 @8 RefTypeUse <Ivl:1> BB01 regmask=[rdi] minReg=1 last fixed> | |
Interval 2: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #6 @9 RefTypeFixedReg <Reg:rdi> BB01 regmask=[rdi] minReg=1> | |
<RefPosition #7 @9 RefTypeDef <Ivl:2> PUTARG_REG BB01 regmask=[rdi] minReg=1 fixed> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=1 | |
DefList: { N008.t17. PUTARG_REG } | |
N010 ( 3, 2) [000003] ------------ * LCL_VAR int V00 arg0 NA REG NA | |
Interval 3: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #8 @11 RefTypeDef <Ivl:3> LCL_VAR BB01 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N008.t17. PUTARG_REG; N010.t3. LCL_VAR } | |
N012 (???,???) [000018] ------------ * PUTARG_REG int REG rdx | |
<RefPosition #9 @12 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1> | |
<RefPosition #10 @12 RefTypeUse <Ivl:3> BB01 regmask=[rdx] minReg=1 last fixed> | |
Interval 4: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #11 @13 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1> | |
<RefPosition #12 @13 RefTypeDef <Ivl:4> PUTARG_REG BB01 regmask=[rdx] minReg=1 fixed> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=1 | |
DefList: { N008.t17. PUTARG_REG; N012.t18. PUTARG_REG } | |
N014 ( 1, 4) [000002] ------------ * CNS_INT int 0x400 REG NA | |
Interval 5: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #13 @15 RefTypeDef <Ivl:5> CNS_INT BB01 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N008.t17. PUTARG_REG; N012.t18. PUTARG_REG; N014.t2. CNS_INT } | |
N016 (???,???) [000019] ------------ * PUTARG_REG int REG rsi | |
<RefPosition #14 @16 RefTypeFixedReg <Reg:rsi> BB01 regmask=[rsi] minReg=1> | |
<RefPosition #15 @16 RefTypeUse <Ivl:5> BB01 regmask=[rsi] minReg=1 last fixed> | |
Interval 6: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #16 @17 RefTypeFixedReg <Reg:rsi> BB01 regmask=[rsi] minReg=1> | |
<RefPosition #17 @17 RefTypeDef <Ivl:6> PUTARG_REG BB01 regmask=[rsi] minReg=1 fixed> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=1 | |
DefList: { N008.t17. PUTARG_REG; N012.t18. PUTARG_REG; N016.t19. PUTARG_REG } | |
N018 ( 23, 26) [000004] --CXG------- * CALL int GetNthBitOffset.POPCNTAndBMI2Unrolled | |
<RefPosition #18 @18 RefTypeFixedReg <Reg:rdi> BB01 regmask=[rdi] minReg=1> | |
<RefPosition #19 @18 RefTypeUse <Ivl:2> BB01 regmask=[rdi] minReg=1 last fixed> | |
<RefPosition #20 @18 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1> | |
<RefPosition #21 @18 RefTypeUse <Ivl:4> BB01 regmask=[rdx] minReg=1 last fixed> | |
<RefPosition #22 @18 RefTypeFixedReg <Reg:rsi> BB01 regmask=[rsi] minReg=1> | |
<RefPosition #23 @18 RefTypeUse <Ivl:6> BB01 regmask=[rsi] minReg=1 last fixed> | |
<RefPosition #24 @19 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1> | |
<RefPosition #25 @19 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #26 @19 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1> | |
<RefPosition #27 @19 RefTypeKill <Reg:rsi> BB01 regmask=[rsi] minReg=1> | |
<RefPosition #28 @19 RefTypeKill <Reg:rdi> BB01 regmask=[rdi] minReg=1> | |
<RefPosition #29 @19 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1> | |
<RefPosition #30 @19 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1> | |
<RefPosition #31 @19 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1> | |
<RefPosition #32 @19 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1> | |
Interval 7: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #33 @19 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1> | |
<RefPosition #34 @19 RefTypeDef <Ivl:7> CALL BB01 regmask=[rax] minReg=1 fixed> | |
+<TreeNodeInfo 1=3 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 3 produce=1 | |
DefList: { N018.t4. CALL } | |
N020 ( 24, 27) [000008] ---XG------- * RETURN int REG NA | |
<RefPosition #35 @20 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1> | |
<RefPosition #36 @20 RefTypeUse <Ivl:7> BB01 regmask=[rax] minReg=1 last fixed> | |
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=0 | |
Linear scan intervals BEFORE VALIDATING INTERVALS: | |
Interval 0: (constant) RefPositions {#1@5 #2@6} physReg:NA Preferences=[allInt] | |
Interval 1: RefPositions {#3@7 #5@8} physReg:NA Preferences=[rdi] | |
Interval 2: RefPositions {#7@9 #19@18} physReg:NA Preferences=[rdi] | |
Interval 3: RefPositions {#8@11 #10@12} physReg:NA Preferences=[rdx] | |
Interval 4: RefPositions {#12@13 #21@18} physReg:NA Preferences=[rdx] | |
Interval 5: (constant) RefPositions {#13@15 #15@16} physReg:NA Preferences=[rsi] | |
Interval 6: RefPositions {#17@17 #23@18} physReg:NA Preferences=[rsi] | |
Interval 7: RefPositions {#34@19 #36@20} physReg:NA Preferences=[rax] | |
------------ | |
REFPOSITIONS BEFORE VALIDATING INTERVALS: | |
------------ | |
<RefPosition #0 @0 RefTypeBB BB01 regmask=[] minReg=1> | |
<RefPosition #1 @5 RefTypeDef <Ivl:0> CNS_INT BB01 regmask=[allInt] minReg=1> | |
<RefPosition #2 @6 RefTypeUse <Ivl:0> BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #3 @7 RefTypeDef <Ivl:1> IND BB01 regmask=[rdi] minReg=1> | |
<RefPosition #4 @8 RefTypeFixedReg <Reg:rdi> BB01 regmask=[rdi] minReg=1> | |
<RefPosition #5 @8 RefTypeUse <Ivl:1> BB01 regmask=[rdi] minReg=1 last fixed> | |
<RefPosition #6 @9 RefTypeFixedReg <Reg:rdi> BB01 regmask=[rdi] minReg=1> | |
<RefPosition #7 @9 RefTypeDef <Ivl:2> PUTARG_REG BB01 regmask=[rdi] minReg=1 fixed> | |
<RefPosition #8 @11 RefTypeDef <Ivl:3> LCL_VAR BB01 regmask=[rdx] minReg=1> | |
<RefPosition #9 @12 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1> | |
<RefPosition #10 @12 RefTypeUse <Ivl:3> BB01 regmask=[rdx] minReg=1 last fixed> | |
<RefPosition #11 @13 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1> | |
<RefPosition #12 @13 RefTypeDef <Ivl:4> PUTARG_REG BB01 regmask=[rdx] minReg=1 fixed> | |
<RefPosition #13 @15 RefTypeDef <Ivl:5> CNS_INT BB01 regmask=[rsi] minReg=1> | |
<RefPosition #14 @16 RefTypeFixedReg <Reg:rsi> BB01 regmask=[rsi] minReg=1> | |
<RefPosition #15 @16 RefTypeUse <Ivl:5> BB01 regmask=[rsi] minReg=1 last fixed> | |
<RefPosition #16 @17 RefTypeFixedReg <Reg:rsi> BB01 regmask=[rsi] minReg=1> | |
<RefPosition #17 @17 RefTypeDef <Ivl:6> PUTARG_REG BB01 regmask=[rsi] minReg=1 fixed> | |
<RefPosition #18 @18 RefTypeFixedReg <Reg:rdi> BB01 regmask=[rdi] minReg=1> | |
<RefPosition #19 @18 RefTypeUse <Ivl:2> BB01 regmask=[rdi] minReg=1 last fixed> | |
<RefPosition #20 @18 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1> | |
<RefPosition #21 @18 RefTypeUse <Ivl:4> BB01 regmask=[rdx] minReg=1 last fixed> | |
<RefPosition #22 @18 RefTypeFixedReg <Reg:rsi> BB01 regmask=[rsi] minReg=1> | |
<RefPosition #23 @18 RefTypeUse <Ivl:6> BB01 regmask=[rsi] minReg=1 last fixed> | |
<RefPosition #24 @19 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last> | |
<RefPosition #25 @19 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last> | |
<RefPosition #26 @19 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last> | |
<RefPosition #27 @19 RefTypeKill <Reg:rsi> BB01 regmask=[rsi] minReg=1 last> | |
<RefPosition #28 @19 RefTypeKill <Reg:rdi> BB01 regmask=[rdi] minReg=1 last> | |
<RefPosition #29 @19 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last> | |
<RefPosition #30 @19 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last> | |
<RefPosition #31 @19 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last> | |
<RefPosition #32 @19 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last> | |
<RefPosition #33 @19 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1> | |
<RefPosition #34 @19 RefTypeDef <Ivl:7> CALL BB01 regmask=[rax] minReg=1 fixed> | |
<RefPosition #35 @20 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1> | |
<RefPosition #36 @20 RefTypeUse <Ivl:7> BB01 regmask=[rax] minReg=1 last fixed> | |
TUPLE STYLE DUMP WITH REF POSITIONS | |
Incoming Parameters: | |
BB01 [000..011) (return), preds={} succs={} | |
===== | |
N002. IL_OFFSET IL offset: 0x0 REG NA | |
N004. CNS_INT(h) 0x7fec25be4cb8 static Fseq[_bits] REG NA | |
Def:<I0>(#1) | |
N006. IND | |
Use:<I0>(#2) * | |
Def:<I1>(#3) | |
N008. PUTARG_REG | |
Use:<I1>(#5) Fixed:rdi(#4) * | |
Def:<I2>(#7) rdi | |
N010. V00 MEM | |
Def:<I3>(#8) | |
N012. PUTARG_REG | |
Use:<I3>(#10) Fixed:rdx(#9) * | |
Def:<I4>(#12) rdx | |
N014. CNS_INT 0x400 REG NA | |
Def:<I5>(#13) | |
N016. PUTARG_REG | |
Use:<I5>(#15) Fixed:rsi(#14) * | |
Def:<I6>(#17) rsi | |
N018. CALL | |
Use:<I2>(#19) Fixed:rdi(#18) * | |
Use:<I4>(#21) Fixed:rdx(#20) * | |
Use:<I6>(#23) Fixed:rsi(#22) * | |
Kill: rax rcx rdx rsi rdi r8 r9 r10 r11 | |
Def:<I7>(#34) rax | |
N020. RETURN | |
Use:<I7>(#36) Fixed:rax(#35) * | |
Linear scan intervals after buildIntervals: | |
Interval 0: (constant) RefPositions {#1@5 #2@6} physReg:NA Preferences=[allInt] | |
Interval 1: RefPositions {#3@7 #5@8} physReg:NA Preferences=[rdi] | |
Interval 2: RefPositions {#7@9 #19@18} physReg:NA Preferences=[rdi] | |
Interval 3: RefPositions {#8@11 #10@12} physReg:NA Preferences=[rdx] | |
Interval 4: RefPositions {#12@13 #21@18} physReg:NA Preferences=[rdx] | |
Interval 5: (constant) RefPositions {#13@15 #15@16} physReg:NA Preferences=[rsi] | |
Interval 6: RefPositions {#17@17 #23@18} physReg:NA Preferences=[rsi] | |
Interval 7: RefPositions {#34@19 #36@20} physReg:NA Preferences=[rax] | |
*************** In LinearScan::allocateRegisters() | |
Linear scan intervals before allocateRegisters: | |
Interval 0: (constant) RefPositions {#1@5 #2@6} physReg:NA Preferences=[allInt] | |
Interval 1: RefPositions {#3@7 #5@8} physReg:NA Preferences=[rdi] | |
Interval 2: RefPositions {#7@9 #19@18} physReg:NA Preferences=[rdi] | |
Interval 3: RefPositions {#8@11 #10@12} physReg:NA Preferences=[rdx] | |
Interval 4: RefPositions {#12@13 #21@18} physReg:NA Preferences=[rdx] | |
Interval 5: (constant) RefPositions {#13@15 #15@16} physReg:NA Preferences=[rsi] | |
Interval 6: RefPositions {#17@17 #23@18} physReg:NA Preferences=[rsi] | |
Interval 7: RefPositions {#34@19 #36@20} physReg:NA Preferences=[rax] | |
------------ | |
REFPOSITIONS BEFORE ALLOCATION: | |
------------ | |
<RefPosition #0 @0 RefTypeBB BB01 regmask=[] minReg=1> | |
<RefPosition #1 @5 RefTypeDef <Ivl:0> CNS_INT BB01 regmask=[allInt] minReg=1> | |
<RefPosition #2 @6 RefTypeUse <Ivl:0> BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #3 @7 RefTypeDef <Ivl:1> IND BB01 regmask=[rdi] minReg=1> | |
<RefPosition #4 @8 RefTypeFixedReg <Reg:rdi> BB01 regmask=[rdi] minReg=1> | |
<RefPosition #5 @8 RefTypeUse <Ivl:1> BB01 regmask=[rdi] minReg=1 last fixed> | |
<RefPosition #6 @9 RefTypeFixedReg <Reg:rdi> BB01 regmask=[rdi] minReg=1> | |
<RefPosition #7 @9 RefTypeDef <Ivl:2> PUTARG_REG BB01 regmask=[rdi] minReg=1 fixed> | |
<RefPosition #8 @11 RefTypeDef <Ivl:3> LCL_VAR BB01 regmask=[rdx] minReg=1> | |
<RefPosition #9 @12 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1> | |
<RefPosition #10 @12 RefTypeUse <Ivl:3> BB01 regmask=[rdx] minReg=1 last fixed> | |
<RefPosition #11 @13 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1> | |
<RefPosition #12 @13 RefTypeDef <Ivl:4> PUTARG_REG BB01 regmask=[rdx] minReg=1 fixed> | |
<RefPosition #13 @15 RefTypeDef <Ivl:5> CNS_INT BB01 regmask=[rsi] minReg=1> | |
<RefPosition #14 @16 RefTypeFixedReg <Reg:rsi> BB01 regmask=[rsi] minReg=1> | |
<RefPosition #15 @16 RefTypeUse <Ivl:5> BB01 regmask=[rsi] minReg=1 last fixed> | |
<RefPosition #16 @17 RefTypeFixedReg <Reg:rsi> BB01 regmask=[rsi] minReg=1> | |
<RefPosition #17 @17 RefTypeDef <Ivl:6> PUTARG_REG BB01 regmask=[rsi] minReg=1 fixed> | |
<RefPosition #18 @18 RefTypeFixedReg <Reg:rdi> BB01 regmask=[rdi] minReg=1> | |
<RefPosition #19 @18 RefTypeUse <Ivl:2> BB01 regmask=[rdi] minReg=1 last fixed> | |
<RefPosition #20 @18 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1> | |
<RefPosition #21 @18 RefTypeUse <Ivl:4> BB01 regmask=[rdx] minReg=1 last fixed> | |
<RefPosition #22 @18 RefTypeFixedReg <Reg:rsi> BB01 regmask=[rsi] minReg=1> | |
<RefPosition #23 @18 RefTypeUse <Ivl:6> BB01 regmask=[rsi] minReg=1 last fixed> | |
<RefPosition #24 @19 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last> | |
<RefPosition #25 @19 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last> | |
<RefPosition #26 @19 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last> | |
<RefPosition #27 @19 RefTypeKill <Reg:rsi> BB01 regmask=[rsi] minReg=1 last> | |
<RefPosition #28 @19 RefTypeKill <Reg:rdi> BB01 regmask=[rdi] minReg=1 last> | |
<RefPosition #29 @19 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last> | |
<RefPosition #30 @19 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last> | |
<RefPosition #31 @19 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last> | |
<RefPosition #32 @19 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last> | |
<RefPosition #33 @19 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1> | |
<RefPosition #34 @19 RefTypeDef <Ivl:7> CALL BB01 regmask=[rax] minReg=1 fixed> | |
<RefPosition #35 @20 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1> | |
<RefPosition #36 @20 RefTypeUse <Ivl:7> BB01 regmask=[rax] minReg=1 last fixed> | |
Allocating Registers | |
-------------------- | |
The following table has one or more rows for each RefPosition that is handled during allocation. | |
The first column provides the basic information about the RefPosition, with its type (e.g. Def, | |
Use, Fixd) followed by a '*' if it is a last use, and a 'D' if it is delayRegFree, and then the | |
action taken during allocation (e.g. Alloc a new register, or Keep an existing one). | |
The subsequent columns show the Interval occupying each register, if any, followed by 'a' if it is | |
active, and 'i'if it is inactive. Columns are only printed up to the last modifed register, which | |
may increase during allocation, in which case additional columns will appear. Registers which are | |
not marked modified have ---- in their column. | |
------------------------------+----+----+----+----+----+ | |
LocRP# Name Type Action Reg |rax |rcx |rbx |r12 |r13 | | |
------------------------------+----+----+----+----+----+ | |
| | | | | | | |
0.#0 BB1 PredBB0 | | | | | | | |
------------------------------+----+----+----+----+----+----+ | |
LocRP# Name Type Action Reg |rax |rcx |rbx |rdi |r12 |r13 | | |
------------------------------+----+----+----+----+----+----+ | |
5.#1 C0 Def Alloc rdi | | | |C0 a| | | | |
6.#2 C0 Use * Keep rdi | | | |C0 a| | | | |
7.#3 I1 Def Alloc rdi | | | |I1 a| | | | |
8.#4 rdi Fixd Keep rdi | | | |I1 a| | | | |
8.#5 I1 Use * Keep rdi | | | |I1 a| | | | |
9.#6 rdi Fixd Keep rdi | | | | | | | | |
9.#7 I2 Def Alloc rdi | | | |I2 a| | | | |
------------------------------+----+----+----+----+----+----+----+ | |
LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rdi |r12 |r13 | | |
------------------------------+----+----+----+----+----+----+----+ | |
11.#8 I3 Def Alloc rdx | | |I3 a| |I2 a| | | | |
12.#9 rdx Fixd Keep rdx | | |I3 a| |I2 a| | | | |
12.#10 I3 Use * Keep rdx | | |I3 a| |I2 a| | | | |
13.#11 rdx Fixd Keep rdx | | | | |I2 a| | | | |
13.#12 I4 Def Alloc rdx | | |I4 a| |I2 a| | | | |
------------------------------+----+----+----+----+----+----+----+----+ | |
LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rsi |rdi |r12 |r13 | | |
------------------------------+----+----+----+----+----+----+----+----+ | |
15.#13 C5 Def Alloc rsi | | |I4 a| |C5 a|I2 a| | | | |
16.#14 rsi Fixd Keep rsi | | |I4 a| |C5 a|I2 a| | | | |
16.#15 C5 Use * Keep rsi | | |I4 a| |C5 a|I2 a| | | | |
17.#16 rsi Fixd Keep rsi | | |I4 a| | |I2 a| | | | |
17.#17 I6 Def Alloc rsi | | |I4 a| |I6 a|I2 a| | | | |
18.#18 rdi Fixd Keep rdi | | |I4 a| |I6 a|I2 a| | | | |
18.#19 I2 Use * Keep rdi | | |I4 a| |I6 a|I2 a| | | | |
18.#20 rdx Fixd Keep rdx | | |I4 a| |I6 a|I2 a| | | | |
18.#21 I4 Use * Keep rdx | | |I4 a| |I6 a|I2 a| | | | |
18.#22 rsi Fixd Keep rsi | | |I4 a| |I6 a|I2 a| | | | |
18.#23 I6 Use * Keep rsi | | |I4 a| |I6 a|I2 a| | | | |
19.#24 rax Kill Keep rax | | | | | | | | | | |
19.#25 rcx Kill Keep rcx | | | | | | | | | | |
19.#26 rdx Kill Keep rdx | | | | | | | | | | |
19.#27 rsi Kill Keep rsi | | | | | | | | | | |
19.#28 rdi Kill Keep rdi | | | | | | | | | | |
19.#29 r8 Kill Keep r8 | | | | | | | | | | |
19.#30 r9 Kill Keep r9 | | | | | | | | | | |
19.#31 r10 Kill Keep r10 | | | | | | | | | | |
19.#32 r11 Kill Keep r11 | | | | | | | | | | |
19.#33 rax Fixd Keep rax | | | | | | | | | | |
19.#34 I7 Def Alloc rax |I7 a| | | | | | | | | |
20.#35 rax Fixd Keep rax |I7 a| | | | | | | | | |
20.#36 I7 Use * Keep rax | | | | | | | | | | |
------------ | |
REFPOSITIONS AFTER ALLOCATION: | |
------------ | |
<RefPosition #0 @0 RefTypeBB BB01 regmask=[] minReg=1> | |
<RefPosition #1 @5 RefTypeDef <Ivl:0> CNS_INT BB01 regmask=[rdi] minReg=1> | |
<RefPosition #2 @6 RefTypeUse <Ivl:0> BB01 regmask=[rdi] minReg=1 last> | |
<RefPosition #3 @7 RefTypeDef <Ivl:1> IND BB01 regmask=[rdi] minReg=1> | |
<RefPosition #4 @8 RefTypeFixedReg <Reg:rdi> BB01 regmask=[rdi] minReg=1> | |
<RefPosition #5 @8 RefTypeUse <Ivl:1> BB01 regmask=[rdi] minReg=1 last fixed> | |
<RefPosition #6 @9 RefTypeFixedReg <Reg:rdi> BB01 regmask=[rdi] minReg=1> | |
<RefPosition #7 @9 RefTypeDef <Ivl:2> PUTARG_REG BB01 regmask=[rdi] minReg=1 fixed> | |
<RefPosition #8 @11 RefTypeDef <Ivl:3> LCL_VAR BB01 regmask=[rdx] minReg=1> | |
<RefPosition #9 @12 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1> | |
<RefPosition #10 @12 RefTypeUse <Ivl:3> BB01 regmask=[rdx] minReg=1 last fixed> | |
<RefPosition #11 @13 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1> | |
<RefPosition #12 @13 RefTypeDef <Ivl:4> PUTARG_REG BB01 regmask=[rdx] minReg=1 fixed> | |
<RefPosition #13 @15 RefTypeDef <Ivl:5> CNS_INT BB01 regmask=[rsi] minReg=1> | |
<RefPosition #14 @16 RefTypeFixedReg <Reg:rsi> BB01 regmask=[rsi] minReg=1> | |
<RefPosition #15 @16 RefTypeUse <Ivl:5> BB01 regmask=[rsi] minReg=1 last fixed> | |
<RefPosition #16 @17 RefTypeFixedReg <Reg:rsi> BB01 regmask=[rsi] minReg=1> | |
<RefPosition #17 @17 RefTypeDef <Ivl:6> PUTARG_REG BB01 regmask=[rsi] minReg=1 fixed> | |
<RefPosition #18 @18 RefTypeFixedReg <Reg:rdi> BB01 regmask=[rdi] minReg=1> | |
<RefPosition #19 @18 RefTypeUse <Ivl:2> BB01 regmask=[rdi] minReg=1 last fixed> | |
<RefPosition #20 @18 RefTypeFixedReg <Reg:rdx> BB01 regmask=[rdx] minReg=1> | |
<RefPosition #21 @18 RefTypeUse <Ivl:4> BB01 regmask=[rdx] minReg=1 last fixed> | |
<RefPosition #22 @18 RefTypeFixedReg <Reg:rsi> BB01 regmask=[rsi] minReg=1> | |
<RefPosition #23 @18 RefTypeUse <Ivl:6> BB01 regmask=[rsi] minReg=1 last fixed> | |
<RefPosition #24 @19 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last> | |
<RefPosition #25 @19 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last> | |
<RefPosition #26 @19 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last> | |
<RefPosition #27 @19 RefTypeKill <Reg:rsi> BB01 regmask=[rsi] minReg=1 last> | |
<RefPosition #28 @19 RefTypeKill <Reg:rdi> BB01 regmask=[rdi] minReg=1 last> | |
<RefPosition #29 @19 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last> | |
<RefPosition #30 @19 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last> | |
<RefPosition #31 @19 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last> | |
<RefPosition #32 @19 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last> | |
<RefPosition #33 @19 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1> | |
<RefPosition #34 @19 RefTypeDef <Ivl:7> CALL BB01 regmask=[rax] minReg=1 fixed> | |
<RefPosition #35 @20 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1> | |
<RefPosition #36 @20 RefTypeUse <Ivl:7> BB01 regmask=[rax] minReg=1 last fixed> | |
Active intervals at end of allocation: | |
Trees after linear scan register allocator (LSRA) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..011) (return) i label target gcsafe LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..011) (return), preds={} succs={} | |
N002 ( 24, 27) [000009] ------------ IL_OFFSET void IL offset: 0x0 REG NA | |
N004 ( 3, 10) [000010] ------------ t10 = CNS_INT(h) long 0x7fec25be4cb8 static Fseq[_bits] REG rdi | |
/--* t10 long | |
N006 ( 5, 12) [000001] x---G------- t1 = * IND long REG rdi | |
/--* t1 long | |
N008 (???,???) [000017] ----G------- t17 = * PUTARG_REG long REG rdi | |
N010 ( 3, 2) [000003] ------------ t3 = LCL_VAR int V00 arg0 rdx REG rdx | |
/--* t3 int | |
N012 (???,???) [000018] ------------ t18 = * PUTARG_REG int REG rdx | |
N014 ( 1, 4) [000002] ------------ t2 = CNS_INT int 0x400 REG rsi | |
/--* t2 int | |
N016 (???,???) [000019] ------------ t19 = * PUTARG_REG int REG rsi | |
/--* t17 long arg0 in rdi | |
+--* t18 int arg2 in rdx | |
+--* t19 int arg1 in rsi | |
N018 ( 23, 26) [000004] --CXG------- t4 = * CALL int GetNthBitOffset.POPCNTAndBMI2Unrolled | |
/--* t4 int | |
N020 ( 24, 27) [000008] ---XG------- * RETURN int REG NA | |
------------------------------------------------------------------------------------------------------------------- | |
Final allocation | |
------------------------------+----+----+----+----+----+----+----+----+ | |
LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rsi |rdi |r12 |r13 | | |
------------------------------+----+----+----+----+----+----+----+----+ | |
0.#0 BB1 PredBB0 | | | | | | | | | | |
5.#1 C0 Def Alloc rdi | | | | | |C0 a| | | | |
6.#2 C0 Use * Keep rdi | | | | | |C0 i| | | | |
7.#3 I1 Def Alloc rdi | | | | | |I1 a| | | | |
8.#4 rdi Fixd Keep rdi | | | | | |I1 a| | | | |
8.#5 I1 Use * Keep rdi | | | | | |I1 i| | | | |
9.#6 rdi Fixd Keep rdi | | | | | | | | | | |
9.#7 I2 Def Alloc rdi | | | | | |I2 a| | | | |
11.#8 I3 Def Alloc rdx | | |I3 a| | |I2 a| | | | |
12.#9 rdx Fixd Keep rdx | | |I3 a| | |I2 a| | | | |
12.#10 I3 Use * Keep rdx | | |I3 i| | |I2 a| | | | |
13.#11 rdx Fixd Keep rdx | | | | | |I2 a| | | | |
13.#12 I4 Def Alloc rdx | | |I4 a| | |I2 a| | | | |
15.#13 C5 Def Alloc rsi | | |I4 a| |C5 a|I2 a| | | | |
16.#14 rsi Fixd Keep rsi | | |I4 a| |C5 a|I2 a| | | | |
16.#15 C5 Use * Keep rsi | | |I4 a| |C5 i|I2 a| | | | |
17.#16 rsi Fixd Keep rsi | | |I4 a| | |I2 a| | | | |
17.#17 I6 Def Alloc rsi | | |I4 a| |I6 a|I2 a| | | | |
18.#18 rdi Fixd Keep rdi | | |I4 a| |I6 a|I2 a| | | | |
18.#19 I2 Use * Keep rdi | | |I4 a| |I6 a|I2 i| | | | |
18.#20 rdx Fixd Keep rdx | | |I4 a| |I6 a| | | | | |
18.#21 I4 Use * Keep rdx | | |I4 i| |I6 a| | | | | |
18.#22 rsi Fixd Keep rsi | | | | |I6 a| | | | | |
18.#23 I6 Use * Keep rsi | | | | |I6 i| | | | | |
19.#24 rax Kill Keep rax | | | | | | | | | | |
19.#25 rcx Kill Keep rcx | | | | | | | | | | |
19.#26 rdx Kill Keep rdx | | | | | | | | | | |
19.#27 rsi Kill Keep rsi | | | | | | | | | | |
19.#28 rdi Kill Keep rdi | | | | | | | | | | |
19.#29 r8 Kill Keep r8 | | | | | | | | | | |
19.#30 r9 Kill Keep r9 | | | | | | | | | | |
19.#31 r10 Kill Keep r10 | | | | | | | | | | |
19.#32 r11 Kill Keep r11 | | | | | | | | | | |
19.#33 rax Fixd Keep rax | | | | | | | | | | |
19.#34 I7 Def Alloc rax |I7 a| | | | | | | | | |
20.#35 rax Fixd Keep rax |I7 a| | | | | | | | | |
20.#36 I7 Use * Keep rax |I7 i| | | | | | | | | |
Recording the maximum number of concurrent spills: | |
---------- | |
LSRA Stats | |
---------- | |
Total Tracked Vars: 0 | |
Total Reg Cand Vars: 0 | |
Total number of Intervals: 7 | |
Total number of RefPositions: 36 | |
Total Spill Count: 0 Weighted: 0 | |
Total CopyReg Count: 0 Weighted: 0 | |
Total ResolutionMov Count: 0 Weighted: 0 | |
Total number of split edges: 0 | |
Total Number of spill temps created: 0 | |
TUPLE STYLE DUMP WITH REGISTER ASSIGNMENTS | |
Incoming Parameters: | |
BB01 [000..011) (return), preds={} succs={} | |
===== | |
N002. IL_OFFSET IL offset: 0x0 REG NA | |
N004. rdi* = CNS_INT(h) 0x7fec25be4cb8 static Fseq[_bits] REG rdi | |
N006. rdi = IND ; rdi* | |
N008. rdi = PUTARG_REG; rdi | |
N010. rdx = V00 MEM | |
N012. rdx = PUTARG_REG; rdx | |
N014. rsi = CNS_INT 0x400 REG rsi | |
N016. rsi = PUTARG_REG; rsi | |
N018. rax = CALL ; rdi,rdx,rsi | |
N020. RETURN ; rax | |
*************** In genGenerateCode() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..011) (return) i label target gcsafe LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Finalizing stack frame | |
Modified regs: [rax rcx rdx rsi rdi r8-r11] | |
Callee-saved registers pushed: 0 [] | |
*************** In lvaAssignFrameOffsets(FINAL_FRAME_LAYOUT) | |
Assign V00 arg0, size=4, stkOffs=-0x14 | |
; Final local variable assignments | |
; | |
; V00 arg0 [V00 ] ( 1, 1 ) int -> [rbp-0x04] | |
;# V01 OutArgs [V01 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00] | |
; | |
; Lcl frame size = 16 | |
=============== Generating BB01 [000..011) (return), preds={} succs={} flags=0x00000000.400b0020: i label target gcsafe LIR | |
BB01 IN (0)={} + ByrefExposed + GcHeap | |
OUT(0)={} + ByrefExposed + GcHeap | |
Liveness not changing: 0000000000000000 {} | |
Live regs: (unchanged) 00000000 {} | |
GC regs: (unchanged) 00000000 {} | |
Byref regs: (unchanged) 00000000 {} | |
L_M17377_BB01: | |
Label: IG02, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {} | |
Setting stack level from -572662307 to 0 | |
Scope info: begin block BB01, IL range [000..011) | |
Scope info: open scopes = | |
<none> | |
Added IP mapping: 0x0000 STACK_EMPTY (G_M17377_IG02,ins#0,ofs#0) label | |
Generating: N002 ( 24, 27) [000009] ------------ IL_OFFSET void IL offset: 0x0 REG NA | |
Generating: N004 ( 3, 10) [000010] ------------ t10 = CNS_INT(h) long 0x7fec25be4cb8 static Fseq[_bits] REG rdi | |
IN0001: mov rdi, 0x7FEC25BE4CB8 | |
/--* t10 long | |
Generating: N006 ( 5, 12) [000001] x---G------- t1 = * IND long REG rdi | |
IN0002: mov rdi, qword ptr [rdi] | |
/--* t1 long | |
Generating: N008 (???,???) [000017] ----G------- t17 = * PUTARG_REG long REG rdi | |
Generating: N010 ( 3, 2) [000003] ------------ t3 = LCL_VAR int V00 arg0 rdx REG rdx | |
IN0003: mov edx, dword ptr [V00 rbp-04H] | |
/--* t3 int | |
Generating: N012 (???,???) [000018] ------------ t18 = * PUTARG_REG int REG rdx | |
Generating: N014 ( 1, 4) [000002] ------------ t2 = CNS_INT int 0x400 REG rsi | |
IN0004: mov esi, 0x400 | |
/--* t2 int | |
Generating: N016 (???,???) [000019] ------------ t19 = * PUTARG_REG int REG rsi | |
/--* t17 long arg0 in rdi | |
+--* t18 int arg2 in rdx | |
+--* t19 int arg1 in rsi | |
Generating: N018 ( 23, 26) [000004] --CXG------- t4 = * CALL int GetNthBitOffset.POPCNTAndBMI2Unrolled | |
Call: GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {} | |
IN0005: call GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int | |
/--* t4 int | |
Generating: N020 ( 24, 27) [000008] ---XG------- * RETURN int REG NA | |
Scope info: end block BB01, IL range [000..011) | |
Scope info: ending scope, LVnum=0 [000..011) | |
Scope info: open scopes = | |
<none> | |
Added IP mapping: EPILOG STACK_EMPTY (G_M17377_IG02,ins#5,ofs#26) label | |
Reserving epilog IG for block BB01 | |
IN0006: nop | |
G_M17377_IG02: ; offs=000000H, funclet=00 | |
*************** After placeholder IG creation | |
G_M17377_IG01: ; func=00, offs=000000H, size=0000H, gcrefRegs=00000000 {} <-- Prolog IG | |
G_M17377_IG02: ; offs=000000H, size=001BH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
G_M17377_IG03: ; epilog placeholder, next placeholder=<END>, BB01 [0000], epilog, emitadd <-- First placeholder <-- Last placeholder | |
; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=00000000 {}, PrevByrefRegs=00000000 {} | |
; InitGCVars=0000000000000000 {}, InitGCrefRegs=00000000 {}, InitByrefRegs=00000000 {} | |
Liveness not changing: 0000000000000000 {} | |
# compCycleEstimate = 24, compSizeEstimate = 27 Program:POPCNTAndBMI2Unrolled(int):int | |
; Final local variable assignments | |
; | |
; V00 arg0 [V00 ] ( 1, 1 ) int -> [rbp-0x04] | |
;# V01 OutArgs [V01 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00] | |
; | |
; Lcl frame size = 16 | |
*************** Before prolog / epilog generation | |
G_M17377_IG01: ; func=00, offs=000000H, size=0000H, gcrefRegs=00000000 {} <-- Prolog IG | |
G_M17377_IG02: ; offs=000000H, size=001BH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
G_M17377_IG03: ; epilog placeholder, next placeholder=<END>, BB01 [0000], epilog, emitadd <-- First placeholder <-- Last placeholder | |
; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=00000000 {}, PrevByrefRegs=00000000 {} | |
; InitGCVars=0000000000000000 {}, InitGCrefRegs=00000000 {}, InitByrefRegs=00000000 {} | |
*************** In genFnProlog() | |
Added IP mapping to front: PROLOG STACK_EMPTY (G_M17377_IG01,ins#0,ofs#0) label | |
__prolog: | |
IN0007: push rbp | |
IN0008: sub rsp, 16 | |
IN0009: lea rbp, [rsp+10H] | |
*************** In genClearStackVec3ArgUpperBits() | |
*************** In genFnPrologCalleeRegArgs() for int regs | |
IN000a: mov dword ptr [V00 rbp-04H], edi | |
*************** In genEnregisterIncomingStackArgs() | |
G_M17377_IG01: ; offs=000000H, funclet=00 | |
*************** In genFnEpilog() | |
__epilog: | |
gcVarPtrSetCur=0000000000000000 {}, gcRegGCrefSetCur=00000000 {}, gcRegByrefSetCur=00000000 {} | |
IN000b: lea rsp, [rbp] | |
IN000c: pop rbp | |
IN000d: ret | |
G_M17377_IG03: ; offs=00001BH, funclet=00 | |
0 prologs, 1 epilogs, 0 funclet prologs, 0 funclet epilogs | |
*************** After prolog / epilog generation | |
G_M17377_IG01: ; func=00, offs=000000H, size=000DH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG | |
G_M17377_IG02: ; offs=00000DH, size=001BH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
G_M17377_IG03: ; offs=000028H, size=0006H, epilog, nogc, emitadd | |
*************** In emitJumpDistBind() | |
Hot code size = 0x2E bytes | |
Cold code size = 0x0 bytes | |
reserveUnwindInfo(isFunclet=FALSE, isColdCode=FALSE, unwindSize=0x8) | |
*************** In emitEndCodeGen() | |
Converting emitMaxStackDepth from bytes (0) to elements (0) | |
*************************************************************************** | |
Instructions as they come out of the scheduler | |
G_M17377_IG01: ; func=00, offs=000000H, size=000DH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG | |
IN0007: 000000 55 push rbp | |
IN0008: 000001 4883EC10 sub rsp, 16 | |
IN0009: 000005 488D6C2410 lea rbp, [rsp+10H] | |
IN000a: 00000A 897DFC mov dword ptr [rbp-04H], edi | |
G_M17377_IG02: ; func=00, offs=00000DH, size=001BH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
IN0001: 00000D 48BFB84CBE25EC7F0000 mov rdi, 0x7FEC25BE4CB8 | |
IN0002: 000017 488B3F mov rdi, qword ptr [rdi] | |
IN0003: 00001A 8B55FC mov edx, dword ptr [rbp-04H] | |
IN0004: 00001D BE00040000 mov esi, 0x400 | |
; Call at 0022 [stk=0], GCvars=none, gcrefRegs=00000000 {}, byrefRegs=00000000 {} | |
IN0005: 000022 E821D9FFFF call GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int | |
IN0006: 000027 90 nop | |
G_M17377_IG03: ; func=00, offs=000028H, size=0006H, epilog, nogc, emitadd | |
IN000b: 000028 488D6500 lea rsp, [rbp] | |
IN000c: 00002C 5D pop rbp | |
IN000d: 00002D C3 ret | |
Allocated method code size = 46 , actual size = 46 | |
*************** After end code gen, before unwindEmit() | |
G_M17377_IG01: ; func=00, offs=000000H, size=000DH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG | |
IN0007: 000000 push rbp | |
IN0008: 000001 sub rsp, 16 | |
IN0009: 000005 lea rbp, [rsp+10H] | |
IN000a: 00000A mov dword ptr [V00 rbp-04H], edi | |
G_M17377_IG02: ; offs=00000DH, size=001BH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
IN0001: 00000D mov rdi, 0x7FEC25BE4CB8 | |
IN0002: 000017 mov rdi, qword ptr [rdi] | |
IN0003: 00001A mov edx, dword ptr [V00 rbp-04H] | |
IN0004: 00001D mov esi, 0x400 | |
IN0005: 000022 call GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int | |
IN0006: 000027 nop | |
G_M17377_IG03: ; offs=000028H, size=0006H, epilog, nogc, emitadd | |
IN000b: 000028 lea rsp, [rbp] | |
IN000c: 00002C pop rbp | |
IN000d: 00002D ret | |
Unwind Info: | |
>> Start offset : 0x000000 (not in unwind data) | |
>> End offset : 0x00002e (not in unwind data) | |
Version : 1 | |
Flags : 0x00 | |
SizeOfProlog : 0x05 | |
CountOfUnwindCodes: 2 | |
FrameRegister : none (0) | |
FrameOffset : N/A (no FrameRegister) (Value=0) | |
UnwindCodes : | |
CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10 | |
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5) | |
allocUnwindInfo(pHotCode=0x00007FEC268639A0, pColdCode=0x0000000000000000, startOffset=0x0, endOffset=0x2e, unwindSize=0x8, pUnwindBlock=0x0000000001401128, funKind=0 (main function)) | |
*************** In genIPmappingGen() | |
IP mapping count : 3 | |
IL offs PROLOG : 0x00000000 ( STACK_EMPTY ) | |
IL offs 0x0000 : 0x0000000D ( STACK_EMPTY ) | |
IL offs EPILOG : 0x00000027 ( STACK_EMPTY ) | |
*************** In genSetScopeInfo() | |
VarLocInfo count is 1 | |
*************** Variable debug info | |
1 vars | |
0( UNKNOWN) : From 00000000h to 0000000Dh, in rdi | |
*************** In gcInfoBlockHdrSave() | |
Set code length to 46. | |
Set ReturnKind to Scalar. | |
Set stack base register to rbp. | |
Set Outgoing stack arg area size to 0. | |
Defining 0 call sites: | |
Method code size: 46 | |
Allocations for Program:POPCNTAndBMI2Unrolled(int):int (MethodHash=8edbbc1e) | |
count: 184, size: 20915, max = 2600 | |
allocateMemory: 65536, nraUsed: 23288 | |
Alloc'd bytes by kind: | |
kind | size | pct | |
---------------------+------------+-------- | |
AssertionProp | 0 | 0.00% | |
ASTNode | 2560 | 12.24% | |
InstDesc | 2568 | 12.28% | |
ImpStack | 384 | 1.84% | |
BasicBlock | 864 | 4.13% | |
fgArgInfo | 192 | 0.92% | |
fgArgInfoPtrArr | 24 | 0.11% | |
FlowList | 0 | 0.00% | |
TreeStatementList | 0 | 0.00% | |
SiScope | 72 | 0.34% | |
FlatFPStateX87 | 0 | 0.00% | |
DominatorMemory | 0 | 0.00% | |
LSRA | 2960 | 14.15% | |
LSRA_Interval | 640 | 3.06% | |
LSRA_RefPosition | 2368 | 11.32% | |
Reachability | 0 | 0.00% | |
SSA | 0 | 0.00% | |
ValueNumber | 0 | 0.00% | |
LvaTable | 1792 | 8.57% | |
UnwindInfo | 0 | 0.00% | |
hashBv | 40 | 0.19% | |
bitset | 56 | 0.27% | |
FixedBitVect | 8 | 0.04% | |
Generic | 638 | 3.05% | |
IndirAssignMap | 0 | 0.00% | |
FieldSeqStore | 176 | 0.84% | |
ZeroOffsetFieldMap | 0 | 0.00% | |
ArrayInfoMap | 0 | 0.00% | |
MemoryPhiArg | 0 | 0.00% | |
CSE | 0 | 0.00% | |
GC | 1288 | 6.16% | |
CorSig | 104 | 0.50% | |
Inlining | 128 | 0.61% | |
ArrayStack | 0 | 0.00% | |
DebugInfo | 168 | 0.80% | |
DebugOnly | 2644 | 12.64% | |
Codegen | 1144 | 5.47% | |
LoopOpt | 0 | 0.00% | |
LoopHoist | 0 | 0.00% | |
Unknown | 97 | 0.46% | |
RangeCheck | 0 | 0.00% | |
CopyProp | 0 | 0.00% | |
SideEffects | 0 | 0.00% | |
****** DONE compiling Program:POPCNTAndBMI2Unrolled(int):int | |
****** START compiling GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int (MethodHash=cbde5985) | |
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 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 11 00 00 0a call 0xA000011 | |
IL_0071 28 12 00 00 0a call 0xA000012 | |
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 | |
Arg #0 passed in register(s) rdi | |
Arg #1 passed in register(s) rsi | |
Arg #2 passed in register(s) rdx | |
lvaGrabTemp returning 6 (V06 tmp0) (a long lifetime temp) called for OutgoingArgSpace. | |
; Initial local variable assignments | |
; | |
; V00 arg0 long | |
; V01 arg1 int | |
; V02 arg2 int | |
; V03 loc0 long | |
; V04 loc1 int | |
; V05 loc2 int | |
; V06 OutArgs lclBlk (na) | |
*************** In compInitDebuggingInfo() for GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int | |
getVars() returned cVars = 0, extendOthers = true | |
info.compVarScopesCount = 6 | |
VarNum LVNum Name Beg End | |
0: 00h 00h V00 arg0 000h 086h | |
1: 01h 01h V01 arg1 000h 086h | |
2: 02h 02h V02 arg2 000h 086h | |
3: 03h 03h V03 loc0 000h 086h | |
4: 04h 04h V04 loc1 000h 086h | |
5: 05h 05h V05 loc2 000h 086h | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int | |
Jump targets: | |
IL_0004 | |
IL_003b | |
IL_0047 | |
IL_0059 | |
New Basic Block BB01 [0000] created. | |
BB01 [000..004) | |
New Basic Block BB02 [0001] created. | |
BB02 [004..03B) | |
New Basic Block BB03 [0002] created. | |
BB03 [03B..043) | |
New Basic Block BB04 [0003] created. | |
BB04 [043..047) | |
New Basic Block BB05 [0004] created. | |
BB05 [047..059) | |
New Basic Block BB06 [0005] created. | |
BB06 [059..05D) | |
New Basic Block BB07 [0006] created. | |
BB07 [05D..086) | |
CLFLG_MINOPT set for method GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int | |
IL Code Size,Instr 134, 94, Basic Block count 7, Local Variable Num,Ref count 7, 29 for method GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int | |
IL Code Size,Instr 134, 94, Basic Block count 7, Local Variable Num,Ref count 7, 29 for method GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int | |
OPTIONS: opts.MinOpts() == true | |
Basic block list for 'GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..004)-> BB03 (always) | |
BB02 [0001] 1 1 [004..03B) bwd | |
BB03 [0002] 2 1 [03B..043)-> BB02 ( cond ) bwd | |
BB04 [0003] 1 1 [043..047)-> BB06 (always) | |
BB05 [0004] 1 1 [047..059) bwd | |
BB06 [0005] 2 1 [059..05D)-> BB05 ( cond ) bwd | |
BB07 [0006] 1 1 [05D..086) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) stloc.0 | |
[000004] ------------ * STMT void (IL 0x000... ???) | |
[000001] ------------ | /--* LCL_VAR long V00 arg0 | |
[000003] -A---------- \--* ASG long | |
[000002] D------N---- \--* LCL_VAR long V03 loc0 | |
[ 0] 2 (0x002) br.s | |
impImportBlockPending for BB03 | |
Importing BB03 (PC=059) of 'GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int' | |
[ 0] 59 (0x03b) ldarg.2 | |
[ 1] 60 (0x03c) ldc.i4 256 | |
[ 2] 65 (0x041) bge.s | |
[000010] ------------ * STMT void (IL 0x03B... ???) | |
[000009] ------------ \--* JTRUE void | |
[000007] ------------ | /--* CNS_INT int 256 | |
[000008] ------------ \--* GE int | |
[000006] ------------ \--* LCL_VAR int V02 arg2 | |
impImportBlockPending for BB04 | |
impImportBlockPending for BB02 | |
Importing BB02 (PC=004) of 'GetNthBitOffset:POPCNTAndBMI2Unrolled(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 | |
[000047] ------------ * STMT void (IL 0x004... ???) | |
[000043] ---XG------- | /--* CAST int <- long | |
[000041] ---XG------- | | | /--* HWIntrinsic long PopCount | |
[000040] *--XG------- | | | | \--* IND long | |
[000037] ------------ | | | | | /--* CAST long <- int | |
[000036] ------------ | | | | | | \--* CNS_INT int 8 | |
[000038] ------------ | | | | | /--* MUL long | |
[000035] ------------ | | | | | | \--* CAST long <- int | |
[000034] ------------ | | | | | | \--* CNS_INT int 3 | |
[000039] ------------ | | | | \--* ADD long | |
[000033] ------------ | | | | \--* LCL_VAR long V03 loc0 | |
[000042] ---XG------- | | \--* ADD long | |
[000031] ---XG------- | | | /--* HWIntrinsic long PopCount | |
[000030] *--XG------- | | | | \--* IND long | |
[000027] ------------ | | | | | /--* CAST long <- int | |
[000026] ------------ | | | | | | \--* CNS_INT int 8 | |
[000028] ------------ | | | | | /--* MUL long | |
[000025] ------------ | | | | | | \--* CAST long <- int | |
[000024] ------------ | | | | | | \--* CNS_INT int 2 | |
[000029] ------------ | | | | \--* ADD long | |
[000023] ------------ | | | | \--* LCL_VAR long V03 loc0 | |
[000032] ---XG------- | | \--* ADD long | |
[000021] ---XG------- | | | /--* HWIntrinsic long PopCount | |
[000020] *--XG------- | | | | \--* IND long | |
[000018] ------------ | | | | | /--* CAST long <- int | |
[000017] ------------ | | | | | | \--* CNS_INT int 8 | |
[000019] ------------ | | | | \--* ADD long | |
[000016] ------------ | | | | \--* LCL_VAR long V03 loc0 | |
[000022] ---XG------- | | \--* ADD long | |
[000015] ---XG------- | | \--* HWIntrinsic long PopCount | |
[000014] *--XG------- | | \--* IND long | |
[000013] ------------ | | \--* LCL_VAR long V03 loc0 | |
[000044] ---XG------- | /--* SUB int | |
[000012] ------------ | | \--* LCL_VAR int V02 arg2 | |
[000046] -A-XG------- \--* ASG int | |
[000045] D------N---- \--* LCL_VAR int V02 arg2 | |
[ 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 | |
[000057] ------------ * STMT void (IL 0x034... ???) | |
[000052] ------------ | /--* CAST long <- int | |
[000051] ------------ | | \--* CNS_INT int 8 | |
[000053] ------------ | /--* MUL long | |
[000050] ------------ | | \--* CAST long <- int | |
[000049] ------------ | | \--* CNS_INT int 4 | |
[000054] ------------ | /--* ADD long | |
[000048] ------------ | | \--* LCL_VAR long V03 loc0 | |
[000056] -A---------- \--* ASG long | |
[000055] D------N---- \--* LCL_VAR long V03 loc0 | |
impImportBlockPending for BB03 | |
Importing BB04 (PC=067) of 'GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int' | |
[ 0] 67 (0x043) ldarg.2 | |
[ 1] 68 (0x044) stloc.1 | |
[000062] ------------ * STMT void (IL 0x043... ???) | |
[000059] ------------ | /--* LCL_VAR int V02 arg2 | |
[000061] -A---------- \--* ASG int | |
[000060] D------N---- \--* LCL_VAR int V04 loc1 | |
[ 0] 69 (0x045) br.s | |
impImportBlockPending for BB06 | |
Importing BB06 (PC=089) of 'GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int' | |
[ 0] 89 (0x059) ldarg.2 | |
[ 1] 90 (0x05a) ldc.i4.0 0 | |
[ 2] 91 (0x05b) bgt.s | |
[000068] ------------ * STMT void (IL 0x059... ???) | |
[000067] ------------ \--* JTRUE void | |
[000065] ------------ | /--* CNS_INT int 0 | |
[000066] ------------ \--* GT int | |
[000064] ------------ \--* LCL_VAR int V02 arg2 | |
impImportBlockPending for BB07 | |
impImportBlockPending for BB05 | |
Importing BB05 (PC=071) of 'GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int' | |
[ 0] 71 (0x047) ldarg.2 | |
[ 1] 72 (0x048) stloc.1 | |
[000073] ------------ * STMT void (IL 0x047... ???) | |
[000070] ------------ | /--* LCL_VAR int V02 arg2 | |
[000072] -A---------- \--* ASG int | |
[000071] D------N---- \--* LCL_VAR int V04 loc1 | |
[ 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 | |
[000082] ------------ * STMT void (IL 0x049... ???) | |
[000078] ---XG------- | /--* CAST int <- long | |
[000077] ---XG------- | | \--* HWIntrinsic long PopCount | |
[000076] *--XG------- | | \--* IND long | |
[000075] ------------ | | \--* LCL_VAR long V03 loc0 | |
[000079] ---XG------- | /--* SUB int | |
[000074] ------------ | | \--* LCL_VAR int V02 arg2 | |
[000081] -A-XG------- \--* ASG int | |
[000080] D------N---- \--* LCL_VAR int V02 arg2 | |
[ 0] 85 (0x055) ldloc.0 | |
[ 1] 86 (0x056) ldc.i4.8 8 | |
[ 2] 87 (0x057) add | |
[ 1] 88 (0x058) stloc.0 | |
[000089] ------------ * STMT void (IL 0x055... ???) | |
[000085] ------------ | /--* CAST long <- int | |
[000084] ------------ | | \--* CNS_INT int 8 | |
[000086] ------------ | /--* ADD long | |
[000083] ------------ | | \--* LCL_VAR long V03 loc0 | |
[000088] -A---------- \--* ASG long | |
[000087] D------N---- \--* LCL_VAR long V03 loc0 | |
impImportBlockPending for BB06 | |
Importing BB07 (PC=093) of 'GetNthBitOffset:POPCNTAndBMI2Unrolled(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 | |
[000097] ------------ * STMT void (IL 0x05D... ???) | |
[000093] ------------ | /--* CAST long <- int | |
[000092] ------------ | | \--* CNS_INT int 8 | |
[000094] ------------ | /--* SUB long | |
[000091] ------------ | | \--* LCL_VAR long V03 loc0 | |
[000096] -A---------- \--* ASG long | |
[000095] D------N---- \--* LCL_VAR long V03 loc0 | |
[ 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 0A000011 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is long, structSize is 0 | |
[ 1] 113 (0x071) call 0A000012 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is long, structSize is 0 | |
[ 1] 118 (0x076) conv.i4 | |
[ 1] 119 (0x077) stloc.2 | |
[000113] ------------ * STMT void (IL 0x061... ???) | |
[000110] ---XG------- | /--* CAST int <- long | |
[000109] ---XG------- | | \--* HWIntrinsic long TrailingZeroCount | |
[000107] *--XG------- | | | /--* IND long | |
[000106] ------------ | | | | \--* LCL_VAR long V03 loc0 | |
[000108] ---XG------- | | \--* HWIntrinsic long ParallelBitDeposit | |
[000103] ------------ | | | /--* CNS_INT int 63 | |
[000104] ------------ | | | /--* AND int | |
[000101] ------------ | | | | | /--* CNS_INT int 1 | |
[000102] ------------ | | | | \--* SUB int | |
[000100] ------------ | | | | \--* LCL_VAR int V04 loc1 | |
[000105] ------------ | | \--* LSH long | |
[000099] ------------ | | \--* CAST long <- int | |
[000098] ------------ | | \--* CNS_INT int 1 | |
[000112] -A-XG------- \--* ASG int | |
[000111] D------N---- \--* LCL_VAR int V05 loc2 | |
[ 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 | |
[000127] ------------ * STMT void (IL 0x078... ???) | |
[000126] ---X-------- \--* RETURN int | |
[000124] ------------ | /--* LCL_VAR int V05 loc2 | |
[000125] ---X-------- \--* ADD int | |
[000123] ---X-------- \--* CAST int <- long | |
[000121] ------------ | /--* CAST long <- int | |
[000120] ------------ | | \--* CNS_INT int 64 | |
[000122] ---X-------- \--* MUL long | |
[000118] ------------ | /--* CAST long <- int | |
[000117] ------------ | | \--* CNS_INT int 8 | |
[000119] ---X-------- \--* DIV long | |
[000115] ------------ | /--* LCL_VAR long V00 arg0 | |
[000116] ------------ \--* SUB long | |
[000114] ------------ \--* LCL_VAR long V03 loc0 | |
New BlockSet epoch 1, # of blocks (including unused BB00): 8, bitset array size: 1 (short) | |
*************** In fgMorph() | |
*************** In fgDebugCheckBBlist | |
*************** After fgAddInternal() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..004)-> BB03 (always) i | |
BB02 [0001] 1 1 [004..03B) i bwd | |
BB03 [0002] 2 1 [03B..043)-> BB02 ( cond ) i bwd | |
BB04 [0003] 1 1 [043..047)-> BB06 (always) i | |
BB05 [0004] 1 1 [047..059) i bwd | |
BB06 [0005] 2 1 [059..05D)-> BB05 ( cond ) i bwd | |
BB07 [0006] 1 1 [05D..086) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** 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() | |
promotion opt flag not enabled | |
*************** In fgMarkAddressExposedLocals() | |
*************** In fgMorphBlocks() | |
Morphing BB01 of 'GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int' | |
fgMorphTree BB01, stmt 1 (before) | |
[000001] ------------ /--* LCL_VAR long V00 arg0 | |
[000003] -A---------- * ASG long | |
[000002] D------N---- \--* LCL_VAR long V03 loc0 | |
Morphing BB02 of 'GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int' | |
fgMorphTree BB02, stmt 2 (before) | |
[000043] ---XG------- /--* CAST int <- long | |
[000041] ---XG------- | | /--* HWIntrinsic long PopCount | |
[000040] *--XG------- | | | \--* IND long | |
[000037] ------------ | | | | /--* CAST long <- int | |
[000036] ------------ | | | | | \--* CNS_INT int 8 | |
[000038] ------------ | | | | /--* MUL long | |
[000035] ------------ | | | | | \--* CAST long <- int | |
[000034] ------------ | | | | | \--* CNS_INT int 3 | |
[000039] ------------ | | | \--* ADD long | |
[000033] ------------ | | | \--* LCL_VAR long V03 loc0 | |
[000042] ---XG------- | \--* ADD long | |
[000031] ---XG------- | | /--* HWIntrinsic long PopCount | |
[000030] *--XG------- | | | \--* IND long | |
[000027] ------------ | | | | /--* CAST long <- int | |
[000026] ------------ | | | | | \--* CNS_INT int 8 | |
[000028] ------------ | | | | /--* MUL long | |
[000025] ------------ | | | | | \--* CAST long <- int | |
[000024] ------------ | | | | | \--* CNS_INT int 2 | |
[000029] ------------ | | | \--* ADD long | |
[000023] ------------ | | | \--* LCL_VAR long V03 loc0 | |
[000032] ---XG------- | \--* ADD long | |
[000021] ---XG------- | | /--* HWIntrinsic long PopCount | |
[000020] *--XG------- | | | \--* IND long | |
[000018] ------------ | | | | /--* CAST long <- int | |
[000017] ------------ | | | | | \--* CNS_INT int 8 | |
[000019] ------------ | | | \--* ADD long | |
[000016] ------------ | | | \--* LCL_VAR long V03 loc0 | |
[000022] ---XG------- | \--* ADD long | |
[000015] ---XG------- | \--* HWIntrinsic long PopCount | |
[000014] *--XG------- | \--* IND long | |
[000013] ------------ | \--* LCL_VAR long V03 loc0 | |
[000044] ---XG------- /--* SUB int | |
[000012] ------------ | \--* LCL_VAR int V02 arg2 | |
[000046] -A-XG------- * ASG int | |
[000045] D------N---- \--* LCL_VAR int V02 arg2 | |
fgMorphTree BB02, stmt 2 (after) | |
[000129] ---XG+------ /--* CAST int <- long | |
[000041] ---XG+------ | \--* HWIntrinsic long PopCount | |
[000040] *--XG+------ | \--* IND long | |
[000037] -----+------ | | /--* CAST long <- int | |
[000036] -----+------ | | | \--* CNS_INT int 8 | |
[000038] -----+------ | | /--* MUL long | |
[000035] -----+------ | | | \--* CAST long <- int | |
[000034] -----+------ | | | \--* CNS_INT int 3 | |
[000039] -----+------ | \--* ADD long | |
[000033] -----+------ | \--* LCL_VAR long V03 loc0 | |
[000042] ---XG+------ /--* ADD int | |
[000131] ---XG+------ | | /--* CAST int <- long | |
[000031] ---XG+------ | | | \--* HWIntrinsic long PopCount | |
[000030] *--XG+------ | | | \--* IND long | |
[000027] -----+------ | | | | /--* CAST long <- int | |
[000026] -----+------ | | | | | \--* CNS_INT int 8 | |
[000028] -----+------ | | | | /--* MUL long | |
[000025] -----+------ | | | | | \--* CAST long <- int | |
[000024] -----+------ | | | | | \--* CNS_INT int 2 | |
[000029] -----+------ | | | \--* ADD long | |
[000023] -----+------ | | | \--* LCL_VAR long V03 loc0 | |
[000032] ---XG+------ | \--* ADD int | |
[000133] ---XG+------ | | /--* CAST int <- long | |
[000021] ---XG+------ | | | \--* HWIntrinsic long PopCount | |
[000020] *--XG+------ | | | \--* IND long | |
[000018] -----+------ | | | | /--* CAST long <- int | |
[000017] -----+------ | | | | | \--* CNS_INT int 8 | |
[000019] -----+------ | | | \--* ADD long | |
[000016] -----+------ | | | \--* LCL_VAR long V03 loc0 | |
[000022] ---XG+------ | \--* ADD int | |
[000132] ---XG+------ | \--* CAST int <- long | |
[000015] ---XG+------ | \--* HWIntrinsic long PopCount | |
[000014] *--XG+------ | \--* IND long | |
[000013] -----+------ | \--* LCL_VAR long V03 loc0 | |
[000044] ---XG+------ /--* SUB int | |
[000012] -----+------ | \--* LCL_VAR int V02 arg2 | |
[000046] -A-XG+------ * ASG int | |
[000045] D----+-N---- \--* LCL_VAR int V02 arg2 | |
fgMorphTree BB02, stmt 3 (before) | |
[000052] ------------ /--* CAST long <- int | |
[000051] ------------ | \--* CNS_INT int 8 | |
[000053] ------------ /--* MUL long | |
[000050] ------------ | \--* CAST long <- int | |
[000049] ------------ | \--* CNS_INT int 4 | |
[000054] ------------ /--* ADD long | |
[000048] ------------ | \--* LCL_VAR long V03 loc0 | |
[000056] -A---------- * ASG long | |
[000055] D------N---- \--* LCL_VAR long V03 loc0 | |
Morphing BB03 of 'GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int' | |
fgMorphTree BB03, stmt 4 (before) | |
[000009] ------------ * JTRUE void | |
[000007] ------------ | /--* CNS_INT int 256 | |
[000008] ------------ \--* GE int | |
[000006] ------------ \--* LCL_VAR int V02 arg2 | |
Morphing BB04 of 'GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int' | |
fgMorphTree BB04, stmt 5 (before) | |
[000059] ------------ /--* LCL_VAR int V02 arg2 | |
[000061] -A---------- * ASG int | |
[000060] D------N---- \--* LCL_VAR int V04 loc1 | |
Morphing BB05 of 'GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int' | |
fgMorphTree BB05, stmt 6 (before) | |
[000070] ------------ /--* LCL_VAR int V02 arg2 | |
[000072] -A---------- * ASG int | |
[000071] D------N---- \--* LCL_VAR int V04 loc1 | |
fgMorphTree BB05, stmt 7 (before) | |
[000078] ---XG------- /--* CAST int <- long | |
[000077] ---XG------- | \--* HWIntrinsic long PopCount | |
[000076] *--XG------- | \--* IND long | |
[000075] ------------ | \--* LCL_VAR long V03 loc0 | |
[000079] ---XG------- /--* SUB int | |
[000074] ------------ | \--* LCL_VAR int V02 arg2 | |
[000081] -A-XG------- * ASG int | |
[000080] D------N---- \--* LCL_VAR int V02 arg2 | |
fgMorphTree BB05, stmt 8 (before) | |
[000085] ------------ /--* CAST long <- int | |
[000084] ------------ | \--* CNS_INT int 8 | |
[000086] ------------ /--* ADD long | |
[000083] ------------ | \--* LCL_VAR long V03 loc0 | |
[000088] -A---------- * ASG long | |
[000087] D------N---- \--* LCL_VAR long V03 loc0 | |
Morphing BB06 of 'GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int' | |
fgMorphTree BB06, stmt 9 (before) | |
[000067] ------------ * JTRUE void | |
[000065] ------------ | /--* CNS_INT int 0 | |
[000066] ------------ \--* GT int | |
[000064] ------------ \--* LCL_VAR int V02 arg2 | |
Morphing BB07 of 'GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int' | |
fgMorphTree BB07, stmt 10 (before) | |
[000093] ------------ /--* CAST long <- int | |
[000092] ------------ | \--* CNS_INT int 8 | |
[000094] ------------ /--* SUB long | |
[000091] ------------ | \--* LCL_VAR long V03 loc0 | |
[000096] -A---------- * ASG long | |
[000095] D------N---- \--* LCL_VAR long V03 loc0 | |
fgMorphTree BB07, stmt 11 (before) | |
[000110] ---XG------- /--* CAST int <- long | |
[000109] ---XG------- | \--* HWIntrinsic long TrailingZeroCount | |
[000107] *--XG------- | | /--* IND long | |
[000106] ------------ | | | \--* LCL_VAR long V03 loc0 | |
[000108] ---XG------- | \--* HWIntrinsic long ParallelBitDeposit | |
[000103] ------------ | | /--* CNS_INT int 63 | |
[000104] ------------ | | /--* AND int | |
[000101] ------------ | | | | /--* CNS_INT int 1 | |
[000102] ------------ | | | \--* SUB int | |
[000100] ------------ | | | \--* LCL_VAR int V04 loc1 | |
[000105] ------------ | \--* LSH long | |
[000099] ------------ | \--* CAST long <- int | |
[000098] ------------ | \--* CNS_INT int 1 | |
[000112] -A-XG------- * ASG int | |
[000111] D------N---- \--* LCL_VAR int V05 loc2 | |
fgMorphTree BB07, stmt 11 (after) | |
[000110] ---XG+------ /--* CAST int <- long | |
[000109] ---XG+------ | \--* HWIntrinsic long TrailingZeroCount | |
[000107] *--XG+------ | | /--* IND long | |
[000106] -----+------ | | | \--* LCL_VAR long V03 loc0 | |
[000108] ---XG+------ | \--* HWIntrinsic long ParallelBitDeposit | |
[000103] -----+------ | | /--* CNS_INT int 63 | |
[000104] -----+------ | | /--* AND int | |
[000101] -----+------ | | | | /--* CNS_INT int -1 | |
[000102] -----+------ | | | \--* ADD int | |
[000100] -----+------ | | | \--* LCL_VAR int V04 loc1 | |
[000105] -----+------ | \--* LSH long | |
[000099] -----+------ | \--* CAST long <- int | |
[000098] -----+------ | \--* CNS_INT int 1 | |
[000112] -A-XG+------ * ASG int | |
[000111] D----+-N---- \--* LCL_VAR int V05 loc2 | |
fgMorphTree BB07, stmt 12 (before) | |
[000126] ---X-------- * RETURN int | |
[000124] ------------ | /--* LCL_VAR int V05 loc2 | |
[000125] ---X-------- \--* ADD int | |
[000123] ---X-------- \--* CAST int <- long | |
[000121] ------------ | /--* CAST long <- int | |
[000120] ------------ | | \--* CNS_INT int 64 | |
[000122] ---X-------- \--* MUL long | |
[000118] ------------ | /--* CAST long <- int | |
[000117] ------------ | | \--* CNS_INT int 8 | |
[000119] ---X-------- \--* DIV long | |
[000115] ------------ | /--* LCL_VAR long V00 arg0 | |
[000116] ------------ \--* SUB long | |
[000114] ------------ \--* LCL_VAR long V03 loc0 | |
fgMorphTree BB07, stmt 12 (after) | |
[000126] ---X-+------ * RETURN int | |
[000124] -----+------ | /--* LCL_VAR int V05 loc2 | |
[000125] ---X-+------ \--* ADD int | |
[000121] -----+------ | /--* NOP int | |
[000120] -----+------ | | \--* CNS_INT int 64 | |
[000122] ---X-+------ \--* MUL int | |
[000134] ---X-+------ \--* CAST int <- long | |
[000118] -----+------ | /--* CAST long <- int | |
[000117] -----+------ | | \--* CNS_INT int 8 | |
[000119] ---X-+------ \--* DIV long | |
[000115] -----+------ | /--* LCL_VAR long V00 arg0 | |
[000116] -----+------ \--* SUB long | |
[000114] -----+------ \--* LCL_VAR long V03 loc0 | |
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..004)-> BB03 (always) i | |
BB02 [0001] 1 1 [004..03B) i bwd | |
BB03 [0002] 2 1 [03B..043)-> BB02 ( cond ) i bwd | |
BB04 [0003] 1 1 [043..047)-> BB06 (always) i | |
BB05 [0004] 1 1 [047..059) i bwd | |
BB06 [0005] 2 1 [059..05D)-> BB05 ( cond ) i bwd | |
BB07 [0006] 1 1 [05D..086) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table is empty | |
*************** After renumbering the basic blocks | |
=============== No blocks renumbered! | |
*************** In fgComputePreds() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..004)-> BB03 (always) i | |
BB02 [0001] 1 1 [004..03B) i bwd | |
BB03 [0002] 2 1 [03B..043)-> BB02 ( cond ) i bwd | |
BB04 [0003] 1 1 [043..047)-> BB06 (always) i | |
BB05 [0004] 1 1 [047..059) i bwd | |
BB06 [0005] 2 1 [059..05D)-> BB05 ( cond ) i bwd | |
BB07 [0006] 1 1 [05D..086) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** After fgComputePreds() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..004)-> BB03 (always) i label target | |
BB02 [0001] 1 BB03 1 [004..03B) i label target bwd | |
BB03 [0002] 2 BB01,BB02 1 [03B..043)-> BB02 ( cond ) i label target bwd | |
BB04 [0003] 1 BB03 1 [043..047)-> BB06 (always) i | |
BB05 [0004] 1 BB06 1 [047..059) i label target bwd | |
BB06 [0005] 2 BB04,BB05 1 [059..05D)-> BB05 ( cond ) i label target bwd | |
BB07 [0006] 1 BB06 1 [05D..086) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In fgComputeBlockAndEdgeWeights() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..004)-> BB03 (always) i label target | |
BB02 [0001] 1 BB03 1 [004..03B) i label target bwd | |
BB03 [0002] 2 BB01,BB02 1 [03B..043)-> BB02 ( cond ) i label target bwd | |
BB04 [0003] 1 BB03 1 [043..047)-> BB06 (always) i | |
BB05 [0004] 1 BB06 1 [047..059) i label target bwd | |
BB06 [0005] 2 BB04,BB05 1 [059..05D)-> BB05 ( cond ) i label target bwd | |
BB07 [0006] 1 BB06 1 [05D..086) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
-- no profile data, so using default called count | |
-- not optimizing, so not computing edge weights | |
*************** In fgCreateFunclets() | |
After fgCreateFunclets() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..004)-> BB03 (always) i label target | |
BB02 [0001] 1 BB03 1 [004..03B) i label target bwd | |
BB03 [0002] 2 BB01,BB02 1 [03B..043)-> BB02 ( cond ) i label target bwd | |
BB04 [0003] 1 BB03 1 [043..047)-> BB06 (always) i | |
BB05 [0004] 1 BB06 1 [047..059) i label target bwd | |
BB06 [0005] 2 BB04,BB05 1 [059..05D)-> BB05 ( cond ) i label target bwd | |
BB07 [0006] 1 BB06 1 [05D..086) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table is empty | |
*************** In fgDebugCheckBBlist | |
*************** 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..004)-> BB03 (always) i label target | |
BB02 [0001] 1 BB03 1 [004..03B) i label target bwd | |
BB03 [0002] 2 BB01,BB02 1 [03B..043)-> BB02 ( cond ) i label target bwd | |
BB04 [0003] 1 BB03 1 [043..047)-> BB06 (always) i | |
BB05 [0004] 1 BB06 1 [047..059) i label target bwd | |
BB06 [0005] 2 BB04,BB05 1 [059..05D)-> BB05 ( cond ) i label target bwd | |
BB07 [0006] 1 BB06 1 [05D..086) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..004) -> BB03 (always), preds={} succs={BB03} | |
***** BB01, stmt 1 | |
[000004] ------------ * STMT void (IL 0x000...0x001) | |
[000001] -----+------ | /--* LCL_VAR long V00 arg0 | |
[000003] -A---+------ \--* ASG long | |
[000002] D----+-N---- \--* LCL_VAR long V03 loc0 | |
------------ BB02 [004..03B), preds={BB03} succs={BB03} | |
***** BB02, stmt 2 | |
[000047] ------------ * STMT void (IL 0x004...0x032) | |
[000129] ---XG+------ | /--* CAST int <- long | |
[000041] ---XG+------ | | \--* HWIntrinsic long PopCount | |
[000040] *--XG+------ | | \--* IND long | |
[000037] -----+------ | | | /--* CAST long <- int | |
[000036] -----+------ | | | | \--* CNS_INT int 8 | |
[000038] -----+------ | | | /--* MUL long | |
[000035] -----+------ | | | | \--* CAST long <- int | |
[000034] -----+------ | | | | \--* CNS_INT int 3 | |
[000039] -----+------ | | \--* ADD long | |
[000033] -----+------ | | \--* LCL_VAR long V03 loc0 | |
[000042] ---XG+------ | /--* ADD int | |
[000131] ---XG+------ | | | /--* CAST int <- long | |
[000031] ---XG+------ | | | | \--* HWIntrinsic long PopCount | |
[000030] *--XG+------ | | | | \--* IND long | |
[000027] -----+------ | | | | | /--* CAST long <- int | |
[000026] -----+------ | | | | | | \--* CNS_INT int 8 | |
[000028] -----+------ | | | | | /--* MUL long | |
[000025] -----+------ | | | | | | \--* CAST long <- int | |
[000024] -----+------ | | | | | | \--* CNS_INT int 2 | |
[000029] -----+------ | | | | \--* ADD long | |
[000023] -----+------ | | | | \--* LCL_VAR long V03 loc0 | |
[000032] ---XG+------ | | \--* ADD int | |
[000133] ---XG+------ | | | /--* CAST int <- long | |
[000021] ---XG+------ | | | | \--* HWIntrinsic long PopCount | |
[000020] *--XG+------ | | | | \--* IND long | |
[000018] -----+------ | | | | | /--* CAST long <- int | |
[000017] -----+------ | | | | | | \--* CNS_INT int 8 | |
[000019] -----+------ | | | | \--* ADD long | |
[000016] -----+------ | | | | \--* LCL_VAR long V03 loc0 | |
[000022] ---XG+------ | | \--* ADD int | |
[000132] ---XG+------ | | \--* CAST int <- long | |
[000015] ---XG+------ | | \--* HWIntrinsic long PopCount | |
[000014] *--XG+------ | | \--* IND long | |
[000013] -----+------ | | \--* LCL_VAR long V03 loc0 | |
[000044] ---XG+------ | /--* SUB int | |
[000012] -----+------ | | \--* LCL_VAR int V02 arg2 | |
[000046] -A-XG+------ \--* ASG int | |
[000045] D----+-N---- \--* LCL_VAR int V02 arg2 | |
***** BB02, stmt 3 | |
[000057] ------------ * STMT void (IL 0x034...0x03A) | |
[000052] -----+------ | /--* CAST long <- int | |
[000051] -----+------ | | \--* CNS_INT int 8 | |
[000053] -----+------ | /--* MUL long | |
[000050] -----+------ | | \--* CAST long <- int | |
[000049] -----+------ | | \--* CNS_INT int 4 | |
[000054] -----+------ | /--* ADD long | |
[000048] -----+------ | | \--* LCL_VAR long V03 loc0 | |
[000056] -A---+------ \--* ASG long | |
[000055] D----+-N---- \--* LCL_VAR long V03 loc0 | |
------------ BB03 [03B..043) -> BB02 (cond), preds={BB01,BB02} succs={BB04,BB02} | |
***** BB03, stmt 4 | |
[000010] ------------ * STMT void (IL 0x03B...0x041) | |
[000009] -----+------ \--* JTRUE void | |
[000007] -----+------ | /--* CNS_INT int 256 | |
[000008] J----+-N---- \--* GE int | |
[000006] -----+------ \--* LCL_VAR int V02 arg2 | |
------------ BB04 [043..047) -> BB06 (always), preds={BB03} succs={BB06} | |
***** BB04, stmt 5 | |
[000062] ------------ * STMT void (IL 0x043...0x044) | |
[000059] -----+------ | /--* LCL_VAR int V02 arg2 | |
[000061] -A---+------ \--* ASG int | |
[000060] D----+-N---- \--* LCL_VAR int V04 loc1 | |
------------ BB05 [047..059), preds={BB06} succs={BB06} | |
***** BB05, stmt 6 | |
[000073] ------------ * STMT void (IL 0x047...0x048) | |
[000070] -----+------ | /--* LCL_VAR int V02 arg2 | |
[000072] -A---+------ \--* ASG int | |
[000071] D----+-N---- \--* LCL_VAR int V04 loc1 | |
***** BB05, stmt 7 | |
[000082] ------------ * STMT void (IL 0x049...0x053) | |
[000078] ---XG+------ | /--* CAST int <- long | |
[000077] ---XG+------ | | \--* HWIntrinsic long PopCount | |
[000076] *--XG+------ | | \--* IND long | |
[000075] -----+------ | | \--* LCL_VAR long V03 loc0 | |
[000079] ---XG+------ | /--* SUB int | |
[000074] -----+------ | | \--* LCL_VAR int V02 arg2 | |
[000081] -A-XG+------ \--* ASG int | |
[000080] D----+-N---- \--* LCL_VAR int V02 arg2 | |
***** BB05, stmt 8 | |
[000089] ------------ * STMT void (IL 0x055...0x058) | |
[000085] -----+------ | /--* CAST long <- int | |
[000084] -----+------ | | \--* CNS_INT int 8 | |
[000086] -----+------ | /--* ADD long | |
[000083] -----+------ | | \--* LCL_VAR long V03 loc0 | |
[000088] -A---+------ \--* ASG long | |
[000087] D----+-N---- \--* LCL_VAR long V03 loc0 | |
------------ BB06 [059..05D) -> BB05 (cond), preds={BB04,BB05} succs={BB07,BB05} | |
***** BB06, stmt 9 | |
[000068] ------------ * STMT void (IL 0x059...0x05B) | |
[000067] -----+------ \--* JTRUE void | |
[000065] -----+------ | /--* CNS_INT int 0 | |
[000066] J----+-N---- \--* GT int | |
[000064] -----+------ \--* LCL_VAR int V02 arg2 | |
------------ BB07 [05D..086) (return), preds={BB06} succs={} | |
***** BB07, stmt 10 | |
[000097] ------------ * STMT void (IL 0x05D...0x060) | |
[000093] -----+------ | /--* CAST long <- int | |
[000092] -----+------ | | \--* CNS_INT int 8 | |
[000094] -----+------ | /--* SUB long | |
[000091] -----+------ | | \--* LCL_VAR long V03 loc0 | |
[000096] -A---+------ \--* ASG long | |
[000095] D----+-N---- \--* LCL_VAR long V03 loc0 | |
***** BB07, stmt 11 | |
[000113] ------------ * STMT void (IL 0x061...0x077) | |
[000110] ---XG+------ | /--* CAST int <- long | |
[000109] ---XG+------ | | \--* HWIntrinsic long TrailingZeroCount | |
[000107] *--XG+------ | | | /--* IND long | |
[000106] -----+------ | | | | \--* LCL_VAR long V03 loc0 | |
[000108] ---XG+------ | | \--* HWIntrinsic long ParallelBitDeposit | |
[000103] -----+------ | | | /--* CNS_INT int 63 | |
[000104] -----+------ | | | /--* AND int | |
[000101] -----+------ | | | | | /--* CNS_INT int -1 | |
[000102] -----+------ | | | | \--* ADD int | |
[000100] -----+------ | | | | \--* LCL_VAR int V04 loc1 | |
[000105] -----+------ | | \--* LSH long | |
[000099] -----+------ | | \--* CAST long <- int | |
[000098] -----+------ | | \--* CNS_INT int 1 | |
[000112] -A-XG+------ \--* ASG int | |
[000111] D----+-N---- \--* LCL_VAR int V05 loc2 | |
***** BB07, stmt 12 | |
[000127] ------------ * STMT void (IL 0x078...0x085) | |
[000126] ---X-+------ \--* RETURN int | |
[000124] -----+------ | /--* LCL_VAR int V05 loc2 | |
[000125] ---X-+------ \--* ADD int | |
[000121] -----+------ | /--* NOP int | |
[000120] -----+------ | | \--* CNS_INT int 64 | |
[000122] ---X-+------ \--* MUL int | |
[000134] ---X-+------ \--* CAST int <- long | |
[000118] -----+------ | /--* CAST long <- int | |
[000117] -----+------ | | \--* CNS_INT int 8 | |
[000119] ---X-+------ \--* DIV long | |
[000115] -----+------ | /--* LCL_VAR long V00 arg0 | |
[000116] -----+------ \--* SUB long | |
[000114] -----+------ \--* LCL_VAR long V03 loc0 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** 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..004)-> BB03 (always) i label target | |
BB02 [0001] 1 BB03 1 [004..03B) i label target bwd | |
BB03 [0002] 2 BB01,BB02 1 [03B..043)-> BB02 ( cond ) i label target bwd | |
BB04 [0003] 1 BB03 1 [043..047)-> BB06 (always) i | |
BB05 [0004] 1 BB06 1 [047..059) i label target bwd | |
BB06 [0005] 2 BB04,BB05 1 [059..05D)-> BB05 ( cond ) i label target bwd | |
BB07 [0006] 1 BB06 1 [05D..086) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..004) -> BB03 (always), preds={} succs={BB03} | |
***** BB01, stmt 1 | |
[000004] ------------ * STMT void (IL 0x000...0x001) | |
[000001] -----+------ | /--* LCL_VAR long V00 arg0 | |
[000003] -A---+------ \--* ASG long | |
[000002] D----+-N---- \--* LCL_VAR long V03 loc0 | |
------------ BB02 [004..03B), preds={BB03} succs={BB03} | |
***** BB02, stmt 2 | |
[000047] ------------ * STMT void (IL 0x004...0x032) | |
[000129] ---XG+------ | /--* CAST int <- long | |
[000041] ---XG+------ | | \--* HWIntrinsic long PopCount | |
[000040] *--XG+------ | | \--* IND long | |
[000037] -----+------ | | | /--* CAST long <- int | |
[000036] -----+------ | | | | \--* CNS_INT int 8 | |
[000038] -----+------ | | | /--* MUL long | |
[000035] -----+------ | | | | \--* CAST long <- int | |
[000034] -----+------ | | | | \--* CNS_INT int 3 | |
[000039] -----+------ | | \--* ADD long | |
[000033] -----+------ | | \--* LCL_VAR long V03 loc0 | |
[000042] ---XG+------ | /--* ADD int | |
[000131] ---XG+------ | | | /--* CAST int <- long | |
[000031] ---XG+------ | | | | \--* HWIntrinsic long PopCount | |
[000030] *--XG+------ | | | | \--* IND long | |
[000027] -----+------ | | | | | /--* CAST long <- int | |
[000026] -----+------ | | | | | | \--* CNS_INT int 8 | |
[000028] -----+------ | | | | | /--* MUL long | |
[000025] -----+------ | | | | | | \--* CAST long <- int | |
[000024] -----+------ | | | | | | \--* CNS_INT int 2 | |
[000029] -----+------ | | | | \--* ADD long | |
[000023] -----+------ | | | | \--* LCL_VAR long V03 loc0 | |
[000032] ---XG+------ | | \--* ADD int | |
[000133] ---XG+------ | | | /--* CAST int <- long | |
[000021] ---XG+------ | | | | \--* HWIntrinsic long PopCount | |
[000020] *--XG+------ | | | | \--* IND long | |
[000018] -----+------ | | | | | /--* CAST long <- int | |
[000017] -----+------ | | | | | | \--* CNS_INT int 8 | |
[000019] -----+------ | | | | \--* ADD long | |
[000016] -----+------ | | | | \--* LCL_VAR long V03 loc0 | |
[000022] ---XG+------ | | \--* ADD int | |
[000132] ---XG+------ | | \--* CAST int <- long | |
[000015] ---XG+------ | | \--* HWIntrinsic long PopCount | |
[000014] *--XG+------ | | \--* IND long | |
[000013] -----+------ | | \--* LCL_VAR long V03 loc0 | |
[000044] ---XG+------ | /--* SUB int | |
[000012] -----+------ | | \--* LCL_VAR int V02 arg2 | |
[000046] -A-XG+------ \--* ASG int | |
[000045] D----+-N---- \--* LCL_VAR int V02 arg2 | |
***** BB02, stmt 3 | |
[000057] ------------ * STMT void (IL 0x034...0x03A) | |
[000052] -----+------ | /--* CAST long <- int | |
[000051] -----+------ | | \--* CNS_INT int 8 | |
[000053] -----+------ | /--* MUL long | |
[000050] -----+------ | | \--* CAST long <- int | |
[000049] -----+------ | | \--* CNS_INT int 4 | |
[000054] -----+------ | /--* ADD long | |
[000048] -----+------ | | \--* LCL_VAR long V03 loc0 | |
[000056] -A---+------ \--* ASG long | |
[000055] D----+-N---- \--* LCL_VAR long V03 loc0 | |
------------ BB03 [03B..043) -> BB02 (cond), preds={BB01,BB02} succs={BB04,BB02} | |
***** BB03, stmt 4 | |
[000010] ------------ * STMT void (IL 0x03B...0x041) | |
[000009] -----+------ \--* JTRUE void | |
[000007] -----+------ | /--* CNS_INT int 256 | |
[000008] J----+-N---- \--* GE int | |
[000006] -----+------ \--* LCL_VAR int V02 arg2 | |
------------ BB04 [043..047) -> BB06 (always), preds={BB03} succs={BB06} | |
***** BB04, stmt 5 | |
[000062] ------------ * STMT void (IL 0x043...0x044) | |
[000059] -----+------ | /--* LCL_VAR int V02 arg2 | |
[000061] -A---+------ \--* ASG int | |
[000060] D----+-N---- \--* LCL_VAR int V04 loc1 | |
------------ BB05 [047..059), preds={BB06} succs={BB06} | |
***** BB05, stmt 6 | |
[000073] ------------ * STMT void (IL 0x047...0x048) | |
[000070] -----+------ | /--* LCL_VAR int V02 arg2 | |
[000072] -A---+------ \--* ASG int | |
[000071] D----+-N---- \--* LCL_VAR int V04 loc1 | |
***** BB05, stmt 7 | |
[000082] ------------ * STMT void (IL 0x049...0x053) | |
[000078] ---XG+------ | /--* CAST int <- long | |
[000077] ---XG+------ | | \--* HWIntrinsic long PopCount | |
[000076] *--XG+------ | | \--* IND long | |
[000075] -----+------ | | \--* LCL_VAR long V03 loc0 | |
[000079] ---XG+------ | /--* SUB int | |
[000074] -----+------ | | \--* LCL_VAR int V02 arg2 | |
[000081] -A-XG+------ \--* ASG int | |
[000080] D----+-N---- \--* LCL_VAR int V02 arg2 | |
***** BB05, stmt 8 | |
[000089] ------------ * STMT void (IL 0x055...0x058) | |
[000085] -----+------ | /--* CAST long <- int | |
[000084] -----+------ | | \--* CNS_INT int 8 | |
[000086] -----+------ | /--* ADD long | |
[000083] -----+------ | | \--* LCL_VAR long V03 loc0 | |
[000088] -A---+------ \--* ASG long | |
[000087] D----+-N---- \--* LCL_VAR long V03 loc0 | |
------------ BB06 [059..05D) -> BB05 (cond), preds={BB04,BB05} succs={BB07,BB05} | |
***** BB06, stmt 9 | |
[000068] ------------ * STMT void (IL 0x059...0x05B) | |
[000067] -----+------ \--* JTRUE void | |
[000065] -----+------ | /--* CNS_INT int 0 | |
[000066] J----+-N---- \--* GT int | |
[000064] -----+------ \--* LCL_VAR int V02 arg2 | |
------------ BB07 [05D..086) (return), preds={BB06} succs={} | |
***** BB07, stmt 10 | |
[000097] ------------ * STMT void (IL 0x05D...0x060) | |
[000093] -----+------ | /--* CAST long <- int | |
[000092] -----+------ | | \--* CNS_INT int 8 | |
[000094] -----+------ | /--* SUB long | |
[000091] -----+------ | | \--* LCL_VAR long V03 loc0 | |
[000096] -A---+------ \--* ASG long | |
[000095] D----+-N---- \--* LCL_VAR long V03 loc0 | |
***** BB07, stmt 11 | |
[000113] ------------ * STMT void (IL 0x061...0x077) | |
[000110] ---XG+------ | /--* CAST int <- long | |
[000109] ---XG+------ | | \--* HWIntrinsic long TrailingZeroCount | |
[000107] *--XG+------ | | | /--* IND long | |
[000106] -----+------ | | | | \--* LCL_VAR long V03 loc0 | |
[000108] ---XG+------ | | \--* HWIntrinsic long ParallelBitDeposit | |
[000103] -----+------ | | | /--* CNS_INT int 63 | |
[000104] -----+------ | | | /--* AND int | |
[000101] -----+------ | | | | | /--* CNS_INT int -1 | |
[000102] -----+------ | | | | \--* ADD int | |
[000100] -----+------ | | | | \--* LCL_VAR int V04 loc1 | |
[000105] -----+------ | | \--* LSH long | |
[000099] -----+------ | | \--* CAST long <- int | |
[000098] -----+------ | | \--* CNS_INT int 1 | |
[000112] -A-XG+------ \--* ASG int | |
[000111] D----+-N---- \--* LCL_VAR int V05 loc2 | |
***** BB07, stmt 12 | |
[000127] ------------ * STMT void (IL 0x078...0x085) | |
[000126] ---X-+------ \--* RETURN int | |
[000124] -----+------ | /--* LCL_VAR int V05 loc2 | |
[000125] ---X-+------ \--* ADD int | |
[000121] -----+------ | /--* NOP int | |
[000120] -----+------ | | \--* CNS_INT int 64 | |
[000122] ---X-+------ \--* MUL int | |
[000134] ---X-+------ \--* CAST int <- long | |
[000118] -----+------ | /--* CAST long <- int | |
[000117] -----+------ | | \--* CNS_INT int 8 | |
[000119] ---X-+------ \--* DIV long | |
[000115] -----+------ | /--* LCL_VAR long V00 arg0 | |
[000116] -----+------ \--* SUB long | |
[000114] -----+------ \--* LCL_VAR long V03 loc0 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** In lvaMarkLocalVars() | |
*** lvaComputeRefCounts *** | |
*************** In fgFindOperOrder() | |
*************** In fgSetBlockOrder() | |
The biggest BB has 38 tree nodes | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..004)-> BB03 (always) i label target | |
BB02 [0001] 1 BB03 1 [004..03B) i label target bwd | |
BB03 [0002] 2 BB01,BB02 1 [03B..043)-> BB02 ( cond ) i label target bwd | |
BB04 [0003] 1 BB03 1 [043..047)-> BB06 (always) i | |
BB05 [0004] 1 BB06 1 [047..059) i label target bwd | |
BB06 [0005] 2 BB04,BB05 1 [059..05D)-> BB05 ( cond ) i label target bwd | |
BB07 [0006] 1 BB06 1 [05D..086) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..004) -> BB03 (always), preds={} succs={BB03} | |
***** BB01, stmt 1 | |
( 7, 5) [000004] ------------ * STMT void (IL 0x000...0x001) | |
N001 ( 3, 2) [000001] ------------ | /--* LCL_VAR long V00 arg0 | |
N003 ( 7, 5) [000003] -A------R--- \--* ASG long | |
N002 ( 3, 2) [000002] D------N---- \--* LCL_VAR long V03 loc0 | |
------------ BB02 [004..03B), preds={BB03} succs={BB03} | |
***** BB02, stmt 2 | |
( 61, 58) [000047] ------------ * STMT void (IL 0x004...0x032) | |
N033 ( 16, 16) [000129] ---XG------- | /--* CAST int <- long | |
N032 ( 15, 14) [000041] ---XG------- | | \--* HWIntrinsic long PopCount | |
N031 ( 14, 13) [000040] *--XG------- | | \--* IND long | |
N028 ( 2, 3) [000037] ------------ | | | /--* CAST long <- int | |
N027 ( 1, 1) [000036] ------------ | | | | \--* CNS_INT int 8 | |
N029 ( 8, 9) [000038] ------------ | | | /--* MUL long | |
N026 ( 2, 3) [000035] ------------ | | | | \--* CAST long <- int | |
N025 ( 1, 1) [000034] ------------ | | | | \--* CNS_INT int 3 | |
N030 ( 11, 11) [000039] -------N---- | | \--* ADD long | |
N024 ( 3, 2) [000033] ------------ | | \--* LCL_VAR long V03 loc0 | |
N034 ( 53, 52) [000042] ---XG------- | /--* ADD int | |
N022 ( 16, 16) [000131] ---XG------- | | | /--* CAST int <- long | |
N021 ( 15, 14) [000031] ---XG------- | | | | \--* HWIntrinsic long PopCount | |
N020 ( 14, 13) [000030] *--XG------- | | | | \--* IND long | |
N017 ( 2, 3) [000027] ------------ | | | | | /--* CAST long <- int | |
N016 ( 1, 1) [000026] ------------ | | | | | | \--* CNS_INT int 8 | |
N018 ( 8, 9) [000028] ------------ | | | | | /--* MUL long | |
N015 ( 2, 3) [000025] ------------ | | | | | | \--* CAST long <- int | |
N014 ( 1, 1) [000024] ------------ | | | | | | \--* CNS_INT int 2 | |
N019 ( 11, 11) [000029] -------N---- | | | | \--* ADD long | |
N013 ( 3, 2) [000023] ------------ | | | | \--* LCL_VAR long V03 loc0 | |
N023 ( 36, 35) [000032] ---XG------- | | \--* ADD int | |
N011 ( 10, 10) [000133] ---XG------- | | | /--* CAST int <- long | |
N010 ( 9, 8) [000021] ---XG------- | | | | \--* HWIntrinsic long PopCount | |
N009 ( 8, 7) [000020] *--XG------- | | | | \--* IND long | |
N007 ( 2, 3) [000018] ------------ | | | | | /--* CAST long <- int | |
N006 ( 1, 1) [000017] ------------ | | | | | | \--* CNS_INT int 8 | |
N008 ( 5, 5) [000019] -------N---- | | | | \--* ADD long | |
N005 ( 3, 2) [000016] ------------ | | | | \--* LCL_VAR long V03 loc0 | |
N012 ( 19, 18) [000022] ---XG------- | | \--* ADD int | |
N004 ( 8, 7) [000132] ---XG------- | | \--* CAST int <- long | |
N003 ( 7, 5) [000015] ---XG------- | | \--* HWIntrinsic long PopCount | |
N002 ( 6, 4) [000014] *--XG------- | | \--* IND long | |
N001 ( 3, 2) [000013] ------------ | | \--* LCL_VAR long V03 loc0 | |
N036 ( 57, 55) [000044] ---XG---R--- | /--* SUB int | |
N035 ( 3, 2) [000012] ------------ | | \--* LCL_VAR int V02 arg2 | |
N038 ( 61, 58) [000046] -A-XG---R--- \--* ASG int | |
N037 ( 3, 2) [000045] D------N---- \--* LCL_VAR int V02 arg2 | |
***** BB02, stmt 3 | |
( 16, 15) [000057] ------------ * STMT void (IL 0x034...0x03A) | |
N005 ( 2, 3) [000052] ------------ | /--* CAST long <- int | |
N004 ( 1, 1) [000051] ------------ | | \--* CNS_INT int 8 | |
N006 ( 8, 9) [000053] ------------ | /--* MUL long | |
N003 ( 2, 3) [000050] ------------ | | \--* CAST long <- int | |
N002 ( 1, 1) [000049] ------------ | | \--* CNS_INT int 4 | |
N007 ( 12, 12) [000054] ------------ | /--* ADD long | |
N001 ( 3, 2) [000048] ------------ | | \--* LCL_VAR long V03 loc0 | |
N009 ( 16, 15) [000056] -A------R--- \--* ASG long | |
N008 ( 3, 2) [000055] D------N---- \--* LCL_VAR long V03 loc0 | |
------------ BB03 [03B..043) -> BB02 (cond), preds={BB01,BB02} succs={BB04,BB02} | |
***** BB03, stmt 4 | |
( 7, 9) [000010] ------------ * STMT void (IL 0x03B...0x041) | |
N004 ( 7, 9) [000009] ------------ \--* JTRUE void | |
N002 ( 1, 4) [000007] ------------ | /--* CNS_INT int 256 | |
N003 ( 5, 7) [000008] J------N---- \--* GE int | |
N001 ( 3, 2) [000006] ------------ \--* LCL_VAR int V02 arg2 | |
------------ BB04 [043..047) -> BB06 (always), preds={BB03} succs={BB06} | |
***** BB04, stmt 5 | |
( 7, 5) [000062] ------------ * STMT void (IL 0x043...0x044) | |
N001 ( 3, 2) [000059] ------------ | /--* LCL_VAR int V02 arg2 | |
N003 ( 7, 5) [000061] -A------R--- \--* ASG int | |
N002 ( 3, 2) [000060] D------N---- \--* LCL_VAR int V04 loc1 | |
------------ BB05 [047..059), preds={BB06} succs={BB06} | |
***** BB05, stmt 6 | |
( 7, 5) [000073] ------------ * STMT void (IL 0x047...0x048) | |
N001 ( 3, 2) [000070] ------------ | /--* LCL_VAR int V02 arg2 | |
N003 ( 7, 5) [000072] -A------R--- \--* ASG int | |
N002 ( 3, 2) [000071] D------N---- \--* LCL_VAR int V04 loc1 | |
***** BB05, stmt 7 | |
( 16, 13) [000082] ------------ * STMT void (IL 0x049...0x053) | |
N005 ( 8, 7) [000078] ---XG------- | /--* CAST int <- long | |
N004 ( 7, 5) [000077] ---XG------- | | \--* HWIntrinsic long PopCount | |
N003 ( 6, 4) [000076] *--XG------- | | \--* IND long | |
N002 ( 3, 2) [000075] ------------ | | \--* LCL_VAR long V03 loc0 | |
N006 ( 12, 10) [000079] ---XG------- | /--* SUB int | |
N001 ( 3, 2) [000074] ------------ | | \--* LCL_VAR int V02 arg2 | |
N008 ( 16, 13) [000081] -A-XG---R--- \--* ASG int | |
N007 ( 3, 2) [000080] D------N---- \--* LCL_VAR int V02 arg2 | |
***** BB05, stmt 8 | |
( 10, 9) [000089] ------------ * STMT void (IL 0x055...0x058) | |
N003 ( 2, 3) [000085] ------------ | /--* CAST long <- int | |
N002 ( 1, 1) [000084] ------------ | | \--* CNS_INT int 8 | |
N004 ( 6, 6) [000086] ------------ | /--* ADD long | |
N001 ( 3, 2) [000083] ------------ | | \--* LCL_VAR long V03 loc0 | |
N006 ( 10, 9) [000088] -A------R--- \--* ASG long | |
N005 ( 3, 2) [000087] D------N---- \--* LCL_VAR long V03 loc0 | |
------------ BB06 [059..05D) -> BB05 (cond), preds={BB04,BB05} succs={BB07,BB05} | |
***** BB06, stmt 9 | |
( 7, 6) [000068] ------------ * STMT void (IL 0x059...0x05B) | |
N004 ( 7, 6) [000067] ------------ \--* JTRUE void | |
N002 ( 1, 1) [000065] ------------ | /--* CNS_INT int 0 | |
N003 ( 5, 4) [000066] J------N---- \--* GT int | |
N001 ( 3, 2) [000064] ------------ \--* LCL_VAR int V02 arg2 | |
------------ BB07 [05D..086) (return), preds={BB06} succs={} | |
***** BB07, stmt 10 | |
( 10, 9) [000097] ------------ * STMT void (IL 0x05D...0x060) | |
N003 ( 2, 3) [000093] ------------ | /--* CAST long <- int | |
N002 ( 1, 1) [000092] ------------ | | \--* CNS_INT int 8 | |
N004 ( 6, 6) [000094] ------------ | /--* SUB long | |
N001 ( 3, 2) [000091] ------------ | | \--* LCL_VAR long V03 loc0 | |
N006 ( 10, 9) [000096] -A------R--- \--* ASG long | |
N005 ( 3, 2) [000095] D------N---- \--* LCL_VAR long V03 loc0 | |
***** BB07, stmt 11 | |
( 26, 21) [000113] ------------ * STMT void (IL 0x061...0x077) | |
N013 ( 22, 18) [000110] ---XG------- | /--* CAST int <- long | |
N012 ( 21, 16) [000109] ---XG------- | | \--* HWIntrinsic long TrailingZeroCount | |
N010 ( 6, 4) [000107] *--XG------- | | | /--* IND long | |
N009 ( 3, 2) [000106] ------------ | | | | \--* LCL_VAR long V03 loc0 | |
N011 ( 20, 15) [000108] ---XG------- | | \--* HWIntrinsic long ParallelBitDeposit | |
N004 ( 1, 1) [000103] ------------ | | | /--* CNS_INT int 63 | |
N005 ( 7, 6) [000104] ------------ | | | /--* AND int | |
N002 ( 1, 1) [000101] ------------ | | | | | /--* CNS_INT int -1 | |
N003 ( 5, 4) [000102] ------------ | | | | \--* ADD int | |
N001 ( 3, 2) [000100] ------------ | | | | \--* LCL_VAR int V04 loc1 | |
N008 ( 13, 10) [000105] --------R--- | | \--* LSH long | |
N007 ( 2, 3) [000099] ------------ | | \--* CAST long <- int | |
N006 ( 1, 1) [000098] ------------ | | \--* CNS_INT int 1 | |
N015 ( 26, 21) [000112] -A-XG---R--- \--* ASG int | |
N014 ( 3, 2) [000111] D------N---- \--* LCL_VAR int V05 loc2 | |
***** BB07, stmt 12 | |
( 40, 21) [000127] ------------ * STMT void (IL 0x078...0x085) | |
N013 ( 40, 21) [000126] ---X-------- \--* RETURN int | |
N011 ( 3, 2) [000124] ------------ | /--* LCL_VAR int V05 loc2 | |
N012 ( 39, 20) [000125] ---X-------- \--* ADD int | |
N009 ( 1, 1) [000121] ------------ | /--* NOP int | |
N008 ( 1, 1) [000120] ------------ | | \--* CNS_INT int 64 | |
N010 ( 35, 17) [000122] ---X-------- \--* MUL int | |
N007 ( 30, 13) [000134] ---X-------- \--* CAST int <- long | |
N005 ( 2, 3) [000118] ------------ | /--* CAST long <- int | |
N004 ( 1, 1) [000117] ------------ | | \--* CNS_INT int 8 | |
N006 ( 29, 11) [000119] ---X-------- \--* DIV long | |
N002 ( 3, 2) [000115] ------------ | /--* LCL_VAR long V00 arg0 | |
N003 ( 7, 5) [000116] ------------ \--* SUB long | |
N001 ( 3, 2) [000114] ------------ \--* LCL_VAR long V03 loc0 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDetermineFirstColdBlock() | |
No procedure splitting will be done for this method | |
*************** In IR Rationalize | |
Trees before IR Rationalize | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..004)-> BB03 (always) i label target | |
BB02 [0001] 1 BB03 1 [004..03B) i label target bwd | |
BB03 [0002] 2 BB01,BB02 1 [03B..043)-> BB02 ( cond ) i label target bwd | |
BB04 [0003] 1 BB03 1 [043..047)-> BB06 (always) i | |
BB05 [0004] 1 BB06 1 [047..059) i label target bwd | |
BB06 [0005] 2 BB04,BB05 1 [059..05D)-> BB05 ( cond ) i label target bwd | |
BB07 [0006] 1 BB06 1 [05D..086) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..004) -> BB03 (always), preds={} succs={BB03} | |
***** BB01, stmt 1 | |
( 7, 5) [000004] ------------ * STMT void (IL 0x000...0x001) | |
N001 ( 3, 2) [000001] ------------ | /--* LCL_VAR long V00 arg0 | |
N003 ( 7, 5) [000003] -A------R--- \--* ASG long | |
N002 ( 3, 2) [000002] D------N---- \--* LCL_VAR long V03 loc0 | |
------------ BB02 [004..03B), preds={BB03} succs={BB03} | |
***** BB02, stmt 2 | |
( 61, 58) [000047] ------------ * STMT void (IL 0x004...0x032) | |
N033 ( 16, 16) [000129] ---XG------- | /--* CAST int <- long | |
N032 ( 15, 14) [000041] ---XG------- | | \--* HWIntrinsic long PopCount | |
N031 ( 14, 13) [000040] *--XG------- | | \--* IND long | |
N028 ( 2, 3) [000037] ------------ | | | /--* CAST long <- int | |
N027 ( 1, 1) [000036] ------------ | | | | \--* CNS_INT int 8 | |
N029 ( 8, 9) [000038] ------------ | | | /--* MUL long | |
N026 ( 2, 3) [000035] ------------ | | | | \--* CAST long <- int | |
N025 ( 1, 1) [000034] ------------ | | | | \--* CNS_INT int 3 | |
N030 ( 11, 11) [000039] -------N---- | | \--* ADD long | |
N024 ( 3, 2) [000033] ------------ | | \--* LCL_VAR long V03 loc0 | |
N034 ( 53, 52) [000042] ---XG------- | /--* ADD int | |
N022 ( 16, 16) [000131] ---XG------- | | | /--* CAST int <- long | |
N021 ( 15, 14) [000031] ---XG------- | | | | \--* HWIntrinsic long PopCount | |
N020 ( 14, 13) [000030] *--XG------- | | | | \--* IND long | |
N017 ( 2, 3) [000027] ------------ | | | | | /--* CAST long <- int | |
N016 ( 1, 1) [000026] ------------ | | | | | | \--* CNS_INT int 8 | |
N018 ( 8, 9) [000028] ------------ | | | | | /--* MUL long | |
N015 ( 2, 3) [000025] ------------ | | | | | | \--* CAST long <- int | |
N014 ( 1, 1) [000024] ------------ | | | | | | \--* CNS_INT int 2 | |
N019 ( 11, 11) [000029] -------N---- | | | | \--* ADD long | |
N013 ( 3, 2) [000023] ------------ | | | | \--* LCL_VAR long V03 loc0 | |
N023 ( 36, 35) [000032] ---XG------- | | \--* ADD int | |
N011 ( 10, 10) [000133] ---XG------- | | | /--* CAST int <- long | |
N010 ( 9, 8) [000021] ---XG------- | | | | \--* HWIntrinsic long PopCount | |
N009 ( 8, 7) [000020] *--XG------- | | | | \--* IND long | |
N007 ( 2, 3) [000018] ------------ | | | | | /--* CAST long <- int | |
N006 ( 1, 1) [000017] ------------ | | | | | | \--* CNS_INT int 8 | |
N008 ( 5, 5) [000019] -------N---- | | | | \--* ADD long | |
N005 ( 3, 2) [000016] ------------ | | | | \--* LCL_VAR long V03 loc0 | |
N012 ( 19, 18) [000022] ---XG------- | | \--* ADD int | |
N004 ( 8, 7) [000132] ---XG------- | | \--* CAST int <- long | |
N003 ( 7, 5) [000015] ---XG------- | | \--* HWIntrinsic long PopCount | |
N002 ( 6, 4) [000014] *--XG------- | | \--* IND long | |
N001 ( 3, 2) [000013] ------------ | | \--* LCL_VAR long V03 loc0 | |
N036 ( 57, 55) [000044] ---XG---R--- | /--* SUB int | |
N035 ( 3, 2) [000012] ------------ | | \--* LCL_VAR int V02 arg2 | |
N038 ( 61, 58) [000046] -A-XG---R--- \--* ASG int | |
N037 ( 3, 2) [000045] D------N---- \--* LCL_VAR int V02 arg2 | |
***** BB02, stmt 3 | |
( 16, 15) [000057] ------------ * STMT void (IL 0x034...0x03A) | |
N005 ( 2, 3) [000052] ------------ | /--* CAST long <- int | |
N004 ( 1, 1) [000051] ------------ | | \--* CNS_INT int 8 | |
N006 ( 8, 9) [000053] ------------ | /--* MUL long | |
N003 ( 2, 3) [000050] ------------ | | \--* CAST long <- int | |
N002 ( 1, 1) [000049] ------------ | | \--* CNS_INT int 4 | |
N007 ( 12, 12) [000054] ------------ | /--* ADD long | |
N001 ( 3, 2) [000048] ------------ | | \--* LCL_VAR long V03 loc0 | |
N009 ( 16, 15) [000056] -A------R--- \--* ASG long | |
N008 ( 3, 2) [000055] D------N---- \--* LCL_VAR long V03 loc0 | |
------------ BB03 [03B..043) -> BB02 (cond), preds={BB01,BB02} succs={BB04,BB02} | |
***** BB03, stmt 4 | |
( 7, 9) [000010] ------------ * STMT void (IL 0x03B...0x041) | |
N004 ( 7, 9) [000009] ------------ \--* JTRUE void | |
N002 ( 1, 4) [000007] ------------ | /--* CNS_INT int 256 | |
N003 ( 5, 7) [000008] J------N---- \--* GE int | |
N001 ( 3, 2) [000006] ------------ \--* LCL_VAR int V02 arg2 | |
------------ BB04 [043..047) -> BB06 (always), preds={BB03} succs={BB06} | |
***** BB04, stmt 5 | |
( 7, 5) [000062] ------------ * STMT void (IL 0x043...0x044) | |
N001 ( 3, 2) [000059] ------------ | /--* LCL_VAR int V02 arg2 | |
N003 ( 7, 5) [000061] -A------R--- \--* ASG int | |
N002 ( 3, 2) [000060] D------N---- \--* LCL_VAR int V04 loc1 | |
------------ BB05 [047..059), preds={BB06} succs={BB06} | |
***** BB05, stmt 6 | |
( 7, 5) [000073] ------------ * STMT void (IL 0x047...0x048) | |
N001 ( 3, 2) [000070] ------------ | /--* LCL_VAR int V02 arg2 | |
N003 ( 7, 5) [000072] -A------R--- \--* ASG int | |
N002 ( 3, 2) [000071] D------N---- \--* LCL_VAR int V04 loc1 | |
***** BB05, stmt 7 | |
( 16, 13) [000082] ------------ * STMT void (IL 0x049...0x053) | |
N005 ( 8, 7) [000078] ---XG------- | /--* CAST int <- long | |
N004 ( 7, 5) [000077] ---XG------- | | \--* HWIntrinsic long PopCount | |
N003 ( 6, 4) [000076] *--XG------- | | \--* IND long | |
N002 ( 3, 2) [000075] ------------ | | \--* LCL_VAR long V03 loc0 | |
N006 ( 12, 10) [000079] ---XG------- | /--* SUB int | |
N001 ( 3, 2) [000074] ------------ | | \--* LCL_VAR int V02 arg2 | |
N008 ( 16, 13) [000081] -A-XG---R--- \--* ASG int | |
N007 ( 3, 2) [000080] D------N---- \--* LCL_VAR int V02 arg2 | |
***** BB05, stmt 8 | |
( 10, 9) [000089] ------------ * STMT void (IL 0x055...0x058) | |
N003 ( 2, 3) [000085] ------------ | /--* CAST long <- int | |
N002 ( 1, 1) [000084] ------------ | | \--* CNS_INT int 8 | |
N004 ( 6, 6) [000086] ------------ | /--* ADD long | |
N001 ( 3, 2) [000083] ------------ | | \--* LCL_VAR long V03 loc0 | |
N006 ( 10, 9) [000088] -A------R--- \--* ASG long | |
N005 ( 3, 2) [000087] D------N---- \--* LCL_VAR long V03 loc0 | |
------------ BB06 [059..05D) -> BB05 (cond), preds={BB04,BB05} succs={BB07,BB05} | |
***** BB06, stmt 9 | |
( 7, 6) [000068] ------------ * STMT void (IL 0x059...0x05B) | |
N004 ( 7, 6) [000067] ------------ \--* JTRUE void | |
N002 ( 1, 1) [000065] ------------ | /--* CNS_INT int 0 | |
N003 ( 5, 4) [000066] J------N---- \--* GT int | |
N001 ( 3, 2) [000064] ------------ \--* LCL_VAR int V02 arg2 | |
------------ BB07 [05D..086) (return), preds={BB06} succs={} | |
***** BB07, stmt 10 | |
( 10, 9) [000097] ------------ * STMT void (IL 0x05D...0x060) | |
N003 ( 2, 3) [000093] ------------ | /--* CAST long <- int | |
N002 ( 1, 1) [000092] ------------ | | \--* CNS_INT int 8 | |
N004 ( 6, 6) [000094] ------------ | /--* SUB long | |
N001 ( 3, 2) [000091] ------------ | | \--* LCL_VAR long V03 loc0 | |
N006 ( 10, 9) [000096] -A------R--- \--* ASG long | |
N005 ( 3, 2) [000095] D------N---- \--* LCL_VAR long V03 loc0 | |
***** BB07, stmt 11 | |
( 26, 21) [000113] ------------ * STMT void (IL 0x061...0x077) | |
N013 ( 22, 18) [000110] ---XG------- | /--* CAST int <- long | |
N012 ( 21, 16) [000109] ---XG------- | | \--* HWIntrinsic long TrailingZeroCount | |
N010 ( 6, 4) [000107] *--XG------- | | | /--* IND long | |
N009 ( 3, 2) [000106] ------------ | | | | \--* LCL_VAR long V03 loc0 | |
N011 ( 20, 15) [000108] ---XG------- | | \--* HWIntrinsic long ParallelBitDeposit | |
N004 ( 1, 1) [000103] ------------ | | | /--* CNS_INT int 63 | |
N005 ( 7, 6) [000104] ------------ | | | /--* AND int | |
N002 ( 1, 1) [000101] ------------ | | | | | /--* CNS_INT int -1 | |
N003 ( 5, 4) [000102] ------------ | | | | \--* ADD int | |
N001 ( 3, 2) [000100] ------------ | | | | \--* LCL_VAR int V04 loc1 | |
N008 ( 13, 10) [000105] --------R--- | | \--* LSH long | |
N007 ( 2, 3) [000099] ------------ | | \--* CAST long <- int | |
N006 ( 1, 1) [000098] ------------ | | \--* CNS_INT int 1 | |
N015 ( 26, 21) [000112] -A-XG---R--- \--* ASG int | |
N014 ( 3, 2) [000111] D------N---- \--* LCL_VAR int V05 loc2 | |
***** BB07, stmt 12 | |
( 40, 21) [000127] ------------ * STMT void (IL 0x078...0x085) | |
N013 ( 40, 21) [000126] ---X-------- \--* RETURN int | |
N011 ( 3, 2) [000124] ------------ | /--* LCL_VAR int V05 loc2 | |
N012 ( 39, 20) [000125] ---X-------- \--* ADD int | |
N009 ( 1, 1) [000121] ------------ | /--* NOP int | |
N008 ( 1, 1) [000120] ------------ | | \--* CNS_INT int 64 | |
N010 ( 35, 17) [000122] ---X-------- \--* MUL int | |
N007 ( 30, 13) [000134] ---X-------- \--* CAST int <- long | |
N005 ( 2, 3) [000118] ------------ | /--* CAST long <- int | |
N004 ( 1, 1) [000117] ------------ | | \--* CNS_INT int 8 | |
N006 ( 29, 11) [000119] ---X-------- \--* DIV long | |
N002 ( 3, 2) [000115] ------------ | /--* LCL_VAR long V00 arg0 | |
N003 ( 7, 5) [000116] ------------ \--* SUB long | |
N001 ( 3, 2) [000114] ------------ \--* LCL_VAR long V03 loc0 | |
------------------------------------------------------------------------------------------------------------------- | |
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) | |
N003 ( 7, 5) [000003] DA---------- * STORE_LCL_VAR long V03 loc0 | |
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) | |
N038 ( 61, 58) [000046] DA-XG------- * STORE_LCL_VAR int V02 arg2 | |
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) | |
N009 ( 16, 15) [000056] DA---------- * STORE_LCL_VAR long V03 loc0 | |
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) | |
N003 ( 7, 5) [000061] DA---------- * STORE_LCL_VAR int V04 loc1 | |
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) | |
N003 ( 7, 5) [000072] DA---------- * STORE_LCL_VAR int V04 loc1 | |
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) | |
N008 ( 16, 13) [000081] DA-XG------- * STORE_LCL_VAR int V02 arg2 | |
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) | |
N006 ( 10, 9) [000088] DA---------- * STORE_LCL_VAR long V03 loc0 | |
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) | |
N006 ( 10, 9) [000096] DA---------- * STORE_LCL_VAR long V03 loc0 | |
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) | |
N015 ( 26, 21) [000112] DA-XG------- * STORE_LCL_VAR int V05 loc2 | |
*************** Exiting IR Rationalize | |
Trees after IR Rationalize | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..004)-> BB03 (always) i label target LIR | |
BB02 [0001] 1 BB03 1 [004..03B) i label target bwd LIR | |
BB03 [0002] 2 BB01,BB02 1 [03B..043)-> BB02 ( cond ) i label target bwd LIR | |
BB04 [0003] 1 BB03 1 [043..047)-> BB06 (always) i LIR | |
BB05 [0004] 1 BB06 1 [047..059) i label target bwd LIR | |
BB06 [0005] 2 BB04,BB05 1 [059..05D)-> BB05 ( cond ) i label target bwd LIR | |
BB07 [0006] 1 BB06 1 [05D..086) (return) i LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..004) -> BB03 (always), preds={} succs={BB03} | |
( 7, 5) [000004] ------------ IL_OFFSET void IL offset: 0x0 | |
N001 ( 3, 2) [000001] ------------ t1 = LCL_VAR long V00 arg0 | |
/--* t1 long | |
N003 ( 7, 5) [000003] DA---------- * STORE_LCL_VAR long V03 loc0 | |
------------ BB02 [004..03B), preds={BB03} succs={BB03} | |
( 61, 58) [000047] ------------ IL_OFFSET void IL offset: 0x4 | |
N001 ( 3, 2) [000013] ------------ t13 = LCL_VAR long V03 loc0 | |
/--* t13 long | |
N002 ( 6, 4) [000014] *--XG------- t14 = * IND long | |
/--* t14 long | |
N003 ( 7, 5) [000015] ---XG------- t15 = * HWIntrinsic long PopCount | |
/--* t15 long | |
N004 ( 8, 7) [000132] ---XG------- t132 = * CAST int <- long | |
N005 ( 3, 2) [000016] ------------ t16 = LCL_VAR long V03 loc0 | |
N006 ( 1, 1) [000017] ------------ t17 = CNS_INT int 8 | |
/--* t17 int | |
N007 ( 2, 3) [000018] ------------ t18 = * CAST long <- int | |
/--* t16 long | |
+--* t18 long | |
N008 ( 5, 5) [000019] -------N---- t19 = * ADD long | |
/--* t19 long | |
N009 ( 8, 7) [000020] *--XG------- t20 = * IND long | |
/--* t20 long | |
N010 ( 9, 8) [000021] ---XG------- t21 = * HWIntrinsic long PopCount | |
/--* t21 long | |
N011 ( 10, 10) [000133] ---XG------- t133 = * CAST int <- long | |
/--* t132 int | |
+--* t133 int | |
N012 ( 19, 18) [000022] ---XG------- t22 = * ADD int | |
N013 ( 3, 2) [000023] ------------ t23 = LCL_VAR long V03 loc0 | |
N014 ( 1, 1) [000024] ------------ t24 = CNS_INT int 2 | |
/--* t24 int | |
N015 ( 2, 3) [000025] ------------ t25 = * CAST long <- int | |
N016 ( 1, 1) [000026] ------------ t26 = CNS_INT int 8 | |
/--* t26 int | |
N017 ( 2, 3) [000027] ------------ t27 = * CAST long <- int | |
/--* t25 long | |
+--* t27 long | |
N018 ( 8, 9) [000028] ------------ t28 = * MUL long | |
/--* t23 long | |
+--* t28 long | |
N019 ( 11, 11) [000029] -------N---- t29 = * ADD long | |
/--* t29 long | |
N020 ( 14, 13) [000030] *--XG------- t30 = * IND long | |
/--* t30 long | |
N021 ( 15, 14) [000031] ---XG------- t31 = * HWIntrinsic long PopCount | |
/--* t31 long | |
N022 ( 16, 16) [000131] ---XG------- t131 = * CAST int <- long | |
/--* t22 int | |
+--* t131 int | |
N023 ( 36, 35) [000032] ---XG------- t32 = * ADD int | |
N024 ( 3, 2) [000033] ------------ t33 = LCL_VAR long V03 loc0 | |
N025 ( 1, 1) [000034] ------------ t34 = CNS_INT int 3 | |
/--* t34 int | |
N026 ( 2, 3) [000035] ------------ t35 = * CAST long <- int | |
N027 ( 1, 1) [000036] ------------ t36 = CNS_INT int 8 | |
/--* t36 int | |
N028 ( 2, 3) [000037] ------------ t37 = * CAST long <- int | |
/--* t35 long | |
+--* t37 long | |
N029 ( 8, 9) [000038] ------------ t38 = * MUL long | |
/--* t33 long | |
+--* t38 long | |
N030 ( 11, 11) [000039] -------N---- t39 = * ADD long | |
/--* t39 long | |
N031 ( 14, 13) [000040] *--XG------- t40 = * IND long | |
/--* t40 long | |
N032 ( 15, 14) [000041] ---XG------- t41 = * HWIntrinsic long PopCount | |
/--* t41 long | |
N033 ( 16, 16) [000129] ---XG------- t129 = * CAST int <- long | |
/--* t32 int | |
+--* t129 int | |
N034 ( 53, 52) [000042] ---XG------- t42 = * ADD int | |
N035 ( 3, 2) [000012] ------------ t12 = LCL_VAR int V02 arg2 | |
/--* t12 int | |
+--* t42 int | |
N036 ( 57, 55) [000044] ---XG------- t44 = * SUB int | |
/--* t44 int | |
N038 ( 61, 58) [000046] DA-XG------- * STORE_LCL_VAR int V02 arg2 | |
( 16, 15) [000057] ------------ IL_OFFSET void IL offset: 0x34 | |
N001 ( 3, 2) [000048] ------------ t48 = LCL_VAR long V03 loc0 | |
N002 ( 1, 1) [000049] ------------ t49 = CNS_INT int 4 | |
/--* t49 int | |
N003 ( 2, 3) [000050] ------------ t50 = * CAST long <- int | |
N004 ( 1, 1) [000051] ------------ t51 = CNS_INT int 8 | |
/--* t51 int | |
N005 ( 2, 3) [000052] ------------ t52 = * CAST long <- int | |
/--* t50 long | |
+--* t52 long | |
N006 ( 8, 9) [000053] ------------ t53 = * MUL long | |
/--* t48 long | |
+--* t53 long | |
N007 ( 12, 12) [000054] ------------ t54 = * ADD long | |
/--* t54 long | |
N009 ( 16, 15) [000056] DA---------- * STORE_LCL_VAR long V03 loc0 | |
------------ BB03 [03B..043) -> BB02 (cond), preds={BB01,BB02} succs={BB04,BB02} | |
( 7, 9) [000010] ------------ IL_OFFSET void IL offset: 0x3b | |
N001 ( 3, 2) [000006] ------------ t6 = LCL_VAR int V02 arg2 | |
N002 ( 1, 4) [000007] ------------ t7 = CNS_INT int 256 | |
/--* t6 int | |
+--* t7 int | |
N003 ( 5, 7) [000008] J------N---- t8 = * GE int | |
/--* t8 int | |
N004 ( 7, 9) [000009] ------------ * JTRUE void | |
------------ BB04 [043..047) -> BB06 (always), preds={BB03} succs={BB06} | |
( 7, 5) [000062] ------------ IL_OFFSET void IL offset: 0x43 | |
N001 ( 3, 2) [000059] ------------ t59 = LCL_VAR int V02 arg2 | |
/--* t59 int | |
N003 ( 7, 5) [000061] DA---------- * STORE_LCL_VAR int V04 loc1 | |
------------ BB05 [047..059), preds={BB06} succs={BB06} | |
( 7, 5) [000073] ------------ IL_OFFSET void IL offset: 0x47 | |
N001 ( 3, 2) [000070] ------------ t70 = LCL_VAR int V02 arg2 | |
/--* t70 int | |
N003 ( 7, 5) [000072] DA---------- * STORE_LCL_VAR int V04 loc1 | |
( 16, 13) [000082] ------------ IL_OFFSET void IL offset: 0x49 | |
N001 ( 3, 2) [000074] ------------ t74 = LCL_VAR int V02 arg2 | |
N002 ( 3, 2) [000075] ------------ t75 = LCL_VAR long V03 loc0 | |
/--* t75 long | |
N003 ( 6, 4) [000076] *--XG------- t76 = * IND long | |
/--* t76 long | |
N004 ( 7, 5) [000077] ---XG------- t77 = * HWIntrinsic long PopCount | |
/--* t77 long | |
N005 ( 8, 7) [000078] ---XG------- t78 = * CAST int <- long | |
/--* t74 int | |
+--* t78 int | |
N006 ( 12, 10) [000079] ---XG------- t79 = * SUB int | |
/--* t79 int | |
N008 ( 16, 13) [000081] DA-XG------- * STORE_LCL_VAR int V02 arg2 | |
( 10, 9) [000089] ------------ IL_OFFSET void IL offset: 0x55 | |
N001 ( 3, 2) [000083] ------------ t83 = LCL_VAR long V03 loc0 | |
N002 ( 1, 1) [000084] ------------ t84 = CNS_INT int 8 | |
/--* t84 int | |
N003 ( 2, 3) [000085] ------------ t85 = * CAST long <- int | |
/--* t83 long | |
+--* t85 long | |
N004 ( 6, 6) [000086] ------------ t86 = * ADD long | |
/--* t86 long | |
N006 ( 10, 9) [000088] DA---------- * STORE_LCL_VAR long V03 loc0 | |
------------ BB06 [059..05D) -> BB05 (cond), preds={BB04,BB05} succs={BB07,BB05} | |
( 7, 6) [000068] ------------ IL_OFFSET void IL offset: 0x59 | |
N001 ( 3, 2) [000064] ------------ t64 = LCL_VAR int V02 arg2 | |
N002 ( 1, 1) [000065] ------------ t65 = CNS_INT int 0 | |
/--* t64 int | |
+--* t65 int | |
N003 ( 5, 4) [000066] J------N---- t66 = * GT int | |
/--* t66 int | |
N004 ( 7, 6) [000067] ------------ * JTRUE void | |
------------ BB07 [05D..086) (return), preds={BB06} succs={} | |
( 10, 9) [000097] ------------ IL_OFFSET void IL offset: 0x5d | |
N001 ( 3, 2) [000091] ------------ t91 = LCL_VAR long V03 loc0 | |
N002 ( 1, 1) [000092] ------------ t92 = CNS_INT int 8 | |
/--* t92 int | |
N003 ( 2, 3) [000093] ------------ t93 = * CAST long <- int | |
/--* t91 long | |
+--* t93 long | |
N004 ( 6, 6) [000094] ------------ t94 = * SUB long | |
/--* t94 long | |
N006 ( 10, 9) [000096] DA---------- * STORE_LCL_VAR long V03 loc0 | |
( 26, 21) [000113] ------------ IL_OFFSET void IL offset: 0x61 | |
N001 ( 3, 2) [000100] ------------ t100 = LCL_VAR int V04 loc1 | |
N002 ( 1, 1) [000101] ------------ t101 = CNS_INT int -1 | |
/--* t100 int | |
+--* t101 int | |
N003 ( 5, 4) [000102] ------------ t102 = * ADD int | |
N004 ( 1, 1) [000103] ------------ t103 = CNS_INT int 63 | |
/--* t102 int | |
+--* t103 int | |
N005 ( 7, 6) [000104] ------------ t104 = * AND int | |
N006 ( 1, 1) [000098] ------------ t98 = CNS_INT int 1 | |
/--* t98 int | |
N007 ( 2, 3) [000099] ------------ t99 = * CAST long <- int | |
/--* t99 long | |
+--* t104 int | |
N008 ( 13, 10) [000105] ------------ t105 = * LSH long | |
N009 ( 3, 2) [000106] ------------ t106 = LCL_VAR long V03 loc0 | |
/--* t106 long | |
N010 ( 6, 4) [000107] *--XG------- t107 = * IND long | |
/--* t105 long | |
+--* t107 long | |
N011 ( 20, 15) [000108] ---XG------- t108 = * HWIntrinsic long ParallelBitDeposit | |
/--* t108 long | |
N012 ( 21, 16) [000109] ---XG------- t109 = * HWIntrinsic long TrailingZeroCount | |
/--* t109 long | |
N013 ( 22, 18) [000110] ---XG------- t110 = * CAST int <- long | |
/--* t110 int | |
N015 ( 26, 21) [000112] DA-XG------- * STORE_LCL_VAR int V05 loc2 | |
( 40, 21) [000127] ------------ IL_OFFSET void IL offset: 0x78 | |
N001 ( 3, 2) [000114] ------------ t114 = LCL_VAR long V03 loc0 | |
N002 ( 3, 2) [000115] ------------ t115 = LCL_VAR long V00 arg0 | |
/--* t114 long | |
+--* t115 long | |
N003 ( 7, 5) [000116] ------------ t116 = * SUB long | |
N004 ( 1, 1) [000117] ------------ t117 = CNS_INT int 8 | |
/--* t117 int | |
N005 ( 2, 3) [000118] ------------ t118 = * CAST long <- int | |
/--* t116 long | |
+--* t118 long | |
N006 ( 29, 11) [000119] ---X-------- t119 = * DIV long | |
/--* t119 long | |
N007 ( 30, 13) [000134] ---X-------- t134 = * CAST int <- long | |
N008 ( 1, 1) [000120] ------------ t120 = CNS_INT int 64 | |
/--* t134 int | |
+--* t120 int | |
N010 ( 35, 17) [000122] ---X-------- t122 = * MUL int | |
N011 ( 3, 2) [000124] ------------ t124 = LCL_VAR int V05 loc2 | |
/--* t122 int | |
+--* t124 int | |
N012 ( 39, 20) [000125] ---X-------- t125 = * ADD int | |
/--* t125 int | |
N013 ( 40, 21) [000126] ---X-------- * RETURN int | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** In fgDebugCheckBBlist | |
*************** In Lowering | |
Trees before Lowering | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..004)-> BB03 (always) i label target LIR | |
BB02 [0001] 1 BB03 1 [004..03B) i label target bwd LIR | |
BB03 [0002] 2 BB01,BB02 1 [03B..043)-> BB02 ( cond ) i label target bwd LIR | |
BB04 [0003] 1 BB03 1 [043..047)-> BB06 (always) i LIR | |
BB05 [0004] 1 BB06 1 [047..059) i label target bwd LIR | |
BB06 [0005] 2 BB04,BB05 1 [059..05D)-> BB05 ( cond ) i label target bwd LIR | |
BB07 [0006] 1 BB06 1 [05D..086) (return) i LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..004) -> BB03 (always), preds={} succs={BB03} | |
( 7, 5) [000004] ------------ IL_OFFSET void IL offset: 0x0 | |
N001 ( 3, 2) [000001] ------------ t1 = LCL_VAR long V00 arg0 | |
/--* t1 long | |
N003 ( 7, 5) [000003] DA---------- * STORE_LCL_VAR long V03 loc0 | |
------------ BB02 [004..03B), preds={BB03} succs={BB03} | |
( 61, 58) [000047] ------------ IL_OFFSET void IL offset: 0x4 | |
N001 ( 3, 2) [000013] ------------ t13 = LCL_VAR long V03 loc0 | |
/--* t13 long | |
N002 ( 6, 4) [000014] *--XG------- t14 = * IND long | |
/--* t14 long | |
N003 ( 7, 5) [000015] ---XG------- t15 = * HWIntrinsic long PopCount | |
/--* t15 long | |
N004 ( 8, 7) [000132] ---XG------- t132 = * CAST int <- long | |
N005 ( 3, 2) [000016] ------------ t16 = LCL_VAR long V03 loc0 | |
N006 ( 1, 1) [000017] ------------ t17 = CNS_INT int 8 | |
/--* t17 int | |
N007 ( 2, 3) [000018] ------------ t18 = * CAST long <- int | |
/--* t16 long | |
+--* t18 long | |
N008 ( 5, 5) [000019] -------N---- t19 = * ADD long | |
/--* t19 long | |
N009 ( 8, 7) [000020] *--XG------- t20 = * IND long | |
/--* t20 long | |
N010 ( 9, 8) [000021] ---XG------- t21 = * HWIntrinsic long PopCount | |
/--* t21 long | |
N011 ( 10, 10) [000133] ---XG------- t133 = * CAST int <- long | |
/--* t132 int | |
+--* t133 int | |
N012 ( 19, 18) [000022] ---XG------- t22 = * ADD int | |
N013 ( 3, 2) [000023] ------------ t23 = LCL_VAR long V03 loc0 | |
N014 ( 1, 1) [000024] ------------ t24 = CNS_INT int 2 | |
/--* t24 int | |
N015 ( 2, 3) [000025] ------------ t25 = * CAST long <- int | |
N016 ( 1, 1) [000026] ------------ t26 = CNS_INT int 8 | |
/--* t26 int | |
N017 ( 2, 3) [000027] ------------ t27 = * CAST long <- int | |
/--* t25 long | |
+--* t27 long | |
N018 ( 8, 9) [000028] ------------ t28 = * MUL long | |
/--* t23 long | |
+--* t28 long | |
N019 ( 11, 11) [000029] -------N---- t29 = * ADD long | |
/--* t29 long | |
N020 ( 14, 13) [000030] *--XG------- t30 = * IND long | |
/--* t30 long | |
N021 ( 15, 14) [000031] ---XG------- t31 = * HWIntrinsic long PopCount | |
/--* t31 long | |
N022 ( 16, 16) [000131] ---XG------- t131 = * CAST int <- long | |
/--* t22 int | |
+--* t131 int | |
N023 ( 36, 35) [000032] ---XG------- t32 = * ADD int | |
N024 ( 3, 2) [000033] ------------ t33 = LCL_VAR long V03 loc0 | |
N025 ( 1, 1) [000034] ------------ t34 = CNS_INT int 3 | |
/--* t34 int | |
N026 ( 2, 3) [000035] ------------ t35 = * CAST long <- int | |
N027 ( 1, 1) [000036] ------------ t36 = CNS_INT int 8 | |
/--* t36 int | |
N028 ( 2, 3) [000037] ------------ t37 = * CAST long <- int | |
/--* t35 long | |
+--* t37 long | |
N029 ( 8, 9) [000038] ------------ t38 = * MUL long | |
/--* t33 long | |
+--* t38 long | |
N030 ( 11, 11) [000039] -------N---- t39 = * ADD long | |
/--* t39 long | |
N031 ( 14, 13) [000040] *--XG------- t40 = * IND long | |
/--* t40 long | |
N032 ( 15, 14) [000041] ---XG------- t41 = * HWIntrinsic long PopCount | |
/--* t41 long | |
N033 ( 16, 16) [000129] ---XG------- t129 = * CAST int <- long | |
/--* t32 int | |
+--* t129 int | |
N034 ( 53, 52) [000042] ---XG------- t42 = * ADD int | |
N035 ( 3, 2) [000012] ------------ t12 = LCL_VAR int V02 arg2 | |
/--* t12 int | |
+--* t42 int | |
N036 ( 57, 55) [000044] ---XG------- t44 = * SUB int | |
/--* t44 int | |
N038 ( 61, 58) [000046] DA-XG------- * STORE_LCL_VAR int V02 arg2 | |
( 16, 15) [000057] ------------ IL_OFFSET void IL offset: 0x34 | |
N001 ( 3, 2) [000048] ------------ t48 = LCL_VAR long V03 loc0 | |
N002 ( 1, 1) [000049] ------------ t49 = CNS_INT int 4 | |
/--* t49 int | |
N003 ( 2, 3) [000050] ------------ t50 = * CAST long <- int | |
N004 ( 1, 1) [000051] ------------ t51 = CNS_INT int 8 | |
/--* t51 int | |
N005 ( 2, 3) [000052] ------------ t52 = * CAST long <- int | |
/--* t50 long | |
+--* t52 long | |
N006 ( 8, 9) [000053] ------------ t53 = * MUL long | |
/--* t48 long | |
+--* t53 long | |
N007 ( 12, 12) [000054] ------------ t54 = * ADD long | |
/--* t54 long | |
N009 ( 16, 15) [000056] DA---------- * STORE_LCL_VAR long V03 loc0 | |
------------ BB03 [03B..043) -> BB02 (cond), preds={BB01,BB02} succs={BB04,BB02} | |
( 7, 9) [000010] ------------ IL_OFFSET void IL offset: 0x3b | |
N001 ( 3, 2) [000006] ------------ t6 = LCL_VAR int V02 arg2 | |
N002 ( 1, 4) [000007] ------------ t7 = CNS_INT int 256 | |
/--* t6 int | |
+--* t7 int | |
N003 ( 5, 7) [000008] J------N---- t8 = * GE int | |
/--* t8 int | |
N004 ( 7, 9) [000009] ------------ * JTRUE void | |
------------ BB04 [043..047) -> BB06 (always), preds={BB03} succs={BB06} | |
( 7, 5) [000062] ------------ IL_OFFSET void IL offset: 0x43 | |
N001 ( 3, 2) [000059] ------------ t59 = LCL_VAR int V02 arg2 | |
/--* t59 int | |
N003 ( 7, 5) [000061] DA---------- * STORE_LCL_VAR int V04 loc1 | |
------------ BB05 [047..059), preds={BB06} succs={BB06} | |
( 7, 5) [000073] ------------ IL_OFFSET void IL offset: 0x47 | |
N001 ( 3, 2) [000070] ------------ t70 = LCL_VAR int V02 arg2 | |
/--* t70 int | |
N003 ( 7, 5) [000072] DA---------- * STORE_LCL_VAR int V04 loc1 | |
( 16, 13) [000082] ------------ IL_OFFSET void IL offset: 0x49 | |
N001 ( 3, 2) [000074] ------------ t74 = LCL_VAR int V02 arg2 | |
N002 ( 3, 2) [000075] ------------ t75 = LCL_VAR long V03 loc0 | |
/--* t75 long | |
N003 ( 6, 4) [000076] *--XG------- t76 = * IND long | |
/--* t76 long | |
N004 ( 7, 5) [000077] ---XG------- t77 = * HWIntrinsic long PopCount | |
/--* t77 long | |
N005 ( 8, 7) [000078] ---XG------- t78 = * CAST int <- long | |
/--* t74 int | |
+--* t78 int | |
N006 ( 12, 10) [000079] ---XG------- t79 = * SUB int | |
/--* t79 int | |
N008 ( 16, 13) [000081] DA-XG------- * STORE_LCL_VAR int V02 arg2 | |
( 10, 9) [000089] ------------ IL_OFFSET void IL offset: 0x55 | |
N001 ( 3, 2) [000083] ------------ t83 = LCL_VAR long V03 loc0 | |
N002 ( 1, 1) [000084] ------------ t84 = CNS_INT int 8 | |
/--* t84 int | |
N003 ( 2, 3) [000085] ------------ t85 = * CAST long <- int | |
/--* t83 long | |
+--* t85 long | |
N004 ( 6, 6) [000086] ------------ t86 = * ADD long | |
/--* t86 long | |
N006 ( 10, 9) [000088] DA---------- * STORE_LCL_VAR long V03 loc0 | |
------------ BB06 [059..05D) -> BB05 (cond), preds={BB04,BB05} succs={BB07,BB05} | |
( 7, 6) [000068] ------------ IL_OFFSET void IL offset: 0x59 | |
N001 ( 3, 2) [000064] ------------ t64 = LCL_VAR int V02 arg2 | |
N002 ( 1, 1) [000065] ------------ t65 = CNS_INT int 0 | |
/--* t64 int | |
+--* t65 int | |
N003 ( 5, 4) [000066] J------N---- t66 = * GT int | |
/--* t66 int | |
N004 ( 7, 6) [000067] ------------ * JTRUE void | |
------------ BB07 [05D..086) (return), preds={BB06} succs={} | |
( 10, 9) [000097] ------------ IL_OFFSET void IL offset: 0x5d | |
N001 ( 3, 2) [000091] ------------ t91 = LCL_VAR long V03 loc0 | |
N002 ( 1, 1) [000092] ------------ t92 = CNS_INT int 8 | |
/--* t92 int | |
N003 ( 2, 3) [000093] ------------ t93 = * CAST long <- int | |
/--* t91 long | |
+--* t93 long | |
N004 ( 6, 6) [000094] ------------ t94 = * SUB long | |
/--* t94 long | |
N006 ( 10, 9) [000096] DA---------- * STORE_LCL_VAR long V03 loc0 | |
( 26, 21) [000113] ------------ IL_OFFSET void IL offset: 0x61 | |
N001 ( 3, 2) [000100] ------------ t100 = LCL_VAR int V04 loc1 | |
N002 ( 1, 1) [000101] ------------ t101 = CNS_INT int -1 | |
/--* t100 int | |
+--* t101 int | |
N003 ( 5, 4) [000102] ------------ t102 = * ADD int | |
N004 ( 1, 1) [000103] ------------ t103 = CNS_INT int 63 | |
/--* t102 int | |
+--* t103 int | |
N005 ( 7, 6) [000104] ------------ t104 = * AND int | |
N006 ( 1, 1) [000098] ------------ t98 = CNS_INT int 1 | |
/--* t98 int | |
N007 ( 2, 3) [000099] ------------ t99 = * CAST long <- int | |
/--* t99 long | |
+--* t104 int | |
N008 ( 13, 10) [000105] ------------ t105 = * LSH long | |
N009 ( 3, 2) [000106] ------------ t106 = LCL_VAR long V03 loc0 | |
/--* t106 long | |
N010 ( 6, 4) [000107] *--XG------- t107 = * IND long | |
/--* t105 long | |
+--* t107 long | |
N011 ( 20, 15) [000108] ---XG------- t108 = * HWIntrinsic long ParallelBitDeposit | |
/--* t108 long | |
N012 ( 21, 16) [000109] ---XG------- t109 = * HWIntrinsic long TrailingZeroCount | |
/--* t109 long | |
N013 ( 22, 18) [000110] ---XG------- t110 = * CAST int <- long | |
/--* t110 int | |
N015 ( 26, 21) [000112] DA-XG------- * STORE_LCL_VAR int V05 loc2 | |
( 40, 21) [000127] ------------ IL_OFFSET void IL offset: 0x78 | |
N001 ( 3, 2) [000114] ------------ t114 = LCL_VAR long V03 loc0 | |
N002 ( 3, 2) [000115] ------------ t115 = LCL_VAR long V00 arg0 | |
/--* t114 long | |
+--* t115 long | |
N003 ( 7, 5) [000116] ------------ t116 = * SUB long | |
N004 ( 1, 1) [000117] ------------ t117 = CNS_INT int 8 | |
/--* t117 int | |
N005 ( 2, 3) [000118] ------------ t118 = * CAST long <- int | |
/--* t116 long | |
+--* t118 long | |
N006 ( 29, 11) [000119] ---X-------- t119 = * DIV long | |
/--* t119 long | |
N007 ( 30, 13) [000134] ---X-------- t134 = * CAST int <- long | |
N008 ( 1, 1) [000120] ------------ t120 = CNS_INT int 64 | |
/--* t134 int | |
+--* t120 int | |
N010 ( 35, 17) [000122] ---X-------- t122 = * MUL int | |
N011 ( 3, 2) [000124] ------------ t124 = LCL_VAR int V05 loc2 | |
/--* t122 int | |
+--* t124 int | |
N012 ( 39, 20) [000125] ---X-------- t125 = * ADD int | |
/--* t125 int | |
N013 ( 40, 21) [000126] ---X-------- * RETURN int | |
------------------------------------------------------------------------------------------------------------------- | |
No addressing mode: | |
N001 ( 3, 2) [000013] ------------ * LCL_VAR long V03 loc0 | |
Addressing mode: | |
Base | |
N005 ( 3, 2) [000016] -c---------- * LCL_VAR long V03 loc0 | |
+ Index * 1 + 0 | |
N007 ( 2, 3) [000018] ------------ * CAST long <- int | |
New addressing mode node: | |
[000136] ------------ * LEA(b+(i*1)+0) long | |
Addressing mode: | |
Base | |
N013 ( 3, 2) [000023] -c---------- * LCL_VAR long V03 loc0 | |
+ Index * 1 + 0 | |
N018 ( 8, 9) [000028] ------------ * MUL long | |
New addressing mode node: | |
[000137] ------------ * LEA(b+(i*1)+0) long | |
Addressing mode: | |
Base | |
N024 ( 3, 2) [000033] -c---------- * LCL_VAR long V03 loc0 | |
+ Index * 1 + 0 | |
N029 ( 8, 9) [000038] ------------ * MUL long | |
New addressing mode node: | |
[000138] ------------ * LEA(b+(i*1)+0) long | |
No addressing mode: | |
N002 ( 3, 2) [000075] ------------ * LCL_VAR long V03 loc0 | |
No addressing mode: | |
N009 ( 3, 2) [000106] ------------ * LCL_VAR long V03 loc0 | |
lowering GT_RETURN | |
N013 ( 40, 21) [000126] ---X-------- * RETURN int | |
============Lower has completed modifying nodes. | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..004)-> BB03 (always) i label target LIR | |
BB02 [0001] 1 BB03 1 [004..03B) i label target bwd LIR | |
BB03 [0002] 2 BB01,BB02 1 [03B..043)-> BB02 ( cond ) i label target bwd LIR | |
BB04 [0003] 1 BB03 1 [043..047)-> BB06 (always) i LIR | |
BB05 [0004] 1 BB06 1 [047..059) i label target bwd LIR | |
BB06 [0005] 2 BB04,BB05 1 [059..05D)-> BB05 ( cond ) i label target bwd LIR | |
BB07 [0006] 1 BB06 1 [05D..086) (return) i LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..004) -> BB03 (always), preds={} succs={BB03} | |
( 7, 5) [000004] ------------ IL_OFFSET void IL offset: 0x0 | |
N001 ( 3, 2) [000001] ------------ t1 = LCL_VAR long V00 arg0 | |
/--* t1 long | |
N003 ( 7, 5) [000003] DA---------- * STORE_LCL_VAR long V03 loc0 | |
------------ BB02 [004..03B), preds={BB03} succs={BB03} | |
( 61, 58) [000047] ------------ IL_OFFSET void IL offset: 0x4 | |
N001 ( 3, 2) [000013] ------------ t13 = LCL_VAR long V03 loc0 | |
/--* t13 long | |
N002 ( 6, 4) [000014] *c-XG------- t14 = * IND long | |
/--* t14 long | |
N003 ( 7, 5) [000015] ---XG------- t15 = * HWIntrinsic long PopCount | |
/--* t15 long | |
N004 ( 8, 7) [000132] ---XG------- t132 = * CAST int <- long | |
N005 ( 3, 2) [000016] ------------ t16 = LCL_VAR long V03 loc0 | |
N006 ( 1, 1) [000017] ------------ t17 = CNS_INT int 8 | |
/--* t17 int | |
N007 ( 2, 3) [000018] ------------ t18 = * CAST long <- int | |
/--* t16 long | |
+--* t18 long | |
[000136] -c---------- t136 = * LEA(b+(i*1)+0) long | |
/--* t136 long | |
N009 ( 8, 7) [000020] *c-XG------- t20 = * IND long | |
/--* t20 long | |
N010 ( 9, 8) [000021] ---XG------- t21 = * HWIntrinsic long PopCount | |
/--* t21 long | |
N011 ( 10, 10) [000133] ---XG------- t133 = * CAST int <- long | |
/--* t132 int | |
+--* t133 int | |
N012 ( 19, 18) [000022] ---XG------- t22 = * ADD int | |
N013 ( 3, 2) [000023] ------------ t23 = LCL_VAR long V03 loc0 | |
N014 ( 1, 1) [000024] ------------ t24 = CNS_INT int 2 | |
/--* t24 int | |
N015 ( 2, 3) [000025] ------------ t25 = * CAST long <- int | |
N016 ( 1, 1) [000026] ------------ t26 = CNS_INT int 8 | |
/--* t26 int | |
N017 ( 2, 3) [000027] ------------ t27 = * CAST long <- int | |
/--* t25 long | |
+--* t27 long | |
N018 ( 8, 9) [000028] ------------ t28 = * MUL long | |
/--* t23 long | |
+--* t28 long | |
[000137] -c---------- t137 = * LEA(b+(i*1)+0) long | |
/--* t137 long | |
N020 ( 14, 13) [000030] *c-XG------- t30 = * IND long | |
/--* t30 long | |
N021 ( 15, 14) [000031] ---XG------- t31 = * HWIntrinsic long PopCount | |
/--* t31 long | |
N022 ( 16, 16) [000131] ---XG------- t131 = * CAST int <- long | |
/--* t22 int | |
+--* t131 int | |
N023 ( 36, 35) [000032] ---XG------- t32 = * ADD int | |
N024 ( 3, 2) [000033] ------------ t33 = LCL_VAR long V03 loc0 | |
N025 ( 1, 1) [000034] ------------ t34 = CNS_INT int 3 | |
/--* t34 int | |
N026 ( 2, 3) [000035] ------------ t35 = * CAST long <- int | |
N027 ( 1, 1) [000036] ------------ t36 = CNS_INT int 8 | |
/--* t36 int | |
N028 ( 2, 3) [000037] ------------ t37 = * CAST long <- int | |
/--* t35 long | |
+--* t37 long | |
N029 ( 8, 9) [000038] ------------ t38 = * MUL long | |
/--* t33 long | |
+--* t38 long | |
[000138] -c---------- t138 = * LEA(b+(i*1)+0) long | |
/--* t138 long | |
N031 ( 14, 13) [000040] *c-XG------- t40 = * IND long | |
/--* t40 long | |
N032 ( 15, 14) [000041] ---XG------- t41 = * HWIntrinsic long PopCount | |
/--* t41 long | |
N033 ( 16, 16) [000129] ---XG------- t129 = * CAST int <- long | |
/--* t32 int | |
+--* t129 int | |
N034 ( 53, 52) [000042] ---XG------- t42 = * ADD int | |
N035 ( 3, 2) [000012] ------------ t12 = LCL_VAR int V02 arg2 | |
/--* t12 int | |
+--* t42 int | |
N036 ( 57, 55) [000044] ---XG------- t44 = * SUB int | |
/--* t44 int | |
N038 ( 61, 58) [000046] DA-XG------- * STORE_LCL_VAR int V02 arg2 | |
( 16, 15) [000057] ------------ IL_OFFSET void IL offset: 0x34 | |
N001 ( 3, 2) [000048] -c---------- t48 = LCL_VAR long V03 loc0 | |
N002 ( 1, 1) [000049] ------------ t49 = CNS_INT int 4 | |
/--* t49 int | |
N003 ( 2, 3) [000050] ------------ t50 = * CAST long <- int | |
N004 ( 1, 1) [000051] ------------ t51 = CNS_INT int 8 | |
/--* t51 int | |
N005 ( 2, 3) [000052] ------------ t52 = * CAST long <- int | |
/--* t50 long | |
+--* t52 long | |
N006 ( 8, 9) [000053] ------------ t53 = * MUL long | |
/--* t48 long | |
+--* t53 long | |
N007 ( 12, 12) [000054] ------------ t54 = * ADD long | |
/--* t54 long | |
N009 ( 16, 15) [000056] DA---------- * STORE_LCL_VAR long V03 loc0 | |
------------ BB03 [03B..043) -> BB02 (cond), preds={BB01,BB02} succs={BB04,BB02} | |
( 7, 9) [000010] ------------ IL_OFFSET void IL offset: 0x3b | |
N001 ( 3, 2) [000006] -c---------- t6 = LCL_VAR int V02 arg2 | |
N002 ( 1, 4) [000007] -c---------- t7 = CNS_INT int 256 | |
/--* t6 int | |
+--* t7 int | |
N003 ( 5, 7) [000008] J------N---- * GE void | |
N004 ( 7, 9) [000009] ------------ * JTRUE void | |
------------ BB04 [043..047) -> BB06 (always), preds={BB03} succs={BB06} | |
( 7, 5) [000062] ------------ IL_OFFSET void IL offset: 0x43 | |
N001 ( 3, 2) [000059] ------------ t59 = LCL_VAR int V02 arg2 | |
/--* t59 int | |
N003 ( 7, 5) [000061] DA---------- * STORE_LCL_VAR int V04 loc1 | |
------------ BB05 [047..059), preds={BB06} succs={BB06} | |
( 7, 5) [000073] ------------ IL_OFFSET void IL offset: 0x47 | |
N001 ( 3, 2) [000070] ------------ t70 = LCL_VAR int V02 arg2 | |
/--* t70 int | |
N003 ( 7, 5) [000072] DA---------- * STORE_LCL_VAR int V04 loc1 | |
( 16, 13) [000082] ------------ IL_OFFSET void IL offset: 0x49 | |
N001 ( 3, 2) [000074] ------------ t74 = LCL_VAR int V02 arg2 | |
N002 ( 3, 2) [000075] ------------ t75 = LCL_VAR long V03 loc0 | |
/--* t75 long | |
N003 ( 6, 4) [000076] *c-XG------- t76 = * IND long | |
/--* t76 long | |
N004 ( 7, 5) [000077] ---XG------- t77 = * HWIntrinsic long PopCount | |
/--* t77 long | |
N005 ( 8, 7) [000078] ---XG------- t78 = * CAST int <- long | |
/--* t74 int | |
+--* t78 int | |
N006 ( 12, 10) [000079] ---XG------- t79 = * SUB int | |
/--* t79 int | |
N008 ( 16, 13) [000081] DA-XG------- * STORE_LCL_VAR int V02 arg2 | |
( 10, 9) [000089] ------------ IL_OFFSET void IL offset: 0x55 | |
N001 ( 3, 2) [000083] -c---------- t83 = LCL_VAR long V03 loc0 | |
N002 ( 1, 1) [000084] ------------ t84 = CNS_INT int 8 | |
/--* t84 int | |
N003 ( 2, 3) [000085] ------------ t85 = * CAST long <- int | |
/--* t83 long | |
+--* t85 long | |
N004 ( 6, 6) [000086] ------------ t86 = * ADD long | |
/--* t86 long | |
N006 ( 10, 9) [000088] DA---------- * STORE_LCL_VAR long V03 loc0 | |
------------ BB06 [059..05D) -> BB05 (cond), preds={BB04,BB05} succs={BB07,BB05} | |
( 7, 6) [000068] ------------ IL_OFFSET void IL offset: 0x59 | |
N001 ( 3, 2) [000064] -c---------- t64 = LCL_VAR int V02 arg2 | |
N002 ( 1, 1) [000065] -c---------- t65 = CNS_INT int 0 | |
/--* t64 int | |
+--* t65 int | |
N003 ( 5, 4) [000066] J------N---- * GT void | |
N004 ( 7, 6) [000067] ------------ * JTRUE void | |
------------ BB07 [05D..086) (return), preds={BB06} succs={} | |
( 10, 9) [000097] ------------ IL_OFFSET void IL offset: 0x5d | |
N001 ( 3, 2) [000091] ------------ t91 = LCL_VAR long V03 loc0 | |
N002 ( 1, 1) [000092] ------------ t92 = CNS_INT int 8 | |
/--* t92 int | |
N003 ( 2, 3) [000093] ------------ t93 = * CAST long <- int | |
/--* t91 long | |
+--* t93 long | |
N004 ( 6, 6) [000094] ------------ t94 = * SUB long | |
/--* t94 long | |
N006 ( 10, 9) [000096] DA---------- * STORE_LCL_VAR long V03 loc0 | |
( 26, 21) [000113] ------------ IL_OFFSET void IL offset: 0x61 | |
N001 ( 3, 2) [000100] ------------ t100 = LCL_VAR int V04 loc1 | |
N002 ( 1, 1) [000101] -c---------- t101 = CNS_INT int -1 | |
/--* t100 int | |
+--* t101 int | |
N003 ( 5, 4) [000102] ------------ t102 = * ADD int | |
N006 ( 1, 1) [000098] ------------ t98 = CNS_INT int 1 | |
/--* t98 int | |
N007 ( 2, 3) [000099] ------------ t99 = * CAST long <- int | |
/--* t99 long | |
+--* t102 int | |
N008 ( 13, 10) [000105] ------------ t105 = * LSH long | |
N009 ( 3, 2) [000106] ------------ t106 = LCL_VAR long V03 loc0 | |
/--* t106 long | |
N010 ( 6, 4) [000107] *c-XG------- t107 = * IND long | |
/--* t105 long | |
+--* t107 long | |
N011 ( 20, 15) [000108] ---XG------- t108 = * HWIntrinsic long ParallelBitDeposit | |
/--* t108 long | |
N012 ( 21, 16) [000109] ---XG------- t109 = * HWIntrinsic long TrailingZeroCount | |
/--* t109 long | |
N013 ( 22, 18) [000110] ---XG------- t110 = * CAST int <- long | |
/--* t110 int | |
N015 ( 26, 21) [000112] DA-XG------- * STORE_LCL_VAR int V05 loc2 | |
( 40, 21) [000127] ------------ IL_OFFSET void IL offset: 0x78 | |
N001 ( 3, 2) [000114] ------------ t114 = LCL_VAR long V03 loc0 | |
N002 ( 3, 2) [000115] -c---------- t115 = LCL_VAR long V00 arg0 | |
/--* t114 long | |
+--* t115 long | |
N003 ( 7, 5) [000116] ------------ t116 = * SUB long | |
N004 ( 1, 1) [000117] ------------ t117 = CNS_INT int 8 | |
/--* t117 int | |
N005 ( 2, 3) [000118] ------------ t118 = * CAST long <- int | |
/--* t116 long | |
+--* t118 long | |
N006 ( 29, 11) [000119] ---X-------- t119 = * DIV long | |
/--* t119 long | |
N007 ( 30, 13) [000134] ---X-------- t134 = * CAST int <- long | |
N008 ( 1, 1) [000120] -c---------- t120 = CNS_INT int 64 | |
/--* t134 int | |
+--* t120 int | |
N010 ( 35, 17) [000122] ---X-------- t122 = * MUL int | |
N011 ( 3, 2) [000124] -c---------- t124 = LCL_VAR int V05 loc2 | |
/--* t122 int | |
+--* t124 int | |
N012 ( 39, 20) [000125] ---X-------- t125 = * ADD int | |
/--* t125 int | |
N013 ( 40, 21) [000126] ---X-------- * RETURN int | |
------------------------------------------------------------------------------------------------------------------- | |
*** lvaComputeRefCounts *** | |
*************** In fgLocalVarLiveness() | |
; Initial local variable assignments | |
; | |
; V00 arg0 long | |
; V01 arg1 int | |
; V02 arg2 int | |
; V03 loc0 long | |
; V04 loc1 int | |
; V05 loc2 int | |
; V06 OutArgs lclBlk ( 0) | |
In fgLocalVarLivenessInit | |
*************** In fgPerBlockLocalVarLiveness() | |
*************** In fgInterBlockLocalVarLiveness() | |
*** lvaComputeRefCounts *** | |
Liveness pass finished after lowering, IR: | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..004)-> BB03 (always) i label target LIR | |
BB02 [0001] 1 BB03 1 [004..03B) i label target bwd LIR | |
BB03 [0002] 2 BB01,BB02 1 [03B..043)-> BB02 ( cond ) i label target bwd LIR | |
BB04 [0003] 1 BB03 1 [043..047)-> BB06 (always) i LIR | |
BB05 [0004] 1 BB06 1 [047..059) i label target bwd LIR | |
BB06 [0005] 2 BB04,BB05 1 [059..05D)-> BB05 ( cond ) i label target bwd LIR | |
BB07 [0006] 1 BB06 1 [05D..086) (return) i LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..004) -> BB03 (always), preds={} succs={BB03} | |
( 7, 5) [000004] ------------ IL_OFFSET void IL offset: 0x0 | |
N001 ( 3, 2) [000001] ------------ t1 = LCL_VAR long V00 arg0 | |
/--* t1 long | |
N003 ( 7, 5) [000003] DA---------- * STORE_LCL_VAR long V03 loc0 | |
------------ BB02 [004..03B), preds={BB03} succs={BB03} | |
( 61, 58) [000047] ------------ IL_OFFSET void IL offset: 0x4 | |
N001 ( 3, 2) [000013] ------------ t13 = LCL_VAR long V03 loc0 | |
/--* t13 long | |
N002 ( 6, 4) [000014] *c-XG------- t14 = * IND long | |
/--* t14 long | |
N003 ( 7, 5) [000015] ---XG------- t15 = * HWIntrinsic long PopCount | |
/--* t15 long | |
N004 ( 8, 7) [000132] ---XG------- t132 = * CAST int <- long | |
N005 ( 3, 2) [000016] ------------ t16 = LCL_VAR long V03 loc0 | |
N006 ( 1, 1) [000017] ------------ t17 = CNS_INT int 8 | |
/--* t17 int | |
N007 ( 2, 3) [000018] ------------ t18 = * CAST long <- int | |
/--* t16 long | |
+--* t18 long | |
[000136] -c---------- t136 = * LEA(b+(i*1)+0) long | |
/--* t136 long | |
N009 ( 8, 7) [000020] *c-XG------- t20 = * IND long | |
/--* t20 long | |
N010 ( 9, 8) [000021] ---XG------- t21 = * HWIntrinsic long PopCount | |
/--* t21 long | |
N011 ( 10, 10) [000133] ---XG------- t133 = * CAST int <- long | |
/--* t132 int | |
+--* t133 int | |
N012 ( 19, 18) [000022] ---XG------- t22 = * ADD int | |
N013 ( 3, 2) [000023] ------------ t23 = LCL_VAR long V03 loc0 | |
N014 ( 1, 1) [000024] ------------ t24 = CNS_INT int 2 | |
/--* t24 int | |
N015 ( 2, 3) [000025] ------------ t25 = * CAST long <- int | |
N016 ( 1, 1) [000026] ------------ t26 = CNS_INT int 8 | |
/--* t26 int | |
N017 ( 2, 3) [000027] ------------ t27 = * CAST long <- int | |
/--* t25 long | |
+--* t27 long | |
N018 ( 8, 9) [000028] ------------ t28 = * MUL long | |
/--* t23 long | |
+--* t28 long | |
[000137] -c---------- t137 = * LEA(b+(i*1)+0) long | |
/--* t137 long | |
N020 ( 14, 13) [000030] *c-XG------- t30 = * IND long | |
/--* t30 long | |
N021 ( 15, 14) [000031] ---XG------- t31 = * HWIntrinsic long PopCount | |
/--* t31 long | |
N022 ( 16, 16) [000131] ---XG------- t131 = * CAST int <- long | |
/--* t22 int | |
+--* t131 int | |
N023 ( 36, 35) [000032] ---XG------- t32 = * ADD int | |
N024 ( 3, 2) [000033] ------------ t33 = LCL_VAR long V03 loc0 | |
N025 ( 1, 1) [000034] ------------ t34 = CNS_INT int 3 | |
/--* t34 int | |
N026 ( 2, 3) [000035] ------------ t35 = * CAST long <- int | |
N027 ( 1, 1) [000036] ------------ t36 = CNS_INT int 8 | |
/--* t36 int | |
N028 ( 2, 3) [000037] ------------ t37 = * CAST long <- int | |
/--* t35 long | |
+--* t37 long | |
N029 ( 8, 9) [000038] ------------ t38 = * MUL long | |
/--* t33 long | |
+--* t38 long | |
[000138] -c---------- t138 = * LEA(b+(i*1)+0) long | |
/--* t138 long | |
N031 ( 14, 13) [000040] *c-XG------- t40 = * IND long | |
/--* t40 long | |
N032 ( 15, 14) [000041] ---XG------- t41 = * HWIntrinsic long PopCount | |
/--* t41 long | |
N033 ( 16, 16) [000129] ---XG------- t129 = * CAST int <- long | |
/--* t32 int | |
+--* t129 int | |
N034 ( 53, 52) [000042] ---XG------- t42 = * ADD int | |
N035 ( 3, 2) [000012] ------------ t12 = LCL_VAR int V02 arg2 | |
/--* t12 int | |
+--* t42 int | |
N036 ( 57, 55) [000044] ---XG------- t44 = * SUB int | |
/--* t44 int | |
N038 ( 61, 58) [000046] DA-XG------- * STORE_LCL_VAR int V02 arg2 | |
( 16, 15) [000057] ------------ IL_OFFSET void IL offset: 0x34 | |
N001 ( 3, 2) [000048] -c---------- t48 = LCL_VAR long V03 loc0 | |
N002 ( 1, 1) [000049] ------------ t49 = CNS_INT int 4 | |
/--* t49 int | |
N003 ( 2, 3) [000050] ------------ t50 = * CAST long <- int | |
N004 ( 1, 1) [000051] ------------ t51 = CNS_INT int 8 | |
/--* t51 int | |
N005 ( 2, 3) [000052] ------------ t52 = * CAST long <- int | |
/--* t50 long | |
+--* t52 long | |
N006 ( 8, 9) [000053] ------------ t53 = * MUL long | |
/--* t48 long | |
+--* t53 long | |
N007 ( 12, 12) [000054] ------------ t54 = * ADD long | |
/--* t54 long | |
N009 ( 16, 15) [000056] DA---------- * STORE_LCL_VAR long V03 loc0 | |
------------ BB03 [03B..043) -> BB02 (cond), preds={BB01,BB02} succs={BB04,BB02} | |
( 7, 9) [000010] ------------ IL_OFFSET void IL offset: 0x3b | |
N001 ( 3, 2) [000006] -c---------- t6 = LCL_VAR int V02 arg2 | |
N002 ( 1, 4) [000007] -c---------- t7 = CNS_INT int 256 | |
/--* t6 int | |
+--* t7 int | |
N003 ( 5, 7) [000008] J------N---- * GE void | |
N004 ( 7, 9) [000009] ------------ * JTRUE void | |
------------ BB04 [043..047) -> BB06 (always), preds={BB03} succs={BB06} | |
( 7, 5) [000062] ------------ IL_OFFSET void IL offset: 0x43 | |
N001 ( 3, 2) [000059] ------------ t59 = LCL_VAR int V02 arg2 | |
/--* t59 int | |
N003 ( 7, 5) [000061] DA---------- * STORE_LCL_VAR int V04 loc1 | |
------------ BB05 [047..059), preds={BB06} succs={BB06} | |
( 7, 5) [000073] ------------ IL_OFFSET void IL offset: 0x47 | |
N001 ( 3, 2) [000070] ------------ t70 = LCL_VAR int V02 arg2 | |
/--* t70 int | |
N003 ( 7, 5) [000072] DA---------- * STORE_LCL_VAR int V04 loc1 | |
( 16, 13) [000082] ------------ IL_OFFSET void IL offset: 0x49 | |
N001 ( 3, 2) [000074] ------------ t74 = LCL_VAR int V02 arg2 | |
N002 ( 3, 2) [000075] ------------ t75 = LCL_VAR long V03 loc0 | |
/--* t75 long | |
N003 ( 6, 4) [000076] *c-XG------- t76 = * IND long | |
/--* t76 long | |
N004 ( 7, 5) [000077] ---XG------- t77 = * HWIntrinsic long PopCount | |
/--* t77 long | |
N005 ( 8, 7) [000078] ---XG------- t78 = * CAST int <- long | |
/--* t74 int | |
+--* t78 int | |
N006 ( 12, 10) [000079] ---XG------- t79 = * SUB int | |
/--* t79 int | |
N008 ( 16, 13) [000081] DA-XG------- * STORE_LCL_VAR int V02 arg2 | |
( 10, 9) [000089] ------------ IL_OFFSET void IL offset: 0x55 | |
N001 ( 3, 2) [000083] -c---------- t83 = LCL_VAR long V03 loc0 | |
N002 ( 1, 1) [000084] ------------ t84 = CNS_INT int 8 | |
/--* t84 int | |
N003 ( 2, 3) [000085] ------------ t85 = * CAST long <- int | |
/--* t83 long | |
+--* t85 long | |
N004 ( 6, 6) [000086] ------------ t86 = * ADD long | |
/--* t86 long | |
N006 ( 10, 9) [000088] DA---------- * STORE_LCL_VAR long V03 loc0 | |
------------ BB06 [059..05D) -> BB05 (cond), preds={BB04,BB05} succs={BB07,BB05} | |
( 7, 6) [000068] ------------ IL_OFFSET void IL offset: 0x59 | |
N001 ( 3, 2) [000064] -c---------- t64 = LCL_VAR int V02 arg2 | |
N002 ( 1, 1) [000065] -c---------- t65 = CNS_INT int 0 | |
/--* t64 int | |
+--* t65 int | |
N003 ( 5, 4) [000066] J------N---- * GT void | |
N004 ( 7, 6) [000067] ------------ * JTRUE void | |
------------ BB07 [05D..086) (return), preds={BB06} succs={} | |
( 10, 9) [000097] ------------ IL_OFFSET void IL offset: 0x5d | |
N001 ( 3, 2) [000091] ------------ t91 = LCL_VAR long V03 loc0 | |
N002 ( 1, 1) [000092] ------------ t92 = CNS_INT int 8 | |
/--* t92 int | |
N003 ( 2, 3) [000093] ------------ t93 = * CAST long <- int | |
/--* t91 long | |
+--* t93 long | |
N004 ( 6, 6) [000094] ------------ t94 = * SUB long | |
/--* t94 long | |
N006 ( 10, 9) [000096] DA---------- * STORE_LCL_VAR long V03 loc0 | |
( 26, 21) [000113] ------------ IL_OFFSET void IL offset: 0x61 | |
N001 ( 3, 2) [000100] ------------ t100 = LCL_VAR int V04 loc1 | |
N002 ( 1, 1) [000101] -c---------- t101 = CNS_INT int -1 | |
/--* t100 int | |
+--* t101 int | |
N003 ( 5, 4) [000102] ------------ t102 = * ADD int | |
N006 ( 1, 1) [000098] ------------ t98 = CNS_INT int 1 | |
/--* t98 int | |
N007 ( 2, 3) [000099] ------------ t99 = * CAST long <- int | |
/--* t99 long | |
+--* t102 int | |
N008 ( 13, 10) [000105] ------------ t105 = * LSH long | |
N009 ( 3, 2) [000106] ------------ t106 = LCL_VAR long V03 loc0 | |
/--* t106 long | |
N010 ( 6, 4) [000107] *c-XG------- t107 = * IND long | |
/--* t105 long | |
+--* t107 long | |
N011 ( 20, 15) [000108] ---XG------- t108 = * HWIntrinsic long ParallelBitDeposit | |
/--* t108 long | |
N012 ( 21, 16) [000109] ---XG------- t109 = * HWIntrinsic long TrailingZeroCount | |
/--* t109 long | |
N013 ( 22, 18) [000110] ---XG------- t110 = * CAST int <- long | |
/--* t110 int | |
N015 ( 26, 21) [000112] DA-XG------- * STORE_LCL_VAR int V05 loc2 | |
( 40, 21) [000127] ------------ IL_OFFSET void IL offset: 0x78 | |
N001 ( 3, 2) [000114] ------------ t114 = LCL_VAR long V03 loc0 | |
N002 ( 3, 2) [000115] -c---------- t115 = LCL_VAR long V00 arg0 | |
/--* t114 long | |
+--* t115 long | |
N003 ( 7, 5) [000116] ------------ t116 = * SUB long | |
N004 ( 1, 1) [000117] ------------ t117 = CNS_INT int 8 | |
/--* t117 int | |
N005 ( 2, 3) [000118] ------------ t118 = * CAST long <- int | |
/--* t116 long | |
+--* t118 long | |
N006 ( 29, 11) [000119] ---X-------- t119 = * DIV long | |
/--* t119 long | |
N007 ( 30, 13) [000134] ---X-------- t134 = * CAST int <- long | |
N008 ( 1, 1) [000120] -c---------- t120 = CNS_INT int 64 | |
/--* t134 int | |
+--* t120 int | |
N010 ( 35, 17) [000122] ---X-------- t122 = * MUL int | |
N011 ( 3, 2) [000124] -c---------- t124 = LCL_VAR int V05 loc2 | |
/--* t122 int | |
+--* t124 int | |
N012 ( 39, 20) [000125] ---X-------- t125 = * ADD int | |
/--* t125 int | |
N013 ( 40, 21) [000126] ---X-------- * RETURN int | |
------------------------------------------------------------------------------------------------------------------- | |
*************** Exiting Lowering | |
Trees after Lowering | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..004)-> BB03 (always) i label target LIR | |
BB02 [0001] 1 BB03 1 [004..03B) i label target bwd LIR | |
BB03 [0002] 2 BB01,BB02 1 [03B..043)-> BB02 ( cond ) i label target bwd LIR | |
BB04 [0003] 1 BB03 1 [043..047)-> BB06 (always) i LIR | |
BB05 [0004] 1 BB06 1 [047..059) i label target bwd LIR | |
BB06 [0005] 2 BB04,BB05 1 [059..05D)-> BB05 ( cond ) i label target bwd LIR | |
BB07 [0006] 1 BB06 1 [05D..086) (return) i LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..004) -> BB03 (always), preds={} succs={BB03} | |
( 7, 5) [000004] ------------ IL_OFFSET void IL offset: 0x0 | |
N001 ( 3, 2) [000001] ------------ t1 = LCL_VAR long V00 arg0 | |
/--* t1 long | |
N003 ( 7, 5) [000003] DA---------- * STORE_LCL_VAR long V03 loc0 | |
------------ BB02 [004..03B), preds={BB03} succs={BB03} | |
( 61, 58) [000047] ------------ IL_OFFSET void IL offset: 0x4 | |
N001 ( 3, 2) [000013] ------------ t13 = LCL_VAR long V03 loc0 | |
/--* t13 long | |
N002 ( 6, 4) [000014] *c-XG------- t14 = * IND long | |
/--* t14 long | |
N003 ( 7, 5) [000015] ---XG------- t15 = * HWIntrinsic long PopCount | |
/--* t15 long | |
N004 ( 8, 7) [000132] ---XG------- t132 = * CAST int <- long | |
N005 ( 3, 2) [000016] ------------ t16 = LCL_VAR long V03 loc0 | |
N006 ( 1, 1) [000017] ------------ t17 = CNS_INT int 8 | |
/--* t17 int | |
N007 ( 2, 3) [000018] ------------ t18 = * CAST long <- int | |
/--* t16 long | |
+--* t18 long | |
[000136] -c---------- t136 = * LEA(b+(i*1)+0) long | |
/--* t136 long | |
N009 ( 8, 7) [000020] *c-XG------- t20 = * IND long | |
/--* t20 long | |
N010 ( 9, 8) [000021] ---XG------- t21 = * HWIntrinsic long PopCount | |
/--* t21 long | |
N011 ( 10, 10) [000133] ---XG------- t133 = * CAST int <- long | |
/--* t132 int | |
+--* t133 int | |
N012 ( 19, 18) [000022] ---XG------- t22 = * ADD int | |
N013 ( 3, 2) [000023] ------------ t23 = LCL_VAR long V03 loc0 | |
N014 ( 1, 1) [000024] ------------ t24 = CNS_INT int 2 | |
/--* t24 int | |
N015 ( 2, 3) [000025] ------------ t25 = * CAST long <- int | |
N016 ( 1, 1) [000026] ------------ t26 = CNS_INT int 8 | |
/--* t26 int | |
N017 ( 2, 3) [000027] ------------ t27 = * CAST long <- int | |
/--* t25 long | |
+--* t27 long | |
N018 ( 8, 9) [000028] ------------ t28 = * MUL long | |
/--* t23 long | |
+--* t28 long | |
[000137] -c---------- t137 = * LEA(b+(i*1)+0) long | |
/--* t137 long | |
N020 ( 14, 13) [000030] *c-XG------- t30 = * IND long | |
/--* t30 long | |
N021 ( 15, 14) [000031] ---XG------- t31 = * HWIntrinsic long PopCount | |
/--* t31 long | |
N022 ( 16, 16) [000131] ---XG------- t131 = * CAST int <- long | |
/--* t22 int | |
+--* t131 int | |
N023 ( 36, 35) [000032] ---XG------- t32 = * ADD int | |
N024 ( 3, 2) [000033] ------------ t33 = LCL_VAR long V03 loc0 | |
N025 ( 1, 1) [000034] ------------ t34 = CNS_INT int 3 | |
/--* t34 int | |
N026 ( 2, 3) [000035] ------------ t35 = * CAST long <- int | |
N027 ( 1, 1) [000036] ------------ t36 = CNS_INT int 8 | |
/--* t36 int | |
N028 ( 2, 3) [000037] ------------ t37 = * CAST long <- int | |
/--* t35 long | |
+--* t37 long | |
N029 ( 8, 9) [000038] ------------ t38 = * MUL long | |
/--* t33 long | |
+--* t38 long | |
[000138] -c---------- t138 = * LEA(b+(i*1)+0) long | |
/--* t138 long | |
N031 ( 14, 13) [000040] *c-XG------- t40 = * IND long | |
/--* t40 long | |
N032 ( 15, 14) [000041] ---XG------- t41 = * HWIntrinsic long PopCount | |
/--* t41 long | |
N033 ( 16, 16) [000129] ---XG------- t129 = * CAST int <- long | |
/--* t32 int | |
+--* t129 int | |
N034 ( 53, 52) [000042] ---XG------- t42 = * ADD int | |
N035 ( 3, 2) [000012] ------------ t12 = LCL_VAR int V02 arg2 | |
/--* t12 int | |
+--* t42 int | |
N036 ( 57, 55) [000044] ---XG------- t44 = * SUB int | |
/--* t44 int | |
N038 ( 61, 58) [000046] DA-XG------- * STORE_LCL_VAR int V02 arg2 | |
( 16, 15) [000057] ------------ IL_OFFSET void IL offset: 0x34 | |
N001 ( 3, 2) [000048] -c---------- t48 = LCL_VAR long V03 loc0 | |
N002 ( 1, 1) [000049] ------------ t49 = CNS_INT int 4 | |
/--* t49 int | |
N003 ( 2, 3) [000050] ------------ t50 = * CAST long <- int | |
N004 ( 1, 1) [000051] ------------ t51 = CNS_INT int 8 | |
/--* t51 int | |
N005 ( 2, 3) [000052] ------------ t52 = * CAST long <- int | |
/--* t50 long | |
+--* t52 long | |
N006 ( 8, 9) [000053] ------------ t53 = * MUL long | |
/--* t48 long | |
+--* t53 long | |
N007 ( 12, 12) [000054] ------------ t54 = * ADD long | |
/--* t54 long | |
N009 ( 16, 15) [000056] DA---------- * STORE_LCL_VAR long V03 loc0 | |
------------ BB03 [03B..043) -> BB02 (cond), preds={BB01,BB02} succs={BB04,BB02} | |
( 7, 9) [000010] ------------ IL_OFFSET void IL offset: 0x3b | |
N001 ( 3, 2) [000006] -c---------- t6 = LCL_VAR int V02 arg2 | |
N002 ( 1, 4) [000007] -c---------- t7 = CNS_INT int 256 | |
/--* t6 int | |
+--* t7 int | |
N003 ( 5, 7) [000008] J------N---- * GE void | |
N004 ( 7, 9) [000009] ------------ * JTRUE void | |
------------ BB04 [043..047) -> BB06 (always), preds={BB03} succs={BB06} | |
( 7, 5) [000062] ------------ IL_OFFSET void IL offset: 0x43 | |
N001 ( 3, 2) [000059] ------------ t59 = LCL_VAR int V02 arg2 | |
/--* t59 int | |
N003 ( 7, 5) [000061] DA---------- * STORE_LCL_VAR int V04 loc1 | |
------------ BB05 [047..059), preds={BB06} succs={BB06} | |
( 7, 5) [000073] ------------ IL_OFFSET void IL offset: 0x47 | |
N001 ( 3, 2) [000070] ------------ t70 = LCL_VAR int V02 arg2 | |
/--* t70 int | |
N003 ( 7, 5) [000072] DA---------- * STORE_LCL_VAR int V04 loc1 | |
( 16, 13) [000082] ------------ IL_OFFSET void IL offset: 0x49 | |
N001 ( 3, 2) [000074] ------------ t74 = LCL_VAR int V02 arg2 | |
N002 ( 3, 2) [000075] ------------ t75 = LCL_VAR long V03 loc0 | |
/--* t75 long | |
N003 ( 6, 4) [000076] *c-XG------- t76 = * IND long | |
/--* t76 long | |
N004 ( 7, 5) [000077] ---XG------- t77 = * HWIntrinsic long PopCount | |
/--* t77 long | |
N005 ( 8, 7) [000078] ---XG------- t78 = * CAST int <- long | |
/--* t74 int | |
+--* t78 int | |
N006 ( 12, 10) [000079] ---XG------- t79 = * SUB int | |
/--* t79 int | |
N008 ( 16, 13) [000081] DA-XG------- * STORE_LCL_VAR int V02 arg2 | |
( 10, 9) [000089] ------------ IL_OFFSET void IL offset: 0x55 | |
N001 ( 3, 2) [000083] -c---------- t83 = LCL_VAR long V03 loc0 | |
N002 ( 1, 1) [000084] ------------ t84 = CNS_INT int 8 | |
/--* t84 int | |
N003 ( 2, 3) [000085] ------------ t85 = * CAST long <- int | |
/--* t83 long | |
+--* t85 long | |
N004 ( 6, 6) [000086] ------------ t86 = * ADD long | |
/--* t86 long | |
N006 ( 10, 9) [000088] DA---------- * STORE_LCL_VAR long V03 loc0 | |
------------ BB06 [059..05D) -> BB05 (cond), preds={BB04,BB05} succs={BB07,BB05} | |
( 7, 6) [000068] ------------ IL_OFFSET void IL offset: 0x59 | |
N001 ( 3, 2) [000064] -c---------- t64 = LCL_VAR int V02 arg2 | |
N002 ( 1, 1) [000065] -c---------- t65 = CNS_INT int 0 | |
/--* t64 int | |
+--* t65 int | |
N003 ( 5, 4) [000066] J------N---- * GT void | |
N004 ( 7, 6) [000067] ------------ * JTRUE void | |
------------ BB07 [05D..086) (return), preds={BB06} succs={} | |
( 10, 9) [000097] ------------ IL_OFFSET void IL offset: 0x5d | |
N001 ( 3, 2) [000091] ------------ t91 = LCL_VAR long V03 loc0 | |
N002 ( 1, 1) [000092] ------------ t92 = CNS_INT int 8 | |
/--* t92 int | |
N003 ( 2, 3) [000093] ------------ t93 = * CAST long <- int | |
/--* t91 long | |
+--* t93 long | |
N004 ( 6, 6) [000094] ------------ t94 = * SUB long | |
/--* t94 long | |
N006 ( 10, 9) [000096] DA---------- * STORE_LCL_VAR long V03 loc0 | |
( 26, 21) [000113] ------------ IL_OFFSET void IL offset: 0x61 | |
N001 ( 3, 2) [000100] ------------ t100 = LCL_VAR int V04 loc1 | |
N002 ( 1, 1) [000101] -c---------- t101 = CNS_INT int -1 | |
/--* t100 int | |
+--* t101 int | |
N003 ( 5, 4) [000102] ------------ t102 = * ADD int | |
N006 ( 1, 1) [000098] ------------ t98 = CNS_INT int 1 | |
/--* t98 int | |
N007 ( 2, 3) [000099] ------------ t99 = * CAST long <- int | |
/--* t99 long | |
+--* t102 int | |
N008 ( 13, 10) [000105] ------------ t105 = * LSH long | |
N009 ( 3, 2) [000106] ------------ t106 = LCL_VAR long V03 loc0 | |
/--* t106 long | |
N010 ( 6, 4) [000107] *c-XG------- t107 = * IND long | |
/--* t105 long | |
+--* t107 long | |
N011 ( 20, 15) [000108] ---XG------- t108 = * HWIntrinsic long ParallelBitDeposit | |
/--* t108 long | |
N012 ( 21, 16) [000109] ---XG------- t109 = * HWIntrinsic long TrailingZeroCount | |
/--* t109 long | |
N013 ( 22, 18) [000110] ---XG------- t110 = * CAST int <- long | |
/--* t110 int | |
N015 ( 26, 21) [000112] DA-XG------- * STORE_LCL_VAR int V05 loc2 | |
( 40, 21) [000127] ------------ IL_OFFSET void IL offset: 0x78 | |
N001 ( 3, 2) [000114] ------------ t114 = LCL_VAR long V03 loc0 | |
N002 ( 3, 2) [000115] -c---------- t115 = LCL_VAR long V00 arg0 | |
/--* t114 long | |
+--* t115 long | |
N003 ( 7, 5) [000116] ------------ t116 = * SUB long | |
N004 ( 1, 1) [000117] ------------ t117 = CNS_INT int 8 | |
/--* t117 int | |
N005 ( 2, 3) [000118] ------------ t118 = * CAST long <- int | |
/--* t116 long | |
+--* t118 long | |
N006 ( 29, 11) [000119] ---X-------- t119 = * DIV long | |
/--* t119 long | |
N007 ( 30, 13) [000134] ---X-------- t134 = * CAST int <- long | |
N008 ( 1, 1) [000120] -c---------- t120 = CNS_INT int 64 | |
/--* t134 int | |
+--* t120 int | |
N010 ( 35, 17) [000122] ---X-------- t122 = * MUL int | |
N011 ( 3, 2) [000124] -c---------- t124 = LCL_VAR int V05 loc2 | |
/--* t122 int | |
+--* t124 int | |
N012 ( 39, 20) [000125] ---X-------- t125 = * ADD int | |
/--* t125 int | |
N013 ( 40, 21) [000126] ---X-------- * RETURN int | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** In StackLevelSetter | |
Trees before StackLevelSetter | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..004)-> BB03 (always) i label target LIR | |
BB02 [0001] 1 BB03 1 [004..03B) i label target bwd LIR | |
BB03 [0002] 2 BB01,BB02 1 [03B..043)-> BB02 ( cond ) i label target bwd LIR | |
BB04 [0003] 1 BB03 1 [043..047)-> BB06 (always) i LIR | |
BB05 [0004] 1 BB06 1 [047..059) i label target bwd LIR | |
BB06 [0005] 2 BB04,BB05 1 [059..05D)-> BB05 ( cond ) i label target bwd LIR | |
BB07 [0006] 1 BB06 1 [05D..086) (return) i LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..004) -> BB03 (always), preds={} succs={BB03} | |
( 7, 5) [000004] ------------ IL_OFFSET void IL offset: 0x0 | |
N001 ( 3, 2) [000001] ------------ t1 = LCL_VAR long V00 arg0 | |
/--* t1 long | |
N003 ( 7, 5) [000003] DA---------- * STORE_LCL_VAR long V03 loc0 | |
------------ BB02 [004..03B), preds={BB03} succs={BB03} | |
( 61, 58) [000047] ------------ IL_OFFSET void IL offset: 0x4 | |
N001 ( 3, 2) [000013] ------------ t13 = LCL_VAR long V03 loc0 | |
/--* t13 long | |
N002 ( 6, 4) [000014] *c-XG------- t14 = * IND long | |
/--* t14 long | |
N003 ( 7, 5) [000015] ---XG------- t15 = * HWIntrinsic long PopCount | |
/--* t15 long | |
N004 ( 8, 7) [000132] ---XG------- t132 = * CAST int <- long | |
N005 ( 3, 2) [000016] ------------ t16 = LCL_VAR long V03 loc0 | |
N006 ( 1, 1) [000017] ------------ t17 = CNS_INT int 8 | |
/--* t17 int | |
N007 ( 2, 3) [000018] ------------ t18 = * CAST long <- int | |
/--* t16 long | |
+--* t18 long | |
[000136] -c---------- t136 = * LEA(b+(i*1)+0) long | |
/--* t136 long | |
N009 ( 8, 7) [000020] *c-XG------- t20 = * IND long | |
/--* t20 long | |
N010 ( 9, 8) [000021] ---XG------- t21 = * HWIntrinsic long PopCount | |
/--* t21 long | |
N011 ( 10, 10) [000133] ---XG------- t133 = * CAST int <- long | |
/--* t132 int | |
+--* t133 int | |
N012 ( 19, 18) [000022] ---XG------- t22 = * ADD int | |
N013 ( 3, 2) [000023] ------------ t23 = LCL_VAR long V03 loc0 | |
N014 ( 1, 1) [000024] ------------ t24 = CNS_INT int 2 | |
/--* t24 int | |
N015 ( 2, 3) [000025] ------------ t25 = * CAST long <- int | |
N016 ( 1, 1) [000026] ------------ t26 = CNS_INT int 8 | |
/--* t26 int | |
N017 ( 2, 3) [000027] ------------ t27 = * CAST long <- int | |
/--* t25 long | |
+--* t27 long | |
N018 ( 8, 9) [000028] ------------ t28 = * MUL long | |
/--* t23 long | |
+--* t28 long | |
[000137] -c---------- t137 = * LEA(b+(i*1)+0) long | |
/--* t137 long | |
N020 ( 14, 13) [000030] *c-XG------- t30 = * IND long | |
/--* t30 long | |
N021 ( 15, 14) [000031] ---XG------- t31 = * HWIntrinsic long PopCount | |
/--* t31 long | |
N022 ( 16, 16) [000131] ---XG------- t131 = * CAST int <- long | |
/--* t22 int | |
+--* t131 int | |
N023 ( 36, 35) [000032] ---XG------- t32 = * ADD int | |
N024 ( 3, 2) [000033] ------------ t33 = LCL_VAR long V03 loc0 | |
N025 ( 1, 1) [000034] ------------ t34 = CNS_INT int 3 | |
/--* t34 int | |
N026 ( 2, 3) [000035] ------------ t35 = * CAST long <- int | |
N027 ( 1, 1) [000036] ------------ t36 = CNS_INT int 8 | |
/--* t36 int | |
N028 ( 2, 3) [000037] ------------ t37 = * CAST long <- int | |
/--* t35 long | |
+--* t37 long | |
N029 ( 8, 9) [000038] ------------ t38 = * MUL long | |
/--* t33 long | |
+--* t38 long | |
[000138] -c---------- t138 = * LEA(b+(i*1)+0) long | |
/--* t138 long | |
N031 ( 14, 13) [000040] *c-XG------- t40 = * IND long | |
/--* t40 long | |
N032 ( 15, 14) [000041] ---XG------- t41 = * HWIntrinsic long PopCount | |
/--* t41 long | |
N033 ( 16, 16) [000129] ---XG------- t129 = * CAST int <- long | |
/--* t32 int | |
+--* t129 int | |
N034 ( 53, 52) [000042] ---XG------- t42 = * ADD int | |
N035 ( 3, 2) [000012] ------------ t12 = LCL_VAR int V02 arg2 | |
/--* t12 int | |
+--* t42 int | |
N036 ( 57, 55) [000044] ---XG------- t44 = * SUB int | |
/--* t44 int | |
N038 ( 61, 58) [000046] DA-XG------- * STORE_LCL_VAR int V02 arg2 | |
( 16, 15) [000057] ------------ IL_OFFSET void IL offset: 0x34 | |
N001 ( 3, 2) [000048] -c---------- t48 = LCL_VAR long V03 loc0 | |
N002 ( 1, 1) [000049] ------------ t49 = CNS_INT int 4 | |
/--* t49 int | |
N003 ( 2, 3) [000050] ------------ t50 = * CAST long <- int | |
N004 ( 1, 1) [000051] ------------ t51 = CNS_INT int 8 | |
/--* t51 int | |
N005 ( 2, 3) [000052] ------------ t52 = * CAST long <- int | |
/--* t50 long | |
+--* t52 long | |
N006 ( 8, 9) [000053] ------------ t53 = * MUL long | |
/--* t48 long | |
+--* t53 long | |
N007 ( 12, 12) [000054] ------------ t54 = * ADD long | |
/--* t54 long | |
N009 ( 16, 15) [000056] DA---------- * STORE_LCL_VAR long V03 loc0 | |
------------ BB03 [03B..043) -> BB02 (cond), preds={BB01,BB02} succs={BB04,BB02} | |
( 7, 9) [000010] ------------ IL_OFFSET void IL offset: 0x3b | |
N001 ( 3, 2) [000006] -c---------- t6 = LCL_VAR int V02 arg2 | |
N002 ( 1, 4) [000007] -c---------- t7 = CNS_INT int 256 | |
/--* t6 int | |
+--* t7 int | |
N003 ( 5, 7) [000008] J------N---- * GE void | |
N004 ( 7, 9) [000009] ------------ * JTRUE void | |
------------ BB04 [043..047) -> BB06 (always), preds={BB03} succs={BB06} | |
( 7, 5) [000062] ------------ IL_OFFSET void IL offset: 0x43 | |
N001 ( 3, 2) [000059] ------------ t59 = LCL_VAR int V02 arg2 | |
/--* t59 int | |
N003 ( 7, 5) [000061] DA---------- * STORE_LCL_VAR int V04 loc1 | |
------------ BB05 [047..059), preds={BB06} succs={BB06} | |
( 7, 5) [000073] ------------ IL_OFFSET void IL offset: 0x47 | |
N001 ( 3, 2) [000070] ------------ t70 = LCL_VAR int V02 arg2 | |
/--* t70 int | |
N003 ( 7, 5) [000072] DA---------- * STORE_LCL_VAR int V04 loc1 | |
( 16, 13) [000082] ------------ IL_OFFSET void IL offset: 0x49 | |
N001 ( 3, 2) [000074] ------------ t74 = LCL_VAR int V02 arg2 | |
N002 ( 3, 2) [000075] ------------ t75 = LCL_VAR long V03 loc0 | |
/--* t75 long | |
N003 ( 6, 4) [000076] *c-XG------- t76 = * IND long | |
/--* t76 long | |
N004 ( 7, 5) [000077] ---XG------- t77 = * HWIntrinsic long PopCount | |
/--* t77 long | |
N005 ( 8, 7) [000078] ---XG------- t78 = * CAST int <- long | |
/--* t74 int | |
+--* t78 int | |
N006 ( 12, 10) [000079] ---XG------- t79 = * SUB int | |
/--* t79 int | |
N008 ( 16, 13) [000081] DA-XG------- * STORE_LCL_VAR int V02 arg2 | |
( 10, 9) [000089] ------------ IL_OFFSET void IL offset: 0x55 | |
N001 ( 3, 2) [000083] -c---------- t83 = LCL_VAR long V03 loc0 | |
N002 ( 1, 1) [000084] ------------ t84 = CNS_INT int 8 | |
/--* t84 int | |
N003 ( 2, 3) [000085] ------------ t85 = * CAST long <- int | |
/--* t83 long | |
+--* t85 long | |
N004 ( 6, 6) [000086] ------------ t86 = * ADD long | |
/--* t86 long | |
N006 ( 10, 9) [000088] DA---------- * STORE_LCL_VAR long V03 loc0 | |
------------ BB06 [059..05D) -> BB05 (cond), preds={BB04,BB05} succs={BB07,BB05} | |
( 7, 6) [000068] ------------ IL_OFFSET void IL offset: 0x59 | |
N001 ( 3, 2) [000064] -c---------- t64 = LCL_VAR int V02 arg2 | |
N002 ( 1, 1) [000065] -c---------- t65 = CNS_INT int 0 | |
/--* t64 int | |
+--* t65 int | |
N003 ( 5, 4) [000066] J------N---- * GT void | |
N004 ( 7, 6) [000067] ------------ * JTRUE void | |
------------ BB07 [05D..086) (return), preds={BB06} succs={} | |
( 10, 9) [000097] ------------ IL_OFFSET void IL offset: 0x5d | |
N001 ( 3, 2) [000091] ------------ t91 = LCL_VAR long V03 loc0 | |
N002 ( 1, 1) [000092] ------------ t92 = CNS_INT int 8 | |
/--* t92 int | |
N003 ( 2, 3) [000093] ------------ t93 = * CAST long <- int | |
/--* t91 long | |
+--* t93 long | |
N004 ( 6, 6) [000094] ------------ t94 = * SUB long | |
/--* t94 long | |
N006 ( 10, 9) [000096] DA---------- * STORE_LCL_VAR long V03 loc0 | |
( 26, 21) [000113] ------------ IL_OFFSET void IL offset: 0x61 | |
N001 ( 3, 2) [000100] ------------ t100 = LCL_VAR int V04 loc1 | |
N002 ( 1, 1) [000101] -c---------- t101 = CNS_INT int -1 | |
/--* t100 int | |
+--* t101 int | |
N003 ( 5, 4) [000102] ------------ t102 = * ADD int | |
N006 ( 1, 1) [000098] ------------ t98 = CNS_INT int 1 | |
/--* t98 int | |
N007 ( 2, 3) [000099] ------------ t99 = * CAST long <- int | |
/--* t99 long | |
+--* t102 int | |
N008 ( 13, 10) [000105] ------------ t105 = * LSH long | |
N009 ( 3, 2) [000106] ------------ t106 = LCL_VAR long V03 loc0 | |
/--* t106 long | |
N010 ( 6, 4) [000107] *c-XG------- t107 = * IND long | |
/--* t105 long | |
+--* t107 long | |
N011 ( 20, 15) [000108] ---XG------- t108 = * HWIntrinsic long ParallelBitDeposit | |
/--* t108 long | |
N012 ( 21, 16) [000109] ---XG------- t109 = * HWIntrinsic long TrailingZeroCount | |
/--* t109 long | |
N013 ( 22, 18) [000110] ---XG------- t110 = * CAST int <- long | |
/--* t110 int | |
N015 ( 26, 21) [000112] DA-XG------- * STORE_LCL_VAR int V05 loc2 | |
( 40, 21) [000127] ------------ IL_OFFSET void IL offset: 0x78 | |
N001 ( 3, 2) [000114] ------------ t114 = LCL_VAR long V03 loc0 | |
N002 ( 3, 2) [000115] -c---------- t115 = LCL_VAR long V00 arg0 | |
/--* t114 long | |
+--* t115 long | |
N003 ( 7, 5) [000116] ------------ t116 = * SUB long | |
N004 ( 1, 1) [000117] ------------ t117 = CNS_INT int 8 | |
/--* t117 int | |
N005 ( 2, 3) [000118] ------------ t118 = * CAST long <- int | |
/--* t116 long | |
+--* t118 long | |
N006 ( 29, 11) [000119] ---X-------- t119 = * DIV long | |
/--* t119 long | |
N007 ( 30, 13) [000134] ---X-------- t134 = * CAST int <- long | |
N008 ( 1, 1) [000120] -c---------- t120 = CNS_INT int 64 | |
/--* t134 int | |
+--* t120 int | |
N010 ( 35, 17) [000122] ---X-------- t122 = * MUL int | |
N011 ( 3, 2) [000124] -c---------- t124 = LCL_VAR int V05 loc2 | |
/--* t122 int | |
+--* t124 int | |
N012 ( 39, 20) [000125] ---X-------- t125 = * ADD int | |
/--* t125 int | |
N013 ( 40, 21) [000126] ---X-------- * RETURN int | |
------------------------------------------------------------------------------------------------------------------- | |
*************** Exiting StackLevelSetter | |
Trees after StackLevelSetter | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..004)-> BB03 (always) i label target LIR | |
BB02 [0001] 1 BB03 1 [004..03B) i label target bwd LIR | |
BB03 [0002] 2 BB01,BB02 1 [03B..043)-> BB02 ( cond ) i label target bwd LIR | |
BB04 [0003] 1 BB03 1 [043..047)-> BB06 (always) i LIR | |
BB05 [0004] 1 BB06 1 [047..059) i label target bwd LIR | |
BB06 [0005] 2 BB04,BB05 1 [059..05D)-> BB05 ( cond ) i label target bwd LIR | |
BB07 [0006] 1 BB06 1 [05D..086) (return) i LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..004) -> BB03 (always), preds={} succs={BB03} | |
( 7, 5) [000004] ------------ IL_OFFSET void IL offset: 0x0 | |
N001 ( 3, 2) [000001] ------------ t1 = LCL_VAR long V00 arg0 | |
/--* t1 long | |
N003 ( 7, 5) [000003] DA---------- * STORE_LCL_VAR long V03 loc0 | |
------------ BB02 [004..03B), preds={BB03} succs={BB03} | |
( 61, 58) [000047] ------------ IL_OFFSET void IL offset: 0x4 | |
N001 ( 3, 2) [000013] ------------ t13 = LCL_VAR long V03 loc0 | |
/--* t13 long | |
N002 ( 6, 4) [000014] *c-XG------- t14 = * IND long | |
/--* t14 long | |
N003 ( 7, 5) [000015] ---XG------- t15 = * HWIntrinsic long PopCount | |
/--* t15 long | |
N004 ( 8, 7) [000132] ---XG------- t132 = * CAST int <- long | |
N005 ( 3, 2) [000016] ------------ t16 = LCL_VAR long V03 loc0 | |
N006 ( 1, 1) [000017] ------------ t17 = CNS_INT int 8 | |
/--* t17 int | |
N007 ( 2, 3) [000018] ------------ t18 = * CAST long <- int | |
/--* t16 long | |
+--* t18 long | |
[000136] -c---------- t136 = * LEA(b+(i*1)+0) long | |
/--* t136 long | |
N009 ( 8, 7) [000020] *c-XG------- t20 = * IND long | |
/--* t20 long | |
N010 ( 9, 8) [000021] ---XG------- t21 = * HWIntrinsic long PopCount | |
/--* t21 long | |
N011 ( 10, 10) [000133] ---XG------- t133 = * CAST int <- long | |
/--* t132 int | |
+--* t133 int | |
N012 ( 19, 18) [000022] ---XG------- t22 = * ADD int | |
N013 ( 3, 2) [000023] ------------ t23 = LCL_VAR long V03 loc0 | |
N014 ( 1, 1) [000024] ------------ t24 = CNS_INT int 2 | |
/--* t24 int | |
N015 ( 2, 3) [000025] ------------ t25 = * CAST long <- int | |
N016 ( 1, 1) [000026] ------------ t26 = CNS_INT int 8 | |
/--* t26 int | |
N017 ( 2, 3) [000027] ------------ t27 = * CAST long <- int | |
/--* t25 long | |
+--* t27 long | |
N018 ( 8, 9) [000028] ------------ t28 = * MUL long | |
/--* t23 long | |
+--* t28 long | |
[000137] -c---------- t137 = * LEA(b+(i*1)+0) long | |
/--* t137 long | |
N020 ( 14, 13) [000030] *c-XG------- t30 = * IND long | |
/--* t30 long | |
N021 ( 15, 14) [000031] ---XG------- t31 = * HWIntrinsic long PopCount | |
/--* t31 long | |
N022 ( 16, 16) [000131] ---XG------- t131 = * CAST int <- long | |
/--* t22 int | |
+--* t131 int | |
N023 ( 36, 35) [000032] ---XG------- t32 = * ADD int | |
N024 ( 3, 2) [000033] ------------ t33 = LCL_VAR long V03 loc0 | |
N025 ( 1, 1) [000034] ------------ t34 = CNS_INT int 3 | |
/--* t34 int | |
N026 ( 2, 3) [000035] ------------ t35 = * CAST long <- int | |
N027 ( 1, 1) [000036] ------------ t36 = CNS_INT int 8 | |
/--* t36 int | |
N028 ( 2, 3) [000037] ------------ t37 = * CAST long <- int | |
/--* t35 long | |
+--* t37 long | |
N029 ( 8, 9) [000038] ------------ t38 = * MUL long | |
/--* t33 long | |
+--* t38 long | |
[000138] -c---------- t138 = * LEA(b+(i*1)+0) long | |
/--* t138 long | |
N031 ( 14, 13) [000040] *c-XG------- t40 = * IND long | |
/--* t40 long | |
N032 ( 15, 14) [000041] ---XG------- t41 = * HWIntrinsic long PopCount | |
/--* t41 long | |
N033 ( 16, 16) [000129] ---XG------- t129 = * CAST int <- long | |
/--* t32 int | |
+--* t129 int | |
N034 ( 53, 52) [000042] ---XG------- t42 = * ADD int | |
N035 ( 3, 2) [000012] ------------ t12 = LCL_VAR int V02 arg2 | |
/--* t12 int | |
+--* t42 int | |
N036 ( 57, 55) [000044] ---XG------- t44 = * SUB int | |
/--* t44 int | |
N038 ( 61, 58) [000046] DA-XG------- * STORE_LCL_VAR int V02 arg2 | |
( 16, 15) [000057] ------------ IL_OFFSET void IL offset: 0x34 | |
N001 ( 3, 2) [000048] -c---------- t48 = LCL_VAR long V03 loc0 | |
N002 ( 1, 1) [000049] ------------ t49 = CNS_INT int 4 | |
/--* t49 int | |
N003 ( 2, 3) [000050] ------------ t50 = * CAST long <- int | |
N004 ( 1, 1) [000051] ------------ t51 = CNS_INT int 8 | |
/--* t51 int | |
N005 ( 2, 3) [000052] ------------ t52 = * CAST long <- int | |
/--* t50 long | |
+--* t52 long | |
N006 ( 8, 9) [000053] ------------ t53 = * MUL long | |
/--* t48 long | |
+--* t53 long | |
N007 ( 12, 12) [000054] ------------ t54 = * ADD long | |
/--* t54 long | |
N009 ( 16, 15) [000056] DA---------- * STORE_LCL_VAR long V03 loc0 | |
------------ BB03 [03B..043) -> BB02 (cond), preds={BB01,BB02} succs={BB04,BB02} | |
( 7, 9) [000010] ------------ IL_OFFSET void IL offset: 0x3b | |
N001 ( 3, 2) [000006] -c---------- t6 = LCL_VAR int V02 arg2 | |
N002 ( 1, 4) [000007] -c---------- t7 = CNS_INT int 256 | |
/--* t6 int | |
+--* t7 int | |
N003 ( 5, 7) [000008] J------N---- * GE void | |
N004 ( 7, 9) [000009] ------------ * JTRUE void | |
------------ BB04 [043..047) -> BB06 (always), preds={BB03} succs={BB06} | |
( 7, 5) [000062] ------------ IL_OFFSET void IL offset: 0x43 | |
N001 ( 3, 2) [000059] ------------ t59 = LCL_VAR int V02 arg2 | |
/--* t59 int | |
N003 ( 7, 5) [000061] DA---------- * STORE_LCL_VAR int V04 loc1 | |
------------ BB05 [047..059), preds={BB06} succs={BB06} | |
( 7, 5) [000073] ------------ IL_OFFSET void IL offset: 0x47 | |
N001 ( 3, 2) [000070] ------------ t70 = LCL_VAR int V02 arg2 | |
/--* t70 int | |
N003 ( 7, 5) [000072] DA---------- * STORE_LCL_VAR int V04 loc1 | |
( 16, 13) [000082] ------------ IL_OFFSET void IL offset: 0x49 | |
N001 ( 3, 2) [000074] ------------ t74 = LCL_VAR int V02 arg2 | |
N002 ( 3, 2) [000075] ------------ t75 = LCL_VAR long V03 loc0 | |
/--* t75 long | |
N003 ( 6, 4) [000076] *c-XG------- t76 = * IND long | |
/--* t76 long | |
N004 ( 7, 5) [000077] ---XG------- t77 = * HWIntrinsic long PopCount | |
/--* t77 long | |
N005 ( 8, 7) [000078] ---XG------- t78 = * CAST int <- long | |
/--* t74 int | |
+--* t78 int | |
N006 ( 12, 10) [000079] ---XG------- t79 = * SUB int | |
/--* t79 int | |
N008 ( 16, 13) [000081] DA-XG------- * STORE_LCL_VAR int V02 arg2 | |
( 10, 9) [000089] ------------ IL_OFFSET void IL offset: 0x55 | |
N001 ( 3, 2) [000083] -c---------- t83 = LCL_VAR long V03 loc0 | |
N002 ( 1, 1) [000084] ------------ t84 = CNS_INT int 8 | |
/--* t84 int | |
N003 ( 2, 3) [000085] ------------ t85 = * CAST long <- int | |
/--* t83 long | |
+--* t85 long | |
N004 ( 6, 6) [000086] ------------ t86 = * ADD long | |
/--* t86 long | |
N006 ( 10, 9) [000088] DA---------- * STORE_LCL_VAR long V03 loc0 | |
------------ BB06 [059..05D) -> BB05 (cond), preds={BB04,BB05} succs={BB07,BB05} | |
( 7, 6) [000068] ------------ IL_OFFSET void IL offset: 0x59 | |
N001 ( 3, 2) [000064] -c---------- t64 = LCL_VAR int V02 arg2 | |
N002 ( 1, 1) [000065] -c---------- t65 = CNS_INT int 0 | |
/--* t64 int | |
+--* t65 int | |
N003 ( 5, 4) [000066] J------N---- * GT void | |
N004 ( 7, 6) [000067] ------------ * JTRUE void | |
------------ BB07 [05D..086) (return), preds={BB06} succs={} | |
( 10, 9) [000097] ------------ IL_OFFSET void IL offset: 0x5d | |
N001 ( 3, 2) [000091] ------------ t91 = LCL_VAR long V03 loc0 | |
N002 ( 1, 1) [000092] ------------ t92 = CNS_INT int 8 | |
/--* t92 int | |
N003 ( 2, 3) [000093] ------------ t93 = * CAST long <- int | |
/--* t91 long | |
+--* t93 long | |
N004 ( 6, 6) [000094] ------------ t94 = * SUB long | |
/--* t94 long | |
N006 ( 10, 9) [000096] DA---------- * STORE_LCL_VAR long V03 loc0 | |
( 26, 21) [000113] ------------ IL_OFFSET void IL offset: 0x61 | |
N001 ( 3, 2) [000100] ------------ t100 = LCL_VAR int V04 loc1 | |
N002 ( 1, 1) [000101] -c---------- t101 = CNS_INT int -1 | |
/--* t100 int | |
+--* t101 int | |
N003 ( 5, 4) [000102] ------------ t102 = * ADD int | |
N006 ( 1, 1) [000098] ------------ t98 = CNS_INT int 1 | |
/--* t98 int | |
N007 ( 2, 3) [000099] ------------ t99 = * CAST long <- int | |
/--* t99 long | |
+--* t102 int | |
N008 ( 13, 10) [000105] ------------ t105 = * LSH long | |
N009 ( 3, 2) [000106] ------------ t106 = LCL_VAR long V03 loc0 | |
/--* t106 long | |
N010 ( 6, 4) [000107] *c-XG------- t107 = * IND long | |
/--* t105 long | |
+--* t107 long | |
N011 ( 20, 15) [000108] ---XG------- t108 = * HWIntrinsic long ParallelBitDeposit | |
/--* t108 long | |
N012 ( 21, 16) [000109] ---XG------- t109 = * HWIntrinsic long TrailingZeroCount | |
/--* t109 long | |
N013 ( 22, 18) [000110] ---XG------- t110 = * CAST int <- long | |
/--* t110 int | |
N015 ( 26, 21) [000112] DA-XG------- * STORE_LCL_VAR int V05 loc2 | |
( 40, 21) [000127] ------------ IL_OFFSET void IL offset: 0x78 | |
N001 ( 3, 2) [000114] ------------ t114 = LCL_VAR long V03 loc0 | |
N002 ( 3, 2) [000115] -c---------- t115 = LCL_VAR long V00 arg0 | |
/--* t114 long | |
+--* t115 long | |
N003 ( 7, 5) [000116] ------------ t116 = * SUB long | |
N004 ( 1, 1) [000117] ------------ t117 = CNS_INT int 8 | |
/--* t117 int | |
N005 ( 2, 3) [000118] ------------ t118 = * CAST long <- int | |
/--* t116 long | |
+--* t118 long | |
N006 ( 29, 11) [000119] ---X-------- t119 = * DIV long | |
/--* t119 long | |
N007 ( 30, 13) [000134] ---X-------- t134 = * CAST int <- long | |
N008 ( 1, 1) [000120] -c---------- t120 = CNS_INT int 64 | |
/--* t134 int | |
+--* t120 int | |
N010 ( 35, 17) [000122] ---X-------- t122 = * MUL int | |
N011 ( 3, 2) [000124] -c---------- t124 = LCL_VAR int V05 loc2 | |
/--* t122 int | |
+--* t124 int | |
N012 ( 39, 20) [000125] ---X-------- t125 = * ADD int | |
/--* t125 int | |
N013 ( 40, 21) [000126] ---X-------- * RETURN int | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Clearing modified regs. | |
buildIntervals ======== | |
----------------- | |
LIVENESS: | |
----------------- | |
BB01 use def in out | |
{} | |
{} | |
{} | |
{} | |
BB02 use def in out | |
{} | |
{} | |
{} | |
{} | |
BB03 use def in out | |
{} | |
{} | |
{} | |
{} | |
BB04 use def in out | |
{} | |
{} | |
{} | |
{} | |
BB05 use def in out | |
{} | |
{} | |
{} | |
{} | |
BB06 use def in out | |
{} | |
{} | |
{} | |
{} | |
BB07 use def in out | |
{} | |
{} | |
{} | |
{} | |
FP callee save candidate vars: None | |
floatVarCount = 0; hasLoops = 0, singleExit = 1 | |
; Decided to create an EBP based frame for ETW stackwalking (Debug Code) | |
TUPLE STYLE DUMP BEFORE LSRA | |
LSRA Block Sequence: BB01( 1 ) BB03( 1 ) BB02( 1 ) BB04( 1 ) BB06( 1 ) BB05( 1 ) BB07( 1 ) | |
BB01 [000..004) -> BB03 (always), preds={} succs={BB03} | |
===== | |
N000. IL_OFFSET IL offset: 0x0 | |
N001. t1 = V00 MEM | |
N003. V03 MEM; t1 | |
BB03 [03B..043) -> BB02 (cond), preds={BB01,BB02} succs={BB04,BB02} | |
===== | |
N000. IL_OFFSET IL offset: 0x3b | |
N001. V02 MEM | |
N002. CNS_INT 256 | |
N003. GE | |
N004. JTRUE | |
BB02 [004..03B), preds={BB03} succs={BB03} | |
===== | |
N000. IL_OFFSET IL offset: 0x4 | |
N001. t13 = V03 MEM | |
N002. t14 = IND ; t13 | |
N003. t15 = HWIntrinsic; t14 | |
N004. t132 = CAST ; t15 | |
N005. t16 = V03 MEM | |
N006. t17 = CNS_INT 8 | |
N007. t18 = CAST ; t17 | |
N000. t136 = LEA(b+(i*1)+0); t16,t18 | |
N009. t20 = IND ; t136 | |
N010. t21 = HWIntrinsic; t20 | |
N011. t133 = CAST ; t21 | |
N012. t22 = ADD ; t132,t133 | |
N013. t23 = V03 MEM | |
N014. t24 = CNS_INT 2 | |
N015. t25 = CAST ; t24 | |
N016. t26 = CNS_INT 8 | |
N017. t27 = CAST ; t26 | |
N018. t28 = MUL ; t25,t27 | |
N000. t137 = LEA(b+(i*1)+0); t23,t28 | |
N020. t30 = IND ; t137 | |
N021. t31 = HWIntrinsic; t30 | |
N022. t131 = CAST ; t31 | |
N023. t32 = ADD ; t22,t131 | |
N024. t33 = V03 MEM | |
N025. t34 = CNS_INT 3 | |
N026. t35 = CAST ; t34 | |
N027. t36 = CNS_INT 8 | |
N028. t37 = CAST ; t36 | |
N029. t38 = MUL ; t35,t37 | |
N000. t138 = LEA(b+(i*1)+0); t33,t38 | |
N031. t40 = IND ; t138 | |
N032. t41 = HWIntrinsic; t40 | |
N033. t129 = CAST ; t41 | |
N034. t42 = ADD ; t32,t129 | |
N035. t12 = V02 MEM | |
N036. t44 = SUB ; t12,t42 | |
N038. V02 MEM; t44 | |
N000. IL_OFFSET IL offset: 0x34 | |
N001. V03 MEM | |
N002. t49 = CNS_INT 4 | |
N003. t50 = CAST ; t49 | |
N004. t51 = CNS_INT 8 | |
N005. t52 = CAST ; t51 | |
N006. t53 = MUL ; t50,t52 | |
N007. t54 = ADD ; t53 | |
N009. V03 MEM; t54 | |
BB04 [043..047) -> BB06 (always), preds={BB03} succs={BB06} | |
===== | |
N000. IL_OFFSET IL offset: 0x43 | |
N001. t59 = V02 MEM | |
N003. V04 MEM; t59 | |
BB06 [059..05D) -> BB05 (cond), preds={BB04,BB05} succs={BB07,BB05} | |
===== | |
N000. IL_OFFSET IL offset: 0x59 | |
N001. V02 MEM | |
N002. CNS_INT 0 | |
N003. GT | |
N004. JTRUE | |
BB05 [047..059), preds={BB06} succs={BB06} | |
===== | |
N000. IL_OFFSET IL offset: 0x47 | |
N001. t70 = V02 MEM | |
N003. V04 MEM; t70 | |
N000. IL_OFFSET IL offset: 0x49 | |
N001. t74 = V02 MEM | |
N002. t75 = V03 MEM | |
N003. t76 = IND ; t75 | |
N004. t77 = HWIntrinsic; t76 | |
N005. t78 = CAST ; t77 | |
N006. t79 = SUB ; t74,t78 | |
N008. V02 MEM; t79 | |
N000. IL_OFFSET IL offset: 0x55 | |
N001. V03 MEM | |
N002. t84 = CNS_INT 8 | |
N003. t85 = CAST ; t84 | |
N004. t86 = ADD ; t85 | |
N006. V03 MEM; t86 | |
BB07 [05D..086) (return), preds={BB06} succs={} | |
===== | |
N000. IL_OFFSET IL offset: 0x5d | |
N001. t91 = V03 MEM | |
N002. t92 = CNS_INT 8 | |
N003. t93 = CAST ; t92 | |
N004. t94 = SUB ; t91,t93 | |
N006. V03 MEM; t94 | |
N000. IL_OFFSET IL offset: 0x61 | |
N001. t100 = V04 MEM | |
N002. CNS_INT -1 | |
N003. t102 = ADD ; t100 | |
N006. t98 = CNS_INT 1 | |
N007. t99 = CAST ; t98 | |
N008. t105 = LSH ; t99,t102 | |
N009. t106 = V03 MEM | |
N010. t107 = IND ; t106 | |
N011. t108 = HWIntrinsic; t105,t107 | |
N012. t109 = HWIntrinsic; t108 | |
N013. t110 = CAST ; t109 | |
N015. V05 MEM; t110 | |
N000. IL_OFFSET IL offset: 0x78 | |
N001. t114 = V03 MEM | |
N002. V00 MEM | |
N003. t116 = SUB ; t114 | |
N004. t117 = CNS_INT 8 | |
N005. t118 = CAST ; t117 | |
N006. t119 = DIV ; t116,t118 | |
N007. t134 = CAST ; t119 | |
N008. CNS_INT 64 | |
N010. t122 = MUL ; t134 | |
N011. V05 MEM | |
N012. t125 = ADD ; t122 | |
N013. RETURN ; t125 | |
buildIntervals second part ======== | |
Int arg V00 in reg rdi | |
Int arg V01 in reg rsi | |
Int arg V02 in reg rdx | |
NEW BLOCK BB01 | |
<RefPosition #0 @0 RefTypeBB BB01 regmask=[] minReg=1> | |
DefList: { } | |
N002 ( 7, 5) [000004] ------------ * IL_OFFSET void IL offset: 0x0 REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N004 ( 3, 2) [000001] ------------ * LCL_VAR long V00 arg0 NA REG NA | |
Interval 0: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #1 @5 RefTypeDef <Ivl:0> LCL_VAR BB01 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N004.t1. LCL_VAR } | |
N006 ( 7, 5) [000003] DA---------- * STORE_LCL_VAR long V03 loc0 NA REG NA | |
<RefPosition #2 @6 RefTypeUse <Ivl:0> BB01 regmask=[allInt] minReg=1 last> | |
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=0 | |
NEW BLOCK BB03 | |
Setting BB03 as the predecessor for determining incoming variable registers of BB01 | |
<RefPosition #3 @8 RefTypeBB BB03 regmask=[] minReg=1> | |
DefList: { } | |
N010 ( 7, 9) [000010] ------------ * IL_OFFSET void IL offset: 0x3b REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N012 ( 3, 2) [000006] -c---------- * LCL_VAR int V02 arg2 NA REG NA | |
Contained | |
DefList: { } | |
N014 ( 1, 4) [000007] -c---------- * CNS_INT int 256 REG NA | |
Contained | |
DefList: { } | |
N016 ( 5, 7) [000008] J------N---- * GE void REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N018 ( 7, 9) [000009] ------------ * JTRUE void REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
NEW BLOCK BB02 | |
Setting BB02 as the predecessor for determining incoming variable registers of BB03 | |
<RefPosition #4 @20 RefTypeBB BB02 regmask=[] minReg=1> | |
DefList: { } | |
N022 ( 61, 58) [000047] ------------ * IL_OFFSET void IL offset: 0x4 REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N024 ( 3, 2) [000013] ------------ * LCL_VAR long V03 loc0 NA REG NA | |
Interval 1: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #5 @25 RefTypeDef <Ivl:1> LCL_VAR BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N024.t13. LCL_VAR } | |
N026 ( 6, 4) [000014] *c-XG------- * IND long REG NA | |
Contained | |
DefList: { N024.t13. LCL_VAR } | |
N028 ( 7, 5) [000015] ---XG------- * HWIntrinsic long PopCount REG NA | |
<RefPosition #6 @28 RefTypeUse <Ivl:1> BB02 regmask=[allInt] minReg=1 last> | |
Interval 2: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #7 @29 RefTypeDef <Ivl:2> HWIntrinsic BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I D>[--] | |
consume= 1 produce=1 | |
DefList: { N028.t15. HWIntrinsic } | |
N030 ( 8, 7) [000132] ---XG------- * CAST int <- long REG NA | |
<RefPosition #8 @30 RefTypeUse <Ivl:2> BB02 regmask=[allInt] minReg=1 last> | |
Interval 3: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #9 @31 RefTypeDef <Ivl:3> CAST BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[-O] | |
consume= 1 produce=1 | |
DefList: { N030.t132. CAST } | |
N032 ( 3, 2) [000016] ------------ * LCL_VAR long V03 loc0 NA REG NA | |
Interval 4: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #10 @33 RefTypeDef <Ivl:4> LCL_VAR BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N030.t132. CAST; N032.t16. LCL_VAR } | |
N034 ( 1, 1) [000017] ------------ * CNS_INT int 8 REG NA | |
Interval 5: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #11 @35 RefTypeDef <Ivl:5> CNS_INT BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N030.t132. CAST; N032.t16. LCL_VAR; N034.t17. CNS_INT } | |
N036 ( 2, 3) [000018] ------------ * CAST long <- int REG NA | |
<RefPosition #12 @36 RefTypeUse <Ivl:5> BB02 regmask=[allInt] minReg=1 last> | |
Interval 6: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #13 @37 RefTypeDef <Ivl:6> CAST BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=1 | |
DefList: { N030.t132. CAST; N032.t16. LCL_VAR; N036.t18. CAST } | |
N038 (???,???) [000136] -c---------- * LEA(b+(i*1)+0) long REG NA | |
Contained | |
DefList: { N030.t132. CAST; N032.t16. LCL_VAR; N036.t18. CAST } | |
N040 ( 8, 7) [000020] *c-XG------- * IND long REG NA | |
Contained | |
DefList: { N030.t132. CAST; N032.t16. LCL_VAR; N036.t18. CAST } | |
N042 ( 9, 8) [000021] ---XG------- * HWIntrinsic long PopCount REG NA | |
<RefPosition #14 @42 RefTypeUse <Ivl:4> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #15 @42 RefTypeUse <Ivl:6> BB02 regmask=[allInt] minReg=1 last> | |
Interval 7: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #16 @43 RefTypeDef <Ivl:7> HWIntrinsic BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I D>[--] | |
consume= 2 produce=1 | |
DefList: { N030.t132. CAST; N042.t21. HWIntrinsic } | |
N044 ( 10, 10) [000133] ---XG------- * CAST int <- long REG NA | |
<RefPosition #17 @44 RefTypeUse <Ivl:7> BB02 regmask=[allInt] minReg=1 last> | |
Interval 8: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #18 @45 RefTypeDef <Ivl:8> CAST BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=1 | |
DefList: { N030.t132. CAST; N044.t133. CAST } | |
N046 ( 19, 18) [000022] ---XG------- * ADD int REG NA | |
<RefPosition #19 @46 RefTypeUse <Ivl:3> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #20 @46 RefTypeUse <Ivl:8> BB02 regmask=[allInt] minReg=1 last> | |
Interval 9: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #21 @47 RefTypeDef <Ivl:9> ADD BB02 regmask=[allInt] minReg=1> | |
Assigning related <I3> to <I9> | |
+<TreeNodeInfo 1=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[-O] | |
consume= 2 produce=1 | |
DefList: { N046.t22. ADD } | |
N048 ( 3, 2) [000023] ------------ * LCL_VAR long V03 loc0 NA REG NA | |
Interval 10: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #22 @49 RefTypeDef <Ivl:10> LCL_VAR BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N046.t22. ADD; N048.t23. LCL_VAR } | |
N050 ( 1, 1) [000024] ------------ * CNS_INT int 2 REG NA | |
Interval 11: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #23 @51 RefTypeDef <Ivl:11> CNS_INT BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N046.t22. ADD; N048.t23. LCL_VAR; N050.t24. CNS_INT } | |
N052 ( 2, 3) [000025] ------------ * CAST long <- int REG NA | |
<RefPosition #24 @52 RefTypeUse <Ivl:11> BB02 regmask=[allInt] minReg=1 last> | |
Interval 12: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #25 @53 RefTypeDef <Ivl:12> CAST BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[-O] | |
consume= 1 produce=1 | |
DefList: { N046.t22. ADD; N048.t23. LCL_VAR; N052.t25. CAST } | |
N054 ( 1, 1) [000026] ------------ * CNS_INT int 8 REG NA | |
Interval 13: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #26 @55 RefTypeDef <Ivl:13> CNS_INT BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N046.t22. ADD; N048.t23. LCL_VAR; N052.t25. CAST; N054.t26. CNS_INT } | |
N056 ( 2, 3) [000027] ------------ * CAST long <- int REG NA | |
<RefPosition #27 @56 RefTypeUse <Ivl:13> BB02 regmask=[allInt] minReg=1 last> | |
Interval 14: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #28 @57 RefTypeDef <Ivl:14> CAST BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=1 | |
DefList: { N046.t22. ADD; N048.t23. LCL_VAR; N052.t25. CAST; N056.t27. CAST } | |
N058 ( 8, 9) [000028] ------------ * MUL long REG NA | |
<RefPosition #29 @58 RefTypeUse <Ivl:12> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #30 @58 RefTypeUse <Ivl:14> BB02 regmask=[allInt] minReg=1 last> | |
Interval 15: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #31 @59 RefTypeDef <Ivl:15> MUL BB02 regmask=[allInt] minReg=1> | |
Assigning related <I12> to <I15> | |
+<TreeNodeInfo 1=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 2 produce=1 | |
DefList: { N046.t22. ADD; N048.t23. LCL_VAR; N058.t28. MUL } | |
N060 (???,???) [000137] -c---------- * LEA(b+(i*1)+0) long REG NA | |
Contained | |
DefList: { N046.t22. ADD; N048.t23. LCL_VAR; N058.t28. MUL } | |
N062 ( 14, 13) [000030] *c-XG------- * IND long REG NA | |
Contained | |
DefList: { N046.t22. ADD; N048.t23. LCL_VAR; N058.t28. MUL } | |
N064 ( 15, 14) [000031] ---XG------- * HWIntrinsic long PopCount REG NA | |
<RefPosition #32 @64 RefTypeUse <Ivl:10> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #33 @64 RefTypeUse <Ivl:15> BB02 regmask=[allInt] minReg=1 last> | |
Interval 16: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #34 @65 RefTypeDef <Ivl:16> HWIntrinsic BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I D>[--] | |
consume= 2 produce=1 | |
DefList: { N046.t22. ADD; N064.t31. HWIntrinsic } | |
N066 ( 16, 16) [000131] ---XG------- * CAST int <- long REG NA | |
<RefPosition #35 @66 RefTypeUse <Ivl:16> BB02 regmask=[allInt] minReg=1 last> | |
Interval 17: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #36 @67 RefTypeDef <Ivl:17> CAST BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=1 | |
DefList: { N046.t22. ADD; N066.t131. CAST } | |
N068 ( 36, 35) [000032] ---XG------- * ADD int REG NA | |
<RefPosition #37 @68 RefTypeUse <Ivl:9> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #38 @68 RefTypeUse <Ivl:17> BB02 regmask=[allInt] minReg=1 last> | |
Interval 18: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #39 @69 RefTypeDef <Ivl:18> ADD BB02 regmask=[allInt] minReg=1> | |
Assigning related <I9> to <I18> | |
+<TreeNodeInfo 1=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[-O] | |
consume= 2 produce=1 | |
DefList: { N068.t32. ADD } | |
N070 ( 3, 2) [000033] ------------ * LCL_VAR long V03 loc0 NA REG NA | |
Interval 19: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #40 @71 RefTypeDef <Ivl:19> LCL_VAR BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N068.t32. ADD; N070.t33. LCL_VAR } | |
N072 ( 1, 1) [000034] ------------ * CNS_INT int 3 REG NA | |
Interval 20: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #41 @73 RefTypeDef <Ivl:20> CNS_INT BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N068.t32. ADD; N070.t33. LCL_VAR; N072.t34. CNS_INT } | |
N074 ( 2, 3) [000035] ------------ * CAST long <- int REG NA | |
<RefPosition #42 @74 RefTypeUse <Ivl:20> BB02 regmask=[allInt] minReg=1 last> | |
Interval 21: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #43 @75 RefTypeDef <Ivl:21> CAST BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[-O] | |
consume= 1 produce=1 | |
DefList: { N068.t32. ADD; N070.t33. LCL_VAR; N074.t35. CAST } | |
N076 ( 1, 1) [000036] ------------ * CNS_INT int 8 REG NA | |
Interval 22: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #44 @77 RefTypeDef <Ivl:22> CNS_INT BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N068.t32. ADD; N070.t33. LCL_VAR; N074.t35. CAST; N076.t36. CNS_INT } | |
N078 ( 2, 3) [000037] ------------ * CAST long <- int REG NA | |
<RefPosition #45 @78 RefTypeUse <Ivl:22> BB02 regmask=[allInt] minReg=1 last> | |
Interval 23: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #46 @79 RefTypeDef <Ivl:23> CAST BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=1 | |
DefList: { N068.t32. ADD; N070.t33. LCL_VAR; N074.t35. CAST; N078.t37. CAST } | |
N080 ( 8, 9) [000038] ------------ * MUL long REG NA | |
<RefPosition #47 @80 RefTypeUse <Ivl:21> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #48 @80 RefTypeUse <Ivl:23> BB02 regmask=[allInt] minReg=1 last> | |
Interval 24: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #49 @81 RefTypeDef <Ivl:24> MUL BB02 regmask=[allInt] minReg=1> | |
Assigning related <I21> to <I24> | |
+<TreeNodeInfo 1=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 2 produce=1 | |
DefList: { N068.t32. ADD; N070.t33. LCL_VAR; N080.t38. MUL } | |
N082 (???,???) [000138] -c---------- * LEA(b+(i*1)+0) long REG NA | |
Contained | |
DefList: { N068.t32. ADD; N070.t33. LCL_VAR; N080.t38. MUL } | |
N084 ( 14, 13) [000040] *c-XG------- * IND long REG NA | |
Contained | |
DefList: { N068.t32. ADD; N070.t33. LCL_VAR; N080.t38. MUL } | |
N086 ( 15, 14) [000041] ---XG------- * HWIntrinsic long PopCount REG NA | |
<RefPosition #50 @86 RefTypeUse <Ivl:19> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #51 @86 RefTypeUse <Ivl:24> BB02 regmask=[allInt] minReg=1 last> | |
Interval 25: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #52 @87 RefTypeDef <Ivl:25> HWIntrinsic BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I D>[--] | |
consume= 2 produce=1 | |
DefList: { N068.t32. ADD; N086.t41. HWIntrinsic } | |
N088 ( 16, 16) [000129] ---XG------- * CAST int <- long REG NA | |
<RefPosition #53 @88 RefTypeUse <Ivl:25> BB02 regmask=[allInt] minReg=1 last> | |
Interval 26: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #54 @89 RefTypeDef <Ivl:26> CAST BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=1 | |
DefList: { N068.t32. ADD; N088.t129. CAST } | |
N090 ( 53, 52) [000042] ---XG------- * ADD int REG NA | |
<RefPosition #55 @90 RefTypeUse <Ivl:18> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #56 @90 RefTypeUse <Ivl:26> BB02 regmask=[allInt] minReg=1 last> | |
Interval 27: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #57 @91 RefTypeDef <Ivl:27> ADD BB02 regmask=[allInt] minReg=1> | |
Assigning related <I18> to <I27> | |
+<TreeNodeInfo 1=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[-O] | |
consume= 2 produce=1 | |
DefList: { N090.t42. ADD } | |
N092 ( 3, 2) [000012] ------------ * LCL_VAR int V02 arg2 NA REG NA | |
Interval 28: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #58 @93 RefTypeDef <Ivl:28> LCL_VAR BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N090.t42. ADD; N092.t12. LCL_VAR } | |
N094 ( 57, 55) [000044] ---XG------- * SUB int REG NA | |
<RefPosition #59 @94 RefTypeUse <Ivl:28> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #60 @94 RefTypeUse <Ivl:27> BB02 regmask=[allInt] minReg=1 last> | |
Interval 29: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #61 @95 RefTypeDef <Ivl:29> SUB BB02 regmask=[allInt] minReg=1> | |
Assigning related <I28> to <I29> | |
+<TreeNodeInfo 1=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I D>[--] | |
consume= 2 produce=1 | |
DefList: { N094.t44. SUB } | |
N096 ( 61, 58) [000046] DA-XG------- * STORE_LCL_VAR int V02 arg2 NA REG NA | |
<RefPosition #62 @96 RefTypeUse <Ivl:29> BB02 regmask=[allInt] minReg=1 last> | |
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=0 | |
DefList: { } | |
N098 ( 16, 15) [000057] ------------ * IL_OFFSET void IL offset: 0x34 REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N100 ( 3, 2) [000048] -c---------- * LCL_VAR long V03 loc0 NA REG NA | |
Contained | |
DefList: { } | |
N102 ( 1, 1) [000049] ------------ * CNS_INT int 4 REG NA | |
Interval 30: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #63 @103 RefTypeDef <Ivl:30> CNS_INT BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N102.t49. CNS_INT } | |
N104 ( 2, 3) [000050] ------------ * CAST long <- int REG NA | |
<RefPosition #64 @104 RefTypeUse <Ivl:30> BB02 regmask=[allInt] minReg=1 last> | |
Interval 31: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #65 @105 RefTypeDef <Ivl:31> CAST BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[-O] | |
consume= 1 produce=1 | |
DefList: { N104.t50. CAST } | |
N106 ( 1, 1) [000051] ------------ * CNS_INT int 8 REG NA | |
Interval 32: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #66 @107 RefTypeDef <Ivl:32> CNS_INT BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N104.t50. CAST; N106.t51. CNS_INT } | |
N108 ( 2, 3) [000052] ------------ * CAST long <- int REG NA | |
<RefPosition #67 @108 RefTypeUse <Ivl:32> BB02 regmask=[allInt] minReg=1 last> | |
Interval 33: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #68 @109 RefTypeDef <Ivl:33> CAST BB02 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=1 | |
DefList: { N104.t50. CAST; N108.t52. CAST } | |
N110 ( 8, 9) [000053] ------------ * MUL long REG NA | |
<RefPosition #69 @110 RefTypeUse <Ivl:31> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #70 @110 RefTypeUse <Ivl:33> BB02 regmask=[allInt] minReg=1 last> | |
Interval 34: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #71 @111 RefTypeDef <Ivl:34> MUL BB02 regmask=[allInt] minReg=1> | |
Assigning related <I31> to <I34> | |
+<TreeNodeInfo 1=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 2 produce=1 | |
DefList: { N110.t53. MUL } | |
N112 ( 12, 12) [000054] ------------ * ADD long REG NA | |
<RefPosition #72 @112 RefTypeUse <Ivl:34> BB02 regmask=[allInt] minReg=1 last> | |
Interval 35: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #73 @113 RefTypeDef <Ivl:35> ADD BB02 regmask=[allInt] minReg=1> | |
Assigning related <I34> to <I35> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=1 | |
DefList: { N112.t54. ADD } | |
N114 ( 16, 15) [000056] DA---------- * STORE_LCL_VAR long V03 loc0 NA REG NA | |
<RefPosition #74 @114 RefTypeUse <Ivl:35> BB02 regmask=[allInt] minReg=1 last> | |
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=0 | |
NEW BLOCK BB04 | |
Setting BB04 as the predecessor for determining incoming variable registers of BB03 | |
<RefPosition #75 @116 RefTypeBB BB04 regmask=[] minReg=1> | |
DefList: { } | |
N118 ( 7, 5) [000062] ------------ * IL_OFFSET void IL offset: 0x43 REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N120 ( 3, 2) [000059] ------------ * LCL_VAR int V02 arg2 NA REG NA | |
Interval 36: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #76 @121 RefTypeDef <Ivl:36> LCL_VAR BB04 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N120.t59. LCL_VAR } | |
N122 ( 7, 5) [000061] DA---------- * STORE_LCL_VAR int V04 loc1 NA REG NA | |
<RefPosition #77 @122 RefTypeUse <Ivl:36> BB04 regmask=[allInt] minReg=1 last> | |
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=0 | |
NEW BLOCK BB06 | |
Setting BB06 as the predecessor for determining incoming variable registers of BB04 | |
<RefPosition #78 @124 RefTypeBB BB06 regmask=[] minReg=1> | |
DefList: { } | |
N126 ( 7, 6) [000068] ------------ * IL_OFFSET void IL offset: 0x59 REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N128 ( 3, 2) [000064] -c---------- * LCL_VAR int V02 arg2 NA REG NA | |
Contained | |
DefList: { } | |
N130 ( 1, 1) [000065] -c---------- * CNS_INT int 0 REG NA | |
Contained | |
DefList: { } | |
N132 ( 5, 4) [000066] J------N---- * GT void REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N134 ( 7, 6) [000067] ------------ * JTRUE void REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
NEW BLOCK BB05 | |
Setting BB05 as the predecessor for determining incoming variable registers of BB06 | |
<RefPosition #79 @136 RefTypeBB BB05 regmask=[] minReg=1> | |
DefList: { } | |
N138 ( 7, 5) [000073] ------------ * IL_OFFSET void IL offset: 0x47 REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N140 ( 3, 2) [000070] ------------ * LCL_VAR int V02 arg2 NA REG NA | |
Interval 37: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #80 @141 RefTypeDef <Ivl:37> LCL_VAR BB05 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N140.t70. LCL_VAR } | |
N142 ( 7, 5) [000072] DA---------- * STORE_LCL_VAR int V04 loc1 NA REG NA | |
<RefPosition #81 @142 RefTypeUse <Ivl:37> BB05 regmask=[allInt] minReg=1 last> | |
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=0 | |
DefList: { } | |
N144 ( 16, 13) [000082] ------------ * IL_OFFSET void IL offset: 0x49 REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N146 ( 3, 2) [000074] ------------ * LCL_VAR int V02 arg2 NA REG NA | |
Interval 38: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #82 @147 RefTypeDef <Ivl:38> LCL_VAR BB05 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N146.t74. LCL_VAR } | |
N148 ( 3, 2) [000075] ------------ * LCL_VAR long V03 loc0 NA REG NA | |
Interval 39: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #83 @149 RefTypeDef <Ivl:39> LCL_VAR BB05 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N146.t74. LCL_VAR; N148.t75. LCL_VAR } | |
N150 ( 6, 4) [000076] *c-XG------- * IND long REG NA | |
Contained | |
DefList: { N146.t74. LCL_VAR; N148.t75. LCL_VAR } | |
N152 ( 7, 5) [000077] ---XG------- * HWIntrinsic long PopCount REG NA | |
<RefPosition #84 @152 RefTypeUse <Ivl:39> BB05 regmask=[allInt] minReg=1 last> | |
Interval 40: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #85 @153 RefTypeDef <Ivl:40> HWIntrinsic BB05 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I D>[--] | |
consume= 1 produce=1 | |
DefList: { N146.t74. LCL_VAR; N152.t77. HWIntrinsic } | |
N154 ( 8, 7) [000078] ---XG------- * CAST int <- long REG NA | |
<RefPosition #86 @154 RefTypeUse <Ivl:40> BB05 regmask=[allInt] minReg=1 last> | |
Interval 41: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #87 @155 RefTypeDef <Ivl:41> CAST BB05 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[-O] | |
consume= 1 produce=1 | |
DefList: { N146.t74. LCL_VAR; N154.t78. CAST } | |
N156 ( 12, 10) [000079] ---XG------- * SUB int REG NA | |
<RefPosition #88 @156 RefTypeUse <Ivl:38> BB05 regmask=[allInt] minReg=1 last> | |
<RefPosition #89 @156 RefTypeUse <Ivl:41> BB05 regmask=[allInt] minReg=1 last> | |
Interval 42: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #90 @157 RefTypeDef <Ivl:42> SUB BB05 regmask=[allInt] minReg=1> | |
Assigning related <I38> to <I42> | |
+<TreeNodeInfo 1=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I D>[--] | |
consume= 2 produce=1 | |
DefList: { N156.t79. SUB } | |
N158 ( 16, 13) [000081] DA-XG------- * STORE_LCL_VAR int V02 arg2 NA REG NA | |
<RefPosition #91 @158 RefTypeUse <Ivl:42> BB05 regmask=[allInt] minReg=1 last> | |
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=0 | |
DefList: { } | |
N160 ( 10, 9) [000089] ------------ * IL_OFFSET void IL offset: 0x55 REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N162 ( 3, 2) [000083] -c---------- * LCL_VAR long V03 loc0 NA REG NA | |
Contained | |
DefList: { } | |
N164 ( 1, 1) [000084] ------------ * CNS_INT int 8 REG NA | |
Interval 43: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #92 @165 RefTypeDef <Ivl:43> CNS_INT BB05 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N164.t84. CNS_INT } | |
N166 ( 2, 3) [000085] ------------ * CAST long <- int REG NA | |
<RefPosition #93 @166 RefTypeUse <Ivl:43> BB05 regmask=[allInt] minReg=1 last> | |
Interval 44: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #94 @167 RefTypeDef <Ivl:44> CAST BB05 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=1 | |
DefList: { N166.t85. CAST } | |
N168 ( 6, 6) [000086] ------------ * ADD long REG NA | |
<RefPosition #95 @168 RefTypeUse <Ivl:44> BB05 regmask=[allInt] minReg=1 last> | |
Interval 45: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #96 @169 RefTypeDef <Ivl:45> ADD BB05 regmask=[allInt] minReg=1> | |
Assigning related <I44> to <I45> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=1 | |
DefList: { N168.t86. ADD } | |
N170 ( 10, 9) [000088] DA---------- * STORE_LCL_VAR long V03 loc0 NA REG NA | |
<RefPosition #97 @170 RefTypeUse <Ivl:45> BB05 regmask=[allInt] minReg=1 last> | |
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=0 | |
NEW BLOCK BB07 | |
Setting BB07 as the predecessor for determining incoming variable registers of BB06 | |
<RefPosition #98 @172 RefTypeBB BB07 regmask=[] minReg=1> | |
DefList: { } | |
N174 ( 10, 9) [000097] ------------ * IL_OFFSET void IL offset: 0x5d REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N176 ( 3, 2) [000091] ------------ * LCL_VAR long V03 loc0 NA REG NA | |
Interval 46: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #99 @177 RefTypeDef <Ivl:46> LCL_VAR BB07 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N176.t91. LCL_VAR } | |
N178 ( 1, 1) [000092] ------------ * CNS_INT int 8 REG NA | |
Interval 47: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #100 @179 RefTypeDef <Ivl:47> CNS_INT BB07 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N176.t91. LCL_VAR; N178.t92. CNS_INT } | |
N180 ( 2, 3) [000093] ------------ * CAST long <- int REG NA | |
<RefPosition #101 @180 RefTypeUse <Ivl:47> BB07 regmask=[allInt] minReg=1 last> | |
Interval 48: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #102 @181 RefTypeDef <Ivl:48> CAST BB07 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[-O] | |
consume= 1 produce=1 | |
DefList: { N176.t91. LCL_VAR; N180.t93. CAST } | |
N182 ( 6, 6) [000094] ------------ * SUB long REG NA | |
<RefPosition #103 @182 RefTypeUse <Ivl:46> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #104 @182 RefTypeUse <Ivl:48> BB07 regmask=[allInt] minReg=1 last> | |
Interval 49: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #105 @183 RefTypeDef <Ivl:49> SUB BB07 regmask=[allInt] minReg=1> | |
Assigning related <I46> to <I49> | |
+<TreeNodeInfo 1=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I D>[--] | |
consume= 2 produce=1 | |
DefList: { N182.t94. SUB } | |
N184 ( 10, 9) [000096] DA---------- * STORE_LCL_VAR long V03 loc0 NA REG NA | |
<RefPosition #106 @184 RefTypeUse <Ivl:49> BB07 regmask=[allInt] minReg=1 last> | |
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=0 | |
DefList: { } | |
N186 ( 26, 21) [000113] ------------ * IL_OFFSET void IL offset: 0x61 REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N188 ( 3, 2) [000100] ------------ * LCL_VAR int V04 loc1 NA REG NA | |
Interval 50: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #107 @189 RefTypeDef <Ivl:50> LCL_VAR BB07 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N188.t100. LCL_VAR } | |
N190 ( 1, 1) [000101] -c---------- * CNS_INT int -1 REG NA | |
Contained | |
DefList: { N188.t100. LCL_VAR } | |
N192 ( 5, 4) [000102] ------------ * ADD int REG NA | |
<RefPosition #108 @192 RefTypeUse <Ivl:50> BB07 regmask=[allInt] minReg=1 last> | |
Interval 51: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #109 @193 RefTypeDef <Ivl:51> ADD BB07 regmask=[allInt] minReg=1> | |
Assigning related <I50> to <I51> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=1 | |
DefList: { N192.t102. ADD } | |
N194 ( 1, 1) [000098] ------------ * CNS_INT int 1 REG NA | |
Interval 52: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #110 @195 RefTypeDef <Ivl:52> CNS_INT BB07 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N192.t102. ADD; N194.t98. CNS_INT } | |
N196 ( 2, 3) [000099] ------------ * CAST long <- int REG NA | |
<RefPosition #111 @196 RefTypeUse <Ivl:52> BB07 regmask=[allInt] minReg=1 last> | |
Interval 53: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #112 @197 RefTypeDef <Ivl:53> CAST BB07 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=1 | |
DefList: { N192.t102. ADD; N196.t99. CAST } | |
N198 ( 13, 10) [000105] ------------ * LSH long REG NA | |
<RefPosition #113 @198 RefTypeUse <Ivl:53> BB07 regmask=[rax rdx rbx rsi rdi r8-r15] minReg=1 last> | |
<RefPosition #114 @198 RefTypeFixedReg <Reg:rcx> BB07 regmask=[rcx] minReg=1> | |
<RefPosition #115 @198 RefTypeUse <Ivl:51> BB07 regmask=[rcx] minReg=1 last fixed> | |
<RefPosition #116 @199 RefTypeKill <Reg:rcx> BB07 regmask=[rcx] minReg=1> | |
Interval 54: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #117 @199 RefTypeDef <Ivl:54> LSH BB07 regmask=[rax rdx rbx rsi rdi r8-r15] minReg=1> | |
Assigning related <I53> to <I54> | |
+<TreeNodeInfo 1=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I D>[--] | |
consume= 2 produce=1 | |
DefList: { N198.t105. LSH } | |
N200 ( 3, 2) [000106] ------------ * LCL_VAR long V03 loc0 NA REG NA | |
Interval 55: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #118 @201 RefTypeDef <Ivl:55> LCL_VAR BB07 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N198.t105. LSH; N200.t106. LCL_VAR } | |
N202 ( 6, 4) [000107] *c-XG------- * IND long REG NA | |
Contained | |
DefList: { N198.t105. LSH; N200.t106. LCL_VAR } | |
N204 ( 20, 15) [000108] ---XG------- * HWIntrinsic long ParallelBitDeposit REG NA | |
<RefPosition #119 @204 RefTypeUse <Ivl:54> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #120 @204 RefTypeUse <Ivl:55> BB07 regmask=[allInt] minReg=1 last> | |
Interval 56: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #121 @205 RefTypeDef <Ivl:56> HWIntrinsic BB07 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[-O] | |
consume= 2 produce=1 | |
DefList: { N204.t108. HWIntrinsic } | |
N206 ( 21, 16) [000109] ---XG------- * HWIntrinsic long TrailingZeroCount REG NA | |
<RefPosition #122 @206 RefTypeUse <Ivl:56> BB07 regmask=[allInt] minReg=1 last> | |
Interval 57: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #123 @207 RefTypeDef <Ivl:57> HWIntrinsic BB07 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I D>[--] | |
consume= 1 produce=1 | |
DefList: { N206.t109. HWIntrinsic } | |
N208 ( 22, 18) [000110] ---XG------- * CAST int <- long REG NA | |
<RefPosition #124 @208 RefTypeUse <Ivl:57> BB07 regmask=[allInt] minReg=1 last> | |
Interval 58: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #125 @209 RefTypeDef <Ivl:58> CAST BB07 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=1 | |
DefList: { N208.t110. CAST } | |
N210 ( 26, 21) [000112] DA-XG------- * STORE_LCL_VAR int V05 loc2 NA REG NA | |
<RefPosition #126 @210 RefTypeUse <Ivl:58> BB07 regmask=[allInt] minReg=1 last> | |
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=0 | |
DefList: { } | |
N212 ( 40, 21) [000127] ------------ * IL_OFFSET void IL offset: 0x78 REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N214 ( 3, 2) [000114] ------------ * LCL_VAR long V03 loc0 NA REG NA | |
Interval 59: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #127 @215 RefTypeDef <Ivl:59> LCL_VAR BB07 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N214.t114. LCL_VAR } | |
N216 ( 3, 2) [000115] -c---------- * LCL_VAR long V00 arg0 NA REG NA | |
Contained | |
DefList: { N214.t114. LCL_VAR } | |
N218 ( 7, 5) [000116] ------------ * SUB long REG NA | |
<RefPosition #128 @218 RefTypeUse <Ivl:59> BB07 regmask=[allInt] minReg=1 last> | |
Interval 60: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #129 @219 RefTypeDef <Ivl:60> SUB BB07 regmask=[allInt] minReg=1> | |
Assigning related <I59> to <I60> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=1 | |
DefList: { N218.t116. SUB } | |
N220 ( 1, 1) [000117] ------------ * CNS_INT int 8 REG NA | |
Interval 61: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #130 @221 RefTypeDef <Ivl:61> CNS_INT BB07 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N218.t116. SUB; N220.t117. CNS_INT } | |
N222 ( 2, 3) [000118] ------------ * CAST long <- int REG NA | |
<RefPosition #131 @222 RefTypeUse <Ivl:61> BB07 regmask=[allInt] minReg=1 last> | |
Interval 62: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #132 @223 RefTypeDef <Ivl:62> CAST BB07 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[-O] | |
consume= 1 produce=1 | |
DefList: { N218.t116. SUB; N222.t118. CAST } | |
N224 ( 29, 11) [000119] ---X-------- * DIV long REG NA | |
<RefPosition #133 @224 RefTypeFixedReg <Reg:rax> BB07 regmask=[rax] minReg=1> | |
<RefPosition #134 @224 RefTypeUse <Ivl:60> BB07 regmask=[rax] minReg=1 last fixed> | |
<RefPosition #135 @224 RefTypeUse <Ivl:62> BB07 regmask=[rcx rbx rsi rdi r8-r15] minReg=1 last> | |
<RefPosition #136 @225 RefTypeKill <Reg:rax> BB07 regmask=[rax] minReg=1> | |
<RefPosition #137 @225 RefTypeKill <Reg:rdx> BB07 regmask=[rdx] minReg=1> | |
Interval 63: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #138 @225 RefTypeFixedReg <Reg:rax> BB07 regmask=[rax] minReg=1> | |
<RefPosition #139 @225 RefTypeDef <Ivl:63> DIV BB07 regmask=[rax] minReg=1 fixed> | |
Assigning related <I60> to <I63> | |
+<TreeNodeInfo 1=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I D>[--] | |
consume= 2 produce=1 | |
DefList: { N224.t119. DIV } | |
N226 ( 30, 13) [000134] ---X-------- * CAST int <- long REG NA | |
<RefPosition #140 @226 RefTypeUse <Ivl:63> BB07 regmask=[allInt] minReg=1 last> | |
Interval 64: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #141 @227 RefTypeDef <Ivl:64> CAST BB07 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[-O] | |
consume= 1 produce=1 | |
DefList: { N226.t134. CAST } | |
N228 ( 1, 1) [000120] -c---------- * CNS_INT int 64 REG NA | |
Contained | |
DefList: { N226.t134. CAST } | |
N230 ( 35, 17) [000122] ---X-------- * MUL int REG NA | |
<RefPosition #142 @230 RefTypeUse <Ivl:64> BB07 regmask=[allInt] minReg=1 last> | |
Interval 65: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #143 @231 RefTypeDef <Ivl:65> MUL BB07 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=1 | |
DefList: { N230.t122. MUL } | |
N232 ( 3, 2) [000124] -c---------- * LCL_VAR int V05 loc2 NA REG NA | |
Contained | |
DefList: { N230.t122. MUL } | |
N234 ( 39, 20) [000125] ---X-------- * ADD int REG NA | |
<RefPosition #144 @234 RefTypeUse <Ivl:65> BB07 regmask=[allInt] minReg=1 last> | |
Interval 66: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #145 @235 RefTypeDef <Ivl:66> ADD BB07 regmask=[allInt] minReg=1> | |
Assigning related <I65> to <I66> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=1 | |
DefList: { N234.t125. ADD } | |
N236 ( 40, 21) [000126] ---X-------- * RETURN int REG NA | |
<RefPosition #146 @236 RefTypeFixedReg <Reg:rax> BB07 regmask=[rax] minReg=1> | |
<RefPosition #147 @236 RefTypeUse <Ivl:66> BB07 regmask=[rax] minReg=1 last fixed> | |
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=0 | |
Linear scan intervals BEFORE VALIDATING INTERVALS: | |
Interval 0: RefPositions {#1@5 #2@6} physReg:NA Preferences=[allInt] | |
Interval 1: RefPositions {#5@25 #6@28} physReg:NA Preferences=[allInt] | |
Interval 2: (interfering uses) RefPositions {#7@29 #8@30} physReg:NA Preferences=[allInt] | |
Interval 3: RefPositions {#9@31 #19@46} physReg:NA Preferences=[allInt] | |
Interval 4: RefPositions {#10@33 #14@42} physReg:NA Preferences=[allInt] | |
Interval 5: (constant) RefPositions {#11@35 #12@36} physReg:NA Preferences=[allInt] | |
Interval 6: RefPositions {#13@37 #15@42} physReg:NA Preferences=[allInt] | |
Interval 7: (interfering uses) RefPositions {#16@43 #17@44} physReg:NA Preferences=[allInt] | |
Interval 8: RefPositions {#18@45 #20@46} physReg:NA Preferences=[allInt] | |
Interval 9: RefPositions {#21@47 #37@68} physReg:NA Preferences=[allInt] RelatedInterval <I3>[0000000001408C18] | |
Interval 10: RefPositions {#22@49 #32@64} physReg:NA Preferences=[allInt] | |
Interval 11: (constant) RefPositions {#23@51 #24@52} physReg:NA Preferences=[allInt] | |
Interval 12: RefPositions {#25@53 #29@58} physReg:NA Preferences=[allInt] | |
Interval 13: (constant) RefPositions {#26@55 #27@56} physReg:NA Preferences=[allInt] | |
Interval 14: RefPositions {#28@57 #30@58} physReg:NA Preferences=[allInt] | |
Interval 15: RefPositions {#31@59 #33@64} physReg:NA Preferences=[allInt] RelatedInterval <I12>[00000000014095A8] | |
Interval 16: (interfering uses) RefPositions {#34@65 #35@66} physReg:NA Preferences=[allInt] | |
Interval 17: RefPositions {#36@67 #38@68} physReg:NA Preferences=[allInt] | |
Interval 18: RefPositions {#39@69 #55@90} physReg:NA Preferences=[allInt] RelatedInterval <I9>[00000000014092F8] | |
Interval 19: RefPositions {#40@71 #50@86} physReg:NA Preferences=[allInt] | |
Interval 20: (constant) RefPositions {#41@73 #42@74} physReg:NA Preferences=[allInt] | |
Interval 21: RefPositions {#43@75 #47@80} physReg:NA Preferences=[allInt] | |
Interval 22: (constant) RefPositions {#44@77 #45@78} physReg:NA Preferences=[allInt] | |
Interval 23: RefPositions {#46@79 #48@80} physReg:NA Preferences=[allInt] | |
Interval 24: RefPositions {#49@81 #51@86} physReg:NA Preferences=[allInt] RelatedInterval <I21>[0000000001409FB8] | |
Interval 25: (interfering uses) RefPositions {#52@87 #53@88} physReg:NA Preferences=[allInt] | |
Interval 26: RefPositions {#54@89 #56@90} physReg:NA Preferences=[allInt] | |
Interval 27: RefPositions {#57@91 #60@94} physReg:NA Preferences=[allInt] RelatedInterval <I18>[0000000001409D08] | |
Interval 28: RefPositions {#58@93 #59@94} physReg:NA Preferences=[allInt] | |
Interval 29: (interfering uses) RefPositions {#61@95 #62@96} physReg:NA Preferences=[allInt] RelatedInterval <I28>[000000000140A7E8] | |
Interval 30: (constant) RefPositions {#63@103 #64@104} physReg:NA Preferences=[allInt] | |
Interval 31: RefPositions {#65@105 #69@110} physReg:NA Preferences=[allInt] | |
Interval 32: (constant) RefPositions {#66@107 #67@108} physReg:NA Preferences=[allInt] | |
Interval 33: RefPositions {#68@109 #70@110} physReg:NA Preferences=[allInt] | |
Interval 34: RefPositions {#71@111 #72@112} physReg:NA Preferences=[allInt] RelatedInterval <I31>[000000000140AC18] | |
Interval 35: RefPositions {#73@113 #74@114} physReg:NA Preferences=[allInt] RelatedInterval <I34>[000000000140AF48] | |
Interval 36: RefPositions {#76@121 #77@122} physReg:NA Preferences=[allInt] | |
Interval 37: RefPositions {#80@141 #81@142} physReg:NA Preferences=[allInt] | |
Interval 38: RefPositions {#82@147 #88@156} physReg:NA Preferences=[allInt] | |
Interval 39: RefPositions {#83@149 #84@152} physReg:NA Preferences=[allInt] | |
Interval 40: (interfering uses) RefPositions {#85@153 #86@154} physReg:NA Preferences=[allInt] | |
Interval 41: RefPositions {#87@155 #89@156} physReg:NA Preferences=[allInt] | |
Interval 42: (interfering uses) RefPositions {#90@157 #91@158} physReg:NA Preferences=[allInt] RelatedInterval <I38>[000000000140B708] | |
Interval 43: (constant) RefPositions {#92@165 #93@166} physReg:NA Preferences=[allInt] | |
Interval 44: RefPositions {#94@167 #95@168} physReg:NA Preferences=[allInt] | |
Interval 45: RefPositions {#96@169 #97@170} physReg:NA Preferences=[allInt] RelatedInterval <I44>[000000000140BE68] | |
Interval 46: RefPositions {#99@177 #103@182} physReg:NA Preferences=[allInt] | |
Interval 47: (constant) RefPositions {#100@179 #101@180} physReg:NA Preferences=[allInt] | |
Interval 48: RefPositions {#102@181 #104@182} physReg:NA Preferences=[allInt] | |
Interval 49: (interfering uses) RefPositions {#105@183 #106@184} physReg:NA Preferences=[allInt] RelatedInterval <I46>[000000000140C148] | |
Interval 50: RefPositions {#107@189 #108@192} physReg:NA Preferences=[allInt] | |
Interval 51: RefPositions {#109@193 #115@198} physReg:NA Preferences=[rcx] RelatedInterval <I50>[000000000140C608] | |
Interval 52: (constant) RefPositions {#110@195 #111@196} physReg:NA Preferences=[allInt] | |
Interval 53: RefPositions {#112@197 #113@198} physReg:NA Preferences=[rax rdx rbx rsi rdi r8-r15] | |
Interval 54: (interfering uses) RefPositions {#117@199 #119@204} physReg:NA Preferences=[rax rdx rbx rsi rdi r8-r15] RelatedInterval <I53>[000000000140C938] | |
Interval 55: RefPositions {#118@201 #120@204} physReg:NA Preferences=[allInt] | |
Interval 56: RefPositions {#121@205 #122@206} physReg:NA Preferences=[allInt] | |
Interval 57: (interfering uses) RefPositions {#123@207 #124@208} physReg:NA Preferences=[allInt] | |
Interval 58: RefPositions {#125@209 #126@210} physReg:NA Preferences=[allInt] | |
Interval 59: RefPositions {#127@215 #128@218} physReg:NA Preferences=[allInt] | |
Interval 60: RefPositions {#129@219 #134@224} physReg:NA Preferences=[rax] RelatedInterval <I59>[000000000140D118] | |
Interval 61: (constant) RefPositions {#130@221 #131@222} physReg:NA Preferences=[allInt] | |
Interval 62: RefPositions {#132@223 #135@224} physReg:NA Preferences=[rcx rbx rsi rdi r8-r15] | |
Interval 63: (interfering uses) RefPositions {#139@225 #140@226} physReg:NA Preferences=[rax] RelatedInterval <I60>[000000000140D268] | |
Interval 64: RefPositions {#141@227 #142@230} physReg:NA Preferences=[allInt] | |
Interval 65: RefPositions {#143@231 #144@234} physReg:NA Preferences=[allInt] | |
Interval 66: RefPositions {#145@235 #147@236} physReg:NA Preferences=[rax] RelatedInterval <I65>[000000000140D8F8] | |
------------ | |
REFPOSITIONS BEFORE VALIDATING INTERVALS: | |
------------ | |
<RefPosition #0 @0 RefTypeBB BB01 regmask=[] minReg=1> | |
<RefPosition #1 @5 RefTypeDef <Ivl:0> LCL_VAR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #2 @6 RefTypeUse <Ivl:0> BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #3 @8 RefTypeBB BB03 regmask=[] minReg=1> | |
<RefPosition #4 @20 RefTypeBB BB02 regmask=[] minReg=1> | |
<RefPosition #5 @25 RefTypeDef <Ivl:1> LCL_VAR BB02 regmask=[allInt] minReg=1> | |
<RefPosition #6 @28 RefTypeUse <Ivl:1> BB02 regmask=[allInt] minReg=1 last delay> | |
<RefPosition #7 @29 RefTypeDef <Ivl:2> HWIntrinsic BB02 regmask=[allInt] minReg=1> | |
<RefPosition #8 @30 RefTypeUse <Ivl:2> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #9 @31 RefTypeDef <Ivl:3> CAST BB02 regmask=[allInt] minReg=1> | |
<RefPosition #10 @33 RefTypeDef <Ivl:4> LCL_VAR BB02 regmask=[allInt] minReg=1> | |
<RefPosition #11 @35 RefTypeDef <Ivl:5> CNS_INT BB02 regmask=[allInt] minReg=1> | |
<RefPosition #12 @36 RefTypeUse <Ivl:5> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #13 @37 RefTypeDef <Ivl:6> CAST BB02 regmask=[allInt] minReg=1> | |
<RefPosition #14 @42 RefTypeUse <Ivl:4> BB02 regmask=[allInt] minReg=1 last delay> | |
<RefPosition #15 @42 RefTypeUse <Ivl:6> BB02 regmask=[allInt] minReg=1 last delay> | |
<RefPosition #16 @43 RefTypeDef <Ivl:7> HWIntrinsic BB02 regmask=[allInt] minReg=1> | |
<RefPosition #17 @44 RefTypeUse <Ivl:7> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #18 @45 RefTypeDef <Ivl:8> CAST BB02 regmask=[allInt] minReg=1> | |
<RefPosition #19 @46 RefTypeUse <Ivl:3> BB02 regmask=[allInt] minReg=1 last regOptional> | |
<RefPosition #20 @46 RefTypeUse <Ivl:8> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #21 @47 RefTypeDef <Ivl:9> ADD BB02 regmask=[allInt] minReg=1> | |
<RefPosition #22 @49 RefTypeDef <Ivl:10> LCL_VAR BB02 regmask=[allInt] minReg=1> | |
<RefPosition #23 @51 RefTypeDef <Ivl:11> CNS_INT BB02 regmask=[allInt] minReg=1> | |
<RefPosition #24 @52 RefTypeUse <Ivl:11> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #25 @53 RefTypeDef <Ivl:12> CAST BB02 regmask=[allInt] minReg=1> | |
<RefPosition #26 @55 RefTypeDef <Ivl:13> CNS_INT BB02 regmask=[allInt] minReg=1> | |
<RefPosition #27 @56 RefTypeUse <Ivl:13> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #28 @57 RefTypeDef <Ivl:14> CAST BB02 regmask=[allInt] minReg=1> | |
<RefPosition #29 @58 RefTypeUse <Ivl:12> BB02 regmask=[allInt] minReg=1 last regOptional> | |
<RefPosition #30 @58 RefTypeUse <Ivl:14> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #31 @59 RefTypeDef <Ivl:15> MUL BB02 regmask=[allInt] minReg=1> | |
<RefPosition #32 @64 RefTypeUse <Ivl:10> BB02 regmask=[allInt] minReg=1 last delay> | |
<RefPosition #33 @64 RefTypeUse <Ivl:15> BB02 regmask=[allInt] minReg=1 last delay> | |
<RefPosition #34 @65 RefTypeDef <Ivl:16> HWIntrinsic BB02 regmask=[allInt] minReg=1> | |
<RefPosition #35 @66 RefTypeUse <Ivl:16> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #36 @67 RefTypeDef <Ivl:17> CAST BB02 regmask=[allInt] minReg=1> | |
<RefPosition #37 @68 RefTypeUse <Ivl:9> BB02 regmask=[allInt] minReg=1 last regOptional> | |
<RefPosition #38 @68 RefTypeUse <Ivl:17> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #39 @69 RefTypeDef <Ivl:18> ADD BB02 regmask=[allInt] minReg=1> | |
<RefPosition #40 @71 RefTypeDef <Ivl:19> LCL_VAR BB02 regmask=[allInt] minReg=1> | |
<RefPosition #41 @73 RefTypeDef <Ivl:20> CNS_INT BB02 regmask=[allInt] minReg=1> | |
<RefPosition #42 @74 RefTypeUse <Ivl:20> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #43 @75 RefTypeDef <Ivl:21> CAST BB02 regmask=[allInt] minReg=1> | |
<RefPosition #44 @77 RefTypeDef <Ivl:22> CNS_INT BB02 regmask=[allInt] minReg=1> | |
<RefPosition #45 @78 RefTypeUse <Ivl:22> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #46 @79 RefTypeDef <Ivl:23> CAST BB02 regmask=[allInt] minReg=1> | |
<RefPosition #47 @80 RefTypeUse <Ivl:21> BB02 regmask=[allInt] minReg=1 last regOptional> | |
<RefPosition #48 @80 RefTypeUse <Ivl:23> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #49 @81 RefTypeDef <Ivl:24> MUL BB02 regmask=[allInt] minReg=1> | |
<RefPosition #50 @86 RefTypeUse <Ivl:19> BB02 regmask=[allInt] minReg=1 last delay> | |
<RefPosition #51 @86 RefTypeUse <Ivl:24> BB02 regmask=[allInt] minReg=1 last delay> | |
<RefPosition #52 @87 RefTypeDef <Ivl:25> HWIntrinsic BB02 regmask=[allInt] minReg=1> | |
<RefPosition #53 @88 RefTypeUse <Ivl:25> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #54 @89 RefTypeDef <Ivl:26> CAST BB02 regmask=[allInt] minReg=1> | |
<RefPosition #55 @90 RefTypeUse <Ivl:18> BB02 regmask=[allInt] minReg=1 last regOptional> | |
<RefPosition #56 @90 RefTypeUse <Ivl:26> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #57 @91 RefTypeDef <Ivl:27> ADD BB02 regmask=[allInt] minReg=1> | |
<RefPosition #58 @93 RefTypeDef <Ivl:28> LCL_VAR BB02 regmask=[allInt] minReg=1> | |
<RefPosition #59 @94 RefTypeUse <Ivl:28> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #60 @94 RefTypeUse <Ivl:27> BB02 regmask=[allInt] minReg=1 last delay regOptional> | |
<RefPosition #61 @95 RefTypeDef <Ivl:29> SUB BB02 regmask=[allInt] minReg=1> | |
<RefPosition #62 @96 RefTypeUse <Ivl:29> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #63 @103 RefTypeDef <Ivl:30> CNS_INT BB02 regmask=[allInt] minReg=1> | |
<RefPosition #64 @104 RefTypeUse <Ivl:30> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #65 @105 RefTypeDef <Ivl:31> CAST BB02 regmask=[allInt] minReg=1> | |
<RefPosition #66 @107 RefTypeDef <Ivl:32> CNS_INT BB02 regmask=[allInt] minReg=1> | |
<RefPosition #67 @108 RefTypeUse <Ivl:32> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #68 @109 RefTypeDef <Ivl:33> CAST BB02 regmask=[allInt] minReg=1> | |
<RefPosition #69 @110 RefTypeUse <Ivl:31> BB02 regmask=[allInt] minReg=1 last regOptional> | |
<RefPosition #70 @110 RefTypeUse <Ivl:33> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #71 @111 RefTypeDef <Ivl:34> MUL BB02 regmask=[allInt] minReg=1> | |
<RefPosition #72 @112 RefTypeUse <Ivl:34> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #73 @113 RefTypeDef <Ivl:35> ADD BB02 regmask=[allInt] minReg=1> | |
<RefPosition #74 @114 RefTypeUse <Ivl:35> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #75 @116 RefTypeBB BB04 regmask=[] minReg=1> | |
<RefPosition #76 @121 RefTypeDef <Ivl:36> LCL_VAR BB04 regmask=[allInt] minReg=1> | |
<RefPosition #77 @122 RefTypeUse <Ivl:36> BB04 regmask=[allInt] minReg=1 last> | |
<RefPosition #78 @124 RefTypeBB BB06 regmask=[] minReg=1> | |
<RefPosition #79 @136 RefTypeBB BB05 regmask=[] minReg=1> | |
<RefPosition #80 @141 RefTypeDef <Ivl:37> LCL_VAR BB05 regmask=[allInt] minReg=1> | |
<RefPosition #81 @142 RefTypeUse <Ivl:37> BB05 regmask=[allInt] minReg=1 last> | |
<RefPosition #82 @147 RefTypeDef <Ivl:38> LCL_VAR BB05 regmask=[allInt] minReg=1> | |
<RefPosition #83 @149 RefTypeDef <Ivl:39> LCL_VAR BB05 regmask=[allInt] minReg=1> | |
<RefPosition #84 @152 RefTypeUse <Ivl:39> BB05 regmask=[allInt] minReg=1 last delay> | |
<RefPosition #85 @153 RefTypeDef <Ivl:40> HWIntrinsic BB05 regmask=[allInt] minReg=1> | |
<RefPosition #86 @154 RefTypeUse <Ivl:40> BB05 regmask=[allInt] minReg=1 last> | |
<RefPosition #87 @155 RefTypeDef <Ivl:41> CAST BB05 regmask=[allInt] minReg=1> | |
<RefPosition #88 @156 RefTypeUse <Ivl:38> BB05 regmask=[allInt] minReg=1 last> | |
<RefPosition #89 @156 RefTypeUse <Ivl:41> BB05 regmask=[allInt] minReg=1 last delay regOptional> | |
<RefPosition #90 @157 RefTypeDef <Ivl:42> SUB BB05 regmask=[allInt] minReg=1> | |
<RefPosition #91 @158 RefTypeUse <Ivl:42> BB05 regmask=[allInt] minReg=1 last> | |
<RefPosition #92 @165 RefTypeDef <Ivl:43> CNS_INT BB05 regmask=[allInt] minReg=1> | |
<RefPosition #93 @166 RefTypeUse <Ivl:43> BB05 regmask=[allInt] minReg=1 last> | |
<RefPosition #94 @167 RefTypeDef <Ivl:44> CAST BB05 regmask=[allInt] minReg=1> | |
<RefPosition #95 @168 RefTypeUse <Ivl:44> BB05 regmask=[allInt] minReg=1 last> | |
<RefPosition #96 @169 RefTypeDef <Ivl:45> ADD BB05 regmask=[allInt] minReg=1> | |
<RefPosition #97 @170 RefTypeUse <Ivl:45> BB05 regmask=[allInt] minReg=1 last> | |
<RefPosition #98 @172 RefTypeBB BB07 regmask=[] minReg=1> | |
<RefPosition #99 @177 RefTypeDef <Ivl:46> LCL_VAR BB07 regmask=[allInt] minReg=1> | |
<RefPosition #100 @179 RefTypeDef <Ivl:47> CNS_INT BB07 regmask=[allInt] minReg=1> | |
<RefPosition #101 @180 RefTypeUse <Ivl:47> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #102 @181 RefTypeDef <Ivl:48> CAST BB07 regmask=[allInt] minReg=1> | |
<RefPosition #103 @182 RefTypeUse <Ivl:46> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #104 @182 RefTypeUse <Ivl:48> BB07 regmask=[allInt] minReg=1 last delay regOptional> | |
<RefPosition #105 @183 RefTypeDef <Ivl:49> SUB BB07 regmask=[allInt] minReg=1> | |
<RefPosition #106 @184 RefTypeUse <Ivl:49> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #107 @189 RefTypeDef <Ivl:50> LCL_VAR BB07 regmask=[allInt] minReg=1> | |
<RefPosition #108 @192 RefTypeUse <Ivl:50> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #109 @193 RefTypeDef <Ivl:51> ADD BB07 regmask=[rcx] minReg=1> | |
<RefPosition #110 @195 RefTypeDef <Ivl:52> CNS_INT BB07 regmask=[allInt] minReg=1> | |
<RefPosition #111 @196 RefTypeUse <Ivl:52> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #112 @197 RefTypeDef <Ivl:53> CAST BB07 regmask=[rax rdx rbx rsi rdi r8-r15] minReg=1> | |
<RefPosition #113 @198 RefTypeUse <Ivl:53> BB07 regmask=[rax rdx rbx rsi rdi r8-r15] minReg=1 last> | |
<RefPosition #114 @198 RefTypeFixedReg <Reg:rcx> BB07 regmask=[rcx] minReg=1> | |
<RefPosition #115 @198 RefTypeUse <Ivl:51> BB07 regmask=[rcx] minReg=1 last fixed delay> | |
<RefPosition #116 @199 RefTypeKill <Reg:rcx> BB07 regmask=[rcx] minReg=1 last> | |
<RefPosition #117 @199 RefTypeDef <Ivl:54> LSH BB07 regmask=[rax rdx rbx rsi rdi r8-r15] minReg=1> | |
<RefPosition #118 @201 RefTypeDef <Ivl:55> LCL_VAR BB07 regmask=[allInt] minReg=1> | |
<RefPosition #119 @204 RefTypeUse <Ivl:54> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #120 @204 RefTypeUse <Ivl:55> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #121 @205 RefTypeDef <Ivl:56> HWIntrinsic BB07 regmask=[allInt] minReg=1> | |
<RefPosition #122 @206 RefTypeUse <Ivl:56> BB07 regmask=[allInt] minReg=1 last delay regOptional> | |
<RefPosition #123 @207 RefTypeDef <Ivl:57> HWIntrinsic BB07 regmask=[allInt] minReg=1> | |
<RefPosition #124 @208 RefTypeUse <Ivl:57> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #125 @209 RefTypeDef <Ivl:58> CAST BB07 regmask=[allInt] minReg=1> | |
<RefPosition #126 @210 RefTypeUse <Ivl:58> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #127 @215 RefTypeDef <Ivl:59> LCL_VAR BB07 regmask=[allInt] minReg=1> | |
<RefPosition #128 @218 RefTypeUse <Ivl:59> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #129 @219 RefTypeDef <Ivl:60> SUB BB07 regmask=[rax] minReg=1> | |
<RefPosition #130 @221 RefTypeDef <Ivl:61> CNS_INT BB07 regmask=[allInt] minReg=1> | |
<RefPosition #131 @222 RefTypeUse <Ivl:61> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #132 @223 RefTypeDef <Ivl:62> CAST BB07 regmask=[rcx rbx rsi rdi r8-r15] minReg=1> | |
<RefPosition #133 @224 RefTypeFixedReg <Reg:rax> BB07 regmask=[rax] minReg=1> | |
<RefPosition #134 @224 RefTypeUse <Ivl:60> BB07 regmask=[rax] minReg=1 last fixed> | |
<RefPosition #135 @224 RefTypeUse <Ivl:62> BB07 regmask=[rcx rbx rsi rdi r8-r15] minReg=1 last delay regOptional> | |
<RefPosition #136 @225 RefTypeKill <Reg:rax> BB07 regmask=[rax] minReg=1 last> | |
<RefPosition #137 @225 RefTypeKill <Reg:rdx> BB07 regmask=[rdx] minReg=1 last> | |
<RefPosition #138 @225 RefTypeFixedReg <Reg:rax> BB07 regmask=[rax] minReg=1> | |
<RefPosition #139 @225 RefTypeDef <Ivl:63> DIV BB07 regmask=[rax] minReg=1 fixed> | |
<RefPosition #140 @226 RefTypeUse <Ivl:63> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #141 @227 RefTypeDef <Ivl:64> CAST BB07 regmask=[allInt] minReg=1> | |
<RefPosition #142 @230 RefTypeUse <Ivl:64> BB07 regmask=[allInt] minReg=1 last regOptional> | |
<RefPosition #143 @231 RefTypeDef <Ivl:65> MUL BB07 regmask=[allInt] minReg=1> | |
<RefPosition #144 @234 RefTypeUse <Ivl:65> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #145 @235 RefTypeDef <Ivl:66> ADD BB07 regmask=[rax] minReg=1> | |
<RefPosition #146 @236 RefTypeFixedReg <Reg:rax> BB07 regmask=[rax] minReg=1> | |
<RefPosition #147 @236 RefTypeUse <Ivl:66> BB07 regmask=[rax] minReg=1 last fixed> | |
TUPLE STYLE DUMP WITH REF POSITIONS | |
Incoming Parameters: | |
BB01 [000..004) -> BB03 (always), preds={} succs={BB03} | |
===== | |
N002. IL_OFFSET IL offset: 0x0 REG NA | |
N004. V00 MEM | |
Def:<I0>(#1) | |
N006. V03 MEM | |
Use:<I0>(#2) * | |
BB03 [03B..043) -> BB02 (cond), preds={BB01,BB02} succs={BB04,BB02} | |
===== | |
N010. IL_OFFSET IL offset: 0x3b REG NA | |
N012. V02 MEM | |
N014. CNS_INT 256 REG NA | |
N016. GE | |
N018. JTRUE | |
BB02 [004..03B), preds={BB03} succs={BB03} | |
===== | |
N022. IL_OFFSET IL offset: 0x4 REG NA | |
N024. V03 MEM | |
Def:<I1>(#5) | |
N026. IND | |
N028. HWIntrinsic | |
Use:<I1>(#6) * | |
Def:<I2>(#7) | |
N030. CAST | |
Use:<I2>(#8) * | |
Def:<I3>(#9) | |
N032. V03 MEM | |
Def:<I4>(#10) | |
N034. CNS_INT 8 REG NA | |
Def:<I5>(#11) | |
N036. CAST | |
Use:<I5>(#12) * | |
Def:<I6>(#13) | |
N038. LEA(b+(i*1)+0) | |
N040. IND | |
N042. HWIntrinsic | |
Use:<I4>(#14) * | |
Use:<I6>(#15) * | |
Def:<I7>(#16) | |
N044. CAST | |
Use:<I7>(#17) * | |
Def:<I8>(#18) | |
N046. ADD | |
Use:<I3>(#19) * | |
Use:<I8>(#20) * | |
Def:<I9>(#21) Pref:<I3> | |
N048. V03 MEM | |
Def:<I10>(#22) | |
N050. CNS_INT 2 REG NA | |
Def:<I11>(#23) | |
N052. CAST | |
Use:<I11>(#24) * | |
Def:<I12>(#25) | |
N054. CNS_INT 8 REG NA | |
Def:<I13>(#26) | |
N056. CAST | |
Use:<I13>(#27) * | |
Def:<I14>(#28) | |
N058. MUL | |
Use:<I12>(#29) * | |
Use:<I14>(#30) * | |
Def:<I15>(#31) Pref:<I12> | |
N060. LEA(b+(i*1)+0) | |
N062. IND | |
N064. HWIntrinsic | |
Use:<I10>(#32) * | |
Use:<I15>(#33) * | |
Def:<I16>(#34) | |
N066. CAST | |
Use:<I16>(#35) * | |
Def:<I17>(#36) | |
N068. ADD | |
Use:<I9>(#37) * | |
Use:<I17>(#38) * | |
Def:<I18>(#39) Pref:<I9> | |
N070. V03 MEM | |
Def:<I19>(#40) | |
N072. CNS_INT 3 REG NA | |
Def:<I20>(#41) | |
N074. CAST | |
Use:<I20>(#42) * | |
Def:<I21>(#43) | |
N076. CNS_INT 8 REG NA | |
Def:<I22>(#44) | |
N078. CAST | |
Use:<I22>(#45) * | |
Def:<I23>(#46) | |
N080. MUL | |
Use:<I21>(#47) * | |
Use:<I23>(#48) * | |
Def:<I24>(#49) Pref:<I21> | |
N082. LEA(b+(i*1)+0) | |
N084. IND | |
N086. HWIntrinsic | |
Use:<I19>(#50) * | |
Use:<I24>(#51) * | |
Def:<I25>(#52) | |
N088. CAST | |
Use:<I25>(#53) * | |
Def:<I26>(#54) | |
N090. ADD | |
Use:<I18>(#55) * | |
Use:<I26>(#56) * | |
Def:<I27>(#57) Pref:<I18> | |
N092. V02 MEM | |
Def:<I28>(#58) | |
N094. SUB | |
Use:<I28>(#59) * | |
Use:<I27>(#60) * | |
Def:<I29>(#61) Pref:<I28> | |
N096. V02 MEM | |
Use:<I29>(#62) * | |
N098. IL_OFFSET IL offset: 0x34 REG NA | |
N100. V03 MEM | |
N102. CNS_INT 4 REG NA | |
Def:<I30>(#63) | |
N104. CAST | |
Use:<I30>(#64) * | |
Def:<I31>(#65) | |
N106. CNS_INT 8 REG NA | |
Def:<I32>(#66) | |
N108. CAST | |
Use:<I32>(#67) * | |
Def:<I33>(#68) | |
N110. MUL | |
Use:<I31>(#69) * | |
Use:<I33>(#70) * | |
Def:<I34>(#71) Pref:<I31> | |
N112. ADD | |
Use:<I34>(#72) * | |
Def:<I35>(#73) Pref:<I34> | |
N114. V03 MEM | |
Use:<I35>(#74) * | |
BB04 [043..047) -> BB06 (always), preds={BB03} succs={BB06} | |
===== | |
N118. IL_OFFSET IL offset: 0x43 REG NA | |
N120. V02 MEM | |
Def:<I36>(#76) | |
N122. V04 MEM | |
Use:<I36>(#77) * | |
BB06 [059..05D) -> BB05 (cond), preds={BB04,BB05} succs={BB07,BB05} | |
===== | |
N126. IL_OFFSET IL offset: 0x59 REG NA | |
N128. V02 MEM | |
N130. CNS_INT 0 REG NA | |
N132. GT | |
N134. JTRUE | |
BB05 [047..059), preds={BB06} succs={BB06} | |
===== | |
N138. IL_OFFSET IL offset: 0x47 REG NA | |
N140. V02 MEM | |
Def:<I37>(#80) | |
N142. V04 MEM | |
Use:<I37>(#81) * | |
N144. IL_OFFSET IL offset: 0x49 REG NA | |
N146. V02 MEM | |
Def:<I38>(#82) | |
N148. V03 MEM | |
Def:<I39>(#83) | |
N150. IND | |
N152. HWIntrinsic | |
Use:<I39>(#84) * | |
Def:<I40>(#85) | |
N154. CAST | |
Use:<I40>(#86) * | |
Def:<I41>(#87) | |
N156. SUB | |
Use:<I38>(#88) * | |
Use:<I41>(#89) * | |
Def:<I42>(#90) Pref:<I38> | |
N158. V02 MEM | |
Use:<I42>(#91) * | |
N160. IL_OFFSET IL offset: 0x55 REG NA | |
N162. V03 MEM | |
N164. CNS_INT 8 REG NA | |
Def:<I43>(#92) | |
N166. CAST | |
Use:<I43>(#93) * | |
Def:<I44>(#94) | |
N168. ADD | |
Use:<I44>(#95) * | |
Def:<I45>(#96) Pref:<I44> | |
N170. V03 MEM | |
Use:<I45>(#97) * | |
BB07 [05D..086) (return), preds={BB06} succs={} | |
===== | |
N174. IL_OFFSET IL offset: 0x5d REG NA | |
N176. V03 MEM | |
Def:<I46>(#99) | |
N178. CNS_INT 8 REG NA | |
Def:<I47>(#100) | |
N180. CAST | |
Use:<I47>(#101) * | |
Def:<I48>(#102) | |
N182. SUB | |
Use:<I46>(#103) * | |
Use:<I48>(#104) * | |
Def:<I49>(#105) Pref:<I46> | |
N184. V03 MEM | |
Use:<I49>(#106) * | |
N186. IL_OFFSET IL offset: 0x61 REG NA | |
N188. V04 MEM | |
Def:<I50>(#107) | |
N190. CNS_INT -1 REG NA | |
N192. ADD | |
Use:<I50>(#108) * | |
Def:<I51>(#109) Pref:<I50> | |
N194. CNS_INT 1 REG NA | |
Def:<I52>(#110) | |
N196. CAST | |
Use:<I52>(#111) * | |
Def:<I53>(#112) | |
N198. LSH | |
Use:<I53>(#113) * | |
Use:<I51>(#115) Fixed:rcx(#114) * | |
Kill: rcx | |
Def:<I54>(#117) Pref:<I53> | |
N200. V03 MEM | |
Def:<I55>(#118) | |
N202. IND | |
N204. HWIntrinsic | |
Use:<I54>(#119) * | |
Use:<I55>(#120) * | |
Def:<I56>(#121) | |
N206. HWIntrinsic | |
Use:<I56>(#122) * | |
Def:<I57>(#123) | |
N208. CAST | |
Use:<I57>(#124) * | |
Def:<I58>(#125) | |
N210. V05 MEM | |
Use:<I58>(#126) * | |
N212. IL_OFFSET IL offset: 0x78 REG NA | |
N214. V03 MEM | |
Def:<I59>(#127) | |
N216. V00 MEM | |
N218. SUB | |
Use:<I59>(#128) * | |
Def:<I60>(#129) Pref:<I59> | |
N220. CNS_INT 8 REG NA | |
Def:<I61>(#130) | |
N222. CAST | |
Use:<I61>(#131) * | |
Def:<I62>(#132) | |
N224. DIV | |
Use:<I60>(#134) Fixed:rax(#133) * | |
Use:<I62>(#135) * | |
Kill: rax rdx | |
Def:<I63>(#139) rax Pref:<I60> | |
N226. CAST | |
Use:<I63>(#140) * | |
Def:<I64>(#141) | |
N228. CNS_INT 64 REG NA | |
N230. MUL | |
Use:<I64>(#142) * | |
Def:<I65>(#143) | |
N232. V05 MEM | |
N234. ADD | |
Use:<I65>(#144) * | |
Def:<I66>(#145) Pref:<I65> | |
N236. RETURN | |
Use:<I66>(#147) Fixed:rax(#146) * | |
Linear scan intervals after buildIntervals: | |
Interval 0: RefPositions {#1@5 #2@6} physReg:NA Preferences=[allInt] | |
Interval 1: RefPositions {#5@25 #6@28} physReg:NA Preferences=[allInt] | |
Interval 2: (interfering uses) RefPositions {#7@29 #8@30} physReg:NA Preferences=[allInt] | |
Interval 3: RefPositions {#9@31 #19@46} physReg:NA Preferences=[allInt] | |
Interval 4: RefPositions {#10@33 #14@42} physReg:NA Preferences=[allInt] | |
Interval 5: (constant) RefPositions {#11@35 #12@36} physReg:NA Preferences=[allInt] | |
Interval 6: RefPositions {#13@37 #15@42} physReg:NA Preferences=[allInt] | |
Interval 7: (interfering uses) RefPositions {#16@43 #17@44} physReg:NA Preferences=[allInt] | |
Interval 8: RefPositions {#18@45 #20@46} physReg:NA Preferences=[allInt] | |
Interval 9: RefPositions {#21@47 #37@68} physReg:NA Preferences=[allInt] RelatedInterval <I3>[0000000001408C18] | |
Interval 10: RefPositions {#22@49 #32@64} physReg:NA Preferences=[allInt] | |
Interval 11: (constant) RefPositions {#23@51 #24@52} physReg:NA Preferences=[allInt] | |
Interval 12: RefPositions {#25@53 #29@58} physReg:NA Preferences=[allInt] | |
Interval 13: (constant) RefPositions {#26@55 #27@56} physReg:NA Preferences=[allInt] | |
Interval 14: RefPositions {#28@57 #30@58} physReg:NA Preferences=[allInt] | |
Interval 15: RefPositions {#31@59 #33@64} physReg:NA Preferences=[allInt] RelatedInterval <I12>[00000000014095A8] | |
Interval 16: (interfering uses) RefPositions {#34@65 #35@66} physReg:NA Preferences=[allInt] | |
Interval 17: RefPositions {#36@67 #38@68} physReg:NA Preferences=[allInt] | |
Interval 18: RefPositions {#39@69 #55@90} physReg:NA Preferences=[allInt] RelatedInterval <I9>[00000000014092F8] | |
Interval 19: RefPositions {#40@71 #50@86} physReg:NA Preferences=[allInt] | |
Interval 20: (constant) RefPositions {#41@73 #42@74} physReg:NA Preferences=[allInt] | |
Interval 21: RefPositions {#43@75 #47@80} physReg:NA Preferences=[allInt] | |
Interval 22: (constant) RefPositions {#44@77 #45@78} physReg:NA Preferences=[allInt] | |
Interval 23: RefPositions {#46@79 #48@80} physReg:NA Preferences=[allInt] | |
Interval 24: RefPositions {#49@81 #51@86} physReg:NA Preferences=[allInt] RelatedInterval <I21>[0000000001409FB8] | |
Interval 25: (interfering uses) RefPositions {#52@87 #53@88} physReg:NA Preferences=[allInt] | |
Interval 26: RefPositions {#54@89 #56@90} physReg:NA Preferences=[allInt] | |
Interval 27: RefPositions {#57@91 #60@94} physReg:NA Preferences=[allInt] RelatedInterval <I18>[0000000001409D08] | |
Interval 28: RefPositions {#58@93 #59@94} physReg:NA Preferences=[allInt] | |
Interval 29: (interfering uses) RefPositions {#61@95 #62@96} physReg:NA Preferences=[allInt] RelatedInterval <I28>[000000000140A7E8] | |
Interval 30: (constant) RefPositions {#63@103 #64@104} physReg:NA Preferences=[allInt] | |
Interval 31: RefPositions {#65@105 #69@110} physReg:NA Preferences=[allInt] | |
Interval 32: (constant) RefPositions {#66@107 #67@108} physReg:NA Preferences=[allInt] | |
Interval 33: RefPositions {#68@109 #70@110} physReg:NA Preferences=[allInt] | |
Interval 34: RefPositions {#71@111 #72@112} physReg:NA Preferences=[allInt] RelatedInterval <I31>[000000000140AC18] | |
Interval 35: RefPositions {#73@113 #74@114} physReg:NA Preferences=[allInt] RelatedInterval <I34>[000000000140AF48] | |
Interval 36: RefPositions {#76@121 #77@122} physReg:NA Preferences=[allInt] | |
Interval 37: RefPositions {#80@141 #81@142} physReg:NA Preferences=[allInt] | |
Interval 38: RefPositions {#82@147 #88@156} physReg:NA Preferences=[allInt] | |
Interval 39: RefPositions {#83@149 #84@152} physReg:NA Preferences=[allInt] | |
Interval 40: (interfering uses) RefPositions {#85@153 #86@154} physReg:NA Preferences=[allInt] | |
Interval 41: RefPositions {#87@155 #89@156} physReg:NA Preferences=[allInt] | |
Interval 42: (interfering uses) RefPositions {#90@157 #91@158} physReg:NA Preferences=[allInt] RelatedInterval <I38>[000000000140B708] | |
Interval 43: (constant) RefPositions {#92@165 #93@166} physReg:NA Preferences=[allInt] | |
Interval 44: RefPositions {#94@167 #95@168} physReg:NA Preferences=[allInt] | |
Interval 45: RefPositions {#96@169 #97@170} physReg:NA Preferences=[allInt] RelatedInterval <I44>[000000000140BE68] | |
Interval 46: RefPositions {#99@177 #103@182} physReg:NA Preferences=[allInt] | |
Interval 47: (constant) RefPositions {#100@179 #101@180} physReg:NA Preferences=[allInt] | |
Interval 48: RefPositions {#102@181 #104@182} physReg:NA Preferences=[allInt] | |
Interval 49: (interfering uses) RefPositions {#105@183 #106@184} physReg:NA Preferences=[allInt] RelatedInterval <I46>[000000000140C148] | |
Interval 50: RefPositions {#107@189 #108@192} physReg:NA Preferences=[allInt] | |
Interval 51: RefPositions {#109@193 #115@198} physReg:NA Preferences=[rcx] RelatedInterval <I50>[000000000140C608] | |
Interval 52: (constant) RefPositions {#110@195 #111@196} physReg:NA Preferences=[allInt] | |
Interval 53: RefPositions {#112@197 #113@198} physReg:NA Preferences=[rax rdx rbx rsi rdi r8-r15] | |
Interval 54: (interfering uses) RefPositions {#117@199 #119@204} physReg:NA Preferences=[rax rdx rbx rsi rdi r8-r15] RelatedInterval <I53>[000000000140C938] | |
Interval 55: RefPositions {#118@201 #120@204} physReg:NA Preferences=[allInt] | |
Interval 56: RefPositions {#121@205 #122@206} physReg:NA Preferences=[allInt] | |
Interval 57: (interfering uses) RefPositions {#123@207 #124@208} physReg:NA Preferences=[allInt] | |
Interval 58: RefPositions {#125@209 #126@210} physReg:NA Preferences=[allInt] | |
Interval 59: RefPositions {#127@215 #128@218} physReg:NA Preferences=[allInt] | |
Interval 60: RefPositions {#129@219 #134@224} physReg:NA Preferences=[rax] RelatedInterval <I59>[000000000140D118] | |
Interval 61: (constant) RefPositions {#130@221 #131@222} physReg:NA Preferences=[allInt] | |
Interval 62: RefPositions {#132@223 #135@224} physReg:NA Preferences=[rcx rbx rsi rdi r8-r15] | |
Interval 63: (interfering uses) RefPositions {#139@225 #140@226} physReg:NA Preferences=[rax] RelatedInterval <I60>[000000000140D268] | |
Interval 64: RefPositions {#141@227 #142@230} physReg:NA Preferences=[allInt] | |
Interval 65: RefPositions {#143@231 #144@234} physReg:NA Preferences=[allInt] | |
Interval 66: RefPositions {#145@235 #147@236} physReg:NA Preferences=[rax] RelatedInterval <I65>[000000000140D8F8] | |
*************** In LinearScan::allocateRegisters() | |
Linear scan intervals before allocateRegisters: | |
Interval 0: RefPositions {#1@5 #2@6} physReg:NA Preferences=[allInt] | |
Interval 1: RefPositions {#5@25 #6@28} physReg:NA Preferences=[allInt] | |
Interval 2: (interfering uses) RefPositions {#7@29 #8@30} physReg:NA Preferences=[allInt] | |
Interval 3: RefPositions {#9@31 #19@46} physReg:NA Preferences=[allInt] | |
Interval 4: RefPositions {#10@33 #14@42} physReg:NA Preferences=[allInt] | |
Interval 5: (constant) RefPositions {#11@35 #12@36} physReg:NA Preferences=[allInt] | |
Interval 6: RefPositions {#13@37 #15@42} physReg:NA Preferences=[allInt] | |
Interval 7: (interfering uses) RefPositions {#16@43 #17@44} physReg:NA Preferences=[allInt] | |
Interval 8: RefPositions {#18@45 #20@46} physReg:NA Preferences=[allInt] | |
Interval 9: RefPositions {#21@47 #37@68} physReg:NA Preferences=[allInt] RelatedInterval <I3>[0000000001408C18] | |
Interval 10: RefPositions {#22@49 #32@64} physReg:NA Preferences=[allInt] | |
Interval 11: (constant) RefPositions {#23@51 #24@52} physReg:NA Preferences=[allInt] | |
Interval 12: RefPositions {#25@53 #29@58} physReg:NA Preferences=[allInt] | |
Interval 13: (constant) RefPositions {#26@55 #27@56} physReg:NA Preferences=[allInt] | |
Interval 14: RefPositions {#28@57 #30@58} physReg:NA Preferences=[allInt] | |
Interval 15: RefPositions {#31@59 #33@64} physReg:NA Preferences=[allInt] RelatedInterval <I12>[00000000014095A8] | |
Interval 16: (interfering uses) RefPositions {#34@65 #35@66} physReg:NA Preferences=[allInt] | |
Interval 17: RefPositions {#36@67 #38@68} physReg:NA Preferences=[allInt] | |
Interval 18: RefPositions {#39@69 #55@90} physReg:NA Preferences=[allInt] RelatedInterval <I9>[00000000014092F8] | |
Interval 19: RefPositions {#40@71 #50@86} physReg:NA Preferences=[allInt] | |
Interval 20: (constant) RefPositions {#41@73 #42@74} physReg:NA Preferences=[allInt] | |
Interval 21: RefPositions {#43@75 #47@80} physReg:NA Preferences=[allInt] | |
Interval 22: (constant) RefPositions {#44@77 #45@78} physReg:NA Preferences=[allInt] | |
Interval 23: RefPositions {#46@79 #48@80} physReg:NA Preferences=[allInt] | |
Interval 24: RefPositions {#49@81 #51@86} physReg:NA Preferences=[allInt] RelatedInterval <I21>[0000000001409FB8] | |
Interval 25: (interfering uses) RefPositions {#52@87 #53@88} physReg:NA Preferences=[allInt] | |
Interval 26: RefPositions {#54@89 #56@90} physReg:NA Preferences=[allInt] | |
Interval 27: RefPositions {#57@91 #60@94} physReg:NA Preferences=[allInt] RelatedInterval <I18>[0000000001409D08] | |
Interval 28: RefPositions {#58@93 #59@94} physReg:NA Preferences=[allInt] | |
Interval 29: (interfering uses) RefPositions {#61@95 #62@96} physReg:NA Preferences=[allInt] RelatedInterval <I28>[000000000140A7E8] | |
Interval 30: (constant) RefPositions {#63@103 #64@104} physReg:NA Preferences=[allInt] | |
Interval 31: RefPositions {#65@105 #69@110} physReg:NA Preferences=[allInt] | |
Interval 32: (constant) RefPositions {#66@107 #67@108} physReg:NA Preferences=[allInt] | |
Interval 33: RefPositions {#68@109 #70@110} physReg:NA Preferences=[allInt] | |
Interval 34: RefPositions {#71@111 #72@112} physReg:NA Preferences=[allInt] RelatedInterval <I31>[000000000140AC18] | |
Interval 35: RefPositions {#73@113 #74@114} physReg:NA Preferences=[allInt] RelatedInterval <I34>[000000000140AF48] | |
Interval 36: RefPositions {#76@121 #77@122} physReg:NA Preferences=[allInt] | |
Interval 37: RefPositions {#80@141 #81@142} physReg:NA Preferences=[allInt] | |
Interval 38: RefPositions {#82@147 #88@156} physReg:NA Preferences=[allInt] | |
Interval 39: RefPositions {#83@149 #84@152} physReg:NA Preferences=[allInt] | |
Interval 40: (interfering uses) RefPositions {#85@153 #86@154} physReg:NA Preferences=[allInt] | |
Interval 41: RefPositions {#87@155 #89@156} physReg:NA Preferences=[allInt] | |
Interval 42: (interfering uses) RefPositions {#90@157 #91@158} physReg:NA Preferences=[allInt] RelatedInterval <I38>[000000000140B708] | |
Interval 43: (constant) RefPositions {#92@165 #93@166} physReg:NA Preferences=[allInt] | |
Interval 44: RefPositions {#94@167 #95@168} physReg:NA Preferences=[allInt] | |
Interval 45: RefPositions {#96@169 #97@170} physReg:NA Preferences=[allInt] RelatedInterval <I44>[000000000140BE68] | |
Interval 46: RefPositions {#99@177 #103@182} physReg:NA Preferences=[allInt] | |
Interval 47: (constant) RefPositions {#100@179 #101@180} physReg:NA Preferences=[allInt] | |
Interval 48: RefPositions {#102@181 #104@182} physReg:NA Preferences=[allInt] | |
Interval 49: (interfering uses) RefPositions {#105@183 #106@184} physReg:NA Preferences=[allInt] RelatedInterval <I46>[000000000140C148] | |
Interval 50: RefPositions {#107@189 #108@192} physReg:NA Preferences=[allInt] | |
Interval 51: RefPositions {#109@193 #115@198} physReg:NA Preferences=[rcx] RelatedInterval <I50>[000000000140C608] | |
Interval 52: (constant) RefPositions {#110@195 #111@196} physReg:NA Preferences=[allInt] | |
Interval 53: RefPositions {#112@197 #113@198} physReg:NA Preferences=[rax rdx rbx rsi rdi r8-r15] | |
Interval 54: (interfering uses) RefPositions {#117@199 #119@204} physReg:NA Preferences=[rax rdx rbx rsi rdi r8-r15] RelatedInterval <I53>[000000000140C938] | |
Interval 55: RefPositions {#118@201 #120@204} physReg:NA Preferences=[allInt] | |
Interval 56: RefPositions {#121@205 #122@206} physReg:NA Preferences=[allInt] | |
Interval 57: (interfering uses) RefPositions {#123@207 #124@208} physReg:NA Preferences=[allInt] | |
Interval 58: RefPositions {#125@209 #126@210} physReg:NA Preferences=[allInt] | |
Interval 59: RefPositions {#127@215 #128@218} physReg:NA Preferences=[allInt] | |
Interval 60: RefPositions {#129@219 #134@224} physReg:NA Preferences=[rax] RelatedInterval <I59>[000000000140D118] | |
Interval 61: (constant) RefPositions {#130@221 #131@222} physReg:NA Preferences=[allInt] | |
Interval 62: RefPositions {#132@223 #135@224} physReg:NA Preferences=[rcx rbx rsi rdi r8-r15] | |
Interval 63: (interfering uses) RefPositions {#139@225 #140@226} physReg:NA Preferences=[rax] RelatedInterval <I60>[000000000140D268] | |
Interval 64: RefPositions {#141@227 #142@230} physReg:NA Preferences=[allInt] | |
Interval 65: RefPositions {#143@231 #144@234} physReg:NA Preferences=[allInt] | |
Interval 66: RefPositions {#145@235 #147@236} physReg:NA Preferences=[rax] RelatedInterval <I65>[000000000140D8F8] | |
------------ | |
REFPOSITIONS BEFORE ALLOCATION: | |
------------ | |
<RefPosition #0 @0 RefTypeBB BB01 regmask=[] minReg=1> | |
<RefPosition #1 @5 RefTypeDef <Ivl:0> LCL_VAR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #2 @6 RefTypeUse <Ivl:0> BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #3 @8 RefTypeBB BB03 regmask=[] minReg=1> | |
<RefPosition #4 @20 RefTypeBB BB02 regmask=[] minReg=1> | |
<RefPosition #5 @25 RefTypeDef <Ivl:1> LCL_VAR BB02 regmask=[allInt] minReg=1> | |
<RefPosition #6 @28 RefTypeUse <Ivl:1> BB02 regmask=[allInt] minReg=1 last delay> | |
<RefPosition #7 @29 RefTypeDef <Ivl:2> HWIntrinsic BB02 regmask=[allInt] minReg=1> | |
<RefPosition #8 @30 RefTypeUse <Ivl:2> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #9 @31 RefTypeDef <Ivl:3> CAST BB02 regmask=[allInt] minReg=1> | |
<RefPosition #10 @33 RefTypeDef <Ivl:4> LCL_VAR BB02 regmask=[allInt] minReg=1> | |
<RefPosition #11 @35 RefTypeDef <Ivl:5> CNS_INT BB02 regmask=[allInt] minReg=1> | |
<RefPosition #12 @36 RefTypeUse <Ivl:5> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #13 @37 RefTypeDef <Ivl:6> CAST BB02 regmask=[allInt] minReg=1> | |
<RefPosition #14 @42 RefTypeUse <Ivl:4> BB02 regmask=[allInt] minReg=1 last delay> | |
<RefPosition #15 @42 RefTypeUse <Ivl:6> BB02 regmask=[allInt] minReg=1 last delay> | |
<RefPosition #16 @43 RefTypeDef <Ivl:7> HWIntrinsic BB02 regmask=[allInt] minReg=1> | |
<RefPosition #17 @44 RefTypeUse <Ivl:7> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #18 @45 RefTypeDef <Ivl:8> CAST BB02 regmask=[allInt] minReg=1> | |
<RefPosition #19 @46 RefTypeUse <Ivl:3> BB02 regmask=[allInt] minReg=1 last regOptional> | |
<RefPosition #20 @46 RefTypeUse <Ivl:8> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #21 @47 RefTypeDef <Ivl:9> ADD BB02 regmask=[allInt] minReg=1> | |
<RefPosition #22 @49 RefTypeDef <Ivl:10> LCL_VAR BB02 regmask=[allInt] minReg=1> | |
<RefPosition #23 @51 RefTypeDef <Ivl:11> CNS_INT BB02 regmask=[allInt] minReg=1> | |
<RefPosition #24 @52 RefTypeUse <Ivl:11> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #25 @53 RefTypeDef <Ivl:12> CAST BB02 regmask=[allInt] minReg=1> | |
<RefPosition #26 @55 RefTypeDef <Ivl:13> CNS_INT BB02 regmask=[allInt] minReg=1> | |
<RefPosition #27 @56 RefTypeUse <Ivl:13> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #28 @57 RefTypeDef <Ivl:14> CAST BB02 regmask=[allInt] minReg=1> | |
<RefPosition #29 @58 RefTypeUse <Ivl:12> BB02 regmask=[allInt] minReg=1 last regOptional> | |
<RefPosition #30 @58 RefTypeUse <Ivl:14> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #31 @59 RefTypeDef <Ivl:15> MUL BB02 regmask=[allInt] minReg=1> | |
<RefPosition #32 @64 RefTypeUse <Ivl:10> BB02 regmask=[allInt] minReg=1 last delay> | |
<RefPosition #33 @64 RefTypeUse <Ivl:15> BB02 regmask=[allInt] minReg=1 last delay> | |
<RefPosition #34 @65 RefTypeDef <Ivl:16> HWIntrinsic BB02 regmask=[allInt] minReg=1> | |
<RefPosition #35 @66 RefTypeUse <Ivl:16> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #36 @67 RefTypeDef <Ivl:17> CAST BB02 regmask=[allInt] minReg=1> | |
<RefPosition #37 @68 RefTypeUse <Ivl:9> BB02 regmask=[allInt] minReg=1 last regOptional> | |
<RefPosition #38 @68 RefTypeUse <Ivl:17> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #39 @69 RefTypeDef <Ivl:18> ADD BB02 regmask=[allInt] minReg=1> | |
<RefPosition #40 @71 RefTypeDef <Ivl:19> LCL_VAR BB02 regmask=[allInt] minReg=1> | |
<RefPosition #41 @73 RefTypeDef <Ivl:20> CNS_INT BB02 regmask=[allInt] minReg=1> | |
<RefPosition #42 @74 RefTypeUse <Ivl:20> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #43 @75 RefTypeDef <Ivl:21> CAST BB02 regmask=[allInt] minReg=1> | |
<RefPosition #44 @77 RefTypeDef <Ivl:22> CNS_INT BB02 regmask=[allInt] minReg=1> | |
<RefPosition #45 @78 RefTypeUse <Ivl:22> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #46 @79 RefTypeDef <Ivl:23> CAST BB02 regmask=[allInt] minReg=1> | |
<RefPosition #47 @80 RefTypeUse <Ivl:21> BB02 regmask=[allInt] minReg=1 last regOptional> | |
<RefPosition #48 @80 RefTypeUse <Ivl:23> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #49 @81 RefTypeDef <Ivl:24> MUL BB02 regmask=[allInt] minReg=1> | |
<RefPosition #50 @86 RefTypeUse <Ivl:19> BB02 regmask=[allInt] minReg=1 last delay> | |
<RefPosition #51 @86 RefTypeUse <Ivl:24> BB02 regmask=[allInt] minReg=1 last delay> | |
<RefPosition #52 @87 RefTypeDef <Ivl:25> HWIntrinsic BB02 regmask=[allInt] minReg=1> | |
<RefPosition #53 @88 RefTypeUse <Ivl:25> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #54 @89 RefTypeDef <Ivl:26> CAST BB02 regmask=[allInt] minReg=1> | |
<RefPosition #55 @90 RefTypeUse <Ivl:18> BB02 regmask=[allInt] minReg=1 last regOptional> | |
<RefPosition #56 @90 RefTypeUse <Ivl:26> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #57 @91 RefTypeDef <Ivl:27> ADD BB02 regmask=[allInt] minReg=1> | |
<RefPosition #58 @93 RefTypeDef <Ivl:28> LCL_VAR BB02 regmask=[allInt] minReg=1> | |
<RefPosition #59 @94 RefTypeUse <Ivl:28> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #60 @94 RefTypeUse <Ivl:27> BB02 regmask=[allInt] minReg=1 last delay regOptional> | |
<RefPosition #61 @95 RefTypeDef <Ivl:29> SUB BB02 regmask=[allInt] minReg=1> | |
<RefPosition #62 @96 RefTypeUse <Ivl:29> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #63 @103 RefTypeDef <Ivl:30> CNS_INT BB02 regmask=[allInt] minReg=1> | |
<RefPosition #64 @104 RefTypeUse <Ivl:30> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #65 @105 RefTypeDef <Ivl:31> CAST BB02 regmask=[allInt] minReg=1> | |
<RefPosition #66 @107 RefTypeDef <Ivl:32> CNS_INT BB02 regmask=[allInt] minReg=1> | |
<RefPosition #67 @108 RefTypeUse <Ivl:32> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #68 @109 RefTypeDef <Ivl:33> CAST BB02 regmask=[allInt] minReg=1> | |
<RefPosition #69 @110 RefTypeUse <Ivl:31> BB02 regmask=[allInt] minReg=1 last regOptional> | |
<RefPosition #70 @110 RefTypeUse <Ivl:33> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #71 @111 RefTypeDef <Ivl:34> MUL BB02 regmask=[allInt] minReg=1> | |
<RefPosition #72 @112 RefTypeUse <Ivl:34> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #73 @113 RefTypeDef <Ivl:35> ADD BB02 regmask=[allInt] minReg=1> | |
<RefPosition #74 @114 RefTypeUse <Ivl:35> BB02 regmask=[allInt] minReg=1 last> | |
<RefPosition #75 @116 RefTypeBB BB04 regmask=[] minReg=1> | |
<RefPosition #76 @121 RefTypeDef <Ivl:36> LCL_VAR BB04 regmask=[allInt] minReg=1> | |
<RefPosition #77 @122 RefTypeUse <Ivl:36> BB04 regmask=[allInt] minReg=1 last> | |
<RefPosition #78 @124 RefTypeBB BB06 regmask=[] minReg=1> | |
<RefPosition #79 @136 RefTypeBB BB05 regmask=[] minReg=1> | |
<RefPosition #80 @141 RefTypeDef <Ivl:37> LCL_VAR BB05 regmask=[allInt] minReg=1> | |
<RefPosition #81 @142 RefTypeUse <Ivl:37> BB05 regmask=[allInt] minReg=1 last> | |
<RefPosition #82 @147 RefTypeDef <Ivl:38> LCL_VAR BB05 regmask=[allInt] minReg=1> | |
<RefPosition #83 @149 RefTypeDef <Ivl:39> LCL_VAR BB05 regmask=[allInt] minReg=1> | |
<RefPosition #84 @152 RefTypeUse <Ivl:39> BB05 regmask=[allInt] minReg=1 last delay> | |
<RefPosition #85 @153 RefTypeDef <Ivl:40> HWIntrinsic BB05 regmask=[allInt] minReg=1> | |
<RefPosition #86 @154 RefTypeUse <Ivl:40> BB05 regmask=[allInt] minReg=1 last> | |
<RefPosition #87 @155 RefTypeDef <Ivl:41> CAST BB05 regmask=[allInt] minReg=1> | |
<RefPosition #88 @156 RefTypeUse <Ivl:38> BB05 regmask=[allInt] minReg=1 last> | |
<RefPosition #89 @156 RefTypeUse <Ivl:41> BB05 regmask=[allInt] minReg=1 last delay regOptional> | |
<RefPosition #90 @157 RefTypeDef <Ivl:42> SUB BB05 regmask=[allInt] minReg=1> | |
<RefPosition #91 @158 RefTypeUse <Ivl:42> BB05 regmask=[allInt] minReg=1 last> | |
<RefPosition #92 @165 RefTypeDef <Ivl:43> CNS_INT BB05 regmask=[allInt] minReg=1> | |
<RefPosition #93 @166 RefTypeUse <Ivl:43> BB05 regmask=[allInt] minReg=1 last> | |
<RefPosition #94 @167 RefTypeDef <Ivl:44> CAST BB05 regmask=[allInt] minReg=1> | |
<RefPosition #95 @168 RefTypeUse <Ivl:44> BB05 regmask=[allInt] minReg=1 last> | |
<RefPosition #96 @169 RefTypeDef <Ivl:45> ADD BB05 regmask=[allInt] minReg=1> | |
<RefPosition #97 @170 RefTypeUse <Ivl:45> BB05 regmask=[allInt] minReg=1 last> | |
<RefPosition #98 @172 RefTypeBB BB07 regmask=[] minReg=1> | |
<RefPosition #99 @177 RefTypeDef <Ivl:46> LCL_VAR BB07 regmask=[allInt] minReg=1> | |
<RefPosition #100 @179 RefTypeDef <Ivl:47> CNS_INT BB07 regmask=[allInt] minReg=1> | |
<RefPosition #101 @180 RefTypeUse <Ivl:47> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #102 @181 RefTypeDef <Ivl:48> CAST BB07 regmask=[allInt] minReg=1> | |
<RefPosition #103 @182 RefTypeUse <Ivl:46> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #104 @182 RefTypeUse <Ivl:48> BB07 regmask=[allInt] minReg=1 last delay regOptional> | |
<RefPosition #105 @183 RefTypeDef <Ivl:49> SUB BB07 regmask=[allInt] minReg=1> | |
<RefPosition #106 @184 RefTypeUse <Ivl:49> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #107 @189 RefTypeDef <Ivl:50> LCL_VAR BB07 regmask=[allInt] minReg=1> | |
<RefPosition #108 @192 RefTypeUse <Ivl:50> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #109 @193 RefTypeDef <Ivl:51> ADD BB07 regmask=[rcx] minReg=1> | |
<RefPosition #110 @195 RefTypeDef <Ivl:52> CNS_INT BB07 regmask=[allInt] minReg=1> | |
<RefPosition #111 @196 RefTypeUse <Ivl:52> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #112 @197 RefTypeDef <Ivl:53> CAST BB07 regmask=[rax rdx rbx rsi rdi r8-r15] minReg=1> | |
<RefPosition #113 @198 RefTypeUse <Ivl:53> BB07 regmask=[rax rdx rbx rsi rdi r8-r15] minReg=1 last> | |
<RefPosition #114 @198 RefTypeFixedReg <Reg:rcx> BB07 regmask=[rcx] minReg=1> | |
<RefPosition #115 @198 RefTypeUse <Ivl:51> BB07 regmask=[rcx] minReg=1 last fixed delay> | |
<RefPosition #116 @199 RefTypeKill <Reg:rcx> BB07 regmask=[rcx] minReg=1 last> | |
<RefPosition #117 @199 RefTypeDef <Ivl:54> LSH BB07 regmask=[rax rdx rbx rsi rdi r8-r15] minReg=1> | |
<RefPosition #118 @201 RefTypeDef <Ivl:55> LCL_VAR BB07 regmask=[allInt] minReg=1> | |
<RefPosition #119 @204 RefTypeUse <Ivl:54> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #120 @204 RefTypeUse <Ivl:55> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #121 @205 RefTypeDef <Ivl:56> HWIntrinsic BB07 regmask=[allInt] minReg=1> | |
<RefPosition #122 @206 RefTypeUse <Ivl:56> BB07 regmask=[allInt] minReg=1 last delay regOptional> | |
<RefPosition #123 @207 RefTypeDef <Ivl:57> HWIntrinsic BB07 regmask=[allInt] minReg=1> | |
<RefPosition #124 @208 RefTypeUse <Ivl:57> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #125 @209 RefTypeDef <Ivl:58> CAST BB07 regmask=[allInt] minReg=1> | |
<RefPosition #126 @210 RefTypeUse <Ivl:58> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #127 @215 RefTypeDef <Ivl:59> LCL_VAR BB07 regmask=[allInt] minReg=1> | |
<RefPosition #128 @218 RefTypeUse <Ivl:59> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #129 @219 RefTypeDef <Ivl:60> SUB BB07 regmask=[rax] minReg=1> | |
<RefPosition #130 @221 RefTypeDef <Ivl:61> CNS_INT BB07 regmask=[allInt] minReg=1> | |
<RefPosition #131 @222 RefTypeUse <Ivl:61> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #132 @223 RefTypeDef <Ivl:62> CAST BB07 regmask=[rcx rbx rsi rdi r8-r15] minReg=1> | |
<RefPosition #133 @224 RefTypeFixedReg <Reg:rax> BB07 regmask=[rax] minReg=1> | |
<RefPosition #134 @224 RefTypeUse <Ivl:60> BB07 regmask=[rax] minReg=1 last fixed> | |
<RefPosition #135 @224 RefTypeUse <Ivl:62> BB07 regmask=[rcx rbx rsi rdi r8-r15] minReg=1 last delay regOptional> | |
<RefPosition #136 @225 RefTypeKill <Reg:rax> BB07 regmask=[rax] minReg=1 last> | |
<RefPosition #137 @225 RefTypeKill <Reg:rdx> BB07 regmask=[rdx] minReg=1 last> | |
<RefPosition #138 @225 RefTypeFixedReg <Reg:rax> BB07 regmask=[rax] minReg=1> | |
<RefPosition #139 @225 RefTypeDef <Ivl:63> DIV BB07 regmask=[rax] minReg=1 fixed> | |
<RefPosition #140 @226 RefTypeUse <Ivl:63> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #141 @227 RefTypeDef <Ivl:64> CAST BB07 regmask=[allInt] minReg=1> | |
<RefPosition #142 @230 RefTypeUse <Ivl:64> BB07 regmask=[allInt] minReg=1 last regOptional> | |
<RefPosition #143 @231 RefTypeDef <Ivl:65> MUL BB07 regmask=[allInt] minReg=1> | |
<RefPosition #144 @234 RefTypeUse <Ivl:65> BB07 regmask=[allInt] minReg=1 last> | |
<RefPosition #145 @235 RefTypeDef <Ivl:66> ADD BB07 regmask=[rax] minReg=1> | |
<RefPosition #146 @236 RefTypeFixedReg <Reg:rax> BB07 regmask=[rax] minReg=1> | |
<RefPosition #147 @236 RefTypeUse <Ivl:66> BB07 regmask=[rax] minReg=1 last fixed> | |
Allocating Registers | |
-------------------- | |
The following table has one or more rows for each RefPosition that is handled during allocation. | |
The first column provides the basic information about the RefPosition, with its type (e.g. Def, | |
Use, Fixd) followed by a '*' if it is a last use, and a 'D' if it is delayRegFree, and then the | |
action taken during allocation (e.g. Alloc a new register, or Keep an existing one). | |
The subsequent columns show the Interval occupying each register, if any, followed by 'a' if it is | |
active, and 'i'if it is inactive. Columns are only printed up to the last modifed register, which | |
may increase during allocation, in which case additional columns will appear. Registers which are | |
not marked modified have ---- in their column. | |
--------------------------------+----+----+----+----+----+ | |
Loc RP# Name Type Action Reg |rax |rcx |rbx |r12 |r13 | | |
--------------------------------+----+----+----+----+----+ | |
| | | | | | | |
0.#0 BB1 PredBB0 | | | | | | | |
5.#1 I0 Def Alloc rcx | |I0 a| | | | | |
6.#2 I0 Use * Keep rcx | |I0 a| | | | | |
--------------------------------+----+----+----+----+----+ | |
Loc RP# Name Type Action Reg |rax |rcx |rbx |r12 |r13 | | |
--------------------------------+----+----+----+----+----+ | |
8.#3 BB3 PredBB1 | | | | | | | |
--------------------------------+----+----+----+----+----+ | |
Loc RP# Name Type Action Reg |rax |rcx |rbx |r12 |r13 | | |
--------------------------------+----+----+----+----+----+ | |
20.#4 BB2 PredBB3 | | | | | | | |
25.#5 I1 Def Alloc rcx | |I1 a| | | | | |
28.#6 I1 Use *D Keep rcx | |I1 a| | | | | |
29.#7 I2 Def Alloc rax |I2 a|I1 a| | | | | |
30.#8 I2 Use * Keep rax |I2 a| | | | | | |
31.#9 I3 Def Alloc rcx | |I3 a| | | | | |
33.#10 I4 Def Alloc rax |I4 a|I3 a| | | | | |
--------------------------------+----+----+----+----+----+----+ | |
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |r12 |r13 | | |
--------------------------------+----+----+----+----+----+----+ | |
35.#11 C5 Def Alloc rdx |I4 a|I3 a|C5 a| | | | | |
36.#12 C5 Use * Keep rdx |I4 a|I3 a|C5 a| | | | | |
37.#13 I6 Def Alloc rdx |I4 a|I3 a|I6 a| | | | | |
42.#14 I4 Use *D Keep rax |I4 a|I3 a|I6 a| | | | | |
42.#15 I6 Use *D Keep rdx |I4 a|I3 a|I6 a| | | | | |
--------------------------------+----+----+----+----+----+----+----+ | |
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rdi |r12 |r13 | | |
--------------------------------+----+----+----+----+----+----+----+ | |
43.#16 I7 Def Alloc rdi |I4 a|I3 a|I6 a| |I7 a| | | | |
44.#17 I7 Use * Keep rdi | |I3 a| | |I7 a| | | | |
45.#18 I8 Def Alloc rax |I8 a|I3 a| | | | | | | |
46.#19 I3 Use * Keep rcx |I8 a|I3 a| | | | | | | |
46.#20 I8 Use * Keep rax |I8 a|I3 a| | | | | | | |
47.#21 I9 Def Alloc rcx | |I9 a| | | | | | | |
49.#22 I10 Def Alloc rax |I10a|I9 a| | | | | | | |
51.#23 C11 Def Alloc rdx |I10a|I9 a|C11a| | | | | | |
52.#24 C11 Use * Keep rdx |I10a|I9 a|C11a| | | | | | |
53.#25 I12 Def Alloc rdx |I10a|I9 a|I12a| | | | | | |
55.#26 C13 Def Alloc rdi |I10a|I9 a|I12a| |C13a| | | | |
56.#27 C13 Use * Keep rdi |I10a|I9 a|I12a| |C13a| | | | |
57.#28 I14 Def Alloc rdi |I10a|I9 a|I12a| |I14a| | | | |
58.#29 I12 Use * Keep rdx |I10a|I9 a|I12a| |I14a| | | | |
58.#30 I14 Use * Keep rdi |I10a|I9 a|I12a| |I14a| | | | |
59.#31 I15 Def Alloc rdx |I10a|I9 a|I15a| | | | | | |
64.#32 I10 Use *D Keep rax |I10a|I9 a|I15a| | | | | | |
64.#33 I15 Use *D Keep rdx |I10a|I9 a|I15a| | | | | | |
65.#34 I16 Def Alloc rdi |I10a|I9 a|I15a| |I16a| | | | |
66.#35 I16 Use * Keep rdi | |I9 a| | |I16a| | | | |
67.#36 I17 Def Alloc rax |I17a|I9 a| | | | | | | |
68.#37 I9 Use * Keep rcx |I17a|I9 a| | | | | | | |
68.#38 I17 Use * Keep rax |I17a|I9 a| | | | | | | |
69.#39 I18 Def Alloc rcx | |I18a| | | | | | | |
71.#40 I19 Def Alloc rax |I19a|I18a| | | | | | | |
73.#41 C20 Def Alloc rdx |I19a|I18a|C20a| | | | | | |
74.#42 C20 Use * Keep rdx |I19a|I18a|C20a| | | | | | |
75.#43 I21 Def Alloc rdx |I19a|I18a|I21a| | | | | | |
77.#44 C22 Def Alloc rdi |I19a|I18a|I21a| |C22a| | | | |
78.#45 C22 Use * Keep rdi |I19a|I18a|I21a| |C22a| | | | |
79.#46 I23 Def Alloc rdi |I19a|I18a|I21a| |I23a| | | | |
80.#47 I21 Use * Keep rdx |I19a|I18a|I21a| |I23a| | | | |
80.#48 I23 Use * Keep rdi |I19a|I18a|I21a| |I23a| | | | |
81.#49 I24 Def Alloc rdx |I19a|I18a|I24a| | | | | | |
86.#50 I19 Use *D Keep rax |I19a|I18a|I24a| | | | | | |
86.#51 I24 Use *D Keep rdx |I19a|I18a|I24a| | | | | | |
87.#52 I25 Def Alloc rdi |I19a|I18a|I24a| |I25a| | | | |
88.#53 I25 Use * Keep rdi | |I18a| | |I25a| | | | |
89.#54 I26 Def Alloc rax |I26a|I18a| | | | | | | |
90.#55 I18 Use * Keep rcx |I26a|I18a| | | | | | | |
90.#56 I26 Use * Keep rax |I26a|I18a| | | | | | | |
91.#57 I27 Def Alloc rcx | |I27a| | | | | | | |
93.#58 I28 Def Alloc rax |I28a|I27a| | | | | | | |
94.#59 I28 Use * Keep rax |I28a|I27a| | | | | | | |
94.#60 I27 Use *D Keep rcx |I28a|I27a| | | | | | | |
95.#61 I29 Def Alloc rax |I29a|I27a| | | | | | | |
96.#62 I29 Use * Keep rax |I29a| | | | | | | | |
103.#63 C30 Def Alloc rcx | |C30a| | | | | | | |
104.#64 C30 Use * Keep rcx | |C30a| | | | | | | |
105.#65 I31 Def Alloc rcx | |I31a| | | | | | | |
107.#66 C32 Def Alloc rax |C32a|I31a| | | | | | | |
--------------------------------+----+----+----+----+----+----+----+ | |
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rdi |r12 |r13 | | |
--------------------------------+----+----+----+----+----+----+----+ | |
108.#67 C32 Use * Keep rax |C32a|I31a| | | | | | | |
109.#68 I33 Def Alloc rax |I33a|I31a| | | | | | | |
110.#69 I31 Use * Keep rcx |I33a|I31a| | | | | | | |
110.#70 I33 Use * Keep rax |I33a|I31a| | | | | | | |
111.#71 I34 Def Alloc rcx | |I34a| | | | | | | |
112.#72 I34 Use * Keep rcx | |I34a| | | | | | | |
113.#73 I35 Def Alloc rcx | |I35a| | | | | | | |
114.#74 I35 Use * Keep rcx | |I35a| | | | | | | |
--------------------------------+----+----+----+----+----+----+----+ | |
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rdi |r12 |r13 | | |
--------------------------------+----+----+----+----+----+----+----+ | |
116.#75 BB4 PredBB3 | | | | | | | | | |
121.#76 I36 Def Alloc rcx | |I36a| | | | | | | |
122.#77 I36 Use * Keep rcx | |I36a| | | | | | | |
--------------------------------+----+----+----+----+----+----+----+ | |
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rdi |r12 |r13 | | |
--------------------------------+----+----+----+----+----+----+----+ | |
124.#78 BB6 PredBB4 | | | | | | | | | |
--------------------------------+----+----+----+----+----+----+----+ | |
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rdi |r12 |r13 | | |
--------------------------------+----+----+----+----+----+----+----+ | |
136.#79 BB5 PredBB6 | | | | | | | | | |
141.#80 I37 Def Alloc rcx | |I37a| | | | | | | |
142.#81 I37 Use * Keep rcx | |I37a| | | | | | | |
147.#82 I38 Def Alloc rcx | |I38a| | | | | | | |
149.#83 I39 Def Alloc rax |I39a|I38a| | | | | | | |
152.#84 I39 Use *D Keep rax |I39a|I38a| | | | | | | |
153.#85 I40 Def Alloc rdx |I39a|I38a|I40a| | | | | | |
154.#86 I40 Use * Keep rdx | |I38a|I40a| | | | | | |
155.#87 I41 Def Alloc rax |I41a|I38a| | | | | | | |
156.#88 I38 Use * Keep rcx |I41a|I38a| | | | | | | |
156.#89 I41 Use *D Keep rax |I41a|I38a| | | | | | | |
157.#90 I42 Def Alloc rcx |I41a|I42a| | | | | | | |
158.#91 I42 Use * Keep rcx | |I42a| | | | | | | |
165.#92 C43 Def Alloc rcx | |C43a| | | | | | | |
166.#93 C43 Use * Keep rcx | |C43a| | | | | | | |
167.#94 I44 Def Alloc rcx | |I44a| | | | | | | |
168.#95 I44 Use * Keep rcx | |I44a| | | | | | | |
169.#96 I45 Def Alloc rcx | |I45a| | | | | | | |
170.#97 I45 Use * Keep rcx | |I45a| | | | | | | |
--------------------------------+----+----+----+----+----+----+----+ | |
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rdi |r12 |r13 | | |
--------------------------------+----+----+----+----+----+----+----+ | |
172.#98 BB7 PredBB6 | | | | | | | | | |
177.#99 I46 Def Alloc rcx | |I46a| | | | | | | |
179.#100 C47 Def Alloc rax |C47a|I46a| | | | | | | |
180.#101 C47 Use * Keep rax |C47a|I46a| | | | | | | |
181.#102 I48 Def Alloc rax |I48a|I46a| | | | | | | |
182.#103 I46 Use * Keep rcx |I48a|I46a| | | | | | | |
182.#104 I48 Use *D Keep rax |I48a|I46a| | | | | | | |
183.#105 I49 Def Alloc rcx |I48a|I49a| | | | | | | |
184.#106 I49 Use * Keep rcx | |I49a| | | | | | | |
189.#107 I50 Def Alloc rcx | |I50a| | | | | | | |
192.#108 I50 Use * Keep rcx | |I50a| | | | | | | |
193.#109 I51 Def Alloc rcx | |I51a| | | | | | | |
195.#110 C52 Def Alloc rax |C52a|I51a| | | | | | | |
196.#111 C52 Use * Keep rax |C52a|I51a| | | | | | | |
197.#112 I53 Def Alloc rax |I53a|I51a| | | | | | | |
198.#113 I53 Use * Keep rax |I53a|I51a| | | | | | | |
198.#114 rcx Fixd Keep rcx |I53a|I51a| | | | | | | |
198.#115 I51 Use *D Keep rcx |I53a|I51a| | | | | | | |
199.#116 rcx Kill Keep rcx | | | | | | | | | |
199.#117 I54 Def Alloc rax |I54a| | | | | | | | |
201.#118 I55 Def Alloc rdx |I54a| |I55a| | | | | | |
204.#119 I54 Use * Keep rax |I54a| |I55a| | | | | | |
204.#120 I55 Use * Keep rdx |I54a| |I55a| | | | | | |
205.#121 I56 Def Alloc rax |I56a| | | | | | | | |
206.#122 I56 Use *D Keep rax |I56a| | | | | | | | |
207.#123 I57 Def Alloc rdx |I56a| |I57a| | | | | | |
208.#124 I57 Use * Keep rdx | | |I57a| | | | | | |
209.#125 I58 Def Alloc rax |I58a| | | | | | | | |
210.#126 I58 Use * Keep rax |I58a| | | | | | | | |
215.#127 I59 Def Alloc rax |I59a| | | | | | | | |
218.#128 I59 Use * Keep rax |I59a| | | | | | | | |
219.#129 I60 Def Alloc rax |I60a| | | | | | | | |
221.#130 C61 Def Alloc rdx |I60a| |C61a| | | | | | |
222.#131 C61 Use * Keep rdx |I60a| |C61a| | | | | | |
223.#132 I62 Def Alloc rdi |I60a| |C61i| |I62a| | | | |
224.#133 rax Fixd Keep rax |I60a| |C61i| |I62a| | | | |
224.#134 I60 Use * Keep rax |I60a| |C61i| |I62a| | | | |
224.#135 I62 Use *D Keep rdi |I60a| |C61i| |I62a| | | | |
225.#136 rax Kill Keep rax | | |C61i| |I62a| | | | |
225.#137 rdx Kill Keep rdx | | | | |I62a| | | | |
225.#138 rax Fixd Keep rax | | | | |I62a| | | | |
225.#139 I63 Def Alloc rax |I63a| | | |I62a| | | | |
226.#140 I63 Use * Keep rax |I63a| | | | | | | | |
227.#141 I64 Def Alloc rax |I64a| | | | | | | | |
230.#142 I64 Use * Keep rax |I64a| | | | | | | | |
231.#143 I65 Def Alloc rax |I65a| | | | | | | | |
234.#144 I65 Use * Keep rax |I65a| | | | | | | | |
235.#145 I66 Def Alloc rax |I66a| | | | | | | | |
236.#146 rax Fixd Keep rax |I66a| | | | | | | | |
236.#147 I66 Use * Keep rax | | | | | | | | | |
------------ | |
REFPOSITIONS AFTER ALLOCATION: | |
------------ | |
<RefPosition #0 @0 RefTypeBB BB01 regmask=[] minReg=1> | |
<RefPosition #1 @5 RefTypeDef <Ivl:0> LCL_VAR BB01 regmask=[rcx] minReg=1> | |
<RefPosition #2 @6 RefTypeUse <Ivl:0> BB01 regmask=[rcx] minReg=1 last> | |
<RefPosition #3 @8 RefTypeBB BB03 regmask=[] minReg=1> | |
<RefPosition #4 @20 RefTypeBB BB02 regmask=[] minReg=1> | |
<RefPosition #5 @25 RefTypeDef <Ivl:1> LCL_VAR BB02 regmask=[rcx] minReg=1> | |
<RefPosition #6 @28 RefTypeUse <Ivl:1> BB02 regmask=[rcx] minReg=1 last delay> | |
<RefPosition #7 @29 RefTypeDef <Ivl:2> HWIntrinsic BB02 regmask=[rax] minReg=1> | |
<RefPosition #8 @30 RefTypeUse <Ivl:2> BB02 regmask=[rax] minReg=1 last> | |
<RefPosition #9 @31 RefTypeDef <Ivl:3> CAST BB02 regmask=[rcx] minReg=1> | |
<RefPosition #10 @33 RefTypeDef <Ivl:4> LCL_VAR BB02 regmask=[rax] minReg=1> | |
<RefPosition #11 @35 RefTypeDef <Ivl:5> CNS_INT BB02 regmask=[rdx] minReg=1> | |
<RefPosition #12 @36 RefTypeUse <Ivl:5> BB02 regmask=[rdx] minReg=1 last> | |
<RefPosition #13 @37 RefTypeDef <Ivl:6> CAST BB02 regmask=[rdx] minReg=1> | |
<RefPosition #14 @42 RefTypeUse <Ivl:4> BB02 regmask=[rax] minReg=1 last delay> | |
<RefPosition #15 @42 RefTypeUse <Ivl:6> BB02 regmask=[rdx] minReg=1 last delay> | |
<RefPosition #16 @43 RefTypeDef <Ivl:7> HWIntrinsic BB02 regmask=[rdi] minReg=1> | |
<RefPosition #17 @44 RefTypeUse <Ivl:7> BB02 regmask=[rdi] minReg=1 last> | |
<RefPosition #18 @45 RefTypeDef <Ivl:8> CAST BB02 regmask=[rax] minReg=1> | |
<RefPosition #19 @46 RefTypeUse <Ivl:3> BB02 regmask=[rcx] minReg=1 last regOptional> | |
<RefPosition #20 @46 RefTypeUse <Ivl:8> BB02 regmask=[rax] minReg=1 last> | |
<RefPosition #21 @47 RefTypeDef <Ivl:9> ADD BB02 regmask=[rcx] minReg=1> | |
<RefPosition #22 @49 RefTypeDef <Ivl:10> LCL_VAR BB02 regmask=[rax] minReg=1> | |
<RefPosition #23 @51 RefTypeDef <Ivl:11> CNS_INT BB02 regmask=[rdx] minReg=1> | |
<RefPosition #24 @52 RefTypeUse <Ivl:11> BB02 regmask=[rdx] minReg=1 last> | |
<RefPosition #25 @53 RefTypeDef <Ivl:12> CAST BB02 regmask=[rdx] minReg=1> | |
<RefPosition #26 @55 RefTypeDef <Ivl:13> CNS_INT BB02 regmask=[rdi] minReg=1> | |
<RefPosition #27 @56 RefTypeUse <Ivl:13> BB02 regmask=[rdi] minReg=1 last> | |
<RefPosition #28 @57 RefTypeDef <Ivl:14> CAST BB02 regmask=[rdi] minReg=1> | |
<RefPosition #29 @58 RefTypeUse <Ivl:12> BB02 regmask=[rdx] minReg=1 last regOptional> | |
<RefPosition #30 @58 RefTypeUse <Ivl:14> BB02 regmask=[rdi] minReg=1 last> | |
<RefPosition #31 @59 RefTypeDef <Ivl:15> MUL BB02 regmask=[rdx] minReg=1> | |
<RefPosition #32 @64 RefTypeUse <Ivl:10> BB02 regmask=[rax] minReg=1 last delay> | |
<RefPosition #33 @64 RefTypeUse <Ivl:15> BB02 regmask=[rdx] minReg=1 last delay> | |
<RefPosition #34 @65 RefTypeDef <Ivl:16> HWIntrinsic BB02 regmask=[rdi] minReg=1> | |
<RefPosition #35 @66 RefTypeUse <Ivl:16> BB02 regmask=[rdi] minReg=1 last> | |
<RefPosition #36 @67 RefTypeDef <Ivl:17> CAST BB02 regmask=[rax] minReg=1> | |
<RefPosition #37 @68 RefTypeUse <Ivl:9> BB02 regmask=[rcx] minReg=1 last regOptional> | |
<RefPosition #38 @68 RefTypeUse <Ivl:17> BB02 regmask=[rax] minReg=1 last> | |
<RefPosition #39 @69 RefTypeDef <Ivl:18> ADD BB02 regmask=[rcx] minReg=1> | |
<RefPosition #40 @71 RefTypeDef <Ivl:19> LCL_VAR BB02 regmask=[rax] minReg=1> | |
<RefPosition #41 @73 RefTypeDef <Ivl:20> CNS_INT BB02 regmask=[rdx] minReg=1> | |
<RefPosition #42 @74 RefTypeUse <Ivl:20> BB02 regmask=[rdx] minReg=1 last> | |
<RefPosition #43 @75 RefTypeDef <Ivl:21> CAST BB02 regmask=[rdx] minReg=1> | |
<RefPosition #44 @77 RefTypeDef <Ivl:22> CNS_INT BB02 regmask=[rdi] minReg=1> | |
<RefPosition #45 @78 RefTypeUse <Ivl:22> BB02 regmask=[rdi] minReg=1 last> | |
<RefPosition #46 @79 RefTypeDef <Ivl:23> CAST BB02 regmask=[rdi] minReg=1> | |
<RefPosition #47 @80 RefTypeUse <Ivl:21> BB02 regmask=[rdx] minReg=1 last regOptional> | |
<RefPosition #48 @80 RefTypeUse <Ivl:23> BB02 regmask=[rdi] minReg=1 last> | |
<RefPosition #49 @81 RefTypeDef <Ivl:24> MUL BB02 regmask=[rdx] minReg=1> | |
<RefPosition #50 @86 RefTypeUse <Ivl:19> BB02 regmask=[rax] minReg=1 last delay> | |
<RefPosition #51 @86 RefTypeUse <Ivl:24> BB02 regmask=[rdx] minReg=1 last delay> | |
<RefPosition #52 @87 RefTypeDef <Ivl:25> HWIntrinsic BB02 regmask=[rdi] minReg=1> | |
<RefPosition #53 @88 RefTypeUse <Ivl:25> BB02 regmask=[rdi] minReg=1 last> | |
<RefPosition #54 @89 RefTypeDef <Ivl:26> CAST BB02 regmask=[rax] minReg=1> | |
<RefPosition #55 @90 RefTypeUse <Ivl:18> BB02 regmask=[rcx] minReg=1 last regOptional> | |
<RefPosition #56 @90 RefTypeUse <Ivl:26> BB02 regmask=[rax] minReg=1 last> | |
<RefPosition #57 @91 RefTypeDef <Ivl:27> ADD BB02 regmask=[rcx] minReg=1> | |
<RefPosition #58 @93 RefTypeDef <Ivl:28> LCL_VAR BB02 regmask=[rax] minReg=1> | |
<RefPosition #59 @94 RefTypeUse <Ivl:28> BB02 regmask=[rax] minReg=1 last> | |
<RefPosition #60 @94 RefTypeUse <Ivl:27> BB02 regmask=[rcx] minReg=1 last delay regOptional> | |
<RefPosition #61 @95 RefTypeDef <Ivl:29> SUB BB02 regmask=[rax] minReg=1> | |
<RefPosition #62 @96 RefTypeUse <Ivl:29> BB02 regmask=[rax] minReg=1 last> | |
<RefPosition #63 @103 RefTypeDef <Ivl:30> CNS_INT BB02 regmask=[rcx] minReg=1> | |
<RefPosition #64 @104 RefTypeUse <Ivl:30> BB02 regmask=[rcx] minReg=1 last> | |
<RefPosition #65 @105 RefTypeDef <Ivl:31> CAST BB02 regmask=[rcx] minReg=1> | |
<RefPosition #66 @107 RefTypeDef <Ivl:32> CNS_INT BB02 regmask=[rax] minReg=1> | |
<RefPosition #67 @108 RefTypeUse <Ivl:32> BB02 regmask=[rax] minReg=1 last> | |
<RefPosition #68 @109 RefTypeDef <Ivl:33> CAST BB02 regmask=[rax] minReg=1> | |
<RefPosition #69 @110 RefTypeUse <Ivl:31> BB02 regmask=[rcx] minReg=1 last regOptional> | |
<RefPosition #70 @110 RefTypeUse <Ivl:33> BB02 regmask=[rax] minReg=1 last> | |
<RefPosition #71 @111 RefTypeDef <Ivl:34> MUL BB02 regmask=[rcx] minReg=1> | |
<RefPosition #72 @112 RefTypeUse <Ivl:34> BB02 regmask=[rcx] minReg=1 last> | |
<RefPosition #73 @113 RefTypeDef <Ivl:35> ADD BB02 regmask=[rcx] minReg=1> | |
<RefPosition #74 @114 RefTypeUse <Ivl:35> BB02 regmask=[rcx] minReg=1 last> | |
<RefPosition #75 @116 RefTypeBB BB04 regmask=[] minReg=1> | |
<RefPosition #76 @121 RefTypeDef <Ivl:36> LCL_VAR BB04 regmask=[rcx] minReg=1> | |
<RefPosition #77 @122 RefTypeUse <Ivl:36> BB04 regmask=[rcx] minReg=1 last> | |
<RefPosition #78 @124 RefTypeBB BB06 regmask=[] minReg=1> | |
<RefPosition #79 @136 RefTypeBB BB05 regmask=[] minReg=1> | |
<RefPosition #80 @141 RefTypeDef <Ivl:37> LCL_VAR BB05 regmask=[rcx] minReg=1> | |
<RefPosition #81 @142 RefTypeUse <Ivl:37> BB05 regmask=[rcx] minReg=1 last> | |
<RefPosition #82 @147 RefTypeDef <Ivl:38> LCL_VAR BB05 regmask=[rcx] minReg=1> | |
<RefPosition #83 @149 RefTypeDef <Ivl:39> LCL_VAR BB05 regmask=[rax] minReg=1> | |
<RefPosition #84 @152 RefTypeUse <Ivl:39> BB05 regmask=[rax] minReg=1 last delay> | |
<RefPosition #85 @153 RefTypeDef <Ivl:40> HWIntrinsic BB05 regmask=[rdx] minReg=1> | |
<RefPosition #86 @154 RefTypeUse <Ivl:40> BB05 regmask=[rdx] minReg=1 last> | |
<RefPosition #87 @155 RefTypeDef <Ivl:41> CAST BB05 regmask=[rax] minReg=1> | |
<RefPosition #88 @156 RefTypeUse <Ivl:38> BB05 regmask=[rcx] minReg=1 last> | |
<RefPosition #89 @156 RefTypeUse <Ivl:41> BB05 regmask=[rax] minReg=1 last delay regOptional> | |
<RefPosition #90 @157 RefTypeDef <Ivl:42> SUB BB05 regmask=[rcx] minReg=1> | |
<RefPosition #91 @158 RefTypeUse <Ivl:42> BB05 regmask=[rcx] minReg=1 last> | |
<RefPosition #92 @165 RefTypeDef <Ivl:43> CNS_INT BB05 regmask=[rcx] minReg=1> | |
<RefPosition #93 @166 RefTypeUse <Ivl:43> BB05 regmask=[rcx] minReg=1 last> | |
<RefPosition #94 @167 RefTypeDef <Ivl:44> CAST BB05 regmask=[rcx] minReg=1> | |
<RefPosition #95 @168 RefTypeUse <Ivl:44> BB05 regmask=[rcx] minReg=1 last> | |
<RefPosition #96 @169 RefTypeDef <Ivl:45> ADD BB05 regmask=[rcx] minReg=1> | |
<RefPosition #97 @170 RefTypeUse <Ivl:45> BB05 regmask=[rcx] minReg=1 last> | |
<RefPosition #98 @172 RefTypeBB BB07 regmask=[] minReg=1> | |
<RefPosition #99 @177 RefTypeDef <Ivl:46> LCL_VAR BB07 regmask=[rcx] minReg=1> | |
<RefPosition #100 @179 RefTypeDef <Ivl:47> CNS_INT BB07 regmask=[rax] minReg=1> | |
<RefPosition #101 @180 RefTypeUse <Ivl:47> BB07 regmask=[rax] minReg=1 last> | |
<RefPosition #102 @181 RefTypeDef <Ivl:48> CAST BB07 regmask=[rax] minReg=1> | |
<RefPosition #103 @182 RefTypeUse <Ivl:46> BB07 regmask=[rcx] minReg=1 last> | |
<RefPosition #104 @182 RefTypeUse <Ivl:48> BB07 regmask=[rax] minReg=1 last delay regOptional> | |
<RefPosition #105 @183 RefTypeDef <Ivl:49> SUB BB07 regmask=[rcx] minReg=1> | |
<RefPosition #106 @184 RefTypeUse <Ivl:49> BB07 regmask=[rcx] minReg=1 last> | |
<RefPosition #107 @189 RefTypeDef <Ivl:50> LCL_VAR BB07 regmask=[rcx] minReg=1> | |
<RefPosition #108 @192 RefTypeUse <Ivl:50> BB07 regmask=[rcx] minReg=1 last> | |
<RefPosition #109 @193 RefTypeDef <Ivl:51> ADD BB07 regmask=[rcx] minReg=1> | |
<RefPosition #110 @195 RefTypeDef <Ivl:52> CNS_INT BB07 regmask=[rax] minReg=1> | |
<RefPosition #111 @196 RefTypeUse <Ivl:52> BB07 regmask=[rax] minReg=1 last> | |
<RefPosition #112 @197 RefTypeDef <Ivl:53> CAST BB07 regmask=[rax] minReg=1> | |
<RefPosition #113 @198 RefTypeUse <Ivl:53> BB07 regmask=[rax] minReg=1 last> | |
<RefPosition #114 @198 RefTypeFixedReg <Reg:rcx> BB07 regmask=[rcx] minReg=1> | |
<RefPosition #115 @198 RefTypeUse <Ivl:51> BB07 regmask=[rcx] minReg=1 last fixed delay> | |
<RefPosition #116 @199 RefTypeKill <Reg:rcx> BB07 regmask=[rcx] minReg=1 last> | |
<RefPosition #117 @199 RefTypeDef <Ivl:54> LSH BB07 regmask=[rax] minReg=1> | |
<RefPosition #118 @201 RefTypeDef <Ivl:55> LCL_VAR BB07 regmask=[rdx] minReg=1> | |
<RefPosition #119 @204 RefTypeUse <Ivl:54> BB07 regmask=[rax] minReg=1 last> | |
<RefPosition #120 @204 RefTypeUse <Ivl:55> BB07 regmask=[rdx] minReg=1 last> | |
<RefPosition #121 @205 RefTypeDef <Ivl:56> HWIntrinsic BB07 regmask=[rax] minReg=1> | |
<RefPosition #122 @206 RefTypeUse <Ivl:56> BB07 regmask=[rax] minReg=1 last delay regOptional> | |
<RefPosition #123 @207 RefTypeDef <Ivl:57> HWIntrinsic BB07 regmask=[rdx] minReg=1> | |
<RefPosition #124 @208 RefTypeUse <Ivl:57> BB07 regmask=[rdx] minReg=1 last> | |
<RefPosition #125 @209 RefTypeDef <Ivl:58> CAST BB07 regmask=[rax] minReg=1> | |
<RefPosition #126 @210 RefTypeUse <Ivl:58> BB07 regmask=[rax] minReg=1 last> | |
<RefPosition #127 @215 RefTypeDef <Ivl:59> LCL_VAR BB07 regmask=[rax] minReg=1> | |
<RefPosition #128 @218 RefTypeUse <Ivl:59> BB07 regmask=[rax] minReg=1 last> | |
<RefPosition #129 @219 RefTypeDef <Ivl:60> SUB BB07 regmask=[rax] minReg=1> | |
<RefPosition #130 @221 RefTypeDef <Ivl:61> CNS_INT BB07 regmask=[rdx] minReg=1> | |
<RefPosition #131 @222 RefTypeUse <Ivl:61> BB07 regmask=[rdx] minReg=1 last> | |
<RefPosition #132 @223 RefTypeDef <Ivl:62> CAST BB07 regmask=[rdi] minReg=1> | |
<RefPosition #133 @224 RefTypeFixedReg <Reg:rax> BB07 regmask=[rax] minReg=1> | |
<RefPosition #134 @224 RefTypeUse <Ivl:60> BB07 regmask=[rax] minReg=1 last fixed> | |
<RefPosition #135 @224 RefTypeUse <Ivl:62> BB07 regmask=[rdi] minReg=1 last delay regOptional> | |
<RefPosition #136 @225 RefTypeKill <Reg:rax> BB07 regmask=[rax] minReg=1 last> | |
<RefPosition #137 @225 RefTypeKill <Reg:rdx> BB07 regmask=[rdx] minReg=1 last> | |
<RefPosition #138 @225 RefTypeFixedReg <Reg:rax> BB07 regmask=[rax] minReg=1> | |
<RefPosition #139 @225 RefTypeDef <Ivl:63> DIV BB07 regmask=[rax] minReg=1 fixed> | |
<RefPosition #140 @226 RefTypeUse <Ivl:63> BB07 regmask=[rax] minReg=1 last> | |
<RefPosition #141 @227 RefTypeDef <Ivl:64> CAST BB07 regmask=[rax] minReg=1> | |
<RefPosition #142 @230 RefTypeUse <Ivl:64> BB07 regmask=[rax] minReg=1 last regOptional> | |
<RefPosition #143 @231 RefTypeDef <Ivl:65> MUL BB07 regmask=[rax] minReg=1> | |
<RefPosition #144 @234 RefTypeUse <Ivl:65> BB07 regmask=[rax] minReg=1 last> | |
<RefPosition #145 @235 RefTypeDef <Ivl:66> ADD BB07 regmask=[rax] minReg=1> | |
<RefPosition #146 @236 RefTypeFixedReg <Reg:rax> BB07 regmask=[rax] minReg=1> | |
<RefPosition #147 @236 RefTypeUse <Ivl:66> BB07 regmask=[rax] minReg=1 last fixed> | |
Active intervals at end of allocation: | |
Active Interval 51: RefPositions {#109@193 #115@198} physReg:NA Preferences=[rcx] RelatedInterval <I50>[000000000140C608] | |
Trees after linear scan register allocator (LSRA) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..004)-> BB03 (always) i label target LIR | |
BB02 [0001] 1 BB03 1 [004..03B) i label target bwd LIR | |
BB03 [0002] 2 BB01,BB02 1 [03B..043)-> BB02 ( cond ) i label target bwd LIR | |
BB04 [0003] 1 BB03 1 [043..047)-> BB06 (always) i LIR | |
BB05 [0004] 1 BB06 1 [047..059) i label target bwd LIR | |
BB06 [0005] 2 BB04,BB05 1 [059..05D)-> BB05 ( cond ) i label target bwd LIR | |
BB07 [0006] 1 BB06 1 [05D..086) (return) i LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..004) -> BB03 (always), preds={} succs={BB03} | |
N002 ( 7, 5) [000004] ------------ IL_OFFSET void IL offset: 0x0 REG NA | |
N004 ( 3, 2) [000001] ------------ t1 = LCL_VAR long V00 arg0 rcx REG rcx | |
/--* t1 long | |
N006 ( 7, 5) [000003] DA---------- * STORE_LCL_VAR long V03 loc0 NA REG NA | |
------------ BB02 [004..03B), preds={BB03} succs={BB03} | |
N022 ( 61, 58) [000047] ------------ IL_OFFSET void IL offset: 0x4 REG NA | |
N024 ( 3, 2) [000013] ------------ t13 = LCL_VAR long V03 loc0 rcx REG rcx | |
/--* t13 long | |
N026 ( 6, 4) [000014] *c-XG------- t14 = * IND long REG NA | |
/--* t14 long | |
N028 ( 7, 5) [000015] ---XG------- t15 = * HWIntrinsic long PopCount REG rax | |
/--* t15 long | |
N030 ( 8, 7) [000132] ---XG------- t132 = * CAST int <- long REG rcx | |
N032 ( 3, 2) [000016] ------------ t16 = LCL_VAR long V03 loc0 rax REG rax | |
N034 ( 1, 1) [000017] ------------ t17 = CNS_INT int 8 REG rdx | |
/--* t17 int | |
N036 ( 2, 3) [000018] ------------ t18 = * CAST long <- int REG rdx | |
/--* t16 long | |
+--* t18 long | |
N038 (???,???) [000136] -c---------- t136 = * LEA(b+(i*1)+0) long REG NA | |
/--* t136 long | |
N040 ( 8, 7) [000020] *c-XG------- t20 = * IND long REG NA | |
/--* t20 long | |
N042 ( 9, 8) [000021] ---XG------- t21 = * HWIntrinsic long PopCount REG rdi | |
/--* t21 long | |
N044 ( 10, 10) [000133] ---XG------- t133 = * CAST int <- long REG rax | |
/--* t132 int | |
+--* t133 int | |
N046 ( 19, 18) [000022] ---XG------- t22 = * ADD int REG rcx | |
N048 ( 3, 2) [000023] ------------ t23 = LCL_VAR long V03 loc0 rax REG rax | |
N050 ( 1, 1) [000024] ------------ t24 = CNS_INT int 2 REG rdx | |
/--* t24 int | |
N052 ( 2, 3) [000025] ------------ t25 = * CAST long <- int REG rdx | |
N054 ( 1, 1) [000026] ------------ t26 = CNS_INT int 8 REG rdi | |
/--* t26 int | |
N056 ( 2, 3) [000027] ------------ t27 = * CAST long <- int REG rdi | |
/--* t25 long | |
+--* t27 long | |
N058 ( 8, 9) [000028] ------------ t28 = * MUL long REG rdx | |
/--* t23 long | |
+--* t28 long | |
N060 (???,???) [000137] -c---------- t137 = * LEA(b+(i*1)+0) long REG NA | |
/--* t137 long | |
N062 ( 14, 13) [000030] *c-XG------- t30 = * IND long REG NA | |
/--* t30 long | |
N064 ( 15, 14) [000031] ---XG------- t31 = * HWIntrinsic long PopCount REG rdi | |
/--* t31 long | |
N066 ( 16, 16) [000131] ---XG------- t131 = * CAST int <- long REG rax | |
/--* t22 int | |
+--* t131 int | |
N068 ( 36, 35) [000032] ---XG------- t32 = * ADD int REG rcx | |
N070 ( 3, 2) [000033] ------------ t33 = LCL_VAR long V03 loc0 rax REG rax | |
N072 ( 1, 1) [000034] ------------ t34 = CNS_INT int 3 REG rdx | |
/--* t34 int | |
N074 ( 2, 3) [000035] ------------ t35 = * CAST long <- int REG rdx | |
N076 ( 1, 1) [000036] ------------ t36 = CNS_INT int 8 REG rdi | |
/--* t36 int | |
N078 ( 2, 3) [000037] ------------ t37 = * CAST long <- int REG rdi | |
/--* t35 long | |
+--* t37 long | |
N080 ( 8, 9) [000038] ------------ t38 = * MUL long REG rdx | |
/--* t33 long | |
+--* t38 long | |
N082 (???,???) [000138] -c---------- t138 = * LEA(b+(i*1)+0) long REG NA | |
/--* t138 long | |
N084 ( 14, 13) [000040] *c-XG------- t40 = * IND long REG NA | |
/--* t40 long | |
N086 ( 15, 14) [000041] ---XG------- t41 = * HWIntrinsic long PopCount REG rdi | |
/--* t41 long | |
N088 ( 16, 16) [000129] ---XG------- t129 = * CAST int <- long REG rax | |
/--* t32 int | |
+--* t129 int | |
N090 ( 53, 52) [000042] ---XG------- t42 = * ADD int REG rcx | |
N092 ( 3, 2) [000012] ------------ t12 = LCL_VAR int V02 arg2 rax REG rax | |
/--* t12 int | |
+--* t42 int | |
N094 ( 57, 55) [000044] ---XG------- t44 = * SUB int REG rax | |
/--* t44 int | |
N096 ( 61, 58) [000046] DA-XG------- * STORE_LCL_VAR int V02 arg2 NA REG NA | |
N098 ( 16, 15) [000057] ------------ IL_OFFSET void IL offset: 0x34 REG NA | |
N100 ( 3, 2) [000048] -c---------- t48 = LCL_VAR long V03 loc0 NA REG NA | |
N102 ( 1, 1) [000049] ------------ t49 = CNS_INT int 4 REG rcx | |
/--* t49 int | |
N104 ( 2, 3) [000050] ------------ t50 = * CAST long <- int REG rcx | |
N106 ( 1, 1) [000051] ------------ t51 = CNS_INT int 8 REG rax | |
/--* t51 int | |
N108 ( 2, 3) [000052] ------------ t52 = * CAST long <- int REG rax | |
/--* t50 long | |
+--* t52 long | |
N110 ( 8, 9) [000053] ------------ t53 = * MUL long REG rcx | |
/--* t48 long | |
+--* t53 long | |
N112 ( 12, 12) [000054] ------------ t54 = * ADD long REG rcx | |
/--* t54 long | |
N114 ( 16, 15) [000056] DA---------- * STORE_LCL_VAR long V03 loc0 NA REG NA | |
------------ BB03 [03B..043) -> BB02 (cond), preds={BB01,BB02} succs={BB04,BB02} | |
N010 ( 7, 9) [000010] ------------ IL_OFFSET void IL offset: 0x3b REG NA | |
N012 ( 3, 2) [000006] -c---------- t6 = LCL_VAR int V02 arg2 NA REG NA | |
N014 ( 1, 4) [000007] -c---------- t7 = CNS_INT int 256 REG NA | |
/--* t6 int | |
+--* t7 int | |
N016 ( 5, 7) [000008] J------N---- * GE void REG NA | |
N018 ( 7, 9) [000009] ------------ * JTRUE void REG NA | |
------------ BB04 [043..047) -> BB06 (always), preds={BB03} succs={BB06} | |
N118 ( 7, 5) [000062] ------------ IL_OFFSET void IL offset: 0x43 REG NA | |
N120 ( 3, 2) [000059] ------------ t59 = LCL_VAR int V02 arg2 rcx REG rcx | |
/--* t59 int | |
N122 ( 7, 5) [000061] DA---------- * STORE_LCL_VAR int V04 loc1 NA REG NA | |
------------ BB05 [047..059), preds={BB06} succs={BB06} | |
N138 ( 7, 5) [000073] ------------ IL_OFFSET void IL offset: 0x47 REG NA | |
N140 ( 3, 2) [000070] ------------ t70 = LCL_VAR int V02 arg2 rcx REG rcx | |
/--* t70 int | |
N142 ( 7, 5) [000072] DA---------- * STORE_LCL_VAR int V04 loc1 NA REG NA | |
N144 ( 16, 13) [000082] ------------ IL_OFFSET void IL offset: 0x49 REG NA | |
N146 ( 3, 2) [000074] ------------ t74 = LCL_VAR int V02 arg2 rcx REG rcx | |
N148 ( 3, 2) [000075] ------------ t75 = LCL_VAR long V03 loc0 rax REG rax | |
/--* t75 long | |
N150 ( 6, 4) [000076] *c-XG------- t76 = * IND long REG NA | |
/--* t76 long | |
N152 ( 7, 5) [000077] ---XG------- t77 = * HWIntrinsic long PopCount REG rdx | |
/--* t77 long | |
N154 ( 8, 7) [000078] ---XG------- t78 = * CAST int <- long REG rax | |
/--* t74 int | |
+--* t78 int | |
N156 ( 12, 10) [000079] ---XG------- t79 = * SUB int REG rcx | |
/--* t79 int | |
N158 ( 16, 13) [000081] DA-XG------- * STORE_LCL_VAR int V02 arg2 NA REG NA | |
N160 ( 10, 9) [000089] ------------ IL_OFFSET void IL offset: 0x55 REG NA | |
N162 ( 3, 2) [000083] -c---------- t83 = LCL_VAR long V03 loc0 NA REG NA | |
N164 ( 1, 1) [000084] ------------ t84 = CNS_INT int 8 REG rcx | |
/--* t84 int | |
N166 ( 2, 3) [000085] ------------ t85 = * CAST long <- int REG rcx | |
/--* t83 long | |
+--* t85 long | |
N168 ( 6, 6) [000086] ------------ t86 = * ADD long REG rcx | |
/--* t86 long | |
N170 ( 10, 9) [000088] DA---------- * STORE_LCL_VAR long V03 loc0 NA REG NA | |
------------ BB06 [059..05D) -> BB05 (cond), preds={BB04,BB05} succs={BB07,BB05} | |
N126 ( 7, 6) [000068] ------------ IL_OFFSET void IL offset: 0x59 REG NA | |
N128 ( 3, 2) [000064] -c---------- t64 = LCL_VAR int V02 arg2 NA REG NA | |
N130 ( 1, 1) [000065] -c---------- t65 = CNS_INT int 0 REG NA | |
/--* t64 int | |
+--* t65 int | |
N132 ( 5, 4) [000066] J------N---- * GT void REG NA | |
N134 ( 7, 6) [000067] ------------ * JTRUE void REG NA | |
------------ BB07 [05D..086) (return), preds={BB06} succs={} | |
N174 ( 10, 9) [000097] ------------ IL_OFFSET void IL offset: 0x5d REG NA | |
N176 ( 3, 2) [000091] ------------ t91 = LCL_VAR long V03 loc0 rcx REG rcx | |
N178 ( 1, 1) [000092] ------------ t92 = CNS_INT int 8 REG rax | |
/--* t92 int | |
N180 ( 2, 3) [000093] ------------ t93 = * CAST long <- int REG rax | |
/--* t91 long | |
+--* t93 long | |
N182 ( 6, 6) [000094] ------------ t94 = * SUB long REG rcx | |
/--* t94 long | |
N184 ( 10, 9) [000096] DA---------- * STORE_LCL_VAR long V03 loc0 NA REG NA | |
N186 ( 26, 21) [000113] ------------ IL_OFFSET void IL offset: 0x61 REG NA | |
N188 ( 3, 2) [000100] ------------ t100 = LCL_VAR int V04 loc1 rcx REG rcx | |
N190 ( 1, 1) [000101] -c---------- t101 = CNS_INT int -1 REG NA | |
/--* t100 int | |
+--* t101 int | |
N192 ( 5, 4) [000102] ------------ t102 = * ADD int REG rcx | |
N194 ( 1, 1) [000098] ------------ t98 = CNS_INT int 1 REG rax | |
/--* t98 int | |
N196 ( 2, 3) [000099] ------------ t99 = * CAST long <- int REG rax | |
/--* t99 long | |
+--* t102 int | |
N198 ( 13, 10) [000105] ------------ t105 = * LSH long REG rax | |
N200 ( 3, 2) [000106] ------------ t106 = LCL_VAR long V03 loc0 rdx REG rdx | |
/--* t106 long | |
N202 ( 6, 4) [000107] *c-XG------- t107 = * IND long REG NA | |
/--* t105 long | |
+--* t107 long | |
N204 ( 20, 15) [000108] ---XG------- t108 = * HWIntrinsic long ParallelBitDeposit REG rax | |
/--* t108 long | |
N206 ( 21, 16) [000109] ---XG------- t109 = * HWIntrinsic long TrailingZeroCount REG rdx | |
/--* t109 long | |
N208 ( 22, 18) [000110] ---XG------- t110 = * CAST int <- long REG rax | |
/--* t110 int | |
N210 ( 26, 21) [000112] DA-XG------- * STORE_LCL_VAR int V05 loc2 NA REG NA | |
N212 ( 40, 21) [000127] ------------ IL_OFFSET void IL offset: 0x78 REG NA | |
N214 ( 3, 2) [000114] ------------ t114 = LCL_VAR long V03 loc0 rax REG rax | |
N216 ( 3, 2) [000115] -c---------- t115 = LCL_VAR long V00 arg0 NA REG NA | |
/--* t114 long | |
+--* t115 long | |
N218 ( 7, 5) [000116] ------------ t116 = * SUB long REG rax | |
N220 ( 1, 1) [000117] ------------ t117 = CNS_INT int 8 REG rdx | |
/--* t117 int | |
N222 ( 2, 3) [000118] ------------ t118 = * CAST long <- int REG rdi | |
/--* t116 long | |
+--* t118 long | |
N224 ( 29, 11) [000119] ---X-------- t119 = * DIV long REG rax | |
/--* t119 long | |
N226 ( 30, 13) [000134] ---X-------- t134 = * CAST int <- long REG rax | |
N228 ( 1, 1) [000120] -c---------- t120 = CNS_INT int 64 REG NA | |
/--* t134 int | |
+--* t120 int | |
N230 ( 35, 17) [000122] ---X-------- t122 = * MUL int REG rax | |
N232 ( 3, 2) [000124] -c---------- t124 = LCL_VAR int V05 loc2 NA REG NA | |
/--* t122 int | |
+--* t124 int | |
N234 ( 39, 20) [000125] ---X-------- t125 = * ADD int REG rax | |
/--* t125 int | |
N236 ( 40, 21) [000126] ---X-------- * RETURN int REG NA | |
------------------------------------------------------------------------------------------------------------------- | |
Final allocation | |
--------------------------------+----+----+----+----+----+----+----+ | |
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rdi |r12 |r13 | | |
--------------------------------+----+----+----+----+----+----+----+ | |
0.#0 BB1 PredBB0 | | | | | | | | | |
5.#1 I0 Def Alloc rcx | |I0 a| | | | | | | |
6.#2 I0 Use * Keep rcx | |I0 i| | | | | | | |
--------------------------------+----+----+----+----+----+----+----+ | |
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rdi |r12 |r13 | | |
--------------------------------+----+----+----+----+----+----+----+ | |
8.#3 BB3 PredBB1 | | | | | | | | | |
--------------------------------+----+----+----+----+----+----+----+ | |
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rdi |r12 |r13 | | |
--------------------------------+----+----+----+----+----+----+----+ | |
20.#4 BB2 PredBB3 | | | | | | | | | |
25.#5 I1 Def Alloc rcx | |I1 a| | | | | | | |
28.#6 I1 Use *D Keep rcx | |I1 i| | | | | | | |
29.#7 I2 Def Alloc rax |I2 a| | | | | | | | |
30.#8 I2 Use * Keep rax |I2 i| | | | | | | | |
31.#9 I3 Def Alloc rcx | |I3 a| | | | | | | |
33.#10 I4 Def Alloc rax |I4 a|I3 a| | | | | | | |
35.#11 C5 Def Alloc rdx |I4 a|I3 a|C5 a| | | | | | |
36.#12 C5 Use * Keep rdx |I4 a|I3 a|C5 i| | | | | | |
37.#13 I6 Def Alloc rdx |I4 a|I3 a|I6 a| | | | | | |
42.#14 I4 Use *D Keep rax |I4 i|I3 a|I6 a| | | | | | |
42.#15 I6 Use *D Keep rdx | |I3 a|I6 i| | | | | | |
43.#16 I7 Def Alloc rdi | |I3 a| | |I7 a| | | | |
44.#17 I7 Use * Keep rdi | |I3 a| | |I7 i| | | | |
45.#18 I8 Def Alloc rax |I8 a|I3 a| | | | | | | |
46.#19 I3 Use * Keep rcx |I8 a|I3 i| | | | | | | |
46.#20 I8 Use * Keep rax |I8 i| | | | | | | | |
47.#21 I9 Def Alloc rcx | |I9 a| | | | | | | |
49.#22 I10 Def Alloc rax |I10a|I9 a| | | | | | | |
51.#23 C11 Def Alloc rdx |I10a|I9 a|C11a| | | | | | |
52.#24 C11 Use * Keep rdx |I10a|I9 a|C11i| | | | | | |
53.#25 I12 Def Alloc rdx |I10a|I9 a|I12a| | | | | | |
55.#26 C13 Def Alloc rdi |I10a|I9 a|I12a| |C13a| | | | |
56.#27 C13 Use * Keep rdi |I10a|I9 a|I12a| |C13i| | | | |
57.#28 I14 Def Alloc rdi |I10a|I9 a|I12a| |I14a| | | | |
58.#29 I12 Use * Keep rdx |I10a|I9 a|I12i| |I14a| | | | |
58.#30 I14 Use * Keep rdi |I10a|I9 a| | |I14i| | | | |
59.#31 I15 Def Alloc rdx |I10a|I9 a|I15a| | | | | | |
64.#32 I10 Use *D Keep rax |I10i|I9 a|I15a| | | | | | |
64.#33 I15 Use *D Keep rdx | |I9 a|I15i| | | | | | |
65.#34 I16 Def Alloc rdi | |I9 a| | |I16a| | | | |
66.#35 I16 Use * Keep rdi | |I9 a| | |I16i| | | | |
67.#36 I17 Def Alloc rax |I17a|I9 a| | | | | | | |
68.#37 I9 Use * Keep rcx |I17a|I9 i| | | | | | | |
68.#38 I17 Use * Keep rax |I17i| | | | | | | | |
69.#39 I18 Def Alloc rcx | |I18a| | | | | | | |
71.#40 I19 Def Alloc rax |I19a|I18a| | | | | | | |
73.#41 C20 Def Alloc rdx |I19a|I18a|C20a| | | | | | |
74.#42 C20 Use * Keep rdx |I19a|I18a|C20i| | | | | | |
75.#43 I21 Def Alloc rdx |I19a|I18a|I21a| | | | | | |
77.#44 C22 Def Alloc rdi |I19a|I18a|I21a| |C22a| | | | |
78.#45 C22 Use * Keep rdi |I19a|I18a|I21a| |C22i| | | | |
79.#46 I23 Def Alloc rdi |I19a|I18a|I21a| |I23a| | | | |
80.#47 I21 Use * Keep rdx |I19a|I18a|I21i| |I23a| | | | |
80.#48 I23 Use * Keep rdi |I19a|I18a| | |I23i| | | | |
81.#49 I24 Def Alloc rdx |I19a|I18a|I24a| | | | | | |
86.#50 I19 Use *D Keep rax |I19i|I18a|I24a| | | | | | |
86.#51 I24 Use *D Keep rdx | |I18a|I24i| | | | | | |
87.#52 I25 Def Alloc rdi | |I18a| | |I25a| | | | |
88.#53 I25 Use * Keep rdi | |I18a| | |I25i| | | | |
89.#54 I26 Def Alloc rax |I26a|I18a| | | | | | | |
90.#55 I18 Use * Keep rcx |I26a|I18i| | | | | | | |
90.#56 I26 Use * Keep rax |I26i| | | | | | | | |
91.#57 I27 Def Alloc rcx | |I27a| | | | | | | |
93.#58 I28 Def Alloc rax |I28a|I27a| | | | | | | |
94.#59 I28 Use * Keep rax |I28i|I27a| | | | | | | |
94.#60 I27 Use *D Keep rcx | |I27i| | | | | | | |
95.#61 I29 Def Alloc rax |I29a| | | | | | | | |
96.#62 I29 Use * Keep rax |I29i| | | | | | | | |
103.#63 C30 Def Alloc rcx | |C30a| | | | | | | |
104.#64 C30 Use * Keep rcx | |C30i| | | | | | | |
105.#65 I31 Def Alloc rcx | |I31a| | | | | | | |
107.#66 C32 Def Alloc rax |C32a|I31a| | | | | | | |
108.#67 C32 Use * Keep rax |C32i|I31a| | | | | | | |
109.#68 I33 Def Alloc rax |I33a|I31a| | | | | | | |
110.#69 I31 Use * Keep rcx |I33a|I31i| | | | | | | |
110.#70 I33 Use * Keep rax |I33i| | | | | | | | |
111.#71 I34 Def Alloc rcx | |I34a| | | | | | | |
112.#72 I34 Use * Keep rcx | |I34i| | | | | | | |
113.#73 I35 Def Alloc rcx | |I35a| | | | | | | |
114.#74 I35 Use * Keep rcx | |I35i| | | | | | | |
--------------------------------+----+----+----+----+----+----+----+ | |
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rdi |r12 |r13 | | |
--------------------------------+----+----+----+----+----+----+----+ | |
116.#75 BB4 PredBB3 | | | | | | | | | |
121.#76 I36 Def Alloc rcx | |I36a| | | | | | | |
122.#77 I36 Use * Keep rcx | |I36i| | | | | | | |
--------------------------------+----+----+----+----+----+----+----+ | |
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rdi |r12 |r13 | | |
--------------------------------+----+----+----+----+----+----+----+ | |
124.#78 BB6 PredBB4 | | | | | | | | | |
--------------------------------+----+----+----+----+----+----+----+ | |
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rdi |r12 |r13 | | |
--------------------------------+----+----+----+----+----+----+----+ | |
136.#79 BB5 PredBB6 | | | | | | | | | |
141.#80 I37 Def Alloc rcx | |I37a| | | | | | | |
142.#81 I37 Use * Keep rcx | |I37i| | | | | | | |
147.#82 I38 Def Alloc rcx | |I38a| | | | | | | |
149.#83 I39 Def Alloc rax |I39a|I38a| | | | | | | |
152.#84 I39 Use *D Keep rax |I39i|I38a| | | | | | | |
153.#85 I40 Def Alloc rdx | |I38a|I40a| | | | | | |
154.#86 I40 Use * Keep rdx | |I38a|I40i| | | | | | |
155.#87 I41 Def Alloc rax |I41a|I38a| | | | | | | |
156.#88 I38 Use * Keep rcx |I41a|I38i| | | | | | | |
156.#89 I41 Use *D Keep rax |I41i| | | | | | | | |
157.#90 I42 Def Alloc rcx | |I42a| | | | | | | |
158.#91 I42 Use * Keep rcx | |I42i| | | | | | | |
165.#92 C43 Def Alloc rcx | |C43a| | | | | | | |
166.#93 C43 Use * Keep rcx | |C43i| | | | | | | |
167.#94 I44 Def Alloc rcx | |I44a| | | | | | | |
168.#95 I44 Use * Keep rcx | |I44i| | | | | | | |
169.#96 I45 Def Alloc rcx | |I45a| | | | | | | |
170.#97 I45 Use * Keep rcx | |I45i| | | | | | | |
--------------------------------+----+----+----+----+----+----+----+ | |
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rdi |r12 |r13 | | |
--------------------------------+----+----+----+----+----+----+----+ | |
172.#98 BB7 PredBB6 | | | | | | | | | |
177.#99 I46 Def Alloc rcx | |I46a| | | | | | | |
179.#100 C47 Def Alloc rax |C47a|I46a| | | | | | | |
180.#101 C47 Use * Keep rax |C47i|I46a| | | | | | | |
181.#102 I48 Def Alloc rax |I48a|I46a| | | | | | | |
182.#103 I46 Use * Keep rcx |I48a|I46i| | | | | | | |
182.#104 I48 Use *D Keep rax |I48i| | | | | | | | |
183.#105 I49 Def Alloc rcx | |I49a| | | | | | | |
184.#106 I49 Use * Keep rcx | |I49i| | | | | | | |
189.#107 I50 Def Alloc rcx | |I50a| | | | | | | |
192.#108 I50 Use * Keep rcx | |I50i| | | | | | | |
193.#109 I51 Def Alloc rcx | |I51a| | | | | | | |
195.#110 C52 Def Alloc rax |C52a|I51a| | | | | | | |
196.#111 C52 Use * Keep rax |C52i|I51a| | | | | | | |
197.#112 I53 Def Alloc rax |I53a|I51a| | | | | | | |
198.#113 I53 Use * Keep rax |I53i|I51a| | | | | | | |
198.#114 rcx Fixd Keep rcx | |I51a| | | | | | | |
198.#115 I51 Use *D Keep rcx | |I51i| | | | | | | |
199.#116 rcx Kill Keep rcx | | | | | | | | | |
199.#117 I54 Def Alloc rax |I54a| | | | | | | | |
201.#118 I55 Def Alloc rdx |I54a| |I55a| | | | | | |
204.#119 I54 Use * Keep rax |I54i| |I55a| | | | | | |
204.#120 I55 Use * Keep rdx | | |I55i| | | | | | |
205.#121 I56 Def Alloc rax |I56a| | | | | | | | |
206.#122 I56 Use *D Keep rax |I56i| | | | | | | | |
207.#123 I57 Def Alloc rdx | | |I57a| | | | | | |
208.#124 I57 Use * Keep rdx | | |I57i| | | | | | |
209.#125 I58 Def Alloc rax |I58a| | | | | | | | |
210.#126 I58 Use * Keep rax |I58i| | | | | | | | |
215.#127 I59 Def Alloc rax |I59a| | | | | | | | |
218.#128 I59 Use * Keep rax |I59i| | | | | | | | |
219.#129 I60 Def Alloc rax |I60a| | | | | | | | |
221.#130 C61 Def Alloc rdx |I60a| |C61a| | | | | | |
222.#131 C61 Use * Keep rdx |I60a| |C61i| | | | | | |
223.#132 I62 Def Alloc rdi |I60a| | | |I62a| | | | |
224.#133 rax Fixd Keep rax |I60a| | | |I62a| | | | |
224.#134 I60 Use * Keep rax |I60i| | | |I62a| | | | |
224.#135 I62 Use *D Keep rdi | | | | |I62i| | | | |
225.#136 rax Kill Keep rax | | | | | | | | | |
225.#137 rdx Kill Keep rdx | | | | | | | | | |
225.#138 rax Fixd Keep rax | | | | | | | | | |
225.#139 I63 Def Alloc rax |I63a| | | | | | | | |
226.#140 I63 Use * Keep rax |I63i| | | | | | | | |
227.#141 I64 Def Alloc rax |I64a| | | | | | | | |
230.#142 I64 Use * Keep rax |I64i| | | | | | | | |
231.#143 I65 Def Alloc rax |I65a| | | | | | | | |
234.#144 I65 Use * Keep rax |I65i| | | | | | | | |
235.#145 I66 Def Alloc rax |I66a| | | | | | | | |
236.#146 rax Fixd Keep rax |I66a| | | | | | | | |
236.#147 I66 Use * Keep rax |I66i| | | | | | | | |
Recording the maximum number of concurrent spills: | |
---------- | |
LSRA Stats | |
---------- | |
Total Tracked Vars: 0 | |
Total Reg Cand Vars: 0 | |
Total number of Intervals: 66 | |
Total number of RefPositions: 147 | |
Total Spill Count: 0 Weighted: 0 | |
Total CopyReg Count: 0 Weighted: 0 | |
Total ResolutionMov Count: 0 Weighted: 0 | |
Total number of split edges: 0 | |
Total Number of spill temps created: 0 | |
TUPLE STYLE DUMP WITH REGISTER ASSIGNMENTS | |
Incoming Parameters: | |
BB01 [000..004) -> BB03 (always), preds={} succs={BB03} | |
===== | |
N002. IL_OFFSET IL offset: 0x0 REG NA | |
N004. rcx = V00 MEM | |
N006. V03 MEM; rcx | |
BB03 [03B..043) -> BB02 (cond), preds={BB01,BB02} succs={BB04,BB02} | |
===== | |
N010. IL_OFFSET IL offset: 0x3b REG NA | |
N012. V02 MEM | |
N014. CNS_INT 256 REG NA | |
N016. GE | |
N018. JTRUE | |
BB02 [004..03B), preds={BB03} succs={BB03} | |
===== | |
N022. IL_OFFSET IL offset: 0x4 REG NA | |
N024. rcx = V03 MEM | |
N026. STK = IND ; rcx | |
N028. rax = HWIntrinsic; STK | |
N030. rcx = CAST ; rax | |
N032. rax = V03 MEM | |
N034. rdx = CNS_INT 8 REG rdx | |
N036. rdx = CAST ; rdx | |
N038. STK = LEA(b+(i*1)+0); rax,rdx | |
N040. STK = IND ; STK | |
N042. rdi = HWIntrinsic; STK | |
N044. rax = CAST ; rdi | |
N046. rcx = ADD ; rcx,rax | |
N048. rax = V03 MEM | |
N050. rdx = CNS_INT 2 REG rdx | |
N052. rdx = CAST ; rdx | |
N054. rdi = CNS_INT 8 REG rdi | |
N056. rdi = CAST ; rdi | |
N058. rdx = MUL ; rdx,rdi | |
N060. STK = LEA(b+(i*1)+0); rax,rdx | |
N062. STK = IND ; STK | |
N064. rdi = HWIntrinsic; STK | |
N066. rax = CAST ; rdi | |
N068. rcx = ADD ; rcx,rax | |
N070. rax = V03 MEM | |
N072. rdx = CNS_INT 3 REG rdx | |
N074. rdx = CAST ; rdx | |
N076. rdi = CNS_INT 8 REG rdi | |
N078. rdi = CAST ; rdi | |
N080. rdx = MUL ; rdx,rdi | |
N082. STK = LEA(b+(i*1)+0); rax,rdx | |
N084. STK = IND ; STK | |
N086. rdi = HWIntrinsic; STK | |
N088. rax = CAST ; rdi | |
N090. rcx = ADD ; rcx,rax | |
N092. rax = V02 MEM | |
N094. rax = SUB ; rax,rcx | |
N096. V02 MEM; rax | |
N098. IL_OFFSET IL offset: 0x34 REG NA | |
N100. V03 MEM | |
N102. rcx = CNS_INT 4 REG rcx | |
N104. rcx = CAST ; rcx | |
N106. rax = CNS_INT 8 REG rax | |
N108. rax = CAST ; rax | |
N110. rcx = MUL ; rcx,rax | |
N112. rcx = ADD ; rcx | |
N114. V03 MEM; rcx | |
BB04 [043..047) -> BB06 (always), preds={BB03} succs={BB06} | |
===== | |
N118. IL_OFFSET IL offset: 0x43 REG NA | |
N120. rcx = V02 MEM | |
N122. V04 MEM; rcx | |
BB06 [059..05D) -> BB05 (cond), preds={BB04,BB05} succs={BB07,BB05} | |
===== | |
N126. IL_OFFSET IL offset: 0x59 REG NA | |
N128. V02 MEM | |
N130. CNS_INT 0 REG NA | |
N132. GT | |
N134. JTRUE | |
BB05 [047..059), preds={BB06} succs={BB06} | |
===== | |
N138. IL_OFFSET IL offset: 0x47 REG NA | |
N140. rcx = V02 MEM | |
N142. V04 MEM; rcx | |
N144. IL_OFFSET IL offset: 0x49 REG NA | |
N146. rcx = V02 MEM | |
N148. rax = V03 MEM | |
N150. STK = IND ; rax | |
N152. rdx = HWIntrinsic; STK | |
N154. rax = CAST ; rdx | |
N156. rcx = SUB ; rcx,rax | |
N158. V02 MEM; rcx | |
N160. IL_OFFSET IL offset: 0x55 REG NA | |
N162. V03 MEM | |
N164. rcx = CNS_INT 8 REG rcx | |
N166. rcx = CAST ; rcx | |
N168. rcx = ADD ; rcx | |
N170. V03 MEM; rcx | |
BB07 [05D..086) (return), preds={BB06} succs={} | |
===== | |
N174. IL_OFFSET IL offset: 0x5d REG NA | |
N176. rcx = V03 MEM | |
N178. rax = CNS_INT 8 REG rax | |
N180. rax = CAST ; rax | |
N182. rcx = SUB ; rcx,rax | |
N184. V03 MEM; rcx | |
N186. IL_OFFSET IL offset: 0x61 REG NA | |
N188. rcx = V04 MEM | |
N190. CNS_INT -1 REG NA | |
N192. rcx = ADD ; rcx | |
N194. rax = CNS_INT 1 REG rax | |
N196. rax = CAST ; rax | |
N198. rax = LSH ; rax,rcx | |
N200. rdx = V03 MEM | |
N202. STK = IND ; rdx | |
N204. rax = HWIntrinsic; rax,STK | |
N206. rdx = HWIntrinsic; rax | |
N208. rax = CAST ; rdx | |
N210. V05 MEM; rax | |
N212. IL_OFFSET IL offset: 0x78 REG NA | |
N214. rax = V03 MEM | |
N216. V00 MEM | |
N218. rax = SUB ; rax | |
N220. rdx = CNS_INT 8 REG rdx | |
N222. rdi = CAST ; rdx | |
N224. rax = DIV ; rax,rdi | |
N226. rax = CAST ; rax | |
N228. CNS_INT 64 REG NA | |
N230. rax = MUL ; rax | |
N232. V05 MEM | |
N234. rax = ADD ; rax | |
N236. RETURN ; rax | |
*************** In genGenerateCode() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..004)-> BB03 (always) i label target LIR | |
BB02 [0001] 1 BB03 1 [004..03B) i label target bwd LIR | |
BB03 [0002] 2 BB01,BB02 1 [03B..043)-> BB02 ( cond ) i label target bwd LIR | |
BB04 [0003] 1 BB03 1 [043..047)-> BB06 (always) i LIR | |
BB05 [0004] 1 BB06 1 [047..059) i label target bwd LIR | |
BB06 [0005] 2 BB04,BB05 1 [059..05D)-> BB05 ( cond ) i label target bwd LIR | |
BB07 [0006] 1 BB06 1 [05D..086) (return) i LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Finalizing stack frame | |
Marking regs modified: [r13] ([rax rcx rdx rdi] => [rax rcx rdx rdi r13]) | |
Modified regs: [rax rcx rdx rdi r13] | |
Callee-saved registers pushed: 1 [r13] | |
*************** In lvaAssignFrameOffsets(FINAL_FRAME_LAYOUT) | |
Assign V00 arg0, size=8, stkOffs=-0x20 | |
Assign V01 arg1, size=4, stkOffs=-0x24 | |
Assign V02 arg2, size=4, stkOffs=-0x28 | |
Assign V03 loc0, size=8, stkOffs=-0x30 | |
Assign V04 loc1, size=4, stkOffs=-0x34 | |
Assign V05 loc2, size=4, stkOffs=-0x38 | |
; Final local variable assignments | |
; | |
; V00 arg0 [V00 ] ( 1, 1 ) long -> [rbp-0x10] | |
; V01 arg1 [V01 ] ( 1, 1 ) int -> [rbp-0x14] | |
; V02 arg2 [V02 ] ( 1, 1 ) int -> [rbp-0x18] | |
; V03 loc0 [V03 ] ( 1, 1 ) long -> [rbp-0x20] must-init | |
; V04 loc1 [V04 ] ( 1, 1 ) int -> [rbp-0x24] must-init | |
; V05 loc2 [V05 ] ( 1, 1 ) int -> [rbp-0x28] must-init | |
;# V06 OutArgs [V06 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00] | |
; | |
; Lcl frame size = 40 | |
=============== Generating BB01 [000..004) -> BB03 (always), preds={} succs={BB03} flags=0x00000000.40030020: i label target LIR | |
BB01 IN (0)={} + ByrefExposed + GcHeap | |
OUT(0)={} + ByrefExposed + GcHeap | |
Liveness not changing: 0000000000000000 {} | |
Live regs: (unchanged) 00000000 {} | |
GC regs: (unchanged) 00000000 {} | |
Byref regs: (unchanged) 00000000 {} | |
L_M42618_BB01: | |
Label: IG02, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {} | |
Setting stack level from -572662307 to 0 | |
Scope info: begin block BB01, IL range [000..004) | |
Scope info: open scopes = | |
<none> | |
Added IP mapping: 0x0000 STACK_EMPTY (G_M42618_IG02,ins#0,ofs#0) label | |
Generating: N002 ( 7, 5) [000004] ------------ IL_OFFSET void IL offset: 0x0 REG NA | |
Generating: N004 ( 3, 2) [000001] ------------ t1 = LCL_VAR long V00 arg0 rcx REG rcx | |
IN0001: mov rcx, qword ptr [V00 rbp-10H] | |
/--* t1 long | |
Generating: N006 ( 7, 5) [000003] DA---------- * STORE_LCL_VAR long V03 loc0 NA REG NA | |
IN0002: mov qword ptr [V03 rbp-20H], rcx | |
Scope info: end block BB01, IL range [000..004) | |
Scope info: open scopes = | |
<none> | |
IN0003: jmp L_M42618_BB03 | |
=============== Generating BB02 [004..03B), preds={BB03} succs={BB03} flags=0x00000000.42030020: i label target bwd LIR | |
BB02 IN (0)={} + ByrefExposed + GcHeap | |
OUT(0)={} + ByrefExposed + GcHeap | |
Liveness not changing: 0000000000000000 {} | |
Live regs: (unchanged) 00000000 {} | |
GC regs: (unchanged) 00000000 {} | |
Byref regs: (unchanged) 00000000 {} | |
L_M42618_BB02: | |
G_M42618_IG02: ; offs=000000H, funclet=00 | |
Label: IG03, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {} | |
Scope info: begin block BB02, IL range [004..03B) | |
Scope info: open scopes = | |
<none> | |
Added IP mapping: 0x0004 STACK_EMPTY (G_M42618_IG03,ins#0,ofs#0) label | |
Generating: N022 ( 61, 58) [000047] ------------ IL_OFFSET void IL offset: 0x4 REG NA | |
Generating: N024 ( 3, 2) [000013] ------------ t13 = LCL_VAR long V03 loc0 rcx REG rcx | |
IN0004: mov rcx, qword ptr [V03 rbp-20H] | |
/--* t13 long | |
Generating: N026 ( 6, 4) [000014] *c-XG------- t14 = * IND long REG NA | |
/--* t14 long | |
Generating: N028 ( 7, 5) [000015] ---XG------- t15 = * HWIntrinsic long PopCount REG rax | |
IN0005: xor eax, eax | |
IN0006: popcnt rax, qword ptr [rcx] | |
/--* t15 long | |
Generating: N030 ( 8, 7) [000132] ---XG------- t132 = * CAST int <- long REG rcx | |
IN0007: mov ecx, eax | |
Generating: N032 ( 3, 2) [000016] ------------ t16 = LCL_VAR long V03 loc0 rax REG rax | |
IN0008: mov rax, qword ptr [V03 rbp-20H] | |
Generating: N034 ( 1, 1) [000017] ------------ t17 = CNS_INT int 8 REG rdx | |
IN0009: mov edx, 8 | |
/--* t17 int | |
Generating: N036 ( 2, 3) [000018] ------------ t18 = * CAST long <- int REG rdx | |
IN000a: movsxd rdx, edx | |
/--* t16 long | |
+--* t18 long | |
Generating: N038 (???,???) [000136] -c---------- t136 = * LEA(b+(i*1)+0) long REG NA | |
/--* t136 long | |
Generating: N040 ( 8, 7) [000020] *c-XG------- t20 = * IND long REG NA | |
/--* t20 long | |
Generating: N042 ( 9, 8) [000021] ---XG------- t21 = * HWIntrinsic long PopCount REG rdi | |
IN000b: xor edi, edi | |
IN000c: popcnt rdi, qword ptr [rax+rdx] | |
/--* t21 long | |
Generating: N044 ( 10, 10) [000133] ---XG------- t133 = * CAST int <- long REG rax | |
IN000d: mov eax, edi | |
/--* t132 int | |
+--* t133 int | |
Generating: N046 ( 19, 18) [000022] ---XG------- t22 = * ADD int REG rcx | |
IN000e: add ecx, eax | |
Generating: N048 ( 3, 2) [000023] ------------ t23 = LCL_VAR long V03 loc0 rax REG rax | |
IN000f: mov rax, qword ptr [V03 rbp-20H] | |
Generating: N050 ( 1, 1) [000024] ------------ t24 = CNS_INT int 2 REG rdx | |
IN0010: mov edx, 2 | |
/--* t24 int | |
Generating: N052 ( 2, 3) [000025] ------------ t25 = * CAST long <- int REG rdx | |
IN0011: movsxd rdx, edx | |
Generating: N054 ( 1, 1) [000026] ------------ t26 = CNS_INT int 8 REG rdi | |
IN0012: mov edi, 8 | |
/--* t26 int | |
Generating: N056 ( 2, 3) [000027] ------------ t27 = * CAST long <- int REG rdi | |
IN0013: movsxd rdi, edi | |
/--* t25 long | |
+--* t27 long | |
Generating: N058 ( 8, 9) [000028] ------------ t28 = * MUL long REG rdx | |
IN0014: imul rdx, rdi | |
/--* t23 long | |
+--* t28 long | |
Generating: N060 (???,???) [000137] -c---------- t137 = * LEA(b+(i*1)+0) long REG NA | |
/--* t137 long | |
Generating: N062 ( 14, 13) [000030] *c-XG------- t30 = * IND long REG NA | |
/--* t30 long | |
Generating: N064 ( 15, 14) [000031] ---XG------- t31 = * HWIntrinsic long PopCount REG rdi | |
IN0015: xor edi, edi | |
IN0016: popcnt rdi, qword ptr [rax+rdx] | |
/--* t31 long | |
Generating: N066 ( 16, 16) [000131] ---XG------- t131 = * CAST int <- long REG rax | |
IN0017: mov eax, edi | |
/--* t22 int | |
+--* t131 int | |
Generating: N068 ( 36, 35) [000032] ---XG------- t32 = * ADD int REG rcx | |
IN0018: add ecx, eax | |
Generating: N070 ( 3, 2) [000033] ------------ t33 = LCL_VAR long V03 loc0 rax REG rax | |
IN0019: mov rax, qword ptr [V03 rbp-20H] | |
Generating: N072 ( 1, 1) [000034] ------------ t34 = CNS_INT int 3 REG rdx | |
IN001a: mov edx, 3 | |
/--* t34 int | |
Generating: N074 ( 2, 3) [000035] ------------ t35 = * CAST long <- int REG rdx | |
IN001b: movsxd rdx, edx | |
Generating: N076 ( 1, 1) [000036] ------------ t36 = CNS_INT int 8 REG rdi | |
IN001c: mov edi, 8 | |
/--* t36 int | |
Generating: N078 ( 2, 3) [000037] ------------ t37 = * CAST long <- int REG rdi | |
IN001d: movsxd rdi, edi | |
/--* t35 long | |
+--* t37 long | |
Generating: N080 ( 8, 9) [000038] ------------ t38 = * MUL long REG rdx | |
IN001e: imul rdx, rdi | |
/--* t33 long | |
+--* t38 long | |
Generating: N082 (???,???) [000138] -c---------- t138 = * LEA(b+(i*1)+0) long REG NA | |
/--* t138 long | |
Generating: N084 ( 14, 13) [000040] *c-XG------- t40 = * IND long REG NA | |
/--* t40 long | |
Generating: N086 ( 15, 14) [000041] ---XG------- t41 = * HWIntrinsic long PopCount REG rdi | |
IN001f: xor edi, edi | |
IN0020: popcnt rdi, qword ptr [rax+rdx] | |
/--* t41 long | |
Generating: N088 ( 16, 16) [000129] ---XG------- t129 = * CAST int <- long REG rax | |
IN0021: mov eax, edi | |
/--* t32 int | |
+--* t129 int | |
Generating: N090 ( 53, 52) [000042] ---XG------- t42 = * ADD int REG rcx | |
IN0022: add ecx, eax | |
Generating: N092 ( 3, 2) [000012] ------------ t12 = LCL_VAR int V02 arg2 rax REG rax | |
IN0023: mov eax, dword ptr [V02 rbp-18H] | |
/--* t12 int | |
+--* t42 int | |
Generating: N094 ( 57, 55) [000044] ---XG------- t44 = * SUB int REG rax | |
IN0024: sub eax, ecx | |
/--* t44 int | |
Generating: N096 ( 61, 58) [000046] DA-XG------- * STORE_LCL_VAR int V02 arg2 NA REG NA | |
IN0025: mov dword ptr [V02 rbp-18H], eax | |
Added IP mapping: 0x0034 STACK_EMPTY (G_M42618_IG03,ins#34,ofs#117) | |
Generating: N098 ( 16, 15) [000057] ------------ IL_OFFSET void IL offset: 0x34 REG NA | |
Generating: N100 ( 3, 2) [000048] -c---------- t48 = LCL_VAR long V03 loc0 NA REG NA | |
Generating: N102 ( 1, 1) [000049] ------------ t49 = CNS_INT int 4 REG rcx | |
IN0026: mov ecx, 4 | |
/--* t49 int | |
Generating: N104 ( 2, 3) [000050] ------------ t50 = * CAST long <- int REG rcx | |
IN0027: movsxd rcx, ecx | |
Generating: N106 ( 1, 1) [000051] ------------ t51 = CNS_INT int 8 REG rax | |
IN0028: mov eax, 8 | |
/--* t51 int | |
Generating: N108 ( 2, 3) [000052] ------------ t52 = * CAST long <- int REG rax | |
IN0029: movsxd rax, eax | |
/--* t50 long | |
+--* t52 long | |
Generating: N110 ( 8, 9) [000053] ------------ t53 = * MUL long REG rcx | |
IN002a: imul rcx, rax | |
/--* t48 long | |
+--* t53 long | |
Generating: N112 ( 12, 12) [000054] ------------ t54 = * ADD long REG rcx | |
IN002b: add rcx, qword ptr [V03 rbp-20H] | |
/--* t54 long | |
Generating: N114 ( 16, 15) [000056] DA---------- * STORE_LCL_VAR long V03 loc0 NA REG NA | |
IN002c: mov qword ptr [V03 rbp-20H], rcx | |
Scope info: end block BB02, IL range [004..03B) | |
Scope info: open scopes = | |
<none> | |
=============== Generating BB03 [03B..043) -> BB02 (cond), preds={BB01,BB02} succs={BB04,BB02} flags=0x00000000.42030020: i label target bwd LIR | |
BB03 IN (0)={} + ByrefExposed + GcHeap | |
OUT(0)={} + ByrefExposed + GcHeap | |
Liveness not changing: 0000000000000000 {} | |
Live regs: (unchanged) 00000000 {} | |
GC regs: (unchanged) 00000000 {} | |
Byref regs: (unchanged) 00000000 {} | |
L_M42618_BB03: | |
G_M42618_IG03: ; offs=00000DH, funclet=00 | |
Label: IG04, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {} | |
Scope info: begin block BB03, IL range [03B..043) | |
Scope info: open scopes = | |
<none> | |
Added IP mapping: 0x003B STACK_EMPTY (G_M42618_IG04,ins#0,ofs#0) label | |
Generating: N010 ( 7, 9) [000010] ------------ IL_OFFSET void IL offset: 0x3b REG NA | |
Generating: N012 ( 3, 2) [000006] -c---------- t6 = LCL_VAR int V02 arg2 NA REG NA | |
Generating: N014 ( 1, 4) [000007] -c---------- t7 = CNS_INT int 256 REG NA | |
/--* t6 int | |
+--* t7 int | |
Generating: N016 ( 5, 7) [000008] J------N---- * GE void REG NA | |
IN002d: cmp dword ptr [V02 rbp-18H], 256 | |
Generating: N018 ( 7, 9) [000009] ------------ * JTRUE void REG NA | |
IN002e: jge L_M42618_BB02 | |
Scope info: end block BB03, IL range [03B..043) | |
Scope info: open scopes = | |
<none> | |
=============== Generating BB04 [043..047) -> BB06 (always), preds={BB03} succs={BB06} flags=0x00000000.40000020: i LIR | |
BB04 IN (0)={} + ByrefExposed + GcHeap | |
OUT(0)={} + ByrefExposed + GcHeap | |
Liveness not changing: 0000000000000000 {} | |
Live regs: (unchanged) 00000000 {} | |
GC regs: (unchanged) 00000000 {} | |
Byref regs: (unchanged) 00000000 {} | |
L_M42618_BB04: | |
Scope info: begin block BB04, IL range [043..047) | |
Scope info: open scopes = | |
<none> | |
Added IP mapping: 0x0043 STACK_EMPTY (G_M42618_IG04,ins#2,ofs#13) label | |
Generating: N118 ( 7, 5) [000062] ------------ IL_OFFSET void IL offset: 0x43 REG NA | |
Generating: N120 ( 3, 2) [000059] ------------ t59 = LCL_VAR int V02 arg2 rcx REG rcx | |
IN002f: mov ecx, dword ptr [V02 rbp-18H] | |
/--* t59 int | |
Generating: N122 ( 7, 5) [000061] DA---------- * STORE_LCL_VAR int V04 loc1 NA REG NA | |
IN0030: mov dword ptr [V04 rbp-24H], ecx | |
Scope info: end block BB04, IL range [043..047) | |
Scope info: open scopes = | |
<none> | |
IN0031: jmp L_M42618_BB06 | |
=============== Generating BB05 [047..059), preds={BB06} succs={BB06} flags=0x00000000.42030020: i label target bwd LIR | |
BB05 IN (0)={} + ByrefExposed + GcHeap | |
OUT(0)={} + ByrefExposed + GcHeap | |
Liveness not changing: 0000000000000000 {} | |
Live regs: (unchanged) 00000000 {} | |
GC regs: (unchanged) 00000000 {} | |
Byref regs: (unchanged) 00000000 {} | |
L_M42618_BB05: | |
G_M42618_IG04: ; offs=00009EH, funclet=00 | |
Label: IG05, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {} | |
Scope info: begin block BB05, IL range [047..059) | |
Scope info: open scopes = | |
<none> | |
Added IP mapping: 0x0047 STACK_EMPTY (G_M42618_IG05,ins#0,ofs#0) label | |
Generating: N138 ( 7, 5) [000073] ------------ IL_OFFSET void IL offset: 0x47 REG NA | |
Generating: N140 ( 3, 2) [000070] ------------ t70 = LCL_VAR int V02 arg2 rcx REG rcx | |
IN0032: mov ecx, dword ptr [V02 rbp-18H] | |
/--* t70 int | |
Generating: N142 ( 7, 5) [000072] DA---------- * STORE_LCL_VAR int V04 loc1 NA REG NA | |
IN0033: mov dword ptr [V04 rbp-24H], ecx | |
Added IP mapping: 0x0049 STACK_EMPTY (G_M42618_IG05,ins#2,ofs#6) | |
Generating: N144 ( 16, 13) [000082] ------------ IL_OFFSET void IL offset: 0x49 REG NA | |
Generating: N146 ( 3, 2) [000074] ------------ t74 = LCL_VAR int V02 arg2 rcx REG rcx | |
IN0034: mov ecx, dword ptr [V02 rbp-18H] | |
Generating: N148 ( 3, 2) [000075] ------------ t75 = LCL_VAR long V03 loc0 rax REG rax | |
IN0035: mov rax, qword ptr [V03 rbp-20H] | |
/--* t75 long | |
Generating: N150 ( 6, 4) [000076] *c-XG------- t76 = * IND long REG NA | |
/--* t76 long | |
Generating: N152 ( 7, 5) [000077] ---XG------- t77 = * HWIntrinsic long PopCount REG rdx | |
IN0036: xor edx, edx | |
IN0037: popcnt rdx, qword ptr [rax] | |
/--* t77 long | |
Generating: N154 ( 8, 7) [000078] ---XG------- t78 = * CAST int <- long REG rax | |
IN0038: mov eax, edx | |
/--* t74 int | |
+--* t78 int | |
Generating: N156 ( 12, 10) [000079] ---XG------- t79 = * SUB int REG rcx | |
IN0039: sub ecx, eax | |
/--* t79 int | |
Generating: N158 ( 16, 13) [000081] DA-XG------- * STORE_LCL_VAR int V02 arg2 NA REG NA | |
IN003a: mov dword ptr [V02 rbp-18H], ecx | |
Added IP mapping: 0x0055 STACK_EMPTY (G_M42618_IG05,ins#9,ofs#27) | |
Generating: N160 ( 10, 9) [000089] ------------ IL_OFFSET void IL offset: 0x55 REG NA | |
Generating: N162 ( 3, 2) [000083] -c---------- t83 = LCL_VAR long V03 loc0 NA REG NA | |
Generating: N164 ( 1, 1) [000084] ------------ t84 = CNS_INT int 8 REG rcx | |
IN003b: mov ecx, 8 | |
/--* t84 int | |
Generating: N166 ( 2, 3) [000085] ------------ t85 = * CAST long <- int REG rcx | |
IN003c: movsxd rcx, ecx | |
/--* t83 long | |
+--* t85 long | |
Generating: N168 ( 6, 6) [000086] ------------ t86 = * ADD long REG rcx | |
IN003d: add rcx, qword ptr [V03 rbp-20H] | |
/--* t86 long | |
Generating: N170 ( 10, 9) [000088] DA---------- * STORE_LCL_VAR long V03 loc0 NA REG NA | |
IN003e: mov qword ptr [V03 rbp-20H], rcx | |
Scope info: end block BB05, IL range [047..059) | |
Scope info: open scopes = | |
<none> | |
=============== Generating BB06 [059..05D) -> BB05 (cond), preds={BB04,BB05} succs={BB07,BB05} flags=0x00000000.42030020: i label target bwd LIR | |
BB06 IN (0)={} + ByrefExposed + GcHeap | |
OUT(0)={} + ByrefExposed + GcHeap | |
Liveness not changing: 0000000000000000 {} | |
Live regs: (unchanged) 00000000 {} | |
GC regs: (unchanged) 00000000 {} | |
Byref regs: (unchanged) 00000000 {} | |
L_M42618_BB06: | |
G_M42618_IG05: ; offs=0000B6H, funclet=00 | |
Label: IG06, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {} | |
Scope info: begin block BB06, IL range [059..05D) | |
Scope info: open scopes = | |
<none> | |
Added IP mapping: 0x0059 STACK_EMPTY (G_M42618_IG06,ins#0,ofs#0) label | |
Generating: N126 ( 7, 6) [000068] ------------ IL_OFFSET void IL offset: 0x59 REG NA | |
Generating: N128 ( 3, 2) [000064] -c---------- t64 = LCL_VAR int V02 arg2 NA REG NA | |
Generating: N130 ( 1, 1) [000065] -c---------- t65 = CNS_INT int 0 REG NA | |
/--* t64 int | |
+--* t65 int | |
Generating: N132 ( 5, 4) [000066] J------N---- * GT void REG NA | |
IN003f: cmp dword ptr [V02 rbp-18H], 0 | |
Generating: N134 ( 7, 6) [000067] ------------ * JTRUE void REG NA | |
IN0040: jg SHORT L_M42618_BB05 | |
Scope info: end block BB06, IL range [059..05D) | |
Scope info: open scopes = | |
<none> | |
=============== Generating BB07 [05D..086) (return), preds={BB06} succs={} flags=0x00000000.40000020: i LIR | |
BB07 IN (0)={} + ByrefExposed + GcHeap | |
OUT(0)={} + ByrefExposed + GcHeap | |
Liveness not changing: 0000000000000000 {} | |
Live regs: (unchanged) 00000000 {} | |
GC regs: (unchanged) 00000000 {} | |
Byref regs: (unchanged) 00000000 {} | |
L_M42618_BB07: | |
Scope info: begin block BB07, IL range [05D..086) | |
Scope info: open scopes = | |
<none> | |
Added IP mapping: 0x005D STACK_EMPTY (G_M42618_IG06,ins#2,ofs#6) label | |
Generating: N174 ( 10, 9) [000097] ------------ IL_OFFSET void IL offset: 0x5d REG NA | |
Generating: N176 ( 3, 2) [000091] ------------ t91 = LCL_VAR long V03 loc0 rcx REG rcx | |
IN0041: mov rcx, qword ptr [V03 rbp-20H] | |
Generating: N178 ( 1, 1) [000092] ------------ t92 = CNS_INT int 8 REG rax | |
IN0042: mov eax, 8 | |
/--* t92 int | |
Generating: N180 ( 2, 3) [000093] ------------ t93 = * CAST long <- int REG rax | |
IN0043: movsxd rax, eax | |
/--* t91 long | |
+--* t93 long | |
Generating: N182 ( 6, 6) [000094] ------------ t94 = * SUB long REG rcx | |
IN0044: sub rcx, rax | |
/--* t94 long | |
Generating: N184 ( 10, 9) [000096] DA---------- * STORE_LCL_VAR long V03 loc0 NA REG NA | |
IN0045: mov qword ptr [V03 rbp-20H], rcx | |
Added IP mapping: 0x0061 STACK_EMPTY (G_M42618_IG06,ins#7,ofs#25) | |
Generating: N186 ( 26, 21) [000113] ------------ IL_OFFSET void IL offset: 0x61 REG NA | |
Generating: N188 ( 3, 2) [000100] ------------ t100 = LCL_VAR int V04 loc1 rcx REG rcx | |
IN0046: mov ecx, dword ptr [V04 rbp-24H] | |
Generating: N190 ( 1, 1) [000101] -c---------- t101 = CNS_INT int -1 REG NA | |
/--* t100 int | |
+--* t101 int | |
Generating: N192 ( 5, 4) [000102] ------------ t102 = * ADD int REG rcx | |
IN0047: dec ecx | |
Generating: N194 ( 1, 1) [000098] ------------ t98 = CNS_INT int 1 REG rax | |
IN0048: mov eax, 1 | |
/--* t98 int | |
Generating: N196 ( 2, 3) [000099] ------------ t99 = * CAST long <- int REG rax | |
IN0049: movsxd rax, eax | |
/--* t99 long | |
+--* t102 int | |
Generating: N198 ( 13, 10) [000105] ------------ t105 = * LSH long REG rax | |
IN004a: shl rax, cl | |
Generating: N200 ( 3, 2) [000106] ------------ t106 = LCL_VAR long V03 loc0 rdx REG rdx | |
IN004b: mov rdx, qword ptr [V03 rbp-20H] | |
/--* t106 long | |
Generating: N202 ( 6, 4) [000107] *c-XG------- t107 = * IND long REG NA | |
/--* t105 long | |
+--* t107 long | |
Generating: N204 ( 20, 15) [000108] ---XG------- t108 = * HWIntrinsic long ParallelBitDeposit REG rax | |
IN004c: vpdep rax, rax, qword ptr [rdx] | |
/--* t108 long | |
Generating: N206 ( 21, 16) [000109] ---XG------- t109 = * HWIntrinsic long TrailingZeroCount REG rdx | |
IN004d: xor edx, edx | |
IN004e: tzcnt rdx, rax | |
/--* t109 long | |
Generating: N208 ( 22, 18) [000110] ---XG------- t110 = * CAST int <- long REG rax | |
IN004f: mov eax, edx | |
/--* t110 int | |
Generating: N210 ( 26, 21) [000112] DA-XG------- * STORE_LCL_VAR int V05 loc2 NA REG NA | |
IN0050: mov dword ptr [V05 rbp-28H], eax | |
Added IP mapping: 0x0078 STACK_EMPTY (G_M42618_IG06,ins#18,ofs#62) | |
Generating: N212 ( 40, 21) [000127] ------------ IL_OFFSET void IL offset: 0x78 REG NA | |
Generating: N214 ( 3, 2) [000114] ------------ t114 = LCL_VAR long V03 loc0 rax REG rax | |
IN0051: mov rax, qword ptr [V03 rbp-20H] | |
Generating: N216 ( 3, 2) [000115] -c---------- t115 = LCL_VAR long V00 arg0 NA REG NA | |
/--* t114 long | |
+--* t115 long | |
Generating: N218 ( 7, 5) [000116] ------------ t116 = * SUB long REG rax | |
IN0052: sub rax, qword ptr [V00 rbp-10H] | |
Generating: N220 ( 1, 1) [000117] ------------ t117 = CNS_INT int 8 REG rdx | |
IN0053: mov edx, 8 | |
/--* t117 int | |
Generating: N222 ( 2, 3) [000118] ------------ t118 = * CAST long <- int REG rdi | |
IN0054: movsxd rdi, edx | |
/--* t116 long | |
+--* t118 long | |
Generating: N224 ( 29, 11) [000119] ---X-------- t119 = * DIV long REG rax | |
IN0055: cdq | |
IN0056: idiv rdx:rax, rdi | |
/--* t119 long | |
Generating: N226 ( 30, 13) [000134] ---X-------- t134 = * CAST int <- long REG rax | |
Generating: N228 ( 1, 1) [000120] -c---------- t120 = CNS_INT int 64 REG NA | |
/--* t134 int | |
+--* t120 int | |
Generating: N230 ( 35, 17) [000122] ---X-------- t122 = * MUL int REG rax | |
IN0057: shl eax, 6 | |
Generating: N232 ( 3, 2) [000124] -c---------- t124 = LCL_VAR int V05 loc2 NA REG NA | |
/--* t122 int | |
+--* t124 int | |
Generating: N234 ( 39, 20) [000125] ---X-------- t125 = * ADD int REG rax | |
IN0058: add eax, dword ptr [V05 rbp-28H] | |
/--* t125 int | |
Generating: N236 ( 40, 21) [000126] ---X-------- * RETURN int REG NA | |
Scope info: end block BB07, IL range [05D..086) | |
Scope info: ending scope, LVnum=0 [000..086) | |
Scope info: ending scope, LVnum=1 [000..086) | |
Scope info: ending scope, LVnum=2 [000..086) | |
Scope info: ending scope, LVnum=3 [000..086) | |
Scope info: ending scope, LVnum=4 [000..086) | |
Scope info: ending scope, LVnum=5 [000..086) | |
Scope info: open scopes = | |
<none> | |
Added IP mapping: EPILOG STACK_EMPTY (G_M42618_IG06,ins#26,ofs#89) label | |
Reserving epilog IG for block BB07 | |
G_M42618_IG06: ; offs=0000E1H, funclet=00 | |
*************** After placeholder IG creation | |
G_M42618_IG01: ; func=00, offs=000000H, size=0000H, gcrefRegs=00000000 {} <-- Prolog IG | |
G_M42618_IG02: ; offs=000000H, size=000DH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
G_M42618_IG03: ; offs=00000DH, size=0091H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
G_M42618_IG04: ; offs=00009EH, size=0018H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
G_M42618_IG05: ; offs=0000B6H, size=002BH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
G_M42618_IG06: ; offs=0000E1H, size=0059H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
G_M42618_IG07: ; epilog placeholder, next placeholder=<END>, BB07 [0006], epilog, emitadd <-- First placeholder <-- Last placeholder | |
; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=00000000 {}, PrevByrefRegs=00000000 {} | |
; InitGCVars=0000000000000000 {}, InitGCrefRegs=00000000 {}, InitByrefRegs=00000000 {} | |
Liveness not changing: 0000000000000000 {} | |
# compCycleEstimate = 214, compSizeEstimate = 176 GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int | |
; Final local variable assignments | |
; | |
; V00 arg0 [V00 ] ( 1, 1 ) long -> [rbp-0x10] | |
; V01 arg1 [V01 ] ( 1, 1 ) int -> [rbp-0x14] | |
; V02 arg2 [V02 ] ( 1, 1 ) int -> [rbp-0x18] | |
; V03 loc0 [V03 ] ( 1, 1 ) long -> [rbp-0x20] must-init | |
; V04 loc1 [V04 ] ( 1, 1 ) int -> [rbp-0x24] must-init | |
; V05 loc2 [V05 ] ( 1, 1 ) int -> [rbp-0x28] must-init | |
;# V06 OutArgs [V06 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00] | |
; | |
; Lcl frame size = 40 | |
*************** Before prolog / epilog generation | |
G_M42618_IG01: ; func=00, offs=000000H, size=0000H, gcrefRegs=00000000 {} <-- Prolog IG | |
G_M42618_IG02: ; offs=000000H, size=000DH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
G_M42618_IG03: ; offs=00000DH, size=0091H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
G_M42618_IG04: ; offs=00009EH, size=0018H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
G_M42618_IG05: ; offs=0000B6H, size=002BH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
G_M42618_IG06: ; offs=0000E1H, size=0059H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
G_M42618_IG07: ; epilog placeholder, next placeholder=<END>, BB07 [0006], epilog, emitadd <-- First placeholder <-- Last placeholder | |
; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=00000000 {}, PrevByrefRegs=00000000 {} | |
; InitGCVars=0000000000000000 {}, InitGCrefRegs=00000000 {}, InitByrefRegs=00000000 {} | |
*************** In genFnProlog() | |
Added IP mapping to front: PROLOG STACK_EMPTY (G_M42618_IG01,ins#0,ofs#0) label | |
__prolog: | |
Found 6 lvMustInit stk vars, frame offsets 40 through 24 | |
IN0059: push rbp | |
IN005a: push r13 | |
IN005b: sub rsp, 40 | |
IN005c: lea rbp, [rsp+30H] | |
IN005d: mov r13, rdi | |
IN005e: lea rdi, [rbp-28H] | |
IN005f: mov ecx, 4 | |
IN0060: xor rax, rax | |
IN0061: rep stosd | |
IN0062: mov rdi, r13 | |
*************** In genClearStackVec3ArgUpperBits() | |
*************** In genFnPrologCalleeRegArgs() for int regs | |
IN0063: mov qword ptr [V00 rbp-10H], rdi | |
IN0064: mov dword ptr [V01 rbp-14H], esi | |
IN0065: mov dword ptr [V02 rbp-18H], edx | |
*************** In genEnregisterIncomingStackArgs() | |
G_M42618_IG01: ; offs=000000H, funclet=00 | |
*************** In genFnEpilog() | |
__epilog: | |
gcVarPtrSetCur=0000000000000000 {}, gcRegGCrefSetCur=00000000 {}, gcRegByrefSetCur=00000000 {} | |
IN0066: lea rsp, [rbp-08H] | |
IN0067: pop r13 | |
IN0068: pop rbp | |
IN0069: ret | |
G_M42618_IG07: ; offs=00013AH, funclet=00 | |
0 prologs, 1 epilogs, 0 funclet prologs, 0 funclet epilogs | |
*************** After prolog / epilog generation | |
G_M42618_IG01: ; func=00, offs=000000H, size=0029H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG | |
G_M42618_IG02: ; offs=000029H, size=000DH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
G_M42618_IG03: ; offs=000036H, size=0091H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
G_M42618_IG04: ; offs=0000C7H, size=0018H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
G_M42618_IG05: ; offs=0000DFH, size=002BH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
G_M42618_IG06: ; offs=00010AH, size=0059H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
G_M42618_IG07: ; offs=000163H, size=0008H, epilog, nogc, emitadd | |
*************** In emitJumpDistBind() | |
Binding: IN0003: 000000 jmp L_M42618_BB03 | |
Binding L_M42618_BB03to G_M42618_IG04 | |
Estimate of fwd jump [0140E31C/003]: 0031 -> 00C7 = 0094 | |
Adjusted offset of BB03 from 0036 to 0036 | |
Adjusted offset of BB04 from 00C7 to 00C7 | |
Binding: IN002e: 000000 jge L_M42618_BB02 | |
Binding L_M42618_BB02to G_M42618_IG03 | |
Estimate of bwd jump [0140F0BC/046]: 00CE -> 0036 = 009A | |
Binding: IN0031: 000000 jmp L_M42618_BB06 | |
Binding L_M42618_BB06to G_M42618_IG06 | |
Estimate of fwd jump [0140F124/049]: 00DA -> 010A = 002E | |
Shrinking jump [0140F124/049] | |
Adjusted offset of BB05 from 00DF to 00DC | |
Adjusted offset of BB06 from 010A to 0107 | |
Binding: IN0040: 000000 jg SHORT L_M42618_BB05 | |
Binding L_M42618_BB05to G_M42618_IG05 | |
Estimate of bwd jump [0140FBF4/064]: 010B -> 00DC = 0031 | |
Shrinking jump [0140FBF4/064] | |
Adjusted offset of BB07 from 0163 to 0160 | |
Total shrinkage = 3, min extra jump size = 21 | |
Hot code size = 0x168 bytes | |
Cold code size = 0x0 bytes | |
reserveUnwindInfo(isFunclet=FALSE, isColdCode=FALSE, unwindSize=0xa) | |
*************** In emitEndCodeGen() | |
Converting emitMaxStackDepth from bytes (0) to elements (0) | |
*************************************************************************** | |
Instructions as they come out of the scheduler | |
G_M42618_IG01: ; func=00, offs=000000H, size=0029H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG | |
IN0059: 000000 55 push rbp | |
IN005a: 000001 4155 push r13 | |
IN005b: 000003 4883EC28 sub rsp, 40 | |
IN005c: 000007 488D6C2430 lea rbp, [rsp+30H] | |
IN005d: 00000C 4C8BEF mov r13, rdi | |
IN005e: 00000F 488D7DD8 lea rdi, [rbp-28H] | |
IN005f: 000013 B904000000 mov ecx, 4 | |
IN0060: 000018 33C0 xor rax, rax | |
IN0061: 00001A F3AB rep stosd | |
IN0062: 00001C 498BFD mov rdi, r13 | |
IN0063: 00001F 48897DF0 mov qword ptr [rbp-10H], rdi | |
IN0064: 000023 8975EC mov dword ptr [rbp-14H], esi | |
IN0065: 000026 8955E8 mov dword ptr [rbp-18H], edx | |
G_M42618_IG02: ; func=00, offs=000029H, size=000DH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
IN0001: 000029 488B4DF0 mov rcx, qword ptr [rbp-10H] | |
IN0002: 00002D 48894DE0 mov qword ptr [rbp-20H], rcx | |
IN0003: 000031 E991000000 jmp G_M42618_IG04 | |
G_M42618_IG03: ; func=00, offs=000036H, size=0091H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
IN0004: 000036 488B4DE0 mov rcx, qword ptr [rbp-20H] | |
IN0005: 00003A 33C0 xor eax, eax | |
IN0006: 00003C F3480FB801 popcnt rax, qword ptr [rcx] | |
IN0007: 000041 8BC8 mov ecx, eax | |
IN0008: 000043 488B45E0 mov rax, qword ptr [rbp-20H] | |
IN0009: 000047 BA08000000 mov edx, 8 | |
IN000a: 00004C 4863D2 movsxd rdx, edx | |
IN000b: 00004F 33FF xor edi, edi | |
IN000c: 000051 F3480FB83C10 popcnt rdi, qword ptr [rax+rdx] | |
IN000d: 000057 8BC7 mov eax, edi | |
IN000e: 000059 03C8 add ecx, eax | |
IN000f: 00005B 488B45E0 mov rax, qword ptr [rbp-20H] | |
IN0010: 00005F BA02000000 mov edx, 2 | |
IN0011: 000064 4863D2 movsxd rdx, edx | |
IN0012: 000067 BF08000000 mov edi, 8 | |
IN0013: 00006C 4863FF movsxd rdi, edi | |
IN0014: 00006F 480FAFD7 imul rdx, rdi | |
IN0015: 000073 33FF xor edi, edi | |
IN0016: 000075 F3480FB83C10 popcnt rdi, qword ptr [rax+rdx] | |
IN0017: 00007B 8BC7 mov eax, edi | |
IN0018: 00007D 03C8 add ecx, eax | |
IN0019: 00007F 488B45E0 mov rax, qword ptr [rbp-20H] | |
IN001a: 000083 BA03000000 mov edx, 3 | |
IN001b: 000088 4863D2 movsxd rdx, edx | |
IN001c: 00008B BF08000000 mov edi, 8 | |
IN001d: 000090 4863FF movsxd rdi, edi | |
IN001e: 000093 480FAFD7 imul rdx, rdi | |
IN001f: 000097 33FF xor edi, edi | |
IN0020: 000099 F3480FB83C10 popcnt rdi, qword ptr [rax+rdx] | |
IN0021: 00009F 8BC7 mov eax, edi | |
IN0022: 0000A1 03C8 add ecx, eax | |
IN0023: 0000A3 8B45E8 mov eax, dword ptr [rbp-18H] | |
IN0024: 0000A6 2BC1 sub eax, ecx | |
IN0025: 0000A8 8945E8 mov dword ptr [rbp-18H], eax | |
IN0026: 0000AB B904000000 mov ecx, 4 | |
IN0027: 0000B0 4863C9 movsxd rcx, ecx | |
IN0028: 0000B3 B808000000 mov eax, 8 | |
IN0029: 0000B8 4863C0 movsxd rax, eax | |
IN002a: 0000BB 480FAFC8 imul rcx, rax | |
IN002b: 0000BF 48034DE0 add rcx, qword ptr [rbp-20H] | |
IN002c: 0000C3 48894DE0 mov qword ptr [rbp-20H], rcx | |
G_M42618_IG04: ; func=00, offs=0000C7H, size=0015H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz | |
IN002d: 0000C7 817DE800010000 cmp dword ptr [rbp-18H], 256 | |
IN002e: 0000CE 0F8D62FFFFFF jge G_M42618_IG03 | |
IN002f: 0000D4 8B4DE8 mov ecx, dword ptr [rbp-18H] | |
IN0030: 0000D7 894DDC mov dword ptr [rbp-24H], ecx | |
IN0031: 0000DA EB2B jmp SHORT G_M42618_IG06 | |
G_M42618_IG05: ; func=00, offs=0000DCH, size=002BH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
IN0032: 0000DC 8B4DE8 mov ecx, dword ptr [rbp-18H] | |
IN0033: 0000DF 894DDC mov dword ptr [rbp-24H], ecx | |
IN0034: 0000E2 8B4DE8 mov ecx, dword ptr [rbp-18H] | |
IN0035: 0000E5 488B45E0 mov rax, qword ptr [rbp-20H] | |
IN0036: 0000E9 33D2 xor edx, edx | |
IN0037: 0000EB F3480FB810 popcnt rdx, qword ptr [rax] | |
IN0038: 0000F0 8BC2 mov eax, edx | |
IN0039: 0000F2 2BC8 sub ecx, eax | |
IN003a: 0000F4 894DE8 mov dword ptr [rbp-18H], ecx | |
IN003b: 0000F7 B908000000 mov ecx, 8 | |
IN003c: 0000FC 4863C9 movsxd rcx, ecx | |
IN003d: 0000FF 48034DE0 add rcx, qword ptr [rbp-20H] | |
IN003e: 000103 48894DE0 mov qword ptr [rbp-20H], rcx | |
G_M42618_IG06: ; func=00, offs=000107H, size=0059H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz | |
IN003f: 000107 837DE800 cmp dword ptr [rbp-18H], 0 | |
IN0040: 00010B 7FCF jg SHORT G_M42618_IG05 | |
IN0041: 00010D 488B4DE0 mov rcx, qword ptr [rbp-20H] | |
IN0042: 000111 B808000000 mov eax, 8 | |
IN0043: 000116 4863C0 movsxd rax, eax | |
IN0044: 000119 482BC8 sub rcx, rax | |
IN0045: 00011C 48894DE0 mov qword ptr [rbp-20H], rcx | |
IN0046: 000120 8B4DDC mov ecx, dword ptr [rbp-24H] | |
IN0047: 000123 FFC9 dec ecx | |
IN0048: 000125 B801000000 mov eax, 1 | |
IN0049: 00012A 4863C0 movsxd rax, eax | |
IN004a: 00012D 48D3E0 shl rax, cl | |
IN004b: 000130 488B55E0 mov rdx, qword ptr [rbp-20H] | |
IN004c: 000134 C4E2FBF502 vpdep rax, rax, qword ptr [rdx] | |
IN004d: 000139 33D2 xor edx, edx | |
IN004e: 00013B F3480FBCD0 tzcnt rdx, rax | |
IN004f: 000140 8BC2 mov eax, edx | |
IN0050: 000142 8945D8 mov dword ptr [rbp-28H], eax | |
IN0051: 000145 488B45E0 mov rax, qword ptr [rbp-20H] | |
IN0052: 000149 482B45F0 sub rax, qword ptr [rbp-10H] | |
IN0053: 00014D BA08000000 mov edx, 8 | |
IN0054: 000152 4863FA movsxd rdi, edx | |
IN0055: 000155 4899 cdq | |
IN0056: 000157 48F7FF idiv rdx:rax, rdi | |
IN0057: 00015A C1E006 shl eax, 6 | |
IN0058: 00015D 0345D8 add eax, dword ptr [rbp-28H] | |
G_M42618_IG07: ; func=00, offs=000160H, size=0008H, epilog, nogc, emitadd | |
IN0066: 000160 488D65F8 lea rsp, [rbp-08H] | |
IN0067: 000164 415D pop r13 | |
IN0068: 000166 5D pop rbp | |
IN0069: 000167 C3 ret | |
Allocated method code size = 360 , actual size = 360 | |
*************** After end code gen, before unwindEmit() | |
G_M42618_IG01: ; func=00, offs=000000H, size=0029H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG | |
IN0059: 000000 push rbp | |
IN005a: 000001 push r13 | |
IN005b: 000003 sub rsp, 40 | |
IN005c: 000007 lea rbp, [rsp+30H] | |
IN005d: 00000C mov r13, rdi | |
IN005e: 00000F lea rdi, [rbp-28H] | |
IN005f: 000013 mov ecx, 4 | |
IN0060: 000018 xor rax, rax | |
IN0061: 00001A rep stosd | |
IN0062: 00001C mov rdi, r13 | |
IN0063: 00001F mov qword ptr [V00 rbp-10H], rdi | |
IN0064: 000023 mov dword ptr [V01 rbp-14H], esi | |
IN0065: 000026 mov dword ptr [V02 rbp-18H], edx | |
G_M42618_IG02: ; offs=000029H, size=000DH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
IN0001: 000029 mov rcx, qword ptr [V00 rbp-10H] | |
IN0002: 00002D mov qword ptr [V03 rbp-20H], rcx | |
IN0003: 000031 jmp G_M42618_IG04 | |
G_M42618_IG03: ; offs=000036H, size=0091H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
IN0004: 000036 mov rcx, qword ptr [V03 rbp-20H] | |
IN0005: 00003A xor eax, eax | |
IN0006: 00003C popcnt rax, qword ptr [rcx] | |
IN0007: 000041 mov ecx, eax | |
IN0008: 000043 mov rax, qword ptr [V03 rbp-20H] | |
IN0009: 000047 mov edx, 8 | |
IN000a: 00004C movsxd rdx, edx | |
IN000b: 00004F xor edi, edi | |
IN000c: 000051 popcnt rdi, qword ptr [rax+rdx] | |
IN000d: 000057 mov eax, edi | |
IN000e: 000059 add ecx, eax | |
IN000f: 00005B mov rax, qword ptr [V03 rbp-20H] | |
IN0010: 00005F mov edx, 2 | |
IN0011: 000064 movsxd rdx, edx | |
IN0012: 000067 mov edi, 8 | |
IN0013: 00006C movsxd rdi, edi | |
IN0014: 00006F imul rdx, rdi | |
IN0015: 000073 xor edi, edi | |
IN0016: 000075 popcnt rdi, qword ptr [rax+rdx] | |
IN0017: 00007B mov eax, edi | |
IN0018: 00007D add ecx, eax | |
IN0019: 00007F mov rax, qword ptr [V03 rbp-20H] | |
IN001a: 000083 mov edx, 3 | |
IN001b: 000088 movsxd rdx, edx | |
IN001c: 00008B mov edi, 8 | |
IN001d: 000090 movsxd rdi, edi | |
IN001e: 000093 imul rdx, rdi | |
IN001f: 000097 xor edi, edi | |
IN0020: 000099 popcnt rdi, qword ptr [rax+rdx] | |
IN0021: 00009F mov eax, edi | |
IN0022: 0000A1 add ecx, eax | |
IN0023: 0000A3 mov eax, dword ptr [V02 rbp-18H] | |
IN0024: 0000A6 sub eax, ecx | |
IN0025: 0000A8 mov dword ptr [V02 rbp-18H], eax | |
IN0026: 0000AB mov ecx, 4 | |
IN0027: 0000B0 movsxd rcx, ecx | |
IN0028: 0000B3 mov eax, 8 | |
IN0029: 0000B8 movsxd rax, eax | |
IN002a: 0000BB imul rcx, rax | |
IN002b: 0000BF add rcx, qword ptr [V03 rbp-20H] | |
IN002c: 0000C3 mov qword ptr [V03 rbp-20H], rcx | |
G_M42618_IG04: ; offs=0000C7H, size=0015H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz | |
IN002d: 0000C7 cmp dword ptr [V02 rbp-18H], 256 | |
IN002e: 0000CE jge G_M42618_IG03 | |
IN002f: 0000D4 mov ecx, dword ptr [V02 rbp-18H] | |
IN0030: 0000D7 mov dword ptr [V04 rbp-24H], ecx | |
IN0031: 0000DA jmp SHORT G_M42618_IG06 | |
G_M42618_IG05: ; offs=0000DCH, size=002BH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
IN0032: 0000DC mov ecx, dword ptr [V02 rbp-18H] | |
IN0033: 0000DF mov dword ptr [V04 rbp-24H], ecx | |
IN0034: 0000E2 mov ecx, dword ptr [V02 rbp-18H] | |
IN0035: 0000E5 mov rax, qword ptr [V03 rbp-20H] | |
IN0036: 0000E9 xor edx, edx | |
IN0037: 0000EB popcnt rdx, qword ptr [rax] | |
IN0038: 0000F0 mov eax, edx | |
IN0039: 0000F2 sub ecx, eax | |
IN003a: 0000F4 mov dword ptr [V02 rbp-18H], ecx | |
IN003b: 0000F7 mov ecx, 8 | |
IN003c: 0000FC movsxd rcx, ecx | |
IN003d: 0000FF add rcx, qword ptr [V03 rbp-20H] | |
IN003e: 000103 mov qword ptr [V03 rbp-20H], rcx | |
G_M42618_IG06: ; offs=000107H, size=0059H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz | |
IN003f: 000107 cmp dword ptr [V02 rbp-18H], 0 | |
IN0040: 00010B jg SHORT G_M42618_IG05 | |
IN0041: 00010D mov rcx, qword ptr [V03 rbp-20H] | |
IN0042: 000111 mov eax, 8 | |
IN0043: 000116 movsxd rax, eax | |
IN0044: 000119 sub rcx, rax | |
IN0045: 00011C mov qword ptr [V03 rbp-20H], rcx | |
IN0046: 000120 mov ecx, dword ptr [V04 rbp-24H] | |
IN0047: 000123 dec ecx | |
IN0048: 000125 mov eax, 1 | |
IN0049: 00012A movsxd rax, eax | |
IN004a: 00012D shl rax, cl | |
IN004b: 000130 mov rdx, qword ptr [V03 rbp-20H] | |
IN004c: 000134 vpdep rax, rax, qword ptr [rdx] | |
IN004d: 000139 xor edx, edx | |
IN004e: 00013B tzcnt rdx, rax | |
IN004f: 000140 mov eax, edx | |
IN0050: 000142 mov dword ptr [V05 rbp-28H], eax | |
IN0051: 000145 mov rax, qword ptr [V03 rbp-20H] | |
IN0052: 000149 sub rax, qword ptr [V00 rbp-10H] | |
IN0053: 00014D mov edx, 8 | |
IN0054: 000152 movsxd rdi, edx | |
IN0055: 000155 cdq | |
IN0056: 000157 idiv rdx:rax, rdi | |
IN0057: 00015A shl eax, 6 | |
IN0058: 00015D add eax, dword ptr [V05 rbp-28H] | |
G_M42618_IG07: ; offs=000160H, size=0008H, epilog, nogc, emitadd | |
IN0066: 000160 lea rsp, [rbp-08H] | |
IN0067: 000164 pop r13 | |
IN0068: 000166 pop rbp | |
IN0069: 000167 ret | |
Unwind Info: | |
>> Start offset : 0x000000 (not in unwind data) | |
>> End offset : 0x000168 (not in unwind data) | |
Version : 1 | |
Flags : 0x00 | |
SizeOfProlog : 0x07 | |
CountOfUnwindCodes: 3 | |
FrameRegister : none (0) | |
FrameOffset : N/A (no FrameRegister) (Value=0) | |
UnwindCodes : | |
CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28 | |
CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13) | |
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5) | |
allocUnwindInfo(pHotCode=0x00007FEC268639F0, pColdCode=0x0000000000000000, startOffset=0x0, endOffset=0x168, unwindSize=0xa, pUnwindBlock=0x000000000140626E, funKind=0 (main function)) | |
*************** In genIPmappingGen() | |
IP mapping count : 14 | |
IL offs PROLOG : 0x00000000 ( STACK_EMPTY ) | |
IL offs 0x0000 : 0x00000029 ( STACK_EMPTY ) | |
IL offs 0x0004 : 0x00000036 ( STACK_EMPTY ) | |
IL offs 0x0034 : 0x000000AB ( STACK_EMPTY ) | |
IL offs 0x003B : 0x000000C7 ( STACK_EMPTY ) | |
IL offs 0x0043 : 0x000000D4 ( STACK_EMPTY ) | |
IL offs 0x0047 : 0x000000DC ( STACK_EMPTY ) | |
IL offs 0x0049 : 0x000000E2 ( STACK_EMPTY ) | |
IL offs 0x0055 : 0x000000F7 ( STACK_EMPTY ) | |
IL offs 0x0059 : 0x00000107 ( STACK_EMPTY ) | |
IL offs 0x005D : 0x0000010D ( STACK_EMPTY ) | |
IL offs 0x0061 : 0x00000120 ( STACK_EMPTY ) | |
IL offs 0x0078 : 0x00000145 ( STACK_EMPTY ) | |
IL offs EPILOG : 0x00000160 ( STACK_EMPTY ) | |
*************** In genSetScopeInfo() | |
VarLocInfo count is 3 | |
*************** Variable debug info | |
3 vars | |
0( UNKNOWN) : From 00000000h to 00000029h, in rdi | |
1( UNKNOWN) : From 00000000h to 00000029h, in rsi | |
2( UNKNOWN) : From 00000000h to 00000029h, in rdx | |
*************** In gcInfoBlockHdrSave() | |
Set code length to 360. | |
Set ReturnKind to Scalar. | |
Set stack base register to rbp. | |
Set Outgoing stack arg area size to 0. | |
Defining interruptible range: [0x29, 0x160). | |
Method code size: 360 | |
Allocations for GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int (MethodHash=cbde5985) | |
count: 819, size: 72142, max = 2600 | |
allocateMemory: 131072, nraUsed: 74584 | |
Alloc'd bytes by kind: | |
kind | size | pct | |
---------------------+------------+-------- | |
AssertionProp | 0 | 0.00% | |
ASTNode | 19888 | 27.57% | |
InstDesc | 9128 | 12.65% | |
ImpStack | 384 | 0.53% | |
BasicBlock | 2592 | 3.59% | |
fgArgInfo | 0 | 0.00% | |
fgArgInfoPtrArr | 0 | 0.00% | |
FlowList | 256 | 0.35% | |
TreeStatementList | 0 | 0.00% | |
SiScope | 216 | 0.30% | |
FlatFPStateX87 | 0 | 0.00% | |
DominatorMemory | 0 | 0.00% | |
LSRA | 3272 | 4.54% | |
LSRA_Interval | 5360 | 7.43% | |
LSRA_RefPosition | 9472 | 13.13% | |
Reachability | 0 | 0.00% | |
SSA | 0 | 0.00% | |
ValueNumber | 0 | 0.00% | |
LvaTable | 1792 | 2.48% | |
UnwindInfo | 0 | 0.00% | |
hashBv | 368 | 0.51% | |
bitset | 288 | 0.40% | |
FixedBitVect | 24 | 0.03% | |
Generic | 674 | 0.93% | |
IndirAssignMap | 0 | 0.00% | |
FieldSeqStore | 0 | 0.00% | |
ZeroOffsetFieldMap | 0 | 0.00% | |
ArrayInfoMap | 0 | 0.00% | |
MemoryPhiArg | 0 | 0.00% | |
CSE | 0 | 0.00% | |
GC | 1328 | 1.84% | |
CorSig | 0 | 0.00% | |
Inlining | 128 | 0.18% | |
ArrayStack | 384 | 0.53% | |
DebugInfo | 848 | 1.18% | |
DebugOnly | 14502 | 20.10% | |
Codegen | 1144 | 1.59% | |
LoopOpt | 0 | 0.00% | |
LoopHoist | 0 | 0.00% | |
Unknown | 94 | 0.13% | |
RangeCheck | 0 | 0.00% | |
CopyProp | 0 | 0.00% | |
SideEffects | 0 | 0.00% | |
****** DONE compiling GetNthBitOffset:POPCNTAndBMI2Unrolled(long,int,int):int |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment