Untitled diff

Criado O diff nunca expira
0 remoções
486 linhas
0 adições
486 linhas
****** START compiling Program:Test(int,long[]):this (MethodHash=57540ab3)
****** START compiling Program:Test(int,long[]):this (MethodHash=57540ab3)
Generating code for Windows x64
Generating code for Windows x64
OPTIONS: compCodeOpt = BLENDED_CODE
OPTIONS: compCodeOpt = BLENDED_CODE
OPTIONS: compDbgCode = false
OPTIONS: compDbgCode = false
OPTIONS: compDbgInfo = true
OPTIONS: compDbgInfo = true
OPTIONS: compDbgEnC = false
OPTIONS: compDbgEnC = false
OPTIONS: compProcedureSplitting = false
OPTIONS: compProcedureSplitting = false
OPTIONS: compProcedureSplittingEH = false
OPTIONS: compProcedureSplittingEH = false
OPTIONS: optimizer should use profile data
OPTIONS: optimizer should use profile data
IL to import:
IL to import:
IL_0000 04 ldarg.2
IL_0000 04 ldarg.2
IL_0001 03 ldarg.1
IL_0001 03 ldarg.1
IL_0002 16 ldc.i4.0
IL_0002 16 ldc.i4.0
IL_0003 6a conv.i8
IL_0003 6a conv.i8
IL_0004 9f stelem.i8
IL_0004 9f stelem.i8
IL_0005 04 ldarg.2
IL_0005 04 ldarg.2
IL_0006 03 ldarg.1
IL_0006 03 ldarg.1
IL_0007 16 ldc.i4.0
IL_0007 16 ldc.i4.0
IL_0008 6a conv.i8
IL_0008 6a conv.i8
IL_0009 9f stelem.i8
IL_0009 9f stelem.i8
IL_000a 2a ret
IL_000a 2a ret


lvaSetClass: setting class for V00 to (00000000D1FFAB1E) Program
lvaSetClass: setting class for V00 to (00000000D1FFAB1E) Program
'this' passed in register rcx
'this' passed in register rcx
Arg #1 passed in register(s) rdx
Arg #1 passed in register(s) rdx


lvaSetClass: setting class for V02 to (00000000D1FFAB1E) long[]
lvaSetClass: setting class for V02 to (00000000D1FFAB1E) long[]
Arg #2 passed in register(s) r8
Arg #2 passed in register(s) r8


lvaGrabTemp returning 3 (V03 tmp0) (a long lifetime temp) called for OutgoingArgSpace.
lvaGrabTemp returning 3 (V03 tmp0) (a long lifetime temp) called for OutgoingArgSpace.


Local V03 should not be enregistered because: it is address exposed
Local V03 should not be enregistered because: it is address exposed
; Initial local variable assignments
; Initial local variable assignments
;
;
; V00 this ref this class-hnd <Program>
; V00 this ref this class-hnd <Program>
; V01 arg1 int
; V01 arg1 int
; V02 arg2 ref class-hnd <long[]>
; V02 arg2 ref class-hnd <long[]>
; V03 OutArgs struct <0> do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 OutArgs struct <0> do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
*************** In compInitDebuggingInfo() for Program:Test(int,long[]):this
*************** In compInitDebuggingInfo() for Program:Test(int,long[]):this
getVars() returned cVars = 0, extendOthers = true
getVars() returned cVars = 0, extendOthers = true
info.compVarScopesCount = 3
info.compVarScopesCount = 3
VarNum LVNum Name Beg End
VarNum LVNum Name Beg End
0: 00h 00h V00 this 000h 00Bh
0: 00h 00h V00 this 000h 00Bh
1: 01h 01h V01 arg1 000h 00Bh
1: 01h 01h V01 arg1 000h 00Bh
2: 02h 02h V02 arg2 000h 00Bh
2: 02h 02h V02 arg2 000h 00Bh
info.compStmtOffsetsCount = 0
info.compStmtOffsetsCount = 0
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE )
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE )
*************** In fgFindBasicBlocks() for Program:Test(int,long[]):this
*************** In fgFindBasicBlocks() for Program:Test(int,long[]):this
Jump targets:
Jump targets:
none
none
New Basic Block BB01 [0000] created.
New Basic Block BB01 [0000] created.
BB01 [000..00B)
BB01 [000..00B)
IL Code Size,Instr 11, 11, Basic Block count 1, Local Variable Num,Ref count 4, 4 for method Program:Test(int,long[]):this
IL Code Size,Instr 11, 11, Basic Block count 1, Local Variable Num,Ref count 4, 4 for method Program:Test(int,long[]):this
OPTIONS: opts.MinOpts() == false
OPTIONS: opts.MinOpts() == false
Basic block list for 'Program:Test(int,long[]):this'
Basic block list for 'Program:Test(int,long[]):this'


-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..00B) (return)
BB01 [0000] 1 1 [000..00B) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------


*************** Starting PHASE Pre-import
*************** Starting PHASE Pre-import


*************** Finishing PHASE Pre-import
*************** Finishing PHASE Pre-import
Trees after Pre-import
Trees after Pre-import


-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..00B) (return)
BB01 [0000] 1 1 [000..00B) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------


------------ BB01 [000..00B) (return), preds={} succs={}
------------ BB01 [000..00B) (return), preds={} succs={}


-------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In fgDebugCheckBBlist


*************** Starting PHASE Profile incorporation
*************** Starting PHASE Profile incorporation
BBOPT set, but no profile data available (hr=80004001)
BBOPT set, but no profile data available (hr=80004001)


*************** Finishing PHASE Profile incorporation [no changes]
*************** Finishing PHASE Profile incorporation [no changes]


*************** Starting PHASE Importation
*************** Starting PHASE Importation


impImportBlockPending for BB01
impImportBlockPending for BB01


Importing BB01 (PC=000) of 'Program:Test(int,long[]):this'
Importing BB01 (PC=000) of 'Program:Test(int,long[]):this'
[ 0] 0 (0x000) ldarg.2
[ 0] 0 (0x000) ldarg.2
[ 1] 1 (0x001) ldarg.1
[ 1] 1 (0x001) ldarg.1
[ 2] 2 (0x002) ldc.i4.0 0
[ 2] 2 (0x002) ldc.i4.0 0
[ 3] 3 (0x003) conv.i8
[ 3] 3 (0x003) conv.i8
Folding long operator with constant nodes into a constant:
Folding long operator with constant nodes into a constant:
[000003] ----------- * CAST long <- int
[000003] ----------- * CAST long <- int
[000002] ----------- \--* CNS_INT int 0
[000002] ----------- \--* CNS_INT int 0
Bashed to long constant:
Bashed to long constant:
[000003] ----------- * CNS_INT long 0
[000003] ----------- * CNS_INT long 0


[ 3] 4 (0x004) stelem.i8
[ 3] 4 (0x004) stelem.i8


STMT00000 ( 0x000[E-] ... ??? )
STMT00000 ( 0x000[E-] ... ??? )
[000005] nA-XG------ * STOREIND long
[000005] nA-XG------ * STOREIND long
[000004] ---XG------ +--* INDEX_ADDR byref long[]
[000004] ---XG------ +--* INDEX_ADDR byref long[]
[000000] ----------- | +--* LCL_VAR ref V02 arg2
[000000] ----------- | +--* LCL_VAR ref V02 arg2
[000001] ----------- | \--* LCL_VAR int V01 arg1
[000001] ----------- | \--* LCL_VAR int V01 arg1
[000003] ----------- \--* CNS_INT long 0
[000003] ----------- \--* CNS_INT long 0


[ 0] 5 (0x005) ldarg.2
[ 0] 5 (0x005) ldarg.2
[ 1] 6 (0x006) ldarg.1
[ 1] 6 (0x006) ldarg.1
[ 2] 7 (0x007) ldc.i4.0 0
[ 2] 7 (0x007) ldc.i4.0 0
[ 3] 8 (0x008) conv.i8
[ 3] 8 (0x008) conv.i8
Folding long operator with constant nodes into a constant:
Folding long operator with constant nodes into a constant:
[000009] ----------- * CAST long <- int
[000009] ----------- * CAST long <- int
[000008] ----------- \--* CNS_INT int 0
[000008] ----------- \--* CNS_INT int 0
Bashed to long constant:
Bashed to long constant:
[000009] ----------- * CNS_INT long 0
[000009] ----------- * CNS_INT long 0


[ 3] 9 (0x009) stelem.i8
[ 3] 9 (0x009) stelem.i8


STMT00001 ( 0x005[E-] ... ??? )
STMT00001 ( 0x005[E-] ... ??? )
[000011] nA-XG------ * STOREIND long
[000011] nA-XG------ * STOREIND long
[000010] ---XG------ +--* INDEX_ADDR byref long[]
[000010] ---XG------ +--* INDEX_ADDR byref long[]
[000006] ----------- | +--* LCL_VAR ref V02 arg2
[000006] ----------- | +--* LCL_VAR ref V02 arg2
[000007] ----------- | \--* LCL_VAR int V01 arg1
[000007] ----------- | \--* LCL_VAR int V01 arg1
[000009] ----------- \--* CNS_INT long 0
[000009] ----------- \--* CNS_INT long 0


[ 0] 10 (0x00a) ret
[ 0] 10 (0x00a) ret


STMT00002 ( 0x00A[E-] ... ??? )
STMT00002 ( 0x00A[E-] ... ??? )
[000012] ----------- * RETURN void
[000012] ----------- * RETURN void


*************** Finishing PHASE Importation
*************** Finishing PHASE Importation
Trees after Importation
Trees after Importation


-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..00B) (return) i idxlen
BB01 [0000] 1 1 [000..00B) (return) i idxlen
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------


------------ BB01 [000..00B) (return), preds={} succs={}
------------ BB01 [000..00B) (return), preds={} succs={}


***** BB01
***** BB01
STMT00000 ( 0x000[E-] ... 0x004 )
STMT00000 ( 0x000[E-] ... 0x004 )
[000005] nA-XG------ * STOREIND long
[000005] nA-XG------ * STOREIND long
[000004] ---XG------ +--* INDEX_ADDR byref long[]
[000004] ---XG------ +--* INDEX_ADDR byref long[]
[000000] ----------- | +--* LCL_VAR ref V02 arg2
[000000] ----------- | +--* LCL_VAR ref V02 arg2
[000001] ----------- | \--* LCL_VAR int V01 arg1
[000001] ----------- | \--* LCL_VAR int V01 arg1
[000003] ----------- \--* CNS_INT long 0
[000003] ----------- \--* CNS_INT long 0


***** BB01
***** BB01
STMT00001 ( 0x005[E-] ... 0x009 )
STMT00001 ( 0x005[E-] ... 0x009 )
[000011] nA-XG------ * STOREIND long
[000011] nA-XG------ * STOREIND long
[000010] ---XG------ +--* INDEX_ADDR byref long[]
[000010] ---XG------ +--* INDEX_ADDR byref long[]
[000006] ----------- | +--* LCL_VAR ref V02 arg2
[000006] ----------- | +--* LCL_VAR ref V02 arg2
[000007] ----------- | \--* LCL_VAR int V01 arg1
[000007] ----------- | \--* LCL_VAR int V01 arg1
[000009] ----------- \--* CNS_INT long 0
[000009] ----------- \--* CNS_INT long 0


***** BB01
***** BB01
STMT00002 ( 0x00A[E-] ... 0x00A )
STMT00002 ( 0x00A[E-] ... 0x00A )
[000012] ----------- * RETURN void
[000012] ----------- * RETURN void


-------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In fgDebugCheckBBlist
*************** In fgDebugCheckLoopTable: loop table not valid
*************** In fgDebugCheckLoopTable: loop table not valid


*************** Starting PHASE Expand patchpoints
*************** Starting PHASE Expand patchpoints


-- no patchpoints to transform
-- no patchpoints to transform


*************** Finishing PHASE Expand patchpoints [no changes]
*************** Finishing PHASE Expand patchpoints [no changes]


*************** Starting PHASE Indirect call transform
*************** Starting PHASE Indirect call transform


-- no candidates to transform
-- no candidates to transform


*************** Finishing PHASE Indirect call transform [no changes]
*************** Finishing PHASE Indirect call transform [no changes]


*************** Starting PHASE Post-import
*************** Starting PHASE Post-import


*************** Finishing PHASE Post-import [no changes]
*************** Finishing PHASE Post-import [no changes]


*************** Starting PHASE Morph - Init
*************** Starting PHASE Morph - Init


New BlockSet epoch 1, # of blocks (including unused BB00): 2, bitset array size: 1 (short)
New BlockSet epoch 1, # of blocks (including unused BB00): 2, bitset array size: 1 (short)


*************** Finishing PHASE Morph - Init [no changes]
*************** Finishing PHASE Morph - Init [no changes]


*************** Starting PHASE Morph - Inlining
*************** Starting PHASE Morph - Inlining
**************** Inline Tree
**************** Inline Tree


Inlines into 06000001 [via ExtendedDefaultPolicy] Program:Test(int,long[]):this:
Inlines into 06000001 [via ExtendedDefaultPolicy] Program:Test(int,long[]):this:
Budget: initialTime=93, finalTime=93, initialBudget=930, currentBudget=930
Budget: initialTime=93, finalTime=93, initialBudget=930, currentBudget=930
Budget: initialSize=382, finalSize=382
Budget: initialSize=382, finalSize=382


*************** Before renumbering the basic blocks
*************** Before renumbering the basic blocks


-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..00B) (return) i idxlen
BB01 [0000] 1 1 [000..00B) (return) i idxlen
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------


*************** Exception Handling table is empty
*************** Exception Handling table is empty
=============== No blocks renumbered!
=============== No blocks renumbered!


*************** Finishing PHASE Morph - Inlining
*************** Finishing PHASE Morph - Inlining
Trees after Morph - Inlining
Trees after Morph - Inlining


-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..00B) (return) i idxlen
BB01 [0000] 1 1 [000..00B) (return) i idxlen
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------


------------ BB01 [000..00B) (return), preds={} succs={}
------------ BB01 [000..00B) (return), preds={} succs={}


***** BB01
***** BB01
STMT00000 ( 0x000[E-] ... 0x004 )
STMT00000 ( 0x000[E-] ... 0x004 )
[000005] nA-XG------ * STOREIND long
[000005] nA-XG------ * STOREIND long
[000004] ---XG------ +--* INDEX_ADDR byref long[]
[000004] ---XG------ +--* INDEX_ADDR byref long[]
[000000] ----------- | +--* LCL_VAR ref V02 arg2
[000000] ----------- | +--* LCL_VAR ref V02 arg2
[000001] ----------- | \--* LCL_VAR int V01 arg1
[000001] ----------- | \--* LCL_VAR int V01 arg1
[000003] ----------- \--* CNS_INT long 0
[000003] ----------- \--* CNS_INT long 0


***** BB01
***** BB01
STMT00001 ( 0x005[E-] ... 0x009 )
STMT00001 ( 0x005[E-] ... 0x009 )
[000011] nA-XG------ * STOREIND long
[000011] nA-XG------ * STOREIND long
[000010] ---XG------ +--* INDEX_ADDR byref long[]
[000010] ---XG------ +--* INDEX_ADDR byref long[]
[000006] ----------- | +--* LCL_VAR ref V02 arg2
[000006] ----------- | +--* LCL_VAR ref V02 arg2
[000007] ----------- | \--* LCL_VAR int V01 arg1
[000007] ----------- | \--* LCL_VAR int V01 arg1
[000009] ----------- \--* CNS_INT long 0
[000009] ----------- \--* CNS_INT long 0


***** BB01
***** BB01
STMT00002 ( 0x00A[E-] ... 0x00A )
STMT00002 ( 0x00A[E-] ... 0x00A )
[000012] ----------- * RETURN void
[000012] ----------- * RETURN void


-------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In fgDebugCheckBBlist
*************** In fgDebugCheckLoopTable: loop table not valid
*************** In fgDebugCheckLoopTable: loop table not valid


*************** Starting PHASE Allocate Objects
*************** Starting PHASE Allocate Objects
no newobjs in this method; punting
no newobjs in this method; punting


*************** Finishing PHASE Allocate Objects [no changes]
*************** Finishing PHASE Allocate Objects [no changes]


*************** Starting PHASE Morph - Add internal blocks
*************** Starting PHASE Morph - Add internal blocks


*************** After fgAddInternal()
*************** After fgAddInternal()


-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..00B) (return) i idxlen
BB01 [0000] 1 1 [000..00B) (return) i idxlen
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------


*************** Exception Handling table is empty
*************** Exception Handling table is empty


*************** Finishing PHASE Morph - Add internal blocks [no changes]
*************** Finishing PHASE Morph - Add internal blocks [no changes]


*************** Starting PHASE Remove empty try
*************** Starting PHASE Remove empty try


*************** In fgRemoveEmptyTry()
*************** In fgRemoveEmptyTry()
No EH in this method, nothing to remove.
No EH in this method, nothing to remove.


*************** Finishing PHASE Remove empty try [no changes]
*************** Finishing PHASE Remove empty try [no changes]


*************** Starting PHASE Remove empty finally
*************** Starting PHASE Remove empty finally
No EH in this method, nothing to remove.
No EH in this method, nothing to remove.


*************** Finishing PHASE Remove empty finally [no changes]
*************** Finishing PHASE Remove empty finally [no changes]


*************** Starting PHASE Merge callfinally chains
*************** Starting PHASE Merge callfinally chains
No EH in this method, nothing to merge.
No EH in this method, nothing to merge.


*************** Finishing PHASE Merge callfinally chains [no changes]
*************** Finishing PHASE Merge callfinally chains [no changes]


*************** Starting PHASE Clone finally
*************** Starting PHASE Clone finally
No EH in this method, no cloning.
No EH in this method, no cloning.


*************** Finishing PHASE Clone finally [no changes]
*************** Finishing PHASE Clone finally [no changes]


*************** Starting PHASE Head and tail merge
*************** Starting PHASE Head and tail merge


*************** Finishing PHASE Head and tail merge
*************** Finishing PHASE Head and tail merge
Trees after Head and tail merge
Trees after Head and tail merge


-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..00B) (return) i idxlen
BB01 [0000] 1 1 [000..00B) (return) i idxlen
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------


------------ BB01 [000..00B) (return), preds={} succs={}
------------ BB01 [000..00B) (return), preds={} succs={}


***** BB01
***** BB01
STMT00000 ( 0x000[E-] ... 0x004 )
STMT00000 ( 0x000[E-] ... 0x004 )
[000005] nA-XG------ * STOREIND long
[000005] nA-XG------ * STOREIND long
[000004] ---XG------ +--* INDEX_ADDR byref long[]
[000004] ---XG------ +--* INDEX_ADDR byref long[]
[000000] ----------- | +--* LCL_VAR ref V02 arg2
[000000] ----------- | +--* LCL_VAR ref V02 arg2
[000001] ----------- | \--* LCL_VAR int V01 arg1
[000001] ----------- | \--* LCL_VAR int V01 arg1
[000003] ----------- \--* CNS_INT long 0
[000003] ----------- \--* CNS_INT long 0


***** BB01
***** BB01
STMT00001 ( 0x005[E-] ... 0x009 )
STMT00001 ( 0x005[E-] ... 0x009 )
[000011] nA-XG------ * STOREIND long
[000011] nA-XG------ * STOREIND long
[000010] ---XG------ +--* INDEX_ADDR byref long[]
[000010] ---XG------ +--* INDEX_ADDR byref long[]
[000006] ----------- | +--* LCL_VAR ref V02 arg2
[000006] ----------- | +--* LCL_VAR ref V02 arg2
[000007] ----------- | \--* LCL_VAR int V01 arg1
[000007] ----------- | \--* LCL_VAR int V01 arg1
[000009] ----------- \--* CNS_INT long 0
[000009] ----------- \--* CNS_INT long 0


***** BB01
***** BB01
STMT00002 ( 0x00A[E-] ... 0x00A )
STMT00002 ( 0x00A[E-] ... 0x00A )
[000012] ----------- * RETURN void
[000012] ----------- * RETURN void


-------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In fgDebugCheckBBlist
*************** In fgDebugCheckLoopTable: loop table not valid
*************** In fgDebugCheckLoopTable: loop table not valid


*************** Starting PHASE Merge throw blocks
*************** Starting PHASE Merge throw blocks


*************** In fgTailMergeThrows
*************** In fgTailMergeThrows
Method does not have multiple noreturn calls.
Method does not have multiple noreturn calls.


*************** Finishing PHASE Merge throw blocks [no changes]
*************** Finishing PHASE Merge throw blocks [no changes]


*************** Starting PHASE Update flow graph early pass
*************** Starting PHASE Update flow graph early pass


*************** Finishing PHASE Update flow graph early pass [no changes]
*************** Finishing PHASE Update flow graph early pass [no changes]


*************** Starting PHASE Morph - Promote Structs
*************** Starting PHASE Morph - Promote Structs


lvaTable before fgPromoteStructs
lvaTable before fgPromoteStructs
; Initial local variable assignments
; Initial local variable assignments
;
;
; V00 this ref this class-hnd <Program>
; V00 this ref this class-hnd <Program>
; V01 arg1 int
; V01 arg1 int
; V02 arg2 ref class-hnd <long[]>
; V02 arg2 ref class-hnd <long[]>
; V03 OutArgs struct <0> do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 OutArgs struct <0> do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
struct promotion of V03 is disabled because it has already been marked address exposed
struct promotion of V03 is disabled because it has already been marked address exposed


*************** Finishing PHASE Morph - Promote Structs [no changes]
*************** Finishing PHASE Morph - Promote Structs [no changes]


*************** Starting PHASE Morph - Structs/AddrExp
*************** Starting PHASE Morph - Structs/AddrExp
LocalAddressVisitor visiting statement:
LocalAddressVisitor visiting statement:
STMT00000 ( 0x000[E-] ... 0x004 )
STMT00000 ( 0x000[E-] ... 0x004 )
[000005] nA-XG------ * STOREIND long
[000005] nA-XG------ * STOREIND long
[000004] ---XG------ +--* INDEX_ADDR byref long[]
[000004] ---XG------ +--* INDEX_ADDR byref long[]
[000000] ----------- | +--* LCL_VAR ref V02 arg2
[000000] ----------- | +--* LCL_VAR ref V02 arg2
[000001] ----------- | \--* LCL_VAR int V01 arg1
[000001] ----------- | \--* LCL_VAR int V01 arg1
[000003] ----------- \--* CNS_INT long 0
[000003] ----------- \--* CNS_INT long 0


LocalAddressVisitor visiting statement:
LocalAddressVisitor visiting statement:
STMT00001 ( 0x005[E-] ... 0x009 )
STMT00001 ( 0x005[E-] ... 0x009 )
[000011] nA-XG------ * STOREIND long
[000011] nA-XG------ * STOREIND long
[000010] ---XG------ +--* INDEX_ADDR byref long[]
[000010] ---XG------ +--* INDEX_ADDR byref long[]
[000006] ----------- | +--* LCL_VAR ref V02 arg2
[000006] ----------- | +--* LCL_VAR ref V02 arg2
[000007] ----------- | \--* LCL_VAR int V01 arg1
[000007] ----------- | \--* LCL_VAR int V01 arg1
[000009] ----------- \--* CNS_INT long 0
[000009] ----------- \--* CNS_INT long 0


LocalAddressVisitor visiting statement:
LocalAddressVisitor visiting statement:
STMT00002 ( 0x00A[E-] ... 0x00A )
STMT00002 ( 0x00A[E-] ... 0x00A )
[000012] ----------- * RETURN void
[000012] ----------- * RETURN void




*************** Finishing PHASE Morph - Structs/AddrExp [no changes]
*************** Finishing PHASE Morph - Structs/AddrExp [no changes]


*************** Starting PHASE Early liveness
*************** Starting PHASE Early liveness


Local V03 should not be enregistered because: struct size does not match reg size
Local V03 should not be enregistered because: struct size does not match reg size
Tracked variable (2 out of 4) table:
Tracked variable (2 out of 4) table:
V01 arg1 [ int]: refCnt = 2, refCntWtd = 0
V01 arg1 [ int]: refCnt = 2, refCntWtd = 0
V02 arg2 [ ref]: refCnt = 2, refCntWtd = 0
V02 arg2 [ ref]: refCnt = 2, refCntWtd = 0


*************** In fgPerBlockLocalVarLiveness()
*************** In fgPerBlockLocalVarLiveness()
BB01 USE(2)={V01 V02}
BB01 USE(2)={V01 V02}
DEF(0)={ }
DEF(0)={ }


** Memory liveness computed, GcHeap states and ByrefExposed states match
** Memory liveness computed, GcHeap states and ByrefExposed states match
*************** In fgInterBlockLocalVarLiveness()
*************** In fgInterBlockLocalVarLiveness()


BB liveness after fgLiveVarAnalysis():
BB liveness after fgLiveVarAnalysis():


BB01 IN (2)={V01 V02}
BB01 IN (2)={V01 V02}
OUT(0)={ }
OUT(0)={ }




*************** Finishing PHASE Early liveness
*************** Finishing PHASE Early liveness
Trees after Early liveness
Trees after Early liveness


-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..00B) (return) i idxlen
BB01 [0000] 1 1 [000..00B) (return) i idxlen
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------


------------ BB01 [000..00B) (return), preds={} succs={}
------------ BB01 [000..00B) (return), preds={} succs={}


***** BB01
***** BB01
STMT00000 ( 0x000[E-] ... 0x004 )
STMT00000 ( 0x000[E-] ... 0x004 )
[000005] nA-XG------ * STOREIND long
[000005] nA-XG------ * STOREIND long
[000004] ---XG------ +--* INDEX_ADDR byref long[]
[000004] ---XG------ +--* INDEX_ADDR byref long[]
[000000] ----------- | +--* LCL_VAR ref V02 arg2
[000000] ----------- | +--* LCL_VAR ref V02 arg2
[000001] ----------- | \--* LCL_VAR int V01 arg1
[000001] ----------- | \--* LCL_VAR int V01 arg1
[000003] ----------- \--* CNS_INT long 0
[000003] ----------- \--* CNS_INT long 0


***** BB01
***** BB01
STMT00001 ( 0x005[E-] ... 0x009 )
STMT00001 ( 0x005[E-] ... 0x009 )
[000011] nA-XG------ * STOREIND long
[000011] nA-XG------ * STOREIND long
[000010] ---XG------ +--* INDEX_ADDR byref long[]
[000010] ---XG------ +--* INDEX_ADDR byref long[]
[000006] ----------- | +--* LCL_VAR ref V02 arg2 (last use)
[000006] ----------- | +--* LCL_VAR ref V02 arg2 (last use)
[000007] ----------- | \--* LCL_VAR int V01 arg1 (last use)
[000007] ----------- | \--* LCL_VAR int V01 arg1 (last use)
[000009] ----------- \--* CNS_INT long 0
[000009] ----------- \--* CNS_INT long 0


***** BB01
***** BB01
STMT00002 ( 0x00A[E-] ... 0x00A )
STMT00002 ( 0x00A[E-] ... 0x00A )
[000012] ----------- * RETURN void
[000012] ----------- * RETURN void


-------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In fgDebugCheckBBlist
*************** In fgDebugCheckLoopTable: loop table not valid
*************** In fgDebugCheckLoopTable: loop table not valid


*************** Starting PHASE Forward Substitution
*************** Starting PHASE Forward Substitution




===> BB01
===> BB01


*************** Finishing PHASE Forward Substitution [no changes]
*************** Finishing PHASE Forward Substitution [no changes]


*************** Starting PHASE Physical promotion
*************** Starting PHASE Physical promotion


*************** Finishing PHASE Physical promotion [no changes]
*************** Finishing PHASE Physical promotion [no changes]


*************** Starting PHASE Identify candidates for implicit byref copy omission
*************** Starting PHASE Identify candidates for implicit byref copy omission


*************** Finishing PHASE Identify candidates for implicit byref copy omission [no changes]
*************** Finishing PHASE Identify candidates for implicit byref copy omission [no changes]


*************** Starting PHASE Morph - ByRefs
*************** Starting PHASE Morph - ByRefs


*************** Finishing PHASE Morph - ByRefs [no changes]
*************** Finishing PHASE Morph - ByRefs [no changes]


*************** Starting PHASE Morph - Global
*************** Starting PHASE Morph - Global


*************** In fgMorphBlocks()
*************** In fgMorphBlocks()


Morphing BB01 of 'Program:Test(int,long[]):this'
Morphing BB01 of 'Program:Test(int,long[]):this'


fgMorphTree BB01, STMT00000 (before)
fgMorphTree BB01, STMT00000 (before)
[000005] nA-XG------ * STOREIND long
[000005] nA-XG------ * STOREIND long
[000004] ---XG------ +--* INDEX_ADDR byref long[]
[000004] ---XG------ +--* INDEX_ADDR byref long[]
[000000] ----------- | +--* LCL_VAR ref V02 arg2
[000000] ----------- | +--* LCL_VAR ref V02 arg2
[000001] ----------- | \--* LCL_VAR int V01 arg1
[000001] ----------- | \--* LCL_VAR int V01 arg1
[000003] ----------- \--* CNS_INT long 0
[000003] ----------- \--* CNS_INT long 0
fgMorphIndexAddr (before remorph):
fgMorphIndexAddr (before remorph):
[000024] ---X-O----- * COMMA byref
[000024] ---X-O----- * COMMA byref
[000016] ---X-O----- +--* BOUNDS_CHECK_Rng void
[000016] ---X-O----- +--* BOUNDS_CHECK_Rng void
[000001] ----------- | +--* LCL_VAR int V01 arg1
[000001] ----------- | +--* LCL_VAR int V01 arg1
[000015] ---X------- | \--* ARR_LENGTH int
[000015] ---X------- | \--* ARR_LENGTH int
[000000] ----------- | \--* LCL_VAR ref V02 arg2
[000000] ----------- | \--* LCL_VAR ref V02 arg2
[000023] -----O----- \--* ARR_ADDR byref long[]
[000023] -----O----- \--* ARR_ADDR byref long[]
[000022] ----------- \--* ADD byref
[000022] ----------- \--* ADD byref
[000013] ----------- +--* LCL_VAR ref V02 arg2
[000013] ----------- +--* LCL_VAR ref V02 arg2
[000021] ----------- \--* ADD long
[000021] ----------- \--* ADD long
[000019] ----------- +--* MUL long
[000019] ----------- +--* MUL long
[000017] ---------U- | +--* CAST long <- uint
[000017] ---------U- | +--* CAST long <- uint
[000014] ----------- | | \--* LCL_VAR int V01 arg1
[000014] ----------- | | \--* LCL_VAR int V01 arg1
[000018] -------N--- | \--* CNS_INT long 8
[000018] -------N--- | \--* CNS_INT long 8
[000020] ----------- \--* CNS_INT long 16
[000020] ----------- \--* CNS_INT long 16
GenTreeNode creates assertion:
GenTreeNode creates assertion:
[000015] ---X-+----- * ARR_LENGTH int
[000015] ---X-+----- * ARR_LENGTH int
In BB01 New Local Constant Assertion: V02 != null, index = #01
In BB01 New Local Constant Assertion: V02 != null, index = #01
fgMorphIndexAddr (after remorph):
fgMorphIndexAddr (after remorph):
[000024] ---X-+----- * COMMA byref
[000024] ---X-+----- * COMMA byref
[000016] ---X-+----- +--* BOUNDS_CHECK_Rng void
[000016] ---X-+----- +--* BOUNDS_CHECK_Rng void
[000001] -----+----- | +--* LCL_VAR int V01 arg1
[000001] -----+----- | +--* LCL_VAR int V01 arg1
[000015] ---X-+----- | \--* ARR_LENGTH int
[000015] ---X-+----- | \--* ARR_LENGTH int
[000000] -----+----- | \--* LCL_VAR ref V02 arg2
[000000] -----+----- | \--* LCL_VAR ref V02 arg2
[000023] -----+----- \--* ARR_ADDR byref long[]
[000023] -----+----- \--* ARR_ADDR byref long[]
[000022] -----+----- \--* ADD byref
[000022] -----+----- \--* ADD byref
[000013] -----+----- +--* LCL_VAR ref V02 arg2
[000013] -----+----- +--* LCL_VAR ref V02 arg2
[000021] -----+----- \--* ADD long
[000021] -----+----- \--* ADD long
[000019] -----+----- +--* LSH long
[000019] -----+----- +--* LSH long
[000017] -----+---U- | +--* CAST long <- uint
[000017] -----+---U- | +--* CAST long <- uint
[000014] -----+----- | | \--* LCL_VAR int V01 arg1
[000014] -----+----- | | \--* LCL_VAR int V01 arg1
[000018] -----+-N--- | \--* CNS_INT long 3
[000018] -----+-N--- | \--* CNS_INT long 3
[000020] -----+----- \--* CNS_INT long
[000020] -----+----- \--* CNS_INT long