Skip to content

Instantly share code, notes, and snippets.

@jakobbotsch
Created July 11, 2018 11:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jakobbotsch/6ebc59af5e0a90df73c8c109a58bd301 to your computer and use it in GitHub Desktop.
Save jakobbotsch/6ebc59af5e0a90df73c8c109a58bd301 to your computer and use it in GitHub Desktop.
****** START compiling Program:M11(ref,ushort,ushort,ubyte,bool,ref):ushort (MethodHash=c9f11a7d)
Generating code for Windows arm
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 0e 04 ldarg.s 0x4
IL_0002 2c 28 brfalse.s 40 (IL_002c)
IL_0004 7e 03 00 00 04 ldsfld 0x4000003
IL_0009 6a conv.i8
IL_000a 0a stloc.0
IL_000b 7e 04 00 00 04 ldsfld 0x4000004
IL_0010 16 ldc.i4.0
IL_0011 93 ldelem.u2
IL_0012 10 02 starg.s 0x2
IL_0014 04 ldarg.2
IL_0015 0b stloc.1
IL_0016 7e 01 00 00 04 ldsfld 0x4000001
IL_001b 06 ldloc.0
IL_001c 6f 01 00 00 2b callvirt 0x2B000001
IL_0021 7e 01 00 00 04 ldsfld 0x4000001
IL_0026 07 ldloc.1
IL_0027 6f 02 00 00 2b callvirt 0x2B000002
IL_002c 0e 04 ldarg.s 0x4
IL_002e 2d 04 brtrue.s 4 (IL_0034)
IL_0030 02 ldarg.0
IL_0031 16 ldc.i4.0
IL_0032 93 ldelem.u2
IL_0033 26 pop
IL_0034 0e 05 ldarg.s 0x5
IL_0036 16 ldc.i4.0
IL_0037 05 ldarg.3
IL_0038 9c stelem.i1
IL_0039 03 ldarg.1
IL_003a 2a ret
lvaSetClass: setting class for V00 to (30911096) System.UInt16[]
Set preferred register for V00 to [r0]
Arg #0 passed in register(s) r0
Set preferred register for V01 to [r1]
Arg #1 passed in register(s) r1
Set preferred register for V02 to [r2]
Arg #2 passed in register(s) r2
Set preferred register for V03 to [r3]
Arg #3 passed in register(s) r3
lvaSetClass: setting class for V05 to (3090EC4E) System.Byte[]
lvaGrabTemp returning 8 (V08 tmp0) (a long lifetime temp) called for OutgoingArgSpace.
; Initial local variable assignments
;
; V00 arg0 ref class-hnd
; V01 arg1 ushort
; V02 arg2 ushort
; V03 arg3 ubyte
; V04 arg4 bool
; V05 arg5 ref class-hnd
; V06 loc0 long
; V07 loc1 ushort
; V08 OutArgs lclBlk (na)
*************** In compInitDebuggingInfo() for Program:M11(ref,ushort,ushort,ubyte,bool,ref):ushort
getVars() returned cVars = 0, extendOthers = true
info.compVarScopesCount = 8
VarNum LVNum Name Beg End
0: 00h 00h V00 arg0 000h 03Bh
1: 01h 01h V01 arg1 000h 03Bh
2: 02h 02h V02 arg2 000h 03Bh
3: 03h 03h V03 arg3 000h 03Bh
4: 04h 04h V04 arg4 000h 03Bh
5: 05h 05h V05 arg5 000h 03Bh
6: 06h 06h V06 loc0 000h 03Bh
7: 07h 07h V07 loc1 000h 03Bh
info.compStmtOffsetsCount = 0
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE )
*************** In fgFindBasicBlocks() for Program:M11(ref,ushort,ushort,ubyte,bool,ref):ushort
Jump targets:
IL_002c
IL_0034
New Basic Block BB01 [0000] created.
BB01 [000..004)
New Basic Block BB02 [0001] created.
BB02 [004..02C)
New Basic Block BB03 [0002] created.
BB03 [02C..030)
New Basic Block BB04 [0003] created.
BB04 [030..034)
New Basic Block BB05 [0004] created.
BB05 [034..03B)
IL Code Size,Instr 59, 29, Basic Block count 5, Local Variable Num,Ref count 9, 12 for method Program:M11(ref,ushort,ushort,ubyte,bool,ref):ushort
OPTIONS: opts.MinOpts() == false
Basic block list for 'Program:M11(ref,ushort,ushort,ubyte,bool,ref):ushort'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..004)-> BB03 ( cond )
BB02 [0001] 1 1 [004..02C)
BB03 [0002] 2 1 [02C..030)-> BB05 ( cond )
BB04 [0003] 1 1 [030..034)
BB05 [0004] 2 1 [034..03B) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Program:M11(ref,ushort,ushort,ubyte,bool,ref):ushort
impImportBlockPending for BB01
Importing BB01 (PC=000) of 'Program:M11(ref,ushort,ushort,ubyte,bool,ref):ushort'
[ 0] 0 (0x000) ldarg.s 4
[ 1] 2 (0x002) brfalse.s
[000005] ------------- * STMT void (IL 0x000... ???)
[000004] ------------- \--* JTRUE void
[000002] ------------- | /--* CNS_INT int 0
[000003] ------------- \--* EQ int
[000001] ------------- \--* LCL_VAR bool V04 arg4
impImportBlockPending for BB02
impImportBlockPending for BB03
Importing BB03 (PC=044) of 'Program:M11(ref,ushort,ushort,ubyte,bool,ref):ushort'
[ 0] 44 (0x02c) ldarg.s 4
[ 1] 46 (0x02e) brtrue.s
[000011] ------------- * STMT void (IL 0x02C... ???)
[000010] ------------- \--* JTRUE void
[000008] ------------- | /--* CNS_INT int 0
[000009] ------------- \--* NE int
[000007] ------------- \--* LCL_VAR bool V04 arg4
impImportBlockPending for BB04
impImportBlockPending for BB05
Importing BB05 (PC=052) of 'Program:M11(ref,ushort,ushort,ubyte,bool,ref):ushort'
[ 0] 52 (0x034) ldarg.s 5
[ 1] 54 (0x036) ldc.i4.0 0
[ 2] 55 (0x037) ldarg.3
[ 3] 56 (0x038) stelem.i1
[000018] ------------- * STMT void (IL 0x034... ???)
[000015] ------------- | /--* LCL_VAR ubyte V03 arg3
[000017] -A-XG-------- \--* ASG byte
[000014] ------------- | /--* CNS_INT int 0
[000016] ---XG--N----- \--* INDEX byte
[000013] ------------- \--* LCL_VAR ref V05 arg5
[ 0] 57 (0x039) ldarg.1
[ 1] 58 (0x03a) ret
[000021] ------------- * STMT void (IL 0x039... ???)
[000020] ------------- \--* RETURN int
[000019] ------------- \--* LCL_VAR ushort V01 arg1
Importing BB04 (PC=048) of 'Program:M11(ref,ushort,ushort,ubyte,bool,ref):ushort'
[ 0] 48 (0x030) ldarg.0
[ 1] 49 (0x031) ldc.i4.0 0
[ 2] 50 (0x032) ldelem.u2
[ 1] 51 (0x033) pop
[000028] ------------- * STMT void (IL 0x030... ???)
[000026] ------------- | /--* NOP void
[000027] ---XG-------- \--* COMMA void
[000024] ------------- | /--* CNS_INT int 0
[000025] ---XG-------- \--* INDEX ushort
[000023] ------------- \--* LCL_VAR ref V00 arg0
impImportBlockPending for BB05
Importing BB02 (PC=004) of 'Program:M11(ref,ushort,ushort,ubyte,bool,ref):ushort'
[ 0] 4 (0x004) ldsfld 04000003
[ 1] 9 (0x009) conv.i8
[ 1] 10 (0x00a) stloc.0
[000034] ------------- * STMT void (IL 0x004... ???)
[000031] ----G-------- | /--* CAST long <- int
[000030] ----G-------- | | \--* FIELD int s_3
[000033] -A--G-------- \--* ASG long
[000032] D------N----- \--* LCL_VAR long V06 loc0
[ 0] 11 (0x00b) ldsfld 04000004
[ 1] 16 (0x010) ldc.i4.0 0
[ 2] 17 (0x011) ldelem.u2
[ 1] 18 (0x012) starg.s 2
[000040] ------------- * STMT void (IL 0x00B... ???)
[000036] ------------- | /--* CNS_INT int 0
[000037] ---XG-------- | /--* INDEX ushort
[000035] ----G-------- | | \--* FIELD ref s_8
[000039] -A-XG-------- \--* ASG ushort
[000038] D------N----- \--* LCL_VAR ushort V02 arg2
[ 0] 20 (0x014) ldarg.2
[ 1] 21 (0x015) stloc.1
[000044] ------------- * STMT void (IL 0x014... ???)
[000041] ------------- | /--* LCL_VAR ushort V02 arg2
[000043] -A----------- \--* ASG int
[000042] D------N----- \--* LCL_VAR int V07 loc1
[ 0] 22 (0x016) ldsfld 04000001
[ 1] 27 (0x01b) ldloc.0
[ 2] 28 (0x01c) callvirt 2B000001
In Compiler::impImportCall: opcode is callvirt, kind=3, callRetType is void, structSize is 0
lvaGrabTemp returning 9 (V09 tmp1) called for LDVIRTFTN this pointer.
[000050] ------------- * STMT void (IL 0x016... ???)
[000045] ----G-------- | /--* FIELD ref s_rt
[000049] -A--G-------- \--* ASG ref
[000048] D------N----- \--* LCL_VAR ref V09 tmp1
lvaGrabTemp returning 10 (V10 tmp2) called for VirtualCall through function pointer.
[000061] ------------- * STMT void (IL ???... ???)
[000058] --CXG-------- | /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR
[000052] ------------- arg0 | | +--* LCL_VAR ref V09 tmp1
[000053] ------------- arg1 | | +--* CNS_INT(h) int 0x924994 token
[000054] ------------- arg2 | | \--* CNS_INT(h) int 0x924B10 token
[000060] -ACXG-------- \--* ASG int
[000059] D------N----- \--* LCL_VAR int V10 tmp2
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct managed' for 'Program:M11(ref,ushort,ushort,ubyte,bool,ref):ushort' calling 'n/a'
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct managed'
[000064] ------------- * STMT void (IL ???... ???)
[000063] --CXG-------- \--* CALL ind void
[000051] ------------- this in r0 +--* LCL_VAR ref V09 tmp1
[000046] ------------- arg1 +--* LCL_VAR long V06 loc0
[000062] ------------- calli tgt \--* LCL_VAR int V10 tmp2
[ 0] 33 (0x021) ldsfld 04000001
[ 1] 38 (0x026) ldloc.1
[ 2] 39 (0x027) callvirt 2B000002
In Compiler::impImportCall: opcode is callvirt, kind=3, callRetType is void, structSize is 0
lvaGrabTemp returning 11 (V11 tmp3) called for LDVIRTFTN this pointer.
[000070] ------------- * STMT void (IL 0x021... ???)
[000065] ----G-------- | /--* FIELD ref s_rt
[000069] -A--G-------- \--* ASG ref
[000068] D------N----- \--* LCL_VAR ref V11 tmp3
lvaGrabTemp returning 12 (V12 tmp4) called for VirtualCall through function pointer.
[000081] ------------- * STMT void (IL ???... ???)
[000078] --CXG-------- | /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR
[000072] ------------- arg0 | | +--* LCL_VAR ref V11 tmp3
[000073] ------------- arg1 | | +--* CNS_INT(h) int 0x924994 token
[000074] ------------- arg2 | | \--* CNS_INT(h) int 0x924B74 token
[000080] -ACXG-------- \--* ASG int
[000079] D------N----- \--* LCL_VAR int V12 tmp4
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct managed' for 'Program:M11(ref,ushort,ushort,ubyte,bool,ref):ushort' calling 'n/a'
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct managed'
[000084] ------------- * STMT void (IL ???... ???)
[000083] --CXG-------- \--* CALL ind void
[000071] ------------- this in r0 +--* LCL_VAR ref V11 tmp3
[000066] ------------- arg1 +--* LCL_VAR int V07 loc1
[000082] ------------- calli tgt \--* LCL_VAR int V12 tmp4
impImportBlockPending for BB03
New BlockSet epoch 1, # of blocks (including unused BB00): 6, bitset array size: 1 (short)
*************** In fgMorph()
*************** In fgDebugCheckBBlist
*************** In fgInline()
*************** After fgInline()
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..004)-> BB03 ( cond ) i
BB02 [0001] 1 1 [004..02C) i
BB03 [0002] 2 1 [02C..030)-> BB05 ( cond ) i
BB04 [0003] 1 1 [030..034) i idxlen
BB05 [0004] 2 1 [034..03B) (return) i idxlen
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..004) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
[000005] ------------- * STMT void (IL 0x000...0x002)
[000004] ------------- \--* JTRUE void
[000002] ------------- | /--* CNS_INT int 0
[000003] ------------- \--* EQ int
[000001] ------------- \--* LCL_VAR bool V04 arg4
------------ BB02 [004..02C), preds={} succs={BB03}
***** BB02, stmt 2
[000034] ------------- * STMT void (IL 0x004...0x00A)
[000031] ----G-------- | /--* CAST long <- int
[000030] ----G-------- | | \--* FIELD int s_3
[000033] -A--G-------- \--* ASG long
[000032] D------N----- \--* LCL_VAR long V06 loc0
***** BB02, stmt 3
[000040] ------------- * STMT void (IL 0x00B...0x012)
[000036] ------------- | /--* CNS_INT int 0
[000037] ---XG-------- | /--* INDEX ushort
[000035] ----G-------- | | \--* FIELD ref s_8
[000039] -A-XG-------- \--* ASG ushort
[000038] D------N----- \--* LCL_VAR ushort V02 arg2
***** BB02, stmt 4
[000044] ------------- * STMT void (IL 0x014...0x015)
[000041] ------------- | /--* LCL_VAR ushort V02 arg2
[000043] -A----------- \--* ASG int
[000042] D------N----- \--* LCL_VAR int V07 loc1
***** BB02, stmt 5
[000050] ------------- * STMT void (IL 0x016...0x027)
[000045] ----G-------- | /--* FIELD ref s_rt
[000049] -A--G-------- \--* ASG ref
[000048] D------N----- \--* LCL_VAR ref V09 tmp1
***** BB02, stmt 6
[000061] ------------- * STMT void (IL ???... ???)
[000058] --CXG-------- | /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR
[000052] ------------- arg0 | | +--* LCL_VAR ref V09 tmp1
[000053] ------------- arg1 | | +--* CNS_INT(h) int 0x924994 token
[000054] ------------- arg2 | | \--* CNS_INT(h) int 0x924B10 token
[000060] -ACXG-------- \--* ASG int
[000059] D------N----- \--* LCL_VAR int V10 tmp2
***** BB02, stmt 7
[000064] ------------- * STMT void (IL ???... ???)
[000063] --CXG-------- \--* CALL ind void
[000051] ------------- this in r0 +--* LCL_VAR ref V09 tmp1
[000046] ------------- arg1 +--* LCL_VAR long V06 loc0
[000062] ------------- calli tgt \--* LCL_VAR int V10 tmp2
***** BB02, stmt 8
[000070] ------------- * STMT void (IL 0x021... ???)
[000065] ----G-------- | /--* FIELD ref s_rt
[000069] -A--G-------- \--* ASG ref
[000068] D------N----- \--* LCL_VAR ref V11 tmp3
***** BB02, stmt 9
[000081] ------------- * STMT void (IL ???... ???)
[000078] --CXG-------- | /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR
[000072] ------------- arg0 | | +--* LCL_VAR ref V11 tmp3
[000073] ------------- arg1 | | +--* CNS_INT(h) int 0x924994 token
[000074] ------------- arg2 | | \--* CNS_INT(h) int 0x924B74 token
[000080] -ACXG-------- \--* ASG int
[000079] D------N----- \--* LCL_VAR int V12 tmp4
***** BB02, stmt 10
[000084] ------------- * STMT void (IL ???... ???)
[000083] --CXG-------- \--* CALL ind void
[000071] ------------- this in r0 +--* LCL_VAR ref V11 tmp3
[000066] ------------- arg1 +--* LCL_VAR int V07 loc1
[000082] ------------- calli tgt \--* LCL_VAR int V12 tmp4
------------ BB03 [02C..030) -> BB05 (cond), preds={} succs={BB04,BB05}
***** BB03, stmt 11
[000011] ------------- * STMT void (IL 0x02C...0x02E)
[000010] ------------- \--* JTRUE void
[000008] ------------- | /--* CNS_INT int 0
[000009] ------------- \--* NE int
[000007] ------------- \--* LCL_VAR bool V04 arg4
------------ BB04 [030..034), preds={} succs={BB05}
***** BB04, stmt 12
[000028] ------------- * STMT void (IL 0x030...0x033)
[000026] ------------- | /--* NOP void
[000027] ---XG-------- \--* COMMA void
[000024] ------------- | /--* CNS_INT int 0
[000025] ---XG-------- \--* INDEX ushort
[000023] ------------- \--* LCL_VAR ref V00 arg0
------------ BB05 [034..03B) (return), preds={} succs={}
***** BB05, stmt 13
[000018] ------------- * STMT void (IL 0x034...0x038)
[000015] ------------- | /--* LCL_VAR ubyte V03 arg3
[000017] -A-XG-------- \--* ASG byte
[000014] ------------- | /--* CNS_INT int 0
[000016] ---XG--N----- \--* INDEX byte
[000013] ------------- \--* LCL_VAR ref V05 arg5
***** BB05, stmt 14
[000021] ------------- * STMT void (IL 0x039...0x03A)
[000020] ------------- \--* RETURN int
[000019] ------------- \--* LCL_VAR ushort V01 arg1
-------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
**************** Inline Tree
Inlines into 06000005 Program:M11(ref,ushort,ushort,ubyte,bool,ref):ushort
Budget: initialTime=237, finalTime=237, initialBudget=2370, currentBudget=2370
Budget: initialSize=1476, finalSize=1476
*************** After fgAddInternal()
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..004)-> BB03 ( cond ) i
BB02 [0001] 1 1 [004..02C) i
BB03 [0002] 2 1 [02C..030)-> BB05 ( cond ) i
BB04 [0003] 1 1 [030..034) i idxlen
BB05 [0004] 2 1 [034..03B) (return) i idxlen
--------------------------------------------------------------------------------------------------------------------------------------
*************** 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 fgUpdateFinallyTargetFlags, updating finally target flag bits
*************** In fgClearAllFinallyTargetBits()
*************** In fgAddFinallyTargetFlags()
No EH in this method, no flags to set.
*************** In fgPromoteStructs()
lvaTable before fgPromoteStructs
; Initial local variable assignments
;
; V00 arg0 ref class-hnd
; V01 arg1 ushort
; V02 arg2 ushort
; V03 arg3 ubyte
; V04 arg4 bool
; V05 arg5 ref class-hnd
; V06 loc0 long
; V07 loc1 ushort
; V08 OutArgs lclBlk (na)
; V09 tmp1 ref
; V10 tmp2 int
; V11 tmp3 ref
; V12 tmp4 int
lvaTable after fgPromoteStructs
; Initial local variable assignments
;
; V00 arg0 ref class-hnd
; V01 arg1 ushort
; V02 arg2 ushort
; V03 arg3 ubyte
; V04 arg4 bool
; V05 arg5 ref class-hnd
; V06 loc0 long
; V07 loc1 ushort
; V08 OutArgs lclBlk (na)
; V09 tmp1 ref
; V10 tmp2 int
; V11 tmp3 ref
; V12 tmp4 int
*************** In fgMarkAddressExposedLocals()
*************** In fgMorphBlocks()
Morphing BB01 of 'Program:M11(ref,ushort,ushort,ubyte,bool,ref):ushort'
fgMorphTree BB01, stmt 1 (before)
[000004] ------------- * JTRUE void
[000002] ------------- | /--* CNS_INT int 0
[000003] ------------- \--* EQ int
[000001] ------------- \--* LCL_VAR bool V04 arg4
fgMorphTree BB01, stmt 1 (after)
[000004] -----+------- * JTRUE void
[000002] -----+------- | /--* CNS_INT int 0
[000003] J----+-N--S-- \--* EQ int
[000085] -----+----S-- \--* CAST int <- bool <- int
[000001] -----+------- \--* LCL_VAR int V04 arg4
Morphing BB02 of 'Program:M11(ref,ushort,ushort,ubyte,bool,ref):ushort'
fgMorphTree BB02, stmt 2 (before)
[000031] ----G-------- /--* CAST long <- int
[000030] ----G-------- | \--* FIELD int s_3
[000033] -A--G-------- * ASG long
[000032] D------N----- \--* LCL_VAR long V06 loc0
fgMorphTree BB02, stmt 2 (after)
[000031] ----G+------- /--* CAST long <- int
[000030] ----G+------- | \--* CLS_VAR int Hnd=0x9247f8 Fseq[s_3]
[000033] -A--G+------- * ASG long
[000032] D----+-N----- \--* LCL_VAR long V06 loc0
fgMorphTree BB02, stmt 3 (before)
[000036] ------------- /--* CNS_INT int 0
[000037] ---XG-------- /--* INDEX ushort
[000035] ----G-------- | \--* FIELD ref s_8
[000039] -A-XG-------- * ASG ushort
[000038] D------N----- \--* LCL_VAR ushort V02 arg2
lvaGrabTemp returning 13 (V13 tmp5) called for arr expr.
GenTreeNode creates assertion:
[000091] ---X--------- * ARR_LENGTH int
In BB02 New Local Constant Assertion: V13 != null index=#01, mask=0000000000000001
Folding operator with constant nodes into a constant:
[000093] -----+-N----- /--* CNS_INT int 2
[000094] ------------- * MUL int
[000090] -----+------- \--* CNS_INT int 0
Bashed to int constant:
[000094] ------------- * CNS_INT int 0
Folding operator with constant nodes into a constant:
[000095] -----+------- /--* CNS_INT int 8
[000096] ------------- * ADD int
[000094] -----+------- \--* CNS_INT int 0
Bashed to int constant:
[000096] ------------- * CNS_INT int 8
GenTreeNode creates assertion:
[000039] -A-XG-------- * ASG ushort
In BB02 New Local Subrange Assertion: V02 in [0..65535] index=#02, mask=0000000000000002
fgMorphTree BB02, stmt 3 (after)
[000037] a--XG+------- /--* IND ushort
[000096] -----+------- | | /--* CNS_INT int 8 Fseq[#FirstElem]
[000097] -----+------- | \--* ADD byref
[000089] -----+------- | \--* LCL_VAR ref V13 tmp5
[000098] ---XG+------- /--* COMMA ushort
[000092] ---X-+------- | \--* ARR_BOUNDS_CHECK_Rng void
[000036] -----+------- | +--* CNS_INT int 0
[000091] ---X-+------- | \--* ARR_LENGTH int
[000088] -----+------- | \--* LCL_VAR ref V13 tmp5
[000099] -A-XG+------- /--* COMMA ushort
[000035] ----G+------- | | /--* CLS_VAR ref Hnd=0x924808 Fseq[s_8]
[000087] -A--G+------- | \--* ASG ref
[000086] D----+-N----- | \--* LCL_VAR ref V13 tmp5
[000039] -A-XG+------- * ASG ushort
[000038] D----+-N----- \--* LCL_VAR ushort V02 arg2
fgMorphTree BB02, stmt 4 (before)
[000041] ------------- /--* LCL_VAR ushort V02 arg2
[000043] -A----------- * ASG int
[000042] D------N----- \--* LCL_VAR int V07 loc1
GenTreeNode creates assertion:
[000043] -A----------- * ASG int
In BB02 New Local Copy Assertion: V07 == V02 index=#03, mask=0000000000000004
fgMorphTree BB02, stmt 5 (before)
[000045] ----G-------- /--* FIELD ref s_rt
[000049] -A--G-------- * ASG ref
[000048] D------N----- \--* LCL_VAR ref V09 tmp1
fgMorphTree BB02, stmt 5 (after)
[000045] ----G+------- /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt]
[000049] -A--G+------- * ASG ref
[000048] D----+-N----- \--* LCL_VAR ref V09 tmp1
fgMorphTree BB02, stmt 6 (before)
[000058] --CXG-------- /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR
[000052] ------------- arg0 | +--* LCL_VAR ref V09 tmp1
[000053] ------------- arg1 | +--* CNS_INT(h) int 0x924994 token
[000054] ------------- arg2 | \--* CNS_INT(h) int 0x924B10 token
[000060] -ACXG-------- * ASG int
[000059] D------N----- \--* LCL_VAR int V10 tmp2
argSlots=3, preallocatedArgCount=0, nextSlotNum=0, outgoingArgSpaceSize=0
Sorting the arguments:
Deferred argument ('r0'):
[000052] -----+------- * LCL_VAR ref V09 tmp1
Replaced with placeholder node:
[000100] -----------L- * ARGPLACE ref
Deferred argument ('r1'):
[000053] -----+------- * CNS_INT(h) int 0x924994 token
Replaced with placeholder node:
[000102] -----------L- * ARGPLACE int
Deferred argument ('r2'):
[000054] -----+------- * CNS_INT(h) int 0x924B10 token
Replaced with placeholder node:
[000104] -----------L- * ARGPLACE int
Shuffled argument table: r0 r1 r2
fgArgTabEntry[arg 0 52.LCL_VAR, 1 reg: r0, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 1 53.CNS_INT, 1 reg: r1, align=1, lateArgInx=1, processed]
fgArgTabEntry[arg 2 54.CNS_INT, 1 reg: r2, align=1, lateArgInx=2, processed]
fgMorphTree BB02, stmt 6 (after)
[000058] --CXG+------- /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR
[000052] -----+------- arg0 in r0 | +--* LCL_VAR ref V09 tmp1
[000053] -----+------- arg1 in r1 | +--* CNS_INT(h) int 0x924994 token
[000054] -----+------- arg2 in r2 | \--* CNS_INT(h) int 0x924B10 token
[000060] -ACXG+------- * ASG int
[000059] D----+-N----- \--* LCL_VAR int V10 tmp2
fgMorphTree BB02, stmt 7 (before)
[000063] --CXG-------- * CALL ind void
[000051] ------------- this in r0 +--* LCL_VAR ref V09 tmp1
[000046] ------------- arg1 +--* LCL_VAR long V06 loc0
[000062] ------------- calli tgt \--* LCL_VAR int V10 tmp2
argSlots=4, preallocatedArgCount=0, nextSlotNum=0, outgoingArgSpaceSize=0
Sorting the arguments:
Deferred argument ('r0'):
[000051] -----+------- * LCL_VAR ref V09 tmp1
Replaced with placeholder node:
[000106] -----------L- * ARGPLACE ref
Deferred argument ('r2'):
[000046] -----+------- * LCL_VAR long V06 loc0
Replaced with placeholder node:
[000108] -----------L- * ARGPLACE long
Shuffled argument table: r0 r2
fgArgTabEntry[arg 0 51.LCL_VAR, 1 reg: r0, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 1 46.LCL_VAR, 2 regs: r2 r3, align=2, lateArgInx=1, processed]
fgMorphTree BB02, stmt 7 (after)
[000063] --CXG+------- * CALL ind void
[000062] -----+------- calli tgt \--* LCL_VAR int V10 tmp2
[000051] -----+------- this in r0 +--* LCL_VAR ref V09 tmp1
[000046] -----+------- arg1 r2,r3 \--* LCL_VAR long V06 loc0
fgMorphTree BB02, stmt 8 (before)
[000065] ----G-------- /--* FIELD ref s_rt
[000069] -A--G-------- * ASG ref
[000068] D------N----- \--* LCL_VAR ref V11 tmp3
fgMorphTree BB02, stmt 8 (after)
[000065] ----G+------- /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt]
[000069] -A--G+------- * ASG ref
[000068] D----+-N----- \--* LCL_VAR ref V11 tmp3
fgMorphTree BB02, stmt 9 (before)
[000078] --CXG-------- /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR
[000072] ------------- arg0 | +--* LCL_VAR ref V11 tmp3
[000073] ------------- arg1 | +--* CNS_INT(h) int 0x924994 token
[000074] ------------- arg2 | \--* CNS_INT(h) int 0x924B74 token
[000080] -ACXG-------- * ASG int
[000079] D------N----- \--* LCL_VAR int V12 tmp4
argSlots=3, preallocatedArgCount=0, nextSlotNum=0, outgoingArgSpaceSize=0
Sorting the arguments:
Deferred argument ('r0'):
[000072] -----+------- * LCL_VAR ref V11 tmp3
Replaced with placeholder node:
[000110] -----------L- * ARGPLACE ref
Deferred argument ('r1'):
[000073] -----+------- * CNS_INT(h) int 0x924994 token
Replaced with placeholder node:
[000112] -----------L- * ARGPLACE int
Deferred argument ('r2'):
[000074] -----+------- * CNS_INT(h) int 0x924B74 token
Replaced with placeholder node:
[000114] -----------L- * ARGPLACE int
Shuffled argument table: r0 r1 r2
fgArgTabEntry[arg 0 72.LCL_VAR, 1 reg: r0, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 1 73.CNS_INT, 1 reg: r1, align=1, lateArgInx=1, processed]
fgArgTabEntry[arg 2 74.CNS_INT, 1 reg: r2, align=1, lateArgInx=2, processed]
fgMorphTree BB02, stmt 9 (after)
[000078] --CXG+------- /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR
[000072] -----+------- arg0 in r0 | +--* LCL_VAR ref V11 tmp3
[000073] -----+------- arg1 in r1 | +--* CNS_INT(h) int 0x924994 token
[000074] -----+------- arg2 in r2 | \--* CNS_INT(h) int 0x924B74 token
[000080] -ACXG+------- * ASG int
[000079] D----+-N----- \--* LCL_VAR int V12 tmp4
fgMorphTree BB02, stmt 10 (before)
[000083] --CXG-------- * CALL ind void
[000071] ------------- this in r0 +--* LCL_VAR ref V11 tmp3
[000066] ------------- arg1 +--* LCL_VAR int V07 loc1
[000082] ------------- calli tgt \--* LCL_VAR int V12 tmp4
Assertion prop in BB02:
Copy Assertion: V07 == V02 index=#03, mask=0000000000000004
[000066] ------------- * LCL_VAR int V02 arg2
argSlots=2, preallocatedArgCount=0, nextSlotNum=0, outgoingArgSpaceSize=0
Sorting the arguments:
Deferred argument ('r0'):
[000071] -----+------- * LCL_VAR ref V11 tmp3
Replaced with placeholder node:
[000116] -----------L- * ARGPLACE ref
Deferred argument ('r1'):
[000066] -----+------- * LCL_VAR int V02 arg2
Replaced with placeholder node:
[000118] -----------L- * ARGPLACE int
Shuffled argument table: r0 r1
fgArgTabEntry[arg 0 71.LCL_VAR, 1 reg: r0, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 1 66.LCL_VAR, 1 reg: r1, align=1, lateArgInx=1, processed]
fgMorphTree BB02, stmt 10 (after)
[000083] --CXG+------- * CALL ind void
[000082] -----+------- calli tgt \--* LCL_VAR int V12 tmp4
[000071] -----+------- this in r0 +--* LCL_VAR ref V11 tmp3
[000066] -----+------- arg1 in r1 \--* LCL_VAR int V02 arg2
Morphing BB03 of 'Program:M11(ref,ushort,ushort,ubyte,bool,ref):ushort'
fgMorphTree BB03, stmt 11 (before)
[000010] ------------- * JTRUE void
[000008] ------------- | /--* CNS_INT int 0
[000009] ------------- \--* NE int
[000007] ------------- \--* LCL_VAR bool V04 arg4
fgMorphTree BB03, stmt 11 (after)
[000010] -----+------- * JTRUE void
[000008] -----+------- | /--* CNS_INT int 0
[000009] J----+-N--S-- \--* NE int
[000120] -----+----S-- \--* CAST int <- bool <- int
[000007] -----+------- \--* LCL_VAR int V04 arg4
Morphing BB04 of 'Program:M11(ref,ushort,ushort,ubyte,bool,ref):ushort'
fgMorphTree BB04, stmt 12 (before)
[000026] ------------- /--* NOP void
[000027] ---XG-------- * COMMA void
[000024] ------------- | /--* CNS_INT int 0
[000025] ---XG-------- \--* INDEX ushort
[000023] ------------- \--* LCL_VAR ref V00 arg0
GenTreeNode creates assertion:
[000123] ---X--------- * ARR_LENGTH int
In BB04 New Local Constant Assertion: V00 != null index=#01, mask=0000000000000001
Folding operator with constant nodes into a constant:
[000125] -----+-N----- /--* CNS_INT int 2
[000126] ------------- * MUL int
[000122] -----+------- \--* CNS_INT int 0
Bashed to int constant:
[000126] ------------- * CNS_INT int 0
Folding operator with constant nodes into a constant:
[000127] -----+------- /--* CNS_INT int 8
[000128] ------------- * ADD int
[000126] -----+------- \--* CNS_INT int 0
Bashed to int constant:
[000128] ------------- * CNS_INT int 8
fgMorphTree BB04, stmt 12 (after)
[000026] -----+------- /--* NOP void
[000027] ---XG+------- * COMMA void
[000025] a--XG+------- | /--* IND ushort
[000128] -----+------- | | | /--* CNS_INT int 8 Fseq[#FirstElem]
[000129] -----+------- | | \--* ADD byref
[000121] -----+------- | | \--* LCL_VAR ref V00 arg0
[000131] ---XG-------- \--* COMMA void
[000124] ---X-+------- \--* ARR_BOUNDS_CHECK_Rng void
[000024] -----+------- +--* CNS_INT int 0
[000123] ---X-+------- \--* ARR_LENGTH int
[000023] -----+------- \--* LCL_VAR ref V00 arg0
Morphing BB05 of 'Program:M11(ref,ushort,ushort,ubyte,bool,ref):ushort'
fgMorphTree BB05, stmt 13 (before)
[000015] ------------- /--* LCL_VAR ubyte V03 arg3
[000017] -A-XG-------- * ASG byte
[000014] ------------- | /--* CNS_INT int 0
[000016] ---XG--N----- \--* INDEX byte
[000013] ------------- \--* LCL_VAR ref V05 arg5
GenTreeNode creates assertion:
[000134] ---X--------- * ARR_LENGTH int
In BB05 New Local Constant Assertion: V05 != null index=#01, mask=0000000000000001
Folding operator with constant nodes into a constant:
[000136] -----+------- /--* CNS_INT int 8
[000137] ------------- * ADD int
[000133] -----+------- \--* CNS_INT int 0
Bashed to int constant:
[000137] ------------- * CNS_INT int 8
fgMorphTree BB05, stmt 13 (after)
[000015] -----+------- /--* LCL_VAR int V03 arg3
[000017] -A-XG+------- * ASG byte
[000016] a--XG+-N----- | /--* IND byte
[000137] -----+------- | | | /--* CNS_INT int 8 Fseq[#FirstElem]
[000138] -----+------- | | \--* ADD byref
[000132] -----+------- | | \--* LCL_VAR ref V05 arg5
[000139] ---XG+-N----- \--* COMMA byte
[000135] ---X-+------- \--* ARR_BOUNDS_CHECK_Rng void
[000014] -----+------- +--* CNS_INT int 0
[000134] ---X-+------- \--* ARR_LENGTH int
[000013] -----+------- \--* LCL_VAR ref V05 arg5
fgMorphTree BB05, stmt 14 (before)
[000020] ------------- * RETURN int
[000019] ------------- \--* LCL_VAR ushort V01 arg1
fgMorphTree BB05, stmt 14 (after)
[000020] -----+------- * RETURN int
[000141] -----+------- \--* CAST int <- ushort <- int
[000019] -----+------- \--* LCL_VAR int V01 arg1
*************** In fgAddFinallyTargetFlags()
No EH in this method, no flags to set.
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 ( cond ) i
BB02 [0001] 1 1 [004..02C) i gcsafe
BB03 [0002] 2 1 [02C..030)-> BB05 ( cond ) i
BB04 [0003] 1 1 [030..034) i idxlen
BB05 [0004] 2 1 [034..03B) (return) i idxlen
--------------------------------------------------------------------------------------------------------------------------------------
*************** 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 ( cond ) i
BB02 [0001] 1 1 [004..02C) i gcsafe
BB03 [0002] 2 1 [02C..030)-> BB05 ( cond ) i
BB04 [0003] 1 1 [030..034) i idxlen
BB05 [0004] 2 1 [034..03B) (return) i idxlen
--------------------------------------------------------------------------------------------------------------------------------------
*************** After fgComputePreds()
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..004)-> BB03 ( cond ) i label target
BB02 [0001] 1 BB01 1 [004..02C) i gcsafe
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target
BB04 [0003] 1 BB03 1 [030..034) i idxlen
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen
--------------------------------------------------------------------------------------------------------------------------------------
*************** In fgComputeEdgeWeights()
fgComputeEdgeWeights() we do not have any profile data so we are not using the edge weights
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..004)-> BB03 ( cond ) i label target
BB02 [0001] 1 BB01 1 [004..02C) i gcsafe
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target
BB04 [0003] 1 BB03 1 [030..034) i idxlen
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen
--------------------------------------------------------------------------------------------------------------------------------------
fgComputeEdgeWeights() was able to compute exact edge weights for all of the 6 edges, using 1 passes.
Edge weights into BB02 :BB01 (100)
Edge weights into BB03 :BB01 (0), BB02 (100)
Edge weights into BB04 :BB03 (100)
Edge weights into BB05 :BB03 (0), BB04 (100)
*************** In fgCreateFunclets()
After fgCreateFunclets()
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..004)-> BB03 ( cond ) i label target
BB02 [0001] 1 BB01 1 [004..02C) i gcsafe
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target
BB04 [0003] 1 BB03 1 [030..034) i idxlen
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
*************** In fgDebugCheckBBlist
*************** In optOptimizeLayout()
*************** Exception Handling table is empty
*************** In fgDebugCheckBBlist
*************** In fgUpdateFlowGraph()
Before updating the flow graph:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..004)-> BB03 ( cond ) i label target
BB02 [0001] 1 BB01 1 [004..02C) i gcsafe
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target
BB04 [0003] 1 BB03 1 [030..034) i idxlen
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen
--------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In fgExpandRarelyRunBlocks()
*************** In fgReorderBlocks()
Initial BasicBlocks
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..004)-> BB03 ( cond ) i label target
BB02 [0001] 1 BB01 1 [004..02C) i gcsafe
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target
BB04 [0003] 1 BB03 1 [030..034) i idxlen
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen
--------------------------------------------------------------------------------------------------------------------------------------
*************** In fgUpdateFlowGraph()
Before updating the flow graph:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..004)-> BB03 ( cond ) i label target
BB02 [0001] 1 BB01 1 [004..02C) i gcsafe
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target
BB04 [0003] 1 BB03 1 [030..034) i idxlen
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen
--------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In fgComputeReachability
*************** In fgDebugCheckBBlist
Renumbering the basic blocks for fgComputeReachability pass #1
*************** Before renumbering the basic blocks
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..004)-> BB03 ( cond ) i label target
BB02 [0001] 1 BB01 1 [004..02C) i gcsafe
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target
BB04 [0003] 1 BB03 1 [030..034) i idxlen
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
*************** After renumbering the basic blocks
=============== No blocks renumbered!
Enter blocks: BB01
After computing reachability sets:
------------------------------------------------
BBnum Reachable by
------------------------------------------------
BB01 : BB01
BB02 : BB01 BB02
BB03 : BB01 BB02 BB03
BB04 : BB01 BB02 BB03 BB04
BB05 : BB01 BB02 BB03 BB04 BB05
After computing reachability:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..004)-> BB03 ( cond ) i label target
BB02 [0001] 1 BB01 1 [004..02C) i gcsafe
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target
BB04 [0003] 1 BB03 1 [030..034) i idxlen
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen
--------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In fgComputeDoms
*************** In fgDebugCheckBBlist
Dominator computation start blocks (those blocks with no incoming edges):
BB01
------------------------------------------------
BBnum Dominated by
------------------------------------------------
BB01: BB01
BB02: BB02 BB01
BB03: BB03 BB01
BB04: BB04 BB03 BB01
BB05: BB05 BB03 BB01
Inside fgBuildDomTree
After computing the Dominance Tree:
BB01 : BB03 BB02
BB03 : BB05 BB04
*************** In Allocate Objects
Trees before Allocate Objects
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..004)-> BB03 ( cond ) i label target
BB02 [0001] 1 BB01 1 [004..02C) i gcsafe
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target
BB04 [0003] 1 BB03 1 [030..034) i idxlen
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..004) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
[000005] ------------- * STMT void (IL 0x000...0x002)
[000004] -----+------- \--* JTRUE void
[000002] -----+------- | /--* CNS_INT int 0
[000003] J----+-N--S-- \--* EQ int
[000085] -----+----S-- \--* CAST int <- bool <- int
[000001] -----+------- \--* LCL_VAR int V04 arg4
------------ BB02 [004..02C), preds={BB01} succs={BB03}
***** BB02, stmt 2
[000034] ------------- * STMT void (IL 0x004...0x00A)
[000031] ----G+------- | /--* CAST long <- int
[000030] ----G+------- | | \--* CLS_VAR int Hnd=0x9247f8 Fseq[s_3]
[000033] -A--G+------- \--* ASG long
[000032] D----+-N----- \--* LCL_VAR long V06 loc0
***** BB02, stmt 3
[000040] ------------- * STMT void (IL 0x00B...0x012)
[000037] a--XG+------- | /--* IND ushort
[000096] -----+------- | | | /--* CNS_INT int 8 Fseq[#FirstElem]
[000097] -----+------- | | \--* ADD byref
[000089] -----+------- | | \--* LCL_VAR ref V13 tmp5
[000098] ---XG+------- | /--* COMMA ushort
[000092] ---X-+------- | | \--* ARR_BOUNDS_CHECK_Rng void
[000036] -----+------- | | +--* CNS_INT int 0
[000091] ---X-+------- | | \--* ARR_LENGTH int
[000088] -----+------- | | \--* LCL_VAR ref V13 tmp5
[000099] -A-XG+------- | /--* COMMA ushort
[000035] ----G+------- | | | /--* CLS_VAR ref Hnd=0x924808 Fseq[s_8]
[000087] -A--G+------- | | \--* ASG ref
[000086] D----+-N----- | | \--* LCL_VAR ref V13 tmp5
[000039] -A-XG+------- \--* ASG ushort
[000038] D----+-N----- \--* LCL_VAR ushort V02 arg2
***** BB02, stmt 4
[000044] ------------- * STMT void (IL 0x014...0x015)
[000041] -----+------- | /--* LCL_VAR ushort V02 arg2
[000043] -A---+------- \--* ASG int
[000042] D----+-N----- \--* LCL_VAR int V07 loc1
***** BB02, stmt 5
[000050] ------------- * STMT void (IL 0x016...0x027)
[000045] ----G+------- | /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt]
[000049] -A--G+------- \--* ASG ref
[000048] D----+-N----- \--* LCL_VAR ref V09 tmp1
***** BB02, stmt 6
[000061] ------------- * STMT void (IL ???... ???)
[000058] --CXG+------- | /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR
[000052] -----+------- arg0 in r0 | | +--* LCL_VAR ref V09 tmp1
[000053] -----+------- arg1 in r1 | | +--* CNS_INT(h) int 0x924994 token
[000054] -----+------- arg2 in r2 | | \--* CNS_INT(h) int 0x924B10 token
[000060] -ACXG+------- \--* ASG int
[000059] D----+-N----- \--* LCL_VAR int V10 tmp2
***** BB02, stmt 7
[000064] ------------- * STMT void (IL ???... ???)
[000063] --CXG+------- \--* CALL ind void
[000062] -----+------- calli tgt \--* LCL_VAR int V10 tmp2
[000051] -----+------- this in r0 +--* LCL_VAR ref V09 tmp1
[000046] -----+------- arg1 r2,r3 \--* LCL_VAR long V06 loc0
***** BB02, stmt 8
[000070] ------------- * STMT void (IL 0x021... ???)
[000065] ----G+------- | /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt]
[000069] -A--G+------- \--* ASG ref
[000068] D----+-N----- \--* LCL_VAR ref V11 tmp3
***** BB02, stmt 9
[000081] ------------- * STMT void (IL ???... ???)
[000078] --CXG+------- | /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR
[000072] -----+------- arg0 in r0 | | +--* LCL_VAR ref V11 tmp3
[000073] -----+------- arg1 in r1 | | +--* CNS_INT(h) int 0x924994 token
[000074] -----+------- arg2 in r2 | | \--* CNS_INT(h) int 0x924B74 token
[000080] -ACXG+------- \--* ASG int
[000079] D----+-N----- \--* LCL_VAR int V12 tmp4
***** BB02, stmt 10
[000084] ------------- * STMT void (IL ???... ???)
[000083] --CXG+------- \--* CALL ind void
[000082] -----+------- calli tgt \--* LCL_VAR int V12 tmp4
[000071] -----+------- this in r0 +--* LCL_VAR ref V11 tmp3
[000066] -----+------- arg1 in r1 \--* LCL_VAR int V02 arg2
------------ BB03 [02C..030) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 11
[000011] ------------- * STMT void (IL 0x02C...0x02E)
[000010] -----+------- \--* JTRUE void
[000008] -----+------- | /--* CNS_INT int 0
[000009] J----+-N--S-- \--* NE int
[000120] -----+----S-- \--* CAST int <- bool <- int
[000007] -----+------- \--* LCL_VAR int V04 arg4
------------ BB04 [030..034), preds={BB03} succs={BB05}
***** BB04, stmt 12
[000028] ------------- * STMT void (IL 0x030...0x033)
[000026] -----+------- | /--* NOP void
[000027] ---XG+------- \--* COMMA void
[000025] a--XG+------- | /--* IND ushort
[000128] -----+------- | | | /--* CNS_INT int 8 Fseq[#FirstElem]
[000129] -----+------- | | \--* ADD byref
[000121] -----+------- | | \--* LCL_VAR ref V00 arg0
[000131] ---XG-------- \--* COMMA void
[000124] ---X-+------- \--* ARR_BOUNDS_CHECK_Rng void
[000024] -----+------- +--* CNS_INT int 0
[000123] ---X-+------- \--* ARR_LENGTH int
[000023] -----+------- \--* LCL_VAR ref V00 arg0
------------ BB05 [034..03B) (return), preds={BB03,BB04} succs={}
***** BB05, stmt 13
[000018] ------------- * STMT void (IL 0x034...0x038)
[000015] -----+------- | /--* LCL_VAR int V03 arg3
[000017] -A-XG+------- \--* ASG byte
[000016] a--XG+-N----- | /--* IND byte
[000137] -----+------- | | | /--* CNS_INT int 8 Fseq[#FirstElem]
[000138] -----+------- | | \--* ADD byref
[000132] -----+------- | | \--* LCL_VAR ref V05 arg5
[000139] ---XG+-N----- \--* COMMA byte
[000135] ---X-+------- \--* ARR_BOUNDS_CHECK_Rng void
[000014] -----+------- +--* CNS_INT int 0
[000134] ---X-+------- \--* ARR_LENGTH int
[000013] -----+------- \--* LCL_VAR ref V05 arg5
***** BB05, stmt 14
[000021] ------------- * STMT void (IL 0x039...0x03A)
[000020] -----+------- \--* RETURN int
[000141] -----+------- \--* CAST int <- ushort <- int
[000019] -----+------- \--* LCL_VAR int V01 arg1
-------------------------------------------------------------------------------------------------------------------
*************** 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 ( cond ) i label target
BB02 [0001] 1 BB01 1 [004..02C) i gcsafe
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target
BB04 [0003] 1 BB03 1 [030..034) i idxlen
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..004) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
[000005] ------------- * STMT void (IL 0x000...0x002)
[000004] -----+------- \--* JTRUE void
[000002] -----+------- | /--* CNS_INT int 0
[000003] J----+-N--S-- \--* EQ int
[000085] -----+----S-- \--* CAST int <- bool <- int
[000001] -----+------- \--* LCL_VAR int V04 arg4
------------ BB02 [004..02C), preds={BB01} succs={BB03}
***** BB02, stmt 2
[000034] ------------- * STMT void (IL 0x004...0x00A)
[000031] ----G+------- | /--* CAST long <- int
[000030] ----G+------- | | \--* CLS_VAR int Hnd=0x9247f8 Fseq[s_3]
[000033] -A--G+------- \--* ASG long
[000032] D----+-N----- \--* LCL_VAR long V06 loc0
***** BB02, stmt 3
[000040] ------------- * STMT void (IL 0x00B...0x012)
[000037] a--XG+------- | /--* IND ushort
[000096] -----+------- | | | /--* CNS_INT int 8 Fseq[#FirstElem]
[000097] -----+------- | | \--* ADD byref
[000089] -----+------- | | \--* LCL_VAR ref V13 tmp5
[000098] ---XG+------- | /--* COMMA ushort
[000092] ---X-+------- | | \--* ARR_BOUNDS_CHECK_Rng void
[000036] -----+------- | | +--* CNS_INT int 0
[000091] ---X-+------- | | \--* ARR_LENGTH int
[000088] -----+------- | | \--* LCL_VAR ref V13 tmp5
[000099] -A-XG+------- | /--* COMMA ushort
[000035] ----G+------- | | | /--* CLS_VAR ref Hnd=0x924808 Fseq[s_8]
[000087] -A--G+------- | | \--* ASG ref
[000086] D----+-N----- | | \--* LCL_VAR ref V13 tmp5
[000039] -A-XG+------- \--* ASG ushort
[000038] D----+-N----- \--* LCL_VAR ushort V02 arg2
***** BB02, stmt 4
[000044] ------------- * STMT void (IL 0x014...0x015)
[000041] -----+------- | /--* LCL_VAR ushort V02 arg2
[000043] -A---+------- \--* ASG int
[000042] D----+-N----- \--* LCL_VAR int V07 loc1
***** BB02, stmt 5
[000050] ------------- * STMT void (IL 0x016...0x027)
[000045] ----G+------- | /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt]
[000049] -A--G+------- \--* ASG ref
[000048] D----+-N----- \--* LCL_VAR ref V09 tmp1
***** BB02, stmt 6
[000061] ------------- * STMT void (IL ???... ???)
[000058] --CXG+------- | /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR
[000052] -----+------- arg0 in r0 | | +--* LCL_VAR ref V09 tmp1
[000053] -----+------- arg1 in r1 | | +--* CNS_INT(h) int 0x924994 token
[000054] -----+------- arg2 in r2 | | \--* CNS_INT(h) int 0x924B10 token
[000060] -ACXG+------- \--* ASG int
[000059] D----+-N----- \--* LCL_VAR int V10 tmp2
***** BB02, stmt 7
[000064] ------------- * STMT void (IL ???... ???)
[000063] --CXG+------- \--* CALL ind void
[000062] -----+------- calli tgt \--* LCL_VAR int V10 tmp2
[000051] -----+------- this in r0 +--* LCL_VAR ref V09 tmp1
[000046] -----+------- arg1 r2,r3 \--* LCL_VAR long V06 loc0
***** BB02, stmt 8
[000070] ------------- * STMT void (IL 0x021... ???)
[000065] ----G+------- | /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt]
[000069] -A--G+------- \--* ASG ref
[000068] D----+-N----- \--* LCL_VAR ref V11 tmp3
***** BB02, stmt 9
[000081] ------------- * STMT void (IL ???... ???)
[000078] --CXG+------- | /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR
[000072] -----+------- arg0 in r0 | | +--* LCL_VAR ref V11 tmp3
[000073] -----+------- arg1 in r1 | | +--* CNS_INT(h) int 0x924994 token
[000074] -----+------- arg2 in r2 | | \--* CNS_INT(h) int 0x924B74 token
[000080] -ACXG+------- \--* ASG int
[000079] D----+-N----- \--* LCL_VAR int V12 tmp4
***** BB02, stmt 10
[000084] ------------- * STMT void (IL ???... ???)
[000083] --CXG+------- \--* CALL ind void
[000082] -----+------- calli tgt \--* LCL_VAR int V12 tmp4
[000071] -----+------- this in r0 +--* LCL_VAR ref V11 tmp3
[000066] -----+------- arg1 in r1 \--* LCL_VAR int V02 arg2
------------ BB03 [02C..030) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 11
[000011] ------------- * STMT void (IL 0x02C...0x02E)
[000010] -----+------- \--* JTRUE void
[000008] -----+------- | /--* CNS_INT int 0
[000009] J----+-N--S-- \--* NE int
[000120] -----+----S-- \--* CAST int <- bool <- int
[000007] -----+------- \--* LCL_VAR int V04 arg4
------------ BB04 [030..034), preds={BB03} succs={BB05}
***** BB04, stmt 12
[000028] ------------- * STMT void (IL 0x030...0x033)
[000026] -----+------- | /--* NOP void
[000027] ---XG+------- \--* COMMA void
[000025] a--XG+------- | /--* IND ushort
[000128] -----+------- | | | /--* CNS_INT int 8 Fseq[#FirstElem]
[000129] -----+------- | | \--* ADD byref
[000121] -----+------- | | \--* LCL_VAR ref V00 arg0
[000131] ---XG-------- \--* COMMA void
[000124] ---X-+------- \--* ARR_BOUNDS_CHECK_Rng void
[000024] -----+------- +--* CNS_INT int 0
[000123] ---X-+------- \--* ARR_LENGTH int
[000023] -----+------- \--* LCL_VAR ref V00 arg0
------------ BB05 [034..03B) (return), preds={BB03,BB04} succs={}
***** BB05, stmt 13
[000018] ------------- * STMT void (IL 0x034...0x038)
[000015] -----+------- | /--* LCL_VAR int V03 arg3
[000017] -A-XG+------- \--* ASG byte
[000016] a--XG+-N----- | /--* IND byte
[000137] -----+------- | | | /--* CNS_INT int 8 Fseq[#FirstElem]
[000138] -----+------- | | \--* ADD byref
[000132] -----+------- | | \--* LCL_VAR ref V05 arg5
[000139] ---XG+-N----- \--* COMMA byte
[000135] ---X-+------- \--* ARR_BOUNDS_CHECK_Rng void
[000014] -----+------- +--* CNS_INT int 0
[000134] ---X-+------- \--* ARR_LENGTH int
[000013] -----+------- \--* LCL_VAR ref V05 arg5
***** BB05, stmt 14
[000021] ------------- * STMT void (IL 0x039...0x03A)
[000020] -----+------- \--* RETURN int
[000141] -----+------- \--* CAST int <- ushort <- int
[000019] -----+------- \--* LCL_VAR int V01 arg1
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In optOptimizeLoops()
After optSetBlockWeights:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..004)-> BB03 ( cond ) i label target
BB02 [0001] 1 BB01 0.50 [004..02C) i gcsafe
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target
BB04 [0003] 1 BB03 0.50 [030..034) i idxlen
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen
--------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In optCloneLoops()
*************** In lvaMarkLocalVars()
*** marking local variables in block BB01 (weight=1 )
[000005] ------------- * STMT void (IL 0x000...0x002)
[000004] -----+------- \--* JTRUE void
[000002] -----+------- | /--* CNS_INT int 0
[000003] J----+-N--S-- \--* EQ int
[000085] -----+----S-- \--* CAST int <- bool <- int
[000001] -----+------- \--* LCL_VAR int V04 arg4
New refCnts for V04: refCnt = 1, refCntWtd = 1
*** marking local variables in block BB02 (weight=0.50)
[000034] ------------- * STMT void (IL 0x004...0x00A)
[000031] ----G+------- | /--* CAST long <- int
[000030] ----G+------- | | \--* CLS_VAR int Hnd=0x9247f8 Fseq[s_3]
[000033] -A--G+------- \--* ASG long
[000032] D----+-N----- \--* LCL_VAR long V06 loc0
New refCnts for V06: refCnt = 1, refCntWtd = 0.50
[000040] ------------- * STMT void (IL 0x00B...0x012)
[000037] a--XG+------- | /--* IND ushort
[000096] -----+------- | | | /--* CNS_INT int 8 Fseq[#FirstElem]
[000097] -----+------- | | \--* ADD byref
[000089] -----+------- | | \--* LCL_VAR ref V13 tmp5
[000098] ---XG+------- | /--* COMMA ushort
[000092] ---X-+------- | | \--* ARR_BOUNDS_CHECK_Rng void
[000036] -----+------- | | +--* CNS_INT int 0
[000091] ---X-+------- | | \--* ARR_LENGTH int
[000088] -----+------- | | \--* LCL_VAR ref V13 tmp5
[000099] -A-XG+------- | /--* COMMA ushort
[000035] ----G+------- | | | /--* CLS_VAR ref Hnd=0x924808 Fseq[s_8]
[000087] -A--G+------- | | \--* ASG ref
[000086] D----+-N----- | | \--* LCL_VAR ref V13 tmp5
[000039] -A-XG+------- \--* ASG ushort
[000038] D----+-N----- \--* LCL_VAR ushort V02 arg2
New refCnts for V02: refCnt = 1, refCntWtd = 0.50
New refCnts for V13: refCnt = 1, refCntWtd = 1
New refCnts for V13: refCnt = 2, refCntWtd = 2
New refCnts for V13: refCnt = 3, refCntWtd = 3
[000044] ------------- * STMT void (IL 0x014...0x015)
[000041] -----+------- | /--* LCL_VAR ushort V02 arg2
[000043] -A---+------- \--* ASG int
[000042] D----+-N----- \--* LCL_VAR int V07 loc1
New refCnts for V07: refCnt = 1, refCntWtd = 0.50
New refCnts for V02: refCnt = 2, refCntWtd = 1
[000050] ------------- * STMT void (IL 0x016...0x027)
[000045] ----G+------- | /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt]
[000049] -A--G+------- \--* ASG ref
[000048] D----+-N----- \--* LCL_VAR ref V09 tmp1
New refCnts for V09: refCnt = 1, refCntWtd = 1
[000061] ------------- * STMT void (IL ???... ???)
[000058] --CXG+------- | /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR
[000052] -----+------- arg0 in r0 | | +--* LCL_VAR ref V09 tmp1
[000053] -----+------- arg1 in r1 | | +--* CNS_INT(h) int 0x924994 token
[000054] -----+------- arg2 in r2 | | \--* CNS_INT(h) int 0x924B10 token
[000060] -ACXG+------- \--* ASG int
[000059] D----+-N----- \--* LCL_VAR int V10 tmp2
New refCnts for V10: refCnt = 1, refCntWtd = 1
New refCnts for V09: refCnt = 2, refCntWtd = 2
[000064] ------------- * STMT void (IL ???... ???)
[000063] --CXG+------- \--* CALL ind void
[000062] -----+------- calli tgt \--* LCL_VAR int V10 tmp2
[000051] -----+------- this in r0 +--* LCL_VAR ref V09 tmp1
[000046] -----+------- arg1 r2,r3 \--* LCL_VAR long V06 loc0
New refCnts for V09: refCnt = 3, refCntWtd = 3
New refCnts for V06: refCnt = 2, refCntWtd = 1
New refCnts for V10: refCnt = 2, refCntWtd = 2
[000070] ------------- * STMT void (IL 0x021... ???)
[000065] ----G+------- | /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt]
[000069] -A--G+------- \--* ASG ref
[000068] D----+-N----- \--* LCL_VAR ref V11 tmp3
New refCnts for V11: refCnt = 1, refCntWtd = 1
[000081] ------------- * STMT void (IL ???... ???)
[000078] --CXG+------- | /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR
[000072] -----+------- arg0 in r0 | | +--* LCL_VAR ref V11 tmp3
[000073] -----+------- arg1 in r1 | | +--* CNS_INT(h) int 0x924994 token
[000074] -----+------- arg2 in r2 | | \--* CNS_INT(h) int 0x924B74 token
[000080] -ACXG+------- \--* ASG int
[000079] D----+-N----- \--* LCL_VAR int V12 tmp4
New refCnts for V12: refCnt = 1, refCntWtd = 1
New refCnts for V11: refCnt = 2, refCntWtd = 2
[000084] ------------- * STMT void (IL ???... ???)
[000083] --CXG+------- \--* CALL ind void
[000082] -----+------- calli tgt \--* LCL_VAR int V12 tmp4
[000071] -----+------- this in r0 +--* LCL_VAR ref V11 tmp3
[000066] -----+------- arg1 in r1 \--* LCL_VAR int V02 arg2
New refCnts for V11: refCnt = 3, refCntWtd = 3
New refCnts for V02: refCnt = 3, refCntWtd = 1.50
New refCnts for V12: refCnt = 2, refCntWtd = 2
*** marking local variables in block BB03 (weight=1 )
[000011] ------------- * STMT void (IL 0x02C...0x02E)
[000010] -----+------- \--* JTRUE void
[000008] -----+------- | /--* CNS_INT int 0
[000009] J----+-N--S-- \--* NE int
[000120] -----+----S-- \--* CAST int <- bool <- int
[000007] -----+------- \--* LCL_VAR int V04 arg4
New refCnts for V04: refCnt = 2, refCntWtd = 2
*** marking local variables in block BB04 (weight=0.50)
[000028] ------------- * STMT void (IL 0x030...0x033)
[000026] -----+------- | /--* NOP void
[000027] ---XG+------- \--* COMMA void
[000025] a--XG+------- | /--* IND ushort
[000128] -----+------- | | | /--* CNS_INT int 8 Fseq[#FirstElem]
[000129] -----+------- | | \--* ADD byref
[000121] -----+------- | | \--* LCL_VAR ref V00 arg0
[000131] ---XG-------- \--* COMMA void
[000124] ---X-+------- \--* ARR_BOUNDS_CHECK_Rng void
[000024] -----+------- +--* CNS_INT int 0
[000123] ---X-+------- \--* ARR_LENGTH int
[000023] -----+------- \--* LCL_VAR ref V00 arg0
New refCnts for V00: refCnt = 1, refCntWtd = 0.50
New refCnts for V00: refCnt = 2, refCntWtd = 1
*** marking local variables in block BB05 (weight=1 )
[000018] ------------- * STMT void (IL 0x034...0x038)
[000015] -----+------- | /--* LCL_VAR int V03 arg3
[000017] -A-XG+------- \--* ASG byte
[000016] a--XG+-N----- | /--* IND byte
[000137] -----+------- | | | /--* CNS_INT int 8 Fseq[#FirstElem]
[000138] -----+------- | | \--* ADD byref
[000132] -----+------- | | \--* LCL_VAR ref V05 arg5
[000139] ---XG+-N----- \--* COMMA byte
[000135] ---X-+------- \--* ARR_BOUNDS_CHECK_Rng void
[000014] -----+------- +--* CNS_INT int 0
[000134] ---X-+------- \--* ARR_LENGTH int
[000013] -----+------- \--* LCL_VAR ref V05 arg5
New refCnts for V05: refCnt = 1, refCntWtd = 1
New refCnts for V05: refCnt = 2, refCntWtd = 2
New refCnts for V03: refCnt = 1, refCntWtd = 1
[000021] ------------- * STMT void (IL 0x039...0x03A)
[000020] -----+------- \--* RETURN int
[000141] -----+------- \--* CAST int <- ushort <- int
[000019] -----+------- \--* LCL_VAR int V01 arg1
New refCnts for V01: refCnt = 1, refCntWtd = 1
New refCnts for V00: refCnt = 3, refCntWtd = 2
New refCnts for V00: refCnt = 4, refCntWtd = 3
New refCnts for V01: refCnt = 2, refCntWtd = 2
New refCnts for V01: refCnt = 3, refCntWtd = 3
New refCnts for V02: refCnt = 4, refCntWtd = 2.50
New refCnts for V02: refCnt = 5, refCntWtd = 3.50
New refCnts for V03: refCnt = 2, refCntWtd = 2
New refCnts for V03: refCnt = 3, refCntWtd = 3
*************** In optAddCopies()
refCnt table for 'M11':
V02 arg2 [ushort]: refCnt = 5, refCntWtd = 3.50 pref [r2]
V00 arg0 [ ref]: refCnt = 4, refCntWtd = 3 pref [r0]
V01 arg1 [ushort]: refCnt = 3, refCntWtd = 3 pref [r1]
V03 arg3 [ ubyte]: refCnt = 3, refCntWtd = 3 pref [r3]
V09 tmp1 [ ref]: refCnt = 3, refCntWtd = 3
V11 tmp3 [ ref]: refCnt = 3, refCntWtd = 3
V13 tmp5 [ ref]: refCnt = 3, refCntWtd = 3
V05 arg5 [ ref]: refCnt = 2, refCntWtd = 2
V04 arg4 [ bool]: refCnt = 2, refCntWtd = 2
V10 tmp2 [ int]: refCnt = 2, refCntWtd = 2
V12 tmp4 [ int]: refCnt = 2, refCntWtd = 2
V06 loc0 [ long]: refCnt = 2, refCntWtd = 1
V07 loc1 [ushort]: refCnt = 1, refCntWtd = 0.50
V08 OutArgs [lclBlk]: refCnt = 1, refCntWtd = 1
*************** In optOptimizeBools()
*************** In fgDebugCheckBBlist
*************** 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..004)-> BB03 ( cond ) i label target
BB02 [0001] 1 BB01 0.50 [004..02C) i gcsafe
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target
BB04 [0003] 1 BB03 0.50 [030..034) i idxlen
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..004) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
( 8, 7) [000005] ------------- * STMT void (IL 0x000...0x002)
N005 ( 8, 7) [000004] ------------- \--* JTRUE void
N003 ( 1, 1) [000002] ------------- | /--* CNS_INT int 0
N004 ( 6, 5) [000003] J------N--S-- \--* EQ int
N002 ( 4, 3) [000085] ----------S-- \--* CAST int <- bool <- int
N001 ( 3, 2) [000001] ------------- \--* LCL_VAR int V04 arg4
------------ BB02 [004..02C), preds={BB01} succs={BB03}
***** BB02, stmt 2
( 14, 17) [000034] ------------- * STMT void (IL 0x004...0x00A)
N002 ( 7, 11) [000031] ----G-------- | /--* CAST long <- int
N001 ( 6, 10) [000030] ----G-------- | | \--* CLS_VAR int Hnd=0x9247f8 Fseq[s_3]
N004 ( 14, 17) [000033] -A--G---R---- \--* ASG long
N003 ( 3, 2) [000032] D------N----- \--* LCL_VAR long V06 loc0
***** BB02, stmt 3
( 19, 24) [000040] ------------- * STMT void (IL 0x00B...0x012)
N011 ( 5, 3) [000037] a--XG-------- | /--* IND ushort
N009 ( 1, 1) [000096] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem]
N010 ( 3, 3) [000097] -------N----- | | \--* ADD byref
N008 ( 1, 1) [000089] ------------- | | \--* LCL_VAR ref V13 tmp5
N012 ( 13, 14) [000098] ---XG-------- | /--* COMMA ushort
N007 ( 8, 11) [000092] ---X--------- | | \--* ARR_BOUNDS_CHECK_Rng void
N004 ( 1, 1) [000036] ------------- | | +--* CNS_INT int 0
N006 ( 3, 3) [000091] ---X--------- | | \--* ARR_LENGTH int
N005 ( 1, 1) [000088] ------------- | | \--* LCL_VAR ref V13 tmp5
N013 ( 19, 24) [000099] -A-XG-------- | /--* COMMA ushort
N001 ( 6, 10) [000035] ----G-------- | | | /--* CLS_VAR ref Hnd=0x924808 Fseq[s_8]
N003 ( 6, 10) [000087] -A--G---R---- | | \--* ASG ref
N002 ( 1, 1) [000086] D------N----- | | \--* LCL_VAR ref V13 tmp5
N015 ( 19, 24) [000039] -A-XG---R---- \--* ASG ushort
N014 ( 2, 2) [000038] D------N----- \--* LCL_VAR ushort V02 arg2
***** BB02, stmt 4
( 6, 5) [000044] ------------- * STMT void (IL 0x014...0x015)
N001 ( 2, 2) [000041] ------------- | /--* LCL_VAR ushort V02 arg2
N003 ( 6, 5) [000043] -A------R---- \--* ASG int
N002 ( 3, 2) [000042] D------N----- \--* LCL_VAR int V07 loc1
***** BB02, stmt 5
( 6, 10) [000050] ------------- * STMT void (IL 0x016...0x027)
N001 ( 6, 10) [000045] ----G-------- | /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt]
N003 ( 6, 10) [000049] -A--G---R---- \--* ASG ref
N002 ( 1, 1) [000048] D------N----- \--* LCL_VAR ref V09 tmp1
***** BB02, stmt 6
( 27, 31) [000061] ------------- * STMT void (IL ???... ???)
N013 ( 23, 28) [000058] --CXG-------- | /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR
N007 ( 1, 1) [000052] ------------- arg0 in r0 | | +--* LCL_VAR ref V09 tmp1
N008 ( 3, 7) [000053] ------------- arg1 in r1 | | +--* CNS_INT(h) int 0x924994 token
N009 ( 3, 7) [000054] ------------- arg2 in r2 | | \--* CNS_INT(h) int 0x924B10 token
N015 ( 27, 31) [000060] -ACXG---R---- \--* ASG int
N014 ( 3, 2) [000059] D------N----- \--* LCL_VAR int V10 tmp2
***** BB02, stmt 7
( 24, 10) [000064] ------------- * STMT void (IL ???... ???)
N009 ( 24, 10) [000063] --CXG-------- \--* CALL ind void
N008 ( 3, 2) [000062] ------------- calli tgt \--* LCL_VAR int V10 tmp2
N004 ( 1, 1) [000051] ------------- this in r0 +--* LCL_VAR ref V09 tmp1
N005 ( 3, 2) [000046] ------------- arg1 r2,r3 \--* LCL_VAR long V06 loc0
***** BB02, stmt 8
( 6, 10) [000070] ------------- * STMT void (IL 0x021... ???)
N001 ( 6, 10) [000065] ----G-------- | /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt]
N003 ( 6, 10) [000069] -A--G---R---- \--* ASG ref
N002 ( 1, 1) [000068] D------N----- \--* LCL_VAR ref V11 tmp3
***** BB02, stmt 9
( 27, 31) [000081] ------------- * STMT void (IL ???... ???)
N013 ( 23, 28) [000078] --CXG-------- | /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR
N007 ( 1, 1) [000072] ------------- arg0 in r0 | | +--* LCL_VAR ref V11 tmp3
N008 ( 3, 7) [000073] ------------- arg1 in r1 | | +--* CNS_INT(h) int 0x924994 token
N009 ( 3, 7) [000074] ------------- arg2 in r2 | | \--* CNS_INT(h) int 0x924B74 token
N015 ( 27, 31) [000080] -ACXG---R---- \--* ASG int
N014 ( 3, 2) [000079] D------N----- \--* LCL_VAR int V12 tmp4
***** BB02, stmt 10
( 23, 10) [000084] ------------- * STMT void (IL ???... ???)
N009 ( 23, 10) [000083] --CXG-------- \--* CALL ind void
N008 ( 3, 2) [000082] ------------- calli tgt \--* LCL_VAR int V12 tmp4
N004 ( 1, 1) [000071] ------------- this in r0 +--* LCL_VAR ref V11 tmp3
N005 ( 2, 2) [000066] ------------- arg1 in r1 \--* LCL_VAR int V02 arg2
------------ BB03 [02C..030) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 11
( 8, 7) [000011] ------------- * STMT void (IL 0x02C...0x02E)
N005 ( 8, 7) [000010] ------------- \--* JTRUE void
N003 ( 1, 1) [000008] ------------- | /--* CNS_INT int 0
N004 ( 6, 5) [000009] J------N--S-- \--* NE int
N002 ( 4, 3) [000120] ----------S-- \--* CAST int <- bool <- int
N001 ( 3, 2) [000007] ------------- \--* LCL_VAR int V04 arg4
------------ BB04 [030..034), preds={BB03} succs={BB05}
***** BB04, stmt 12
( 13, 14) [000028] ------------- * STMT void (IL 0x030...0x033)
N010 ( 0, 0) [000026] ------------- | /--* NOP void
N011 ( 13, 14) [000027] ---XG-------- \--* COMMA void
N008 ( 5, 3) [000025] a--XG-------- | /--* IND ushort
N006 ( 1, 1) [000128] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem]
N007 ( 3, 3) [000129] -------N----- | | \--* ADD byref
N005 ( 1, 1) [000121] ------------- | | \--* LCL_VAR ref V00 arg0
N009 ( 13, 14) [000131] ---XG-------- \--* COMMA void
N004 ( 8, 11) [000124] ---X--------- \--* ARR_BOUNDS_CHECK_Rng void
N001 ( 1, 1) [000024] ------------- +--* CNS_INT int 0
N003 ( 3, 3) [000123] ---X--------- \--* ARR_LENGTH int
N002 ( 1, 1) [000023] ------------- \--* LCL_VAR ref V00 arg0
------------ BB05 [034..03B) (return), preds={BB03,BB04} succs={}
***** BB05, stmt 13
( 20, 19) [000018] ------------- * STMT void (IL 0x034...0x038)
N010 ( 2, 2) [000015] ------------- | /--* LCL_VAR int V03 arg3
N011 ( 20, 19) [000017] -A-XG-------- \--* ASG byte
N008 ( 7, 4) [000016] a--XG--N----- | /--* IND byte
N006 ( 1, 1) [000137] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem]
N007 ( 5, 4) [000138] -------N----- | | \--* ADD byref
N005 ( 3, 2) [000132] ------------- | | \--* LCL_VAR ref V05 arg5
N009 ( 17, 16) [000139] ---XG--N----- \--* COMMA byte
N004 ( 10, 12) [000135] ---X--------- \--* ARR_BOUNDS_CHECK_Rng void
N001 ( 1, 1) [000014] ------------- +--* CNS_INT int 0
N003 ( 5, 4) [000134] ---X--------- \--* ARR_LENGTH int
N002 ( 3, 2) [000013] ------------- \--* LCL_VAR ref V05 arg5
***** BB05, stmt 14
( 4, 4) [000021] ------------- * STMT void (IL 0x039...0x03A)
N003 ( 4, 4) [000020] ------------- \--* RETURN int
N002 ( 3, 3) [000141] ------------- \--* CAST int <- ushort <- int
N001 ( 2, 2) [000019] ------------- \--* LCL_VAR int V01 arg1
-------------------------------------------------------------------------------------------------------------------
*************** In SsaBuilder::Build()
[SsaBuilder] Max block count is 6.
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..004)-> BB03 ( cond ) i label target
BB02 [0001] 1 BB01 0.50 [004..02C) i gcsafe
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target
BB04 [0003] 1 BB03 0.50 [030..034) i idxlen
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
[SsaBuilder] Topologically sorted the graph.
[SsaBuilder::ComputeImmediateDom]
*************** In SsaBuilder::ComputeDominators(BasicBlock** postOrder, int count, ...)
*************** In SsaBuilder::InsertPhiFunctions()
*************** In fgLocalVarLiveness()
*************** In fgPerBlockLocalVarLiveness()
BB01 USE(1)={V04}
DEF(0)={ }
BB02 USE(0)={ } + ByrefExposed + GcHeap
DEF(8)={V02 V09 V11 V13 V10 V12 V06 V07} + ByrefExposed* + GcHeap*
BB03 USE(1)={V04}
DEF(0)={ }
BB04 USE(1)={V00} + ByrefExposed + GcHeap
DEF(0)={ }
BB05 USE(3)={V01 V03 V05} + ByrefExposed + GcHeap
DEF(0)={ } + ByrefExposed + GcHeap
** Memory liveness computed, GcHeap states and ByrefExposed states match
*************** In fgInterBlockLocalVarLiveness()
BB liveness after fgLiveVarAnalysis():
BB01 IN (5)={V00 V01 V03 V05 V04} + ByrefExposed + GcHeap
OUT(5)={V00 V01 V03 V05 V04} + ByrefExposed + GcHeap
BB02 IN (5)={V00 V01 V03 V05 V04} + ByrefExposed + GcHeap
OUT(5)={V00 V01 V03 V05 V04} + ByrefExposed + GcHeap
BB03 IN (5)={V00 V01 V03 V05 V04} + ByrefExposed + GcHeap
OUT(4)={V00 V01 V03 V05 } + ByrefExposed + GcHeap
BB04 IN (4)={V00 V01 V03 V05} + ByrefExposed + GcHeap
OUT(3)={ V01 V03 V05} + ByrefExposed + GcHeap
BB05 IN (3)={V01 V03 V05} + ByrefExposed + GcHeap
OUT(0)={ }
top level assign
removing stmt with no side effects
Removing statement [000044] in BB02 as useless:
( 6, 5) [000044] ------------- * STMT void (IL 0x014...0x015)
N001 ( 2, 2) [000041] ------------- | /--* LCL_VAR ushort V02 arg2
N003 ( 6, 5) [000043] -A------R---- \--* ASG int
N002 ( 3, 2) [000042] D------N----- \--* LCL_VAR int V07 loc1
New refCnts for V07: refCnt = 0, refCntWtd = 0
New refCnts for V02: refCnt = 4, refCntWtd = 3
In fgLocalVarLiveness, setting lvaSortAgain back to false (set during dead-code removal)
Inserting phi functions:
Inserting phi definition for ByrefExposed at start of BB03.
*************** In SsaBuilder::RenameVariables()
After fgSsaBuild:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..004)-> BB03 ( cond ) i label target
BB02 [0001] 1 BB01 0.50 [004..02C) i gcsafe
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target
BB04 [0003] 1 BB03 0.50 [030..034) i idxlen
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..004) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
( 8, 7) [000005] ------------- * STMT void (IL 0x000...0x002)
N005 ( 8, 7) [000004] ------------- \--* JTRUE void
N003 ( 1, 1) [000002] ------------- | /--* CNS_INT int 0
N004 ( 6, 5) [000003] J------N--S-- \--* EQ int
N002 ( 4, 3) [000085] ----------S-- \--* CAST int <- bool <- int
N001 ( 3, 2) [000001] ------------- \--* LCL_VAR int V04 arg4 u:2
------------ BB02 [004..02C), preds={BB01} succs={BB03}
***** BB02, stmt 2
( 14, 17) [000034] ------------- * STMT void (IL 0x004...0x00A)
N002 ( 7, 11) [000031] ----G-------- | /--* CAST long <- int
N001 ( 6, 10) [000030] ----G-------- | | \--* CLS_VAR int Hnd=0x9247f8 Fseq[s_3]
N004 ( 14, 17) [000033] -A--G---R---- \--* ASG long
N003 ( 3, 2) [000032] D------N----- \--* LCL_VAR long V06 loc0 d:3
***** BB02, stmt 3
( 19, 24) [000040] ------------- * STMT void (IL 0x00B...0x012)
N011 ( 5, 3) [000037] a--XG-------- | /--* IND ushort
N009 ( 1, 1) [000096] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem]
N010 ( 3, 3) [000097] -------N----- | | \--* ADD byref
N008 ( 1, 1) [000089] ------------- | | \--* LCL_VAR ref V13 tmp5 u:3 (last use)
N012 ( 13, 14) [000098] ---XG-------- | /--* COMMA ushort
N007 ( 8, 11) [000092] ---X--------- | | \--* ARR_BOUNDS_CHECK_Rng void
N004 ( 1, 1) [000036] ------------- | | +--* CNS_INT int 0
N006 ( 3, 3) [000091] ---X--------- | | \--* ARR_LENGTH int
N005 ( 1, 1) [000088] ------------- | | \--* LCL_VAR ref V13 tmp5 u:3
N013 ( 19, 24) [000099] -A-XG-------- | /--* COMMA ushort
N001 ( 6, 10) [000035] ----G-------- | | | /--* CLS_VAR ref Hnd=0x924808 Fseq[s_8]
N003 ( 6, 10) [000087] -A--G---R---- | | \--* ASG ref
N002 ( 1, 1) [000086] D------N----- | | \--* LCL_VAR ref V13 tmp5 d:3
N015 ( 19, 24) [000039] -A-XG---R---- \--* ASG ushort
N014 ( 2, 2) [000038] D------N----- \--* LCL_VAR ushort V02 arg2 d:3
***** BB02, stmt 4
( 6, 10) [000050] ------------- * STMT void (IL 0x016...0x027)
N001 ( 6, 10) [000045] ----G-------- | /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt]
N003 ( 6, 10) [000049] -A--G---R---- \--* ASG ref
N002 ( 1, 1) [000048] D------N----- \--* LCL_VAR ref V09 tmp1 d:3
***** BB02, stmt 5
( 27, 31) [000061] ------------- * STMT void (IL ???... ???)
N013 ( 23, 28) [000058] --CXG-------- | /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR
N007 ( 1, 1) [000052] ------------- arg0 in r0 | | +--* LCL_VAR ref V09 tmp1 u:3
N008 ( 3, 7) [000053] ------------- arg1 in r1 | | +--* CNS_INT(h) int 0x924994 token
N009 ( 3, 7) [000054] ------------- arg2 in r2 | | \--* CNS_INT(h) int 0x924B10 token
N015 ( 27, 31) [000060] -ACXG---R---- \--* ASG int
N014 ( 3, 2) [000059] D------N----- \--* LCL_VAR int V10 tmp2 d:3
***** BB02, stmt 6
( 24, 10) [000064] ------------- * STMT void (IL ???... ???)
N009 ( 24, 10) [000063] --CXG-------- \--* CALL ind void
N008 ( 3, 2) [000062] ------------- calli tgt \--* LCL_VAR int V10 tmp2 u:3 (last use)
N004 ( 1, 1) [000051] ------------- this in r0 +--* LCL_VAR ref V09 tmp1 u:3 (last use)
N005 ( 3, 2) [000046] ------------- arg1 r2,r3 \--* LCL_VAR long V06 loc0 u:3 (last use)
***** BB02, stmt 7
( 6, 10) [000070] ------------- * STMT void (IL 0x021... ???)
N001 ( 6, 10) [000065] ----G-------- | /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt]
N003 ( 6, 10) [000069] -A--G---R---- \--* ASG ref
N002 ( 1, 1) [000068] D------N----- \--* LCL_VAR ref V11 tmp3 d:3
***** BB02, stmt 8
( 27, 31) [000081] ------------- * STMT void (IL ???... ???)
N013 ( 23, 28) [000078] --CXG-------- | /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR
N007 ( 1, 1) [000072] ------------- arg0 in r0 | | +--* LCL_VAR ref V11 tmp3 u:3
N008 ( 3, 7) [000073] ------------- arg1 in r1 | | +--* CNS_INT(h) int 0x924994 token
N009 ( 3, 7) [000074] ------------- arg2 in r2 | | \--* CNS_INT(h) int 0x924B74 token
N015 ( 27, 31) [000080] -ACXG---R---- \--* ASG int
N014 ( 3, 2) [000079] D------N----- \--* LCL_VAR int V12 tmp4 d:3
***** BB02, stmt 9
( 23, 10) [000084] ------------- * STMT void (IL ???... ???)
N009 ( 23, 10) [000083] --CXG-------- \--* CALL ind void
N008 ( 3, 2) [000082] ------------- calli tgt \--* LCL_VAR int V12 tmp4 u:3 (last use)
N004 ( 1, 1) [000071] ------------- this in r0 +--* LCL_VAR ref V11 tmp3 u:3 (last use)
N005 ( 2, 2) [000066] ------------- arg1 in r1 \--* LCL_VAR int V02 arg2 u:3 (last use)
------------ BB03 [02C..030) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 10
( 8, 7) [000011] ------------- * STMT void (IL 0x02C...0x02E)
N005 ( 8, 7) [000010] ------------- \--* JTRUE void
N003 ( 1, 1) [000008] ------------- | /--* CNS_INT int 0
N004 ( 6, 5) [000009] J------N--S-- \--* NE int
N002 ( 4, 3) [000120] ----------S-- \--* CAST int <- bool <- int
N001 ( 3, 2) [000007] ------------- \--* LCL_VAR int V04 arg4 u:2 (last use)
------------ BB04 [030..034), preds={BB03} succs={BB05}
***** BB04, stmt 11
( 13, 14) [000028] ------------- * STMT void (IL 0x030...0x033)
N010 ( 0, 0) [000026] ------------- | /--* NOP void
N011 ( 13, 14) [000027] ---XG-------- \--* COMMA void
N008 ( 5, 3) [000025] a--XG-------- | /--* IND ushort
N006 ( 1, 1) [000128] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem]
N007 ( 3, 3) [000129] -------N----- | | \--* ADD byref
N005 ( 1, 1) [000121] ------------- | | \--* LCL_VAR ref V00 arg0 u:2 (last use)
N009 ( 13, 14) [000131] ---XG-------- \--* COMMA void
N004 ( 8, 11) [000124] ---X--------- \--* ARR_BOUNDS_CHECK_Rng void
N001 ( 1, 1) [000024] ------------- +--* CNS_INT int 0
N003 ( 3, 3) [000123] ---X--------- \--* ARR_LENGTH int
N002 ( 1, 1) [000023] ------------- \--* LCL_VAR ref V00 arg0 u:2
------------ BB05 [034..03B) (return), preds={BB03,BB04} succs={}
***** BB05, stmt 12
( 20, 19) [000018] ------------- * STMT void (IL 0x034...0x038)
N010 ( 2, 2) [000015] ------------- | /--* LCL_VAR int V03 arg3 u:2 (last use)
N011 ( 20, 19) [000017] -A-XG-------- \--* ASG byte
N008 ( 7, 4) [000016] a--XG--N----- | /--* IND byte
N006 ( 1, 1) [000137] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem]
N007 ( 5, 4) [000138] -------N----- | | \--* ADD byref
N005 ( 3, 2) [000132] ------------- | | \--* LCL_VAR ref V05 arg5 u:2 (last use)
N009 ( 17, 16) [000139] ---XG--N----- \--* COMMA byte
N004 ( 10, 12) [000135] ---X--------- \--* ARR_BOUNDS_CHECK_Rng void
N001 ( 1, 1) [000014] ------------- +--* CNS_INT int 0
N003 ( 5, 4) [000134] ---X--------- \--* ARR_LENGTH int
N002 ( 3, 2) [000013] ------------- \--* LCL_VAR ref V05 arg5 u:2
***** BB05, stmt 13
( 4, 4) [000021] ------------- * STMT void (IL 0x039...0x03A)
N003 ( 4, 4) [000020] ------------- \--* RETURN int
N002 ( 3, 3) [000141] ------------- \--* CAST int <- ushort <- int
N001 ( 2, 2) [000019] ------------- \--* LCL_VAR int V01 arg1 u:2 (last use)
-------------------------------------------------------------------------------------------------------------------
*************** In optEarlyProp()
*************** In fgValueNumber()
Memory Initial Value in BB01 is: $82
The SSA definition for ByrefExposed (#2) at start of BB01 is $82 {InitVal($46)}
The SSA definition for GcHeap (#2) at start of BB01 is $82 {InitVal($46)}
***** BB01, stmt 1 (before)
N005 ( 8, 7) [000004] ------------- * JTRUE void
N003 ( 1, 1) [000002] ------------- | /--* CNS_INT int 0
N004 ( 6, 5) [000003] J------N--S-- \--* EQ int
N002 ( 4, 3) [000085] ----------S-- \--* CAST int <- bool <- int
N001 ( 3, 2) [000001] ------------- \--* LCL_VAR int V04 arg4 u:2
N001 [000001] LCL_VAR V04 arg4 u:2 => $140 {InitVal($44)}
VNForCastOper(bool) is $44
N002 [000085] CAST => $200 {Cast($140, $44)}
N003 [000002] CNS_INT 0 => $40 {IntCns 0}
N004 [000003] EQ => $201 {EQ($200, $40)}
***** BB01, stmt 1 (after)
N005 ( 8, 7) [000004] ------------- * JTRUE void
N003 ( 1, 1) [000002] ------------- | /--* CNS_INT int 0 $40
N004 ( 6, 5) [000003] J------N--S-- \--* EQ int $201
N002 ( 4, 3) [000085] ----------S-- \--* CAST int <- bool <- int $200
N001 ( 3, 2) [000001] ------------- \--* LCL_VAR int V04 arg4 u:2 $140
finish(BB01).
Succ(BB02).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB03).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
Was necessary.
The SSA definition for ByrefExposed (#2) at start of BB02 is $82 {InitVal($46)}
The SSA definition for GcHeap (#2) at start of BB02 is $82 {InitVal($46)}
***** BB02, stmt 2 (before)
N002 ( 7, 11) [000031] ----G-------- /--* CAST long <- int
N001 ( 6, 10) [000030] ----G-------- | \--* CLS_VAR int Hnd=0x9247f8 Fseq[s_3]
N004 ( 14, 17) [000033] -A--G---R---- * ASG long
N003 ( 3, 2) [000032] D------N----- \--* LCL_VAR long V06 loc0 d:3
VNApplySelectors:
VNForHandle(Fseq[s_3]) is $240, fieldType is int
VNForMapSelect($82, $240):int returns $202 {$82[$240]}
N001 [000030] CLS_VAR Hnd=0x9247f8 Fseq[s_3] => <l:$202 {$82[$240]}, c:$280 {280}>
VNForCastOper(long) is $47
N002 [000031] CAST => <l:$2c1 {Cast($202, $47)}, c:$2c0 {Cast($280, $47)}>
N003 [000032] LCL_VAR V06 loc0 d:3 => <l:$2c1 {Cast($202, $47)}, c:$2c0 {Cast($280, $47)}>
N004 [000033] ASG => <l:$2c1 {Cast($202, $47)}, c:$2c0 {Cast($280, $47)}>
***** BB02, stmt 2 (after)
N002 ( 7, 11) [000031] ----G-------- /--* CAST long <- int <l:$2c1, c:$2c0>
N001 ( 6, 10) [000030] ----G-------- | \--* CLS_VAR int Hnd=0x9247f8 Fseq[s_3] <l:$202, c:$280>
N004 ( 14, 17) [000033] -A--G---R---- * ASG long <l:$2c1, c:$2c0>
N003 ( 3, 2) [000032] D------N----- \--* LCL_VAR long V06 loc0 d:3 <l:$2c1, c:$2c0>
---------
***** BB02, stmt 3 (before)
N011 ( 5, 3) [000037] a--XG-------- /--* IND ushort
N009 ( 1, 1) [000096] ------------- | | /--* CNS_INT int 8 Fseq[#FirstElem]
N010 ( 3, 3) [000097] -------N----- | \--* ADD byref
N008 ( 1, 1) [000089] ------------- | \--* LCL_VAR ref V13 tmp5 u:3 (last use)
N012 ( 13, 14) [000098] ---XG-------- /--* COMMA ushort
N007 ( 8, 11) [000092] ---X--------- | \--* ARR_BOUNDS_CHECK_Rng void
N004 ( 1, 1) [000036] ------------- | +--* CNS_INT int 0
N006 ( 3, 3) [000091] ---X--------- | \--* ARR_LENGTH int
N005 ( 1, 1) [000088] ------------- | \--* LCL_VAR ref V13 tmp5 u:3
N013 ( 19, 24) [000099] -A-XG-------- /--* COMMA ushort
N001 ( 6, 10) [000035] ----G-------- | | /--* CLS_VAR ref Hnd=0x924808 Fseq[s_8]
N003 ( 6, 10) [000087] -A--G---R---- | \--* ASG ref
N002 ( 1, 1) [000086] D------N----- | \--* LCL_VAR ref V13 tmp5 d:3
N015 ( 19, 24) [000039] -A-XG---R---- * ASG ushort
N014 ( 2, 2) [000038] D------N----- \--* LCL_VAR ushort V02 arg2 d:3
VNApplySelectors:
VNForHandle(Fseq[s_8]) is $241, fieldType is ref
VNForMapSelect($82, $241):ref returns $340 {$82[$241]}
N001 [000035] CLS_VAR Hnd=0x924808 Fseq[s_8] => <l:$340 {$82[$241]}, c:$380 {380}>
N002 [000086] LCL_VAR V13 tmp5 d:3 => <l:$340 {$82[$241]}, c:$380 {380}>
N003 [000087] ASG => <l:$340 {$82[$241]}, c:$380 {380}>
N004 [000036] CNS_INT 0 => $40 {IntCns 0}
N005 [000088] LCL_VAR V13 tmp5 u:3 => <l:$340 {$82[$241]}, c:$380 {380}>
N006 [000091] ARR_LENGTH => <l:$3c1 {ARR_LENGTH($340)}, c:$3c0 {ARR_LENGTH($380)}>
$343 = singleton exc set {IndexOutOfRangeExc($40, $3c0)}
$344 = singleton exc set {IndexOutOfRangeExc($40, $3c1)}
N007 [000092] ARR_BOUNDS_CHECK_Rng => <l:$346 {ValWithExc($3, $344)}, c:$345 {ValWithExc($3, $343)}>
N008 [000089] LCL_VAR V13 tmp5 u:3 (last use) => <l:$340 {$82[$241]}, c:$380 {380}>
N009 [000096] CNS_INT 8 Fseq[#FirstElem] => $48 {IntCns 8}
N010 [000097] ADD => <l:$401 {ADD($48, $340)}, c:$400 {ADD($48, $380)}>
Relabeled IND_ARR_INDEX address node [000097] with l:$440: {PtrToArrElem($242, $340, $40, $0)}
VNForMapSelect($82, $242):ref returns $347 {$82[$242]}
VNForMapSelect($347, $340):ref returns $348 {$347[$340]}
VNForMapSelect($348, $40):short returns $480 {$348[$40]}
hAtArrType $347 is MapSelect(curGcHeap($82), short[]).
hAtArrTypeAtArr $348 is MapSelect(hAtArrType($347), arr=$340).
wholeElem $480 is MapSelect(hAtArrTypeAtArr($348), ind=$40).
VNForCastOper(ushort) is $49
VNForCast($480, $49) returns $203 {Cast($480, $49)}
selectedElem is $203 after applying selectors.
N011 [000037] IND => <l:$203 {Cast($480, $49)}, c:$4c0 {4c0}>
N012 [000098] COMMA => <l:$204 {ValWithExc($203, $344)}, c:$500 {ValWithExc($4c0, $343)}>
N013 [000099] COMMA => <l:$204 {ValWithExc($203, $344)}, c:$500 {ValWithExc($4c0, $343)}>
N014 [000038] LCL_VAR V02 arg2 d:3 => <l:$203 {Cast($480, $49)}, c:$4c0 {4c0}>
N015 [000039] ASG => <l:$204 {ValWithExc($203, $344)}, c:$500 {ValWithExc($4c0, $343)}>
***** BB02, stmt 3 (after)
N011 ( 5, 3) [000037] a--XG-------- /--* IND ushort <l:$203, c:$4c0>
N009 ( 1, 1) [000096] ------------- | | /--* CNS_INT int 8 Fseq[#FirstElem] $48
N010 ( 3, 3) [000097] -------N----- | \--* ADD byref $440
N008 ( 1, 1) [000089] ------------- | \--* LCL_VAR ref V13 tmp5 u:3 (last use) <l:$340, c:$380>
N012 ( 13, 14) [000098] ---XG-------- /--* COMMA ushort <l:$204, c:$500>
N007 ( 8, 11) [000092] ---X--------- | \--* ARR_BOUNDS_CHECK_Rng void <l:$346, c:$345>
N004 ( 1, 1) [000036] ------------- | +--* CNS_INT int 0 $40
N006 ( 3, 3) [000091] ---X--------- | \--* ARR_LENGTH int <l:$3c1, c:$3c0>
N005 ( 1, 1) [000088] ------------- | \--* LCL_VAR ref V13 tmp5 u:3 <l:$340, c:$380>
N013 ( 19, 24) [000099] -A-XG-------- /--* COMMA ushort <l:$204, c:$500>
N001 ( 6, 10) [000035] ----G-------- | | /--* CLS_VAR ref Hnd=0x924808 Fseq[s_8] <l:$340, c:$380>
N003 ( 6, 10) [000087] -A--G---R---- | \--* ASG ref <l:$340, c:$380>
N002 ( 1, 1) [000086] D------N----- | \--* LCL_VAR ref V13 tmp5 d:3 <l:$340, c:$380>
N015 ( 19, 24) [000039] -A-XG---R---- * ASG ushort <l:$204, c:$500>
N014 ( 2, 2) [000038] D------N----- \--* LCL_VAR ushort V02 arg2 d:3 <l:$203, c:$4c0>
---------
***** BB02, stmt 4 (before)
N001 ( 6, 10) [000045] ----G-------- /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt]
N003 ( 6, 10) [000049] -A--G---R---- * ASG ref
N002 ( 1, 1) [000048] D------N----- \--* LCL_VAR ref V09 tmp1 d:3
VNApplySelectors:
VNForHandle(Fseq[s_rt]) is $243, fieldType is ref
VNForMapSelect($82, $243):ref returns $349 {$82[$243]}
N001 [000045] CLS_VAR Hnd=0x9247d8 Fseq[s_rt] => <l:$349 {$82[$243]}, c:$382 {382}>
N002 [000048] LCL_VAR V09 tmp1 d:3 => <l:$349 {$82[$243]}, c:$382 {382}>
N003 [000049] ASG => <l:$349 {$82[$243]}, c:$382 {382}>
***** BB02, stmt 4 (after)
N001 ( 6, 10) [000045] ----G-------- /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt] <l:$349, c:$382>
N003 ( 6, 10) [000049] -A--G---R---- * ASG ref <l:$349, c:$382>
N002 ( 1, 1) [000048] D------N----- \--* LCL_VAR ref V09 tmp1 d:3 <l:$349, c:$382>
---------
***** BB02, stmt 5 (before)
N013 ( 23, 28) [000058] --CXG-------- /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR
N007 ( 1, 1) [000052] ------------- arg0 in r0 | +--* LCL_VAR ref V09 tmp1 u:3
N008 ( 3, 7) [000053] ------------- arg1 in r1 | +--* CNS_INT(h) int 0x924994 token
N009 ( 3, 7) [000054] ------------- arg2 in r2 | \--* CNS_INT(h) int 0x924B10 token
N015 ( 27, 31) [000060] -ACXG---R---- * ASG int
N014 ( 3, 2) [000059] D------N----- \--* LCL_VAR int V10 tmp2 d:3
N001 [000100] ARGPLACE => $384 {384}
N002 [000102] ARGPLACE => $281 {281}
N003 [000104] ARGPLACE => $282 {282}
N004 [000055] LIST => $540 {LIST($282, $0)}
N005 [000056] LIST => $541 {LIST($281, $540)}
N006 [000057] LIST => $542 {LIST($384, $541)}
N007 [000052] LCL_VAR V09 tmp1 u:3 => <l:$349 {$82[$243]}, c:$382 {382}>
N008 [000053] CNS_INT(h) 0x924994 token => $244 {Hnd const: 0x00924994}
N009 [000054] CNS_INT(h) 0x924B10 token => $245 {Hnd const: 0x00924B10}
N010 [000105] LIST => $543 {LIST($245, $0)}
N011 [000103] LIST => $544 {LIST($244, $543)}
N012 [000101] LIST => <l:$546 {LIST($349, $544)}, c:$545 {LIST($382, $544)}>
VN of ARGPLACE tree [000100] updated to <l:$349 {$82[$243]}, c:$382 {382}>
VN of ARGPLACE tree [000102] updated to $244 {Hnd const: 0x00924994}
VN of ARGPLACE tree [000104] updated to $245 {Hnd const: 0x00924B10}
N004 [000055] LIST => $543 {LIST($245, $0)}
N005 [000056] LIST => $544 {LIST($244, $543)}
N006 [000057] LIST => <l:$546 {LIST($349, $544)}, c:$545 {LIST($382, $544)}>
$34a = singleton exc set {HelperMultipleExc()}
$34a = singleton exc set {HelperMultipleExc()}
fgCurMemoryVN[GcHeap] assigned by HELPER - modifies heap at [000058] to VN: $385.
N013 [000058] CALL help => $205 {ValWithExc($283, $34a)}
N014 [000059] LCL_VAR V10 tmp2 d:3 => $283 {283}
N015 [000060] ASG => $205 {ValWithExc($283, $34a)}
***** BB02, stmt 5 (after)
N013 ( 23, 28) [000058] --CXG-------- /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $205
N007 ( 1, 1) [000052] ------------- arg0 in r0 | +--* LCL_VAR ref V09 tmp1 u:3 <l:$349, c:$382>
N008 ( 3, 7) [000053] ------------- arg1 in r1 | +--* CNS_INT(h) int 0x924994 token $244
N009 ( 3, 7) [000054] ------------- arg2 in r2 | \--* CNS_INT(h) int 0x924B10 token $245
N015 ( 27, 31) [000060] -ACXG---R---- * ASG int $205
N014 ( 3, 2) [000059] D------N----- \--* LCL_VAR int V10 tmp2 d:3 $283
---------
***** BB02, stmt 6 (before)
N009 ( 24, 10) [000063] --CXG-------- * CALL ind void
N008 ( 3, 2) [000062] ------------- calli tgt \--* LCL_VAR int V10 tmp2 u:3 (last use)
N004 ( 1, 1) [000051] ------------- this in r0 +--* LCL_VAR ref V09 tmp1 u:3 (last use)
N005 ( 3, 2) [000046] ------------- arg1 r2,r3 \--* LCL_VAR long V06 loc0 u:3 (last use)
N001 [000106] ARGPLACE => $386 {386}
N002 [000108] ARGPLACE => $301 {301}
N003 [000047] LIST => $547 {LIST($301, $0)}
N004 [000051] LCL_VAR V09 tmp1 u:3 (last use) => <l:$349 {$82[$243]}, c:$382 {382}>
N005 [000046] LCL_VAR V06 loc0 u:3 (last use) => <l:$2c1 {Cast($202, $47)}, c:$2c0 {Cast($280, $47)}>
N006 [000109] LIST => <l:$549 {LIST($2c1, $0)}, c:$548 {LIST($2c0, $0)}>
N007 [000107] LIST => <l:$54b {LIST($349, $549)}, c:$54a {LIST($382, $548)}>
N008 [000062] LCL_VAR V10 tmp2 u:3 (last use) => $283 {283}
VN of ARGPLACE tree [000108] updated to <l:$349 {$82[$243]}, c:$382 {382}>
N003 [000047] LIST => <l:$54d {LIST($349, $0)}, c:$54c {LIST($382, $0)}>
fgCurMemoryVN[GcHeap] assigned by CALL at [000063] to VN: $387.
N009 [000063] CALL ind => $VN.Void
***** BB02, stmt 6 (after)
N009 ( 24, 10) [000063] --CXG-------- * CALL ind void $VN.Void
N008 ( 3, 2) [000062] ------------- calli tgt \--* LCL_VAR int V10 tmp2 u:3 (last use) $283
N004 ( 1, 1) [000051] ------------- this in r0 +--* LCL_VAR ref V09 tmp1 u:3 (last use) <l:$349, c:$382>
N005 ( 3, 2) [000046] ------------- arg1 r2,r3 \--* LCL_VAR long V06 loc0 u:3 (last use) <l:$2c1, c:$2c0>
---------
***** BB02, stmt 7 (before)
N001 ( 6, 10) [000065] ----G-------- /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt]
N003 ( 6, 10) [000069] -A--G---R---- * ASG ref
N002 ( 1, 1) [000068] D------N----- \--* LCL_VAR ref V11 tmp3 d:3
VNApplySelectors:
VNForHandle(Fseq[s_rt]) is $243, fieldType is ref
VNForMapSelect($387, $243):ref returns $34b {$387[$243]}
N001 [000065] CLS_VAR Hnd=0x9247d8 Fseq[s_rt] => <l:$34b {$387[$243]}, c:$388 {388}>
N002 [000068] LCL_VAR V11 tmp3 d:3 => <l:$34b {$387[$243]}, c:$388 {388}>
N003 [000069] ASG => <l:$34b {$387[$243]}, c:$388 {388}>
***** BB02, stmt 7 (after)
N001 ( 6, 10) [000065] ----G-------- /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt] <l:$34b, c:$388>
N003 ( 6, 10) [000069] -A--G---R---- * ASG ref <l:$34b, c:$388>
N002 ( 1, 1) [000068] D------N----- \--* LCL_VAR ref V11 tmp3 d:3 <l:$34b, c:$388>
---------
***** BB02, stmt 8 (before)
N013 ( 23, 28) [000078] --CXG-------- /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR
N007 ( 1, 1) [000072] ------------- arg0 in r0 | +--* LCL_VAR ref V11 tmp3 u:3
N008 ( 3, 7) [000073] ------------- arg1 in r1 | +--* CNS_INT(h) int 0x924994 token
N009 ( 3, 7) [000074] ------------- arg2 in r2 | \--* CNS_INT(h) int 0x924B74 token
N015 ( 27, 31) [000080] -ACXG---R---- * ASG int
N014 ( 3, 2) [000079] D------N----- \--* LCL_VAR int V12 tmp4 d:3
N001 [000110] ARGPLACE => $38a {38a}
N002 [000112] ARGPLACE => $285 {285}
N003 [000114] ARGPLACE => $286 {286}
N004 [000075] LIST => $54e {LIST($286, $0)}
N005 [000076] LIST => $54f {LIST($285, $54e)}
N006 [000077] LIST => $550 {LIST($38a, $54f)}
N007 [000072] LCL_VAR V11 tmp3 u:3 => <l:$34b {$387[$243]}, c:$388 {388}>
N008 [000073] CNS_INT(h) 0x924994 token => $244 {Hnd const: 0x00924994}
N009 [000074] CNS_INT(h) 0x924B74 token => $246 {Hnd const: 0x00924B74}
N010 [000115] LIST => $551 {LIST($246, $0)}
N011 [000113] LIST => $552 {LIST($244, $551)}
N012 [000111] LIST => <l:$554 {LIST($34b, $552)}, c:$553 {LIST($388, $552)}>
VN of ARGPLACE tree [000110] updated to <l:$34b {$387[$243]}, c:$388 {388}>
VN of ARGPLACE tree [000112] updated to $244 {Hnd const: 0x00924994}
VN of ARGPLACE tree [000114] updated to $246 {Hnd const: 0x00924B74}
N004 [000075] LIST => $551 {LIST($246, $0)}
N005 [000076] LIST => $552 {LIST($244, $551)}
N006 [000077] LIST => <l:$554 {LIST($34b, $552)}, c:$553 {LIST($388, $552)}>
$34a = singleton exc set {HelperMultipleExc()}
$34a = singleton exc set {HelperMultipleExc()}
fgCurMemoryVN[GcHeap] assigned by HELPER - modifies heap at [000078] to VN: $38b.
N013 [000078] CALL help => $206 {ValWithExc($287, $34a)}
N014 [000079] LCL_VAR V12 tmp4 d:3 => $287 {287}
N015 [000080] ASG => $206 {ValWithExc($287, $34a)}
***** BB02, stmt 8 (after)
N013 ( 23, 28) [000078] --CXG-------- /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $206
N007 ( 1, 1) [000072] ------------- arg0 in r0 | +--* LCL_VAR ref V11 tmp3 u:3 <l:$34b, c:$388>
N008 ( 3, 7) [000073] ------------- arg1 in r1 | +--* CNS_INT(h) int 0x924994 token $244
N009 ( 3, 7) [000074] ------------- arg2 in r2 | \--* CNS_INT(h) int 0x924B74 token $246
N015 ( 27, 31) [000080] -ACXG---R---- * ASG int $206
N014 ( 3, 2) [000079] D------N----- \--* LCL_VAR int V12 tmp4 d:3 $287
---------
***** BB02, stmt 9 (before)
N009 ( 23, 10) [000083] --CXG-------- * CALL ind void
N008 ( 3, 2) [000082] ------------- calli tgt \--* LCL_VAR int V12 tmp4 u:3 (last use)
N004 ( 1, 1) [000071] ------------- this in r0 +--* LCL_VAR ref V11 tmp3 u:3 (last use)
N005 ( 2, 2) [000066] ------------- arg1 in r1 \--* LCL_VAR int V02 arg2 u:3 (last use)
N001 [000116] ARGPLACE => $38c {38c}
N002 [000118] ARGPLACE => $289 {289}
N003 [000067] LIST => $555 {LIST($289, $0)}
N004 [000071] LCL_VAR V11 tmp3 u:3 (last use) => <l:$34b {$387[$243]}, c:$388 {388}>
N005 [000066] LCL_VAR V02 arg2 u:3 (last use) => <l:$203 {Cast($480, $49)}, c:$4c0 {4c0}>
N006 [000119] LIST => <l:$557 {LIST($203, $0)}, c:$556 {LIST($4c0, $0)}>
N007 [000117] LIST => <l:$559 {LIST($34b, $557)}, c:$558 {LIST($388, $556)}>
N008 [000082] LCL_VAR V12 tmp4 u:3 (last use) => $287 {287}
VN of ARGPLACE tree [000118] updated to <l:$34b {$387[$243]}, c:$388 {388}>
N003 [000067] LIST => <l:$55b {LIST($34b, $0)}, c:$55a {LIST($388, $0)}>
fgCurMemoryVN[GcHeap] assigned by CALL at [000083] to VN: $38d.
N009 [000083] CALL ind => $VN.Void
***** BB02, stmt 9 (after)
N009 ( 23, 10) [000083] --CXG-------- * CALL ind void $VN.Void
N008 ( 3, 2) [000082] ------------- calli tgt \--* LCL_VAR int V12 tmp4 u:3 (last use) $287
N004 ( 1, 1) [000071] ------------- this in r0 +--* LCL_VAR ref V11 tmp3 u:3 (last use) <l:$34b, c:$388>
N005 ( 2, 2) [000066] ------------- arg1 in r1 \--* LCL_VAR int V02 arg2 u:3 (last use) <l:$203, c:$4c0>
finish(BB02).
Succ(BB03).
Not yet completed.
All preds complete, adding to allDone.
Building phi application: $43 = SSA# 3.
Building phi application: $42 = SSA# 2.
Building phi application: $34c = phi($42, $43).
The SSA definition for GcHeap (#4) at start of BB03 is $34d {PhiMemoryDef($247, $34c)}
***** BB03, stmt 10 (before)
N005 ( 8, 7) [000010] ------------- * JTRUE void
N003 ( 1, 1) [000008] ------------- | /--* CNS_INT int 0
N004 ( 6, 5) [000009] J------N--S-- \--* NE int
N002 ( 4, 3) [000120] ----------S-- \--* CAST int <- bool <- int
N001 ( 3, 2) [000007] ------------- \--* LCL_VAR int V04 arg4 u:2 (last use)
N001 [000007] LCL_VAR V04 arg4 u:2 (last use) => $140 {InitVal($44)}
VNForCastOper(bool) is $44
N002 [000120] CAST => $200 {Cast($140, $44)}
N003 [000008] CNS_INT 0 => $40 {IntCns 0}
N004 [000009] NE => $207 {NE($200, $40)}
***** BB03, stmt 10 (after)
N005 ( 8, 7) [000010] ------------- * JTRUE void
N003 ( 1, 1) [000008] ------------- | /--* CNS_INT int 0 $40
N004 ( 6, 5) [000009] J------N--S-- \--* NE int $207
N002 ( 4, 3) [000120] ----------S-- \--* CAST int <- bool <- int $200
N001 ( 3, 2) [000007] ------------- \--* LCL_VAR int V04 arg4 u:2 (last use) $140
finish(BB03).
Succ(BB04).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB05).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
Was necessary.
The SSA definition for ByrefExposed (#4) at start of BB04 is $34d {PhiMemoryDef($247, $34c)}
The SSA definition for GcHeap (#4) at start of BB04 is $34d {PhiMemoryDef($247, $34c)}
***** BB04, stmt 11 (before)
N010 ( 0, 0) [000026] ------------- /--* NOP void
N011 ( 13, 14) [000027] ---XG-------- * COMMA void
N008 ( 5, 3) [000025] a--XG-------- | /--* IND ushort
N006 ( 1, 1) [000128] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem]
N007 ( 3, 3) [000129] -------N----- | | \--* ADD byref
N005 ( 1, 1) [000121] ------------- | | \--* LCL_VAR ref V00 arg0 u:2 (last use)
N009 ( 13, 14) [000131] ---XG-------- \--* COMMA void
N004 ( 8, 11) [000124] ---X--------- \--* ARR_BOUNDS_CHECK_Rng void
N001 ( 1, 1) [000024] ------------- +--* CNS_INT int 0
N003 ( 3, 3) [000123] ---X--------- \--* ARR_LENGTH int
N002 ( 1, 1) [000023] ------------- \--* LCL_VAR ref V00 arg0 u:2
N001 [000024] CNS_INT 0 => $40 {IntCns 0}
N002 [000023] LCL_VAR V00 arg0 u:2 => $80 {InitVal($40)}
N003 [000123] ARR_LENGTH => $3c2 {ARR_LENGTH($80)}
$34f = singleton exc set {IndexOutOfRangeExc($40, $3c2)}
$34f = singleton exc set {IndexOutOfRangeExc($40, $3c2)}
N004 [000124] ARR_BOUNDS_CHECK_Rng => $350 {ValWithExc($3, $34f)}
N005 [000121] LCL_VAR V00 arg0 u:2 (last use) => $80 {InitVal($40)}
N006 [000128] CNS_INT 8 Fseq[#FirstElem] => $48 {IntCns 8}
N007 [000129] ADD => $402 {ADD($48, $80)}
Relabeled IND_ARR_INDEX address node [000129] with l:$441: {PtrToArrElem($242, $80, $40, $0)}
VNForMapSelect($34d, $242):ref returns $352 {$34d[$242]}
VNForMapSelect($352, $80):ref returns $353 {$352[$80]}
VNForMapSelect($353, $40):short returns $481 {$353[$40]}
hAtArrType $352 is MapSelect(curGcHeap($34d), short[]).
hAtArrTypeAtArr $353 is MapSelect(hAtArrType($352), arr=$80).
wholeElem $481 is MapSelect(hAtArrTypeAtArr($353), ind=$40).
VNForCastOper(ushort) is $49
VNForCast($481, $49) returns $208 {Cast($481, $49)}
selectedElem is $208 after applying selectors.
N008 [000025] IND => <l:$208 {Cast($481, $49)}, c:$4c2 {4c2}>
N009 [000131] COMMA => <l:$209 {ValWithExc($208, $34f)}, c:$501 {ValWithExc($4c2, $34f)}>
N010 [000026] NOP => $5c0 {5c0}
N011 [000027] COMMA => $55c {ValWithExc($5c0, $34f)}
***** BB04, stmt 11 (after)
N010 ( 0, 0) [000026] ------------- /--* NOP void $5c0
N011 ( 13, 14) [000027] ---XG-------- * COMMA void $55c
N008 ( 5, 3) [000025] a--XG-------- | /--* IND ushort <l:$208, c:$4c2>
N006 ( 1, 1) [000128] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem] $48
N007 ( 3, 3) [000129] -------N----- | | \--* ADD byref $441
N005 ( 1, 1) [000121] ------------- | | \--* LCL_VAR ref V00 arg0 u:2 (last use) $80
N009 ( 13, 14) [000131] ---XG-------- \--* COMMA void <l:$209, c:$501>
N004 ( 8, 11) [000124] ---X--------- \--* ARR_BOUNDS_CHECK_Rng void $350
N001 ( 1, 1) [000024] ------------- +--* CNS_INT int 0 $40
N003 ( 3, 3) [000123] ---X--------- \--* ARR_LENGTH int $3c2
N002 ( 1, 1) [000023] ------------- \--* LCL_VAR ref V00 arg0 u:2 $80
finish(BB04).
Succ(BB05).
Not yet completed.
All preds complete, adding to allDone.
The SSA definition for ByrefExposed (#4) at start of BB05 is $34d {PhiMemoryDef($247, $34c)}
The SSA definition for GcHeap (#4) at start of BB05 is $34d {PhiMemoryDef($247, $34c)}
***** BB05, stmt 12 (before)
N010 ( 2, 2) [000015] ------------- /--* LCL_VAR int V03 arg3 u:2 (last use)
N011 ( 20, 19) [000017] -A-XG-------- * ASG byte
N008 ( 7, 4) [000016] a--XG--N----- | /--* IND byte
N006 ( 1, 1) [000137] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem]
N007 ( 5, 4) [000138] -------N----- | | \--* ADD byref
N005 ( 3, 2) [000132] ------------- | | \--* LCL_VAR ref V05 arg5 u:2 (last use)
N009 ( 17, 16) [000139] ---XG--N----- \--* COMMA byte
N004 ( 10, 12) [000135] ---X--------- \--* ARR_BOUNDS_CHECK_Rng void
N001 ( 1, 1) [000014] ------------- +--* CNS_INT int 0
N003 ( 5, 4) [000134] ---X--------- \--* ARR_LENGTH int
N002 ( 3, 2) [000013] ------------- \--* LCL_VAR ref V05 arg5 u:2
N001 [000014] CNS_INT 0 => $40 {IntCns 0}
N002 [000013] LCL_VAR V05 arg5 u:2 => $81 {InitVal($45)}
N003 [000134] ARR_LENGTH => $3c3 {ARR_LENGTH($81)}
$355 = singleton exc set {IndexOutOfRangeExc($40, $3c3)}
$355 = singleton exc set {IndexOutOfRangeExc($40, $3c3)}
N004 [000135] ARR_BOUNDS_CHECK_Rng => $356 {ValWithExc($3, $355)}
N005 [000132] LCL_VAR V05 arg5 u:2 (last use) => $81 {InitVal($45)}
N006 [000137] CNS_INT 8 Fseq[#FirstElem] => $48 {IntCns 8}
N007 [000138] ADD => $403 {ADD($48, $81)}
Relabeled IND_ARR_INDEX address node [000138] with l:$442: {PtrToArrElem($248, $81, $40, $0)}
N009 [000139] COMMA => $356 {ValWithExc($3, $355)}
N010 [000015] LCL_VAR V03 arg3 u:2 (last use) => $100 {InitVal($43)}
VNForCastOper(byte) is $4a
Tree [000017] assigns to an array element:
VNForMapSelect($34d, $248):ref returns $359 {$34d[$248]}
VNForMapSelect($359, $81):ref returns $35a {$359[$81]}
VNForMapSelect($35a, $40):byte returns $600 {$35a[$40]}
VNForCastOper(byte) is $4a
VNForCast($20a, $4a) returns $20b {Cast($20a, $4a)}
VNForMapStore($35a, $40, $20b):byte returns $640 {$35a[$40 := $20b]}
VNForMapStore($359, $81, $640):ref returns $680 {$359[$81 := $640]}
hAtArrType $359 is MapSelect(curGcHeap($34d), byte[]).
hAtArrTypeAtArr $35a is MapSelect(hAtArrType($359), arr=$81)
hAtArrTypeAtArrAtInx $600 is MapSelect(hAtArrTypeAtArr($35a), inx=$40):byte
newValAtInd $20b is {Cast($20a, $4a)}
newValAtArr $640 is {$35a[$40 := $20b]}
newValAtArrType $680 is {$359[$81 := $640]}
fgCurMemoryVN assigned:
VNForMapStore($34d, $248, $680):ref returns $681 {$34d[$248 := $680]}
fgCurMemoryVN[GcHeap] assigned by Array element assignment at [000017] to VN: $681.
N011 [000017] ASG => $VN.Void
***** BB05, stmt 12 (after)
N010 ( 2, 2) [000015] ------------- /--* LCL_VAR int V03 arg3 u:2 (last use) $100
N011 ( 20, 19) [000017] -A-XG-------- * ASG byte $VN.Void
N008 ( 7, 4) [000016] a--XG--N----- | /--* IND byte $20a
N006 ( 1, 1) [000137] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem] $48
N007 ( 5, 4) [000138] -------N----- | | \--* ADD byref $442
N005 ( 3, 2) [000132] ------------- | | \--* LCL_VAR ref V05 arg5 u:2 (last use) $81
N009 ( 17, 16) [000139] ---XG--N----- \--* COMMA byte $VN.Void
N004 ( 10, 12) [000135] ---X--------- \--* ARR_BOUNDS_CHECK_Rng void $356
N001 ( 1, 1) [000014] ------------- +--* CNS_INT int 0 $40
N003 ( 5, 4) [000134] ---X--------- \--* ARR_LENGTH int $3c3
N002 ( 3, 2) [000013] ------------- \--* LCL_VAR ref V05 arg5 u:2 $81
---------
***** BB05, stmt 13 (before)
N003 ( 4, 4) [000020] ------------- * RETURN int
N002 ( 3, 3) [000141] ------------- \--* CAST int <- ushort <- int
N001 ( 2, 2) [000019] ------------- \--* LCL_VAR int V01 arg1 u:2 (last use)
N001 [000019] LCL_VAR V01 arg1 u:2 (last use) => $c0 {InitVal($41)}
VNForCastOper(ushort) is $49
N002 [000141] CAST => $20c {Cast($c0, $49)}
N003 [000020] RETURN => $28a {28a}
***** BB05, stmt 13 (after)
N003 ( 4, 4) [000020] ------------- * RETURN int $28a
N002 ( 3, 3) [000141] ------------- \--* CAST int <- ushort <- int $20c
N001 ( 2, 2) [000019] ------------- \--* LCL_VAR int V01 arg1 u:2 (last use) $c0
finish(BB05).
*************** In optVnCopyProp()
*************** In SsaBuilder::ComputeDominators(Compiler*, ...)
Copy Assertion for BB01
curSsaName stack: { }
Copy Assertion for BB03
curSsaName stack: { 4-[000001]:V04 }
Live vars: {V00 V01 V03 V04 V05} => {V00 V01 V03 V05}
Copy Assertion for BB05
curSsaName stack: { 4-[000001]:V04 }
Live vars: {V01 V03 V05} => {V01 V03}
Live vars: {V01 V03} => {V01}
Live vars: {V01} => {}
Copy Assertion for BB04
curSsaName stack: { 1-[000019]:V01 3-[000015]:V03 4-[000001]:V04 5-[000013]:V05 }
Live vars: {V00 V01 V03 V05} => {V01 V03 V05}
Copy Assertion for BB02
curSsaName stack: { 0-[000023]:V00 1-[000019]:V01 3-[000015]:V03 4-[000001]:V04 5-[000013]:V05 }
Live vars: {V00 V01 V03 V04 V05} => {V00 V01 V03 V04 V05 V06}
Live vars: {V00 V01 V03 V04 V05 V06} => {V00 V01 V03 V04 V05 V06 V13}
Live vars: {V00 V01 V03 V04 V05 V06 V13} => {V00 V01 V03 V04 V05 V06}
Live vars: {V00 V01 V03 V04 V05 V06} => {V00 V01 V02 V03 V04 V05 V06}
Live vars: {V00 V01 V02 V03 V04 V05 V06} => {V00 V01 V02 V03 V04 V05 V06 V09}
Live vars: {V00 V01 V02 V03 V04 V05 V06 V09} => {V00 V01 V02 V03 V04 V05 V06 V09 V10}
Live vars: {V00 V01 V02 V03 V04 V05 V06 V09 V10} => {V00 V01 V02 V03 V04 V05 V06 V10}
Live vars: {V00 V01 V02 V03 V04 V05 V06 V10} => {V00 V01 V02 V03 V04 V05 V10}
Live vars: {V00 V01 V02 V03 V04 V05 V10} => {V00 V01 V02 V03 V04 V05}
Live vars: {V00 V01 V02 V03 V04 V05} => {V00 V01 V02 V03 V04 V05 V11}
Live vars: {V00 V01 V02 V03 V04 V05 V11} => {V00 V01 V02 V03 V04 V05 V11 V12}
Live vars: {V00 V01 V02 V03 V04 V05 V11 V12} => {V00 V01 V02 V03 V04 V05 V12}
Live vars: {V00 V01 V02 V03 V04 V05 V12} => {V00 V01 V03 V04 V05 V12}
Live vars: {V00 V01 V03 V04 V05 V12} => {V00 V01 V03 V04 V05}
*************** In optOptimizeCSEs()
Blocks/Trees at start of optOptimizeCSE phase
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..004)-> BB03 ( cond ) i label target
BB02 [0001] 1 BB01 0.50 [004..02C) i gcsafe
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target
BB04 [0003] 1 BB03 0.50 [030..034) i idxlen
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..004) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
( 8, 7) [000005] ------------- * STMT void (IL 0x000...0x002)
N005 ( 8, 7) [000004] ------------- \--* JTRUE void
N003 ( 1, 1) [000002] ------------- | /--* CNS_INT int 0 $40
N004 ( 6, 5) [000003] J------N--S-- \--* EQ int $201
N002 ( 4, 3) [000085] ----------S-- \--* CAST int <- bool <- int $200
N001 ( 3, 2) [000001] ------------- \--* LCL_VAR int V04 arg4 u:2 $140
------------ BB02 [004..02C), preds={BB01} succs={BB03}
***** BB02, stmt 2
( 14, 17) [000034] ------------- * STMT void (IL 0x004...0x00A)
N002 ( 7, 11) [000031] ----G-------- | /--* CAST long <- int <l:$2c1, c:$2c0>
N001 ( 6, 10) [000030] ----G-------- | | \--* CLS_VAR int Hnd=0x9247f8 Fseq[s_3] <l:$202, c:$280>
N004 ( 14, 17) [000033] -A--G---R---- \--* ASG long <l:$2c1, c:$2c0>
N003 ( 3, 2) [000032] D------N----- \--* LCL_VAR long V06 loc0 d:3 <l:$2c1, c:$2c0>
***** BB02, stmt 3
( 19, 24) [000040] ------------- * STMT void (IL 0x00B...0x012)
N011 ( 5, 3) [000037] a--XG-------- | /--* IND ushort <l:$203, c:$4c0>
N009 ( 1, 1) [000096] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem] $48
N010 ( 3, 3) [000097] -------N----- | | \--* ADD byref $440
N008 ( 1, 1) [000089] ------------- | | \--* LCL_VAR ref V13 tmp5 u:3 (last use) <l:$340, c:$380>
N012 ( 13, 14) [000098] ---XG-------- | /--* COMMA ushort <l:$204, c:$500>
N007 ( 8, 11) [000092] ---X--------- | | \--* ARR_BOUNDS_CHECK_Rng void <l:$346, c:$345>
N004 ( 1, 1) [000036] ------------- | | +--* CNS_INT int 0 $40
N006 ( 3, 3) [000091] ---X--------- | | \--* ARR_LENGTH int <l:$3c1, c:$3c0>
N005 ( 1, 1) [000088] ------------- | | \--* LCL_VAR ref V13 tmp5 u:3 <l:$340, c:$380>
N013 ( 19, 24) [000099] -A-XG-------- | /--* COMMA ushort <l:$204, c:$500>
N001 ( 6, 10) [000035] ----G-------- | | | /--* CLS_VAR ref Hnd=0x924808 Fseq[s_8] <l:$340, c:$380>
N003 ( 6, 10) [000087] -A--G---R---- | | \--* ASG ref <l:$340, c:$380>
N002 ( 1, 1) [000086] D------N----- | | \--* LCL_VAR ref V13 tmp5 d:3 <l:$340, c:$380>
N015 ( 19, 24) [000039] -A-XG---R---- \--* ASG ushort <l:$204, c:$500>
N014 ( 2, 2) [000038] D------N----- \--* LCL_VAR ushort V02 arg2 d:3 <l:$203, c:$4c0>
***** BB02, stmt 4
( 6, 10) [000050] ------------- * STMT void (IL 0x016...0x027)
N001 ( 6, 10) [000045] ----G-------- | /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt] <l:$349, c:$382>
N003 ( 6, 10) [000049] -A--G---R---- \--* ASG ref <l:$349, c:$382>
N002 ( 1, 1) [000048] D------N----- \--* LCL_VAR ref V09 tmp1 d:3 <l:$349, c:$382>
***** BB02, stmt 5
( 27, 31) [000061] ------------- * STMT void (IL ???... ???)
N013 ( 23, 28) [000058] --CXG-------- | /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $205
N007 ( 1, 1) [000052] ------------- arg0 in r0 | | +--* LCL_VAR ref V09 tmp1 u:3 <l:$349, c:$382>
N008 ( 3, 7) [000053] ------------- arg1 in r1 | | +--* CNS_INT(h) int 0x924994 token $244
N009 ( 3, 7) [000054] ------------- arg2 in r2 | | \--* CNS_INT(h) int 0x924B10 token $245
N015 ( 27, 31) [000060] -ACXG---R---- \--* ASG int $205
N014 ( 3, 2) [000059] D------N----- \--* LCL_VAR int V10 tmp2 d:3 $283
***** BB02, stmt 6
( 24, 10) [000064] ------------- * STMT void (IL ???... ???)
N009 ( 24, 10) [000063] --CXG-------- \--* CALL ind void $VN.Void
N008 ( 3, 2) [000062] ------------- calli tgt \--* LCL_VAR int V10 tmp2 u:3 (last use) $283
N004 ( 1, 1) [000051] ------------- this in r0 +--* LCL_VAR ref V09 tmp1 u:3 (last use) <l:$349, c:$382>
N005 ( 3, 2) [000046] ------------- arg1 r2,r3 \--* LCL_VAR long V06 loc0 u:3 (last use) <l:$2c1, c:$2c0>
***** BB02, stmt 7
( 6, 10) [000070] ------------- * STMT void (IL 0x021... ???)
N001 ( 6, 10) [000065] ----G-------- | /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt] <l:$34b, c:$388>
N003 ( 6, 10) [000069] -A--G---R---- \--* ASG ref <l:$34b, c:$388>
N002 ( 1, 1) [000068] D------N----- \--* LCL_VAR ref V11 tmp3 d:3 <l:$34b, c:$388>
***** BB02, stmt 8
( 27, 31) [000081] ------------- * STMT void (IL ???... ???)
N013 ( 23, 28) [000078] --CXG-------- | /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $206
N007 ( 1, 1) [000072] ------------- arg0 in r0 | | +--* LCL_VAR ref V11 tmp3 u:3 <l:$34b, c:$388>
N008 ( 3, 7) [000073] ------------- arg1 in r1 | | +--* CNS_INT(h) int 0x924994 token $244
N009 ( 3, 7) [000074] ------------- arg2 in r2 | | \--* CNS_INT(h) int 0x924B74 token $246
N015 ( 27, 31) [000080] -ACXG---R---- \--* ASG int $206
N014 ( 3, 2) [000079] D------N----- \--* LCL_VAR int V12 tmp4 d:3 $287
***** BB02, stmt 9
( 23, 10) [000084] ------------- * STMT void (IL ???... ???)
N009 ( 23, 10) [000083] --CXG-------- \--* CALL ind void $VN.Void
N008 ( 3, 2) [000082] ------------- calli tgt \--* LCL_VAR int V12 tmp4 u:3 (last use) $287
N004 ( 1, 1) [000071] ------------- this in r0 +--* LCL_VAR ref V11 tmp3 u:3 (last use) <l:$34b, c:$388>
N005 ( 2, 2) [000066] ------------- arg1 in r1 \--* LCL_VAR int V02 arg2 u:3 (last use) <l:$203, c:$4c0>
------------ BB03 [02C..030) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 10
( 8, 7) [000011] ------------- * STMT void (IL 0x02C...0x02E)
N005 ( 8, 7) [000010] ------------- \--* JTRUE void
N003 ( 1, 1) [000008] ------------- | /--* CNS_INT int 0 $40
N004 ( 6, 5) [000009] J------N--S-- \--* NE int $207
N002 ( 4, 3) [000120] ----------S-- \--* CAST int <- bool <- int $200
N001 ( 3, 2) [000007] ------------- \--* LCL_VAR int V04 arg4 u:2 (last use) $140
------------ BB04 [030..034), preds={BB03} succs={BB05}
***** BB04, stmt 11
( 13, 14) [000028] ------------- * STMT void (IL 0x030...0x033)
N010 ( 0, 0) [000026] ------------- | /--* NOP void $5c0
N011 ( 13, 14) [000027] ---XG-------- \--* COMMA void $55c
N008 ( 5, 3) [000025] a--XG-------- | /--* IND ushort <l:$208, c:$4c2>
N006 ( 1, 1) [000128] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem] $48
N007 ( 3, 3) [000129] -------N----- | | \--* ADD byref $441
N005 ( 1, 1) [000121] ------------- | | \--* LCL_VAR ref V00 arg0 u:2 (last use) $80
N009 ( 13, 14) [000131] ---XG-------- \--* COMMA void <l:$209, c:$501>
N004 ( 8, 11) [000124] ---X--------- \--* ARR_BOUNDS_CHECK_Rng void $350
N001 ( 1, 1) [000024] ------------- +--* CNS_INT int 0 $40
N003 ( 3, 3) [000123] ---X--------- \--* ARR_LENGTH int $3c2
N002 ( 1, 1) [000023] ------------- \--* LCL_VAR ref V00 arg0 u:2 $80
------------ BB05 [034..03B) (return), preds={BB03,BB04} succs={}
***** BB05, stmt 12
( 20, 19) [000018] ------------- * STMT void (IL 0x034...0x038)
N010 ( 2, 2) [000015] ------------- | /--* LCL_VAR int V03 arg3 u:2 (last use) $100
N011 ( 20, 19) [000017] -A-XG-------- \--* ASG byte $VN.Void
N008 ( 7, 4) [000016] a--XG--N----- | /--* IND byte $20a
N006 ( 1, 1) [000137] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem] $48
N007 ( 5, 4) [000138] -------N----- | | \--* ADD byref $442
N005 ( 3, 2) [000132] ------------- | | \--* LCL_VAR ref V05 arg5 u:2 (last use) $81
N009 ( 17, 16) [000139] ---XG--N----- \--* COMMA byte $VN.Void
N004 ( 10, 12) [000135] ---X--------- \--* ARR_BOUNDS_CHECK_Rng void $356
N001 ( 1, 1) [000014] ------------- +--* CNS_INT int 0 $40
N003 ( 5, 4) [000134] ---X--------- \--* ARR_LENGTH int $3c3
N002 ( 3, 2) [000013] ------------- \--* LCL_VAR ref V05 arg5 u:2 $81
***** BB05, stmt 13
( 4, 4) [000021] ------------- * STMT void (IL 0x039...0x03A)
N003 ( 4, 4) [000020] ------------- \--* RETURN int $28a
N002 ( 3, 3) [000141] ------------- \--* CAST int <- ushort <- int $20c
N001 ( 2, 2) [000019] ------------- \--* LCL_VAR int V01 arg1 u:2 (last use) $c0
-------------------------------------------------------------------------------------------------------------------
*************** In optOptimizeValnumCSEs()
CSE candidate #01, vn=$200 cseMask=0000000000000001 in BB03, [cost= 4, size= 3]:
N002 ( 4, 3) CSE #01 (use)[000120] ----------S-- * CAST int <- bool <- int $200
N001 ( 3, 2) [000007] ------------- \--* LCL_VAR int V04 arg4 u:2 (last use) $140
Blocks that generate CSE def/uses
BB01 cseGen = 0000000000000001
BB02 cseGen = 0000000000000000
BB03 cseGen = 0000000000000001
BB04 cseGen = 0000000000000000
BB05 cseGen = 0000000000000000
After performing DataFlow for ValnumCSE's
BB01 cseIn = 0000000000000000 cseOut = 0000000000000001
BB02 cseIn = 0000000000000001 cseOut = 0000000000000001
BB03 cseIn = 0000000000000001 cseOut = 0000000000000001
BB04 cseIn = 0000000000000001 cseOut = 0000000000000001
BB05 cseIn = 0000000000000001 cseOut = 0000000000000001
Labeling the CSEs with Use/Def information
BB01 [000085] Def of CSE #01 [weight=1 ]
BB03 [000120] Use of CSE #01 [weight=1 ]
************ Trees at start of optValnumCSE_Heuristic()
------------ BB01 [000..004) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
( 8, 7) [000005] ------------- * STMT void (IL 0x000...0x002)
N005 ( 8, 7) [000004] ------------- \--* JTRUE void
N003 ( 1, 1) [000002] ------------- | /--* CNS_INT int 0 $40
N004 ( 6, 5) [000003] J------N--S-- \--* EQ int $201
N002 ( 4, 3) CSE #01 (def)[000085] ----------S-- \--* CAST int <- bool <- int $200
N001 ( 3, 2) [000001] ------------- \--* LCL_VAR int V04 arg4 u:2 $140
------------ BB02 [004..02C), preds={BB01} succs={BB03}
***** BB02, stmt 2
( 14, 17) [000034] ------------- * STMT void (IL 0x004...0x00A)
N002 ( 7, 11) [000031] ----G-------- | /--* CAST long <- int <l:$2c1, c:$2c0>
N001 ( 6, 10) [000030] ----G-------- | | \--* CLS_VAR int Hnd=0x9247f8 Fseq[s_3] <l:$202, c:$280>
N004 ( 14, 17) [000033] -A--G---R---- \--* ASG long <l:$2c1, c:$2c0>
N003 ( 3, 2) [000032] D------N----- \--* LCL_VAR long V06 loc0 d:3 <l:$2c1, c:$2c0>
***** BB02, stmt 3
( 19, 24) [000040] ------------- * STMT void (IL 0x00B...0x012)
N011 ( 5, 3) [000037] a--XG-------- | /--* IND ushort <l:$203, c:$4c0>
N009 ( 1, 1) [000096] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem] $48
N010 ( 3, 3) [000097] -------N----- | | \--* ADD byref $440
N008 ( 1, 1) [000089] ------------- | | \--* LCL_VAR ref V13 tmp5 u:3 (last use) <l:$340, c:$380>
N012 ( 13, 14) [000098] ---XG-------- | /--* COMMA ushort <l:$204, c:$500>
N007 ( 8, 11) [000092] ---X--------- | | \--* ARR_BOUNDS_CHECK_Rng void <l:$346, c:$345>
N004 ( 1, 1) [000036] ------------- | | +--* CNS_INT int 0 $40
N006 ( 3, 3) [000091] ---X--------- | | \--* ARR_LENGTH int <l:$3c1, c:$3c0>
N005 ( 1, 1) [000088] ------------- | | \--* LCL_VAR ref V13 tmp5 u:3 <l:$340, c:$380>
N013 ( 19, 24) [000099] -A-XG-------- | /--* COMMA ushort <l:$204, c:$500>
N001 ( 6, 10) [000035] ----G-------- | | | /--* CLS_VAR ref Hnd=0x924808 Fseq[s_8] <l:$340, c:$380>
N003 ( 6, 10) [000087] -A--G---R---- | | \--* ASG ref <l:$340, c:$380>
N002 ( 1, 1) [000086] D------N----- | | \--* LCL_VAR ref V13 tmp5 d:3 <l:$340, c:$380>
N015 ( 19, 24) [000039] -A-XG---R---- \--* ASG ushort <l:$204, c:$500>
N014 ( 2, 2) [000038] D------N----- \--* LCL_VAR ushort V02 arg2 d:3 <l:$203, c:$4c0>
***** BB02, stmt 4
( 6, 10) [000050] ------------- * STMT void (IL 0x016...0x027)
N001 ( 6, 10) [000045] ----G-------- | /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt] <l:$349, c:$382>
N003 ( 6, 10) [000049] -A--G---R---- \--* ASG ref <l:$349, c:$382>
N002 ( 1, 1) [000048] D------N----- \--* LCL_VAR ref V09 tmp1 d:3 <l:$349, c:$382>
***** BB02, stmt 5
( 27, 31) [000061] ------------- * STMT void (IL ???... ???)
N013 ( 23, 28) [000058] --CXG-------- | /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $205
N007 ( 1, 1) [000052] ------------- arg0 in r0 | | +--* LCL_VAR ref V09 tmp1 u:3 <l:$349, c:$382>
N008 ( 3, 7) [000053] ------------- arg1 in r1 | | +--* CNS_INT(h) int 0x924994 token $244
N009 ( 3, 7) [000054] ------------- arg2 in r2 | | \--* CNS_INT(h) int 0x924B10 token $245
N015 ( 27, 31) [000060] -ACXG---R---- \--* ASG int $205
N014 ( 3, 2) [000059] D------N----- \--* LCL_VAR int V10 tmp2 d:3 $283
***** BB02, stmt 6
( 24, 10) [000064] ------------- * STMT void (IL ???... ???)
N009 ( 24, 10) [000063] --CXG-------- \--* CALL ind void $VN.Void
N008 ( 3, 2) [000062] ------------- calli tgt \--* LCL_VAR int V10 tmp2 u:3 (last use) $283
N004 ( 1, 1) [000051] ------------- this in r0 +--* LCL_VAR ref V09 tmp1 u:3 (last use) <l:$349, c:$382>
N005 ( 3, 2) [000046] ------------- arg1 r2,r3 \--* LCL_VAR long V06 loc0 u:3 (last use) <l:$2c1, c:$2c0>
***** BB02, stmt 7
( 6, 10) [000070] ------------- * STMT void (IL 0x021... ???)
N001 ( 6, 10) [000065] ----G-------- | /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt] <l:$34b, c:$388>
N003 ( 6, 10) [000069] -A--G---R---- \--* ASG ref <l:$34b, c:$388>
N002 ( 1, 1) [000068] D------N----- \--* LCL_VAR ref V11 tmp3 d:3 <l:$34b, c:$388>
***** BB02, stmt 8
( 27, 31) [000081] ------------- * STMT void (IL ???... ???)
N013 ( 23, 28) [000078] --CXG-------- | /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $206
N007 ( 1, 1) [000072] ------------- arg0 in r0 | | +--* LCL_VAR ref V11 tmp3 u:3 <l:$34b, c:$388>
N008 ( 3, 7) [000073] ------------- arg1 in r1 | | +--* CNS_INT(h) int 0x924994 token $244
N009 ( 3, 7) [000074] ------------- arg2 in r2 | | \--* CNS_INT(h) int 0x924B74 token $246
N015 ( 27, 31) [000080] -ACXG---R---- \--* ASG int $206
N014 ( 3, 2) [000079] D------N----- \--* LCL_VAR int V12 tmp4 d:3 $287
***** BB02, stmt 9
( 23, 10) [000084] ------------- * STMT void (IL ???... ???)
N009 ( 23, 10) [000083] --CXG-------- \--* CALL ind void $VN.Void
N008 ( 3, 2) [000082] ------------- calli tgt \--* LCL_VAR int V12 tmp4 u:3 (last use) $287
N004 ( 1, 1) [000071] ------------- this in r0 +--* LCL_VAR ref V11 tmp3 u:3 (last use) <l:$34b, c:$388>
N005 ( 2, 2) [000066] ------------- arg1 in r1 \--* LCL_VAR int V02 arg2 u:3 (last use) <l:$203, c:$4c0>
------------ BB03 [02C..030) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 10
( 8, 7) [000011] ------------- * STMT void (IL 0x02C...0x02E)
N005 ( 8, 7) [000010] ------------- \--* JTRUE void
N003 ( 1, 1) [000008] ------------- | /--* CNS_INT int 0 $40
N004 ( 6, 5) [000009] J------N--S-- \--* NE int $207
N002 ( 4, 3) CSE #01 (use)[000120] ----------S-- \--* CAST int <- bool <- int $200
N001 ( 3, 2) [000007] ------------- \--* LCL_VAR int V04 arg4 u:2 (last use) $140
------------ BB04 [030..034), preds={BB03} succs={BB05}
***** BB04, stmt 11
( 13, 14) [000028] ------------- * STMT void (IL 0x030...0x033)
N010 ( 0, 0) [000026] ------------- | /--* NOP void $5c0
N011 ( 13, 14) [000027] ---XG-------- \--* COMMA void $55c
N008 ( 5, 3) [000025] a--XG-------- | /--* IND ushort <l:$208, c:$4c2>
N006 ( 1, 1) [000128] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem] $48
N007 ( 3, 3) [000129] -------N----- | | \--* ADD byref $441
N005 ( 1, 1) [000121] ------------- | | \--* LCL_VAR ref V00 arg0 u:2 (last use) $80
N009 ( 13, 14) [000131] ---XG-------- \--* COMMA void <l:$209, c:$501>
N004 ( 8, 11) [000124] ---X--------- \--* ARR_BOUNDS_CHECK_Rng void $350
N001 ( 1, 1) [000024] ------------- +--* CNS_INT int 0 $40
N003 ( 3, 3) [000123] ---X--------- \--* ARR_LENGTH int $3c2
N002 ( 1, 1) [000023] ------------- \--* LCL_VAR ref V00 arg0 u:2 $80
------------ BB05 [034..03B) (return), preds={BB03,BB04} succs={}
***** BB05, stmt 12
( 20, 19) [000018] ------------- * STMT void (IL 0x034...0x038)
N010 ( 2, 2) [000015] ------------- | /--* LCL_VAR int V03 arg3 u:2 (last use) $100
N011 ( 20, 19) [000017] -A-XG-------- \--* ASG byte $VN.Void
N008 ( 7, 4) [000016] a--XG--N----- | /--* IND byte $20a
N006 ( 1, 1) [000137] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem] $48
N007 ( 5, 4) [000138] -------N----- | | \--* ADD byref $442
N005 ( 3, 2) [000132] ------------- | | \--* LCL_VAR ref V05 arg5 u:2 (last use) $81
N009 ( 17, 16) [000139] ---XG--N----- \--* COMMA byte $VN.Void
N004 ( 10, 12) [000135] ---X--------- \--* ARR_BOUNDS_CHECK_Rng void $356
N001 ( 1, 1) [000014] ------------- +--* CNS_INT int 0 $40
N003 ( 5, 4) [000134] ---X--------- \--* ARR_LENGTH int $3c3
N002 ( 3, 2) [000013] ------------- \--* LCL_VAR ref V05 arg5 u:2 $81
***** BB05, stmt 13
( 4, 4) [000021] ------------- * STMT void (IL 0x039...0x03A)
N003 ( 4, 4) [000020] ------------- \--* RETURN int $28a
N002 ( 3, 3) [000141] ------------- \--* CAST int <- ushort <- int $20c
N001 ( 2, 2) [000019] ------------- \--* LCL_VAR int V01 arg1 u:2 (last use) $c0
-------------------------------------------------------------------------------------------------------------------
Aggressive CSE Promotion cutoff is 300
Moderate CSE Promotion cutoff is 150
Framesize estimate is 0x0000
We have a small frame
Sorted CSE candidates:
CSE #01,cseMask=0000000000000001,useCnt=1: [def=100, use=100] :: N002 ( 4, 3) CSE #01 (def)[000085] ----------S-- * CAST int <- bool <- int $200
Considering CSE #01 [def=100, use=100, cost= 4] CSE Expression:
N002 ( 4, 3) CSE #01 (def)[000085] ----------S-- * CAST int <- bool <- int $200
N001 ( 3, 2) [000001] ------------- \--* LCL_VAR int V04 arg4 u:2 $140
Aggressive CSE Promotion (300 >= 300)
cseRefCnt=300, aggressiveRefCnt=300, moderateRefCnt=150
defCnt=100, useCnt=100, cost=4, size=3
def_cost=1, use_cost=1, extra_no_cost=4, extra_yes_cost=0
CSE cost savings check (404 >= 200) passes
Promoting CSE:
lvaGrabTemp returning 14 (V14 rat0) (a long lifetime temp) called for ValNumCSE.
CSE #01 def at [000085] replaced in BB01 with def of V14
New refCnts for V14: refCnt = 1, refCntWtd = 1
New refCnts for V14: refCnt = 2, refCntWtd = 2
New refCnts for V14: refCnt = 3, refCntWtd = 3
New refCnts for V04: refCnt = 3, refCntWtd = 3
New refCnts for V14: refCnt = 4, refCntWtd = 4
optValnumCSE morphed tree:
N009 ( 8, 8) [000004] -A----------- * JTRUE void
N007 ( 1, 1) [000002] ------------- | /--* CNS_INT int 0 $40
N008 ( 6, 6) [000003] JA-----N--S-- \--* EQ int $201
N005 ( 1, 1) [000144] ------------- | /--* LCL_VAR int V14 cse0 $200
N006 ( 4, 4) [000145] -A--------S-- \--* COMMA int $200
N002 ( 3, 3) [000085] ----------S-- | /--* CAST int <- bool <- int $200
N001 ( 2, 2) [000001] ------------- | | \--* LCL_VAR int V04 arg4 u:2 $140
N004 ( 3, 3) [000143] -A------R---- \--* ASG int $VN.Void
N003 ( 1, 1) [000142] D------N----- \--* LCL_VAR int V14 cse0 $200
Working on the replacement of the CSE #01 use at [000120] in BB03
New refCnts for V04: refCnt = 2, refCntWtd = 2
CSE #00 use at [000120] replaced in BB03 with temp use.
New refCnts for V14: refCnt = 5, refCntWtd = 5
New refCnts for V14: refCnt = 6, refCntWtd = 6
optValnumCSE morphed tree:
N004 ( 5, 5) [000010] ------------- * JTRUE void
N002 ( 1, 1) [000008] ------------- | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000009] J------N--S-- \--* NE int $207
N001 ( 1, 1) [000146] ------------- \--* LCL_VAR int V14 cse0 $200
*************** In optAssertionPropMain()
Blocks/Trees at start of phase
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..004)-> BB03 ( cond ) i label target
BB02 [0001] 1 BB01 0.50 [004..02C) i gcsafe
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target
BB04 [0003] 1 BB03 0.50 [030..034) i idxlen
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..004) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
( 8, 8) [000005] ------------- * STMT void (IL 0x000...0x002)
N009 ( 8, 8) [000004] -A----------- \--* JTRUE void
N007 ( 1, 1) [000002] ------------- | /--* CNS_INT int 0 $40
N008 ( 6, 6) [000003] JA-----N--S-- \--* EQ int $201
N005 ( 1, 1) [000144] ------------- | /--* LCL_VAR int V14 cse0 $200
N006 ( 4, 4) [000145] -A--------S-- \--* COMMA int $200
N002 ( 3, 3) [000085] ----------S-- | /--* CAST int <- bool <- int $200
N001 ( 2, 2) [000001] ------------- | | \--* LCL_VAR int V04 arg4 u:2 $140
N004 ( 3, 3) [000143] -A------R---- \--* ASG int $VN.Void
N003 ( 1, 1) [000142] D------N----- \--* LCL_VAR int V14 cse0 $200
------------ BB02 [004..02C), preds={BB01} succs={BB03}
***** BB02, stmt 2
( 14, 17) [000034] ------------- * STMT void (IL 0x004...0x00A)
N002 ( 7, 11) [000031] ----G-------- | /--* CAST long <- int <l:$2c1, c:$2c0>
N001 ( 6, 10) [000030] ----G-------- | | \--* CLS_VAR int Hnd=0x9247f8 Fseq[s_3] <l:$202, c:$280>
N004 ( 14, 17) [000033] -A--G---R---- \--* ASG long <l:$2c1, c:$2c0>
N003 ( 3, 2) [000032] D------N----- \--* LCL_VAR long V06 loc0 d:3 <l:$2c1, c:$2c0>
***** BB02, stmt 3
( 19, 24) [000040] ------------- * STMT void (IL 0x00B...0x012)
N011 ( 5, 3) [000037] a--XG-------- | /--* IND ushort <l:$203, c:$4c0>
N009 ( 1, 1) [000096] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem] $48
N010 ( 3, 3) [000097] -------N----- | | \--* ADD byref $440
N008 ( 1, 1) [000089] ------------- | | \--* LCL_VAR ref V13 tmp5 u:3 (last use) <l:$340, c:$380>
N012 ( 13, 14) [000098] ---XG-------- | /--* COMMA ushort <l:$204, c:$500>
N007 ( 8, 11) [000092] ---X--------- | | \--* ARR_BOUNDS_CHECK_Rng void <l:$346, c:$345>
N004 ( 1, 1) [000036] ------------- | | +--* CNS_INT int 0 $40
N006 ( 3, 3) [000091] ---X--------- | | \--* ARR_LENGTH int <l:$3c1, c:$3c0>
N005 ( 1, 1) [000088] ------------- | | \--* LCL_VAR ref V13 tmp5 u:3 <l:$340, c:$380>
N013 ( 19, 24) [000099] -A-XG-------- | /--* COMMA ushort <l:$204, c:$500>
N001 ( 6, 10) [000035] ----G-------- | | | /--* CLS_VAR ref Hnd=0x924808 Fseq[s_8] <l:$340, c:$380>
N003 ( 6, 10) [000087] -A--G---R---- | | \--* ASG ref <l:$340, c:$380>
N002 ( 1, 1) [000086] D------N----- | | \--* LCL_VAR ref V13 tmp5 d:3 <l:$340, c:$380>
N015 ( 19, 24) [000039] -A-XG---R---- \--* ASG ushort <l:$204, c:$500>
N014 ( 2, 2) [000038] D------N----- \--* LCL_VAR ushort V02 arg2 d:3 <l:$203, c:$4c0>
***** BB02, stmt 4
( 6, 10) [000050] ------------- * STMT void (IL 0x016...0x027)
N001 ( 6, 10) [000045] ----G-------- | /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt] <l:$349, c:$382>
N003 ( 6, 10) [000049] -A--G---R---- \--* ASG ref <l:$349, c:$382>
N002 ( 1, 1) [000048] D------N----- \--* LCL_VAR ref V09 tmp1 d:3 <l:$349, c:$382>
***** BB02, stmt 5
( 27, 31) [000061] ------------- * STMT void (IL ???... ???)
N013 ( 23, 28) [000058] --CXG-------- | /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $205
N007 ( 1, 1) [000052] ------------- arg0 in r0 | | +--* LCL_VAR ref V09 tmp1 u:3 <l:$349, c:$382>
N008 ( 3, 7) [000053] ------------- arg1 in r1 | | +--* CNS_INT(h) int 0x924994 token $244
N009 ( 3, 7) [000054] ------------- arg2 in r2 | | \--* CNS_INT(h) int 0x924B10 token $245
N015 ( 27, 31) [000060] -ACXG---R---- \--* ASG int $205
N014 ( 3, 2) [000059] D------N----- \--* LCL_VAR int V10 tmp2 d:3 $283
***** BB02, stmt 6
( 24, 10) [000064] ------------- * STMT void (IL ???... ???)
N009 ( 24, 10) [000063] --CXG-------- \--* CALL ind void $VN.Void
N008 ( 3, 2) [000062] ------------- calli tgt \--* LCL_VAR int V10 tmp2 u:3 (last use) $283
N004 ( 1, 1) [000051] ------------- this in r0 +--* LCL_VAR ref V09 tmp1 u:3 (last use) <l:$349, c:$382>
N005 ( 3, 2) [000046] ------------- arg1 r2,r3 \--* LCL_VAR long V06 loc0 u:3 (last use) <l:$2c1, c:$2c0>
***** BB02, stmt 7
( 6, 10) [000070] ------------- * STMT void (IL 0x021... ???)
N001 ( 6, 10) [000065] ----G-------- | /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt] <l:$34b, c:$388>
N003 ( 6, 10) [000069] -A--G---R---- \--* ASG ref <l:$34b, c:$388>
N002 ( 1, 1) [000068] D------N----- \--* LCL_VAR ref V11 tmp3 d:3 <l:$34b, c:$388>
***** BB02, stmt 8
( 27, 31) [000081] ------------- * STMT void (IL ???... ???)
N013 ( 23, 28) [000078] --CXG-------- | /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $206
N007 ( 1, 1) [000072] ------------- arg0 in r0 | | +--* LCL_VAR ref V11 tmp3 u:3 <l:$34b, c:$388>
N008 ( 3, 7) [000073] ------------- arg1 in r1 | | +--* CNS_INT(h) int 0x924994 token $244
N009 ( 3, 7) [000074] ------------- arg2 in r2 | | \--* CNS_INT(h) int 0x924B74 token $246
N015 ( 27, 31) [000080] -ACXG---R---- \--* ASG int $206
N014 ( 3, 2) [000079] D------N----- \--* LCL_VAR int V12 tmp4 d:3 $287
***** BB02, stmt 9
( 23, 10) [000084] ------------- * STMT void (IL ???... ???)
N009 ( 23, 10) [000083] --CXG-------- \--* CALL ind void $VN.Void
N008 ( 3, 2) [000082] ------------- calli tgt \--* LCL_VAR int V12 tmp4 u:3 (last use) $287
N004 ( 1, 1) [000071] ------------- this in r0 +--* LCL_VAR ref V11 tmp3 u:3 (last use) <l:$34b, c:$388>
N005 ( 2, 2) [000066] ------------- arg1 in r1 \--* LCL_VAR int V02 arg2 u:3 (last use) <l:$203, c:$4c0>
------------ BB03 [02C..030) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 10
( 5, 5) [000011] ------------- * STMT void (IL 0x02C...0x02E)
N004 ( 5, 5) [000010] ------------- \--* JTRUE void
N002 ( 1, 1) [000008] ------------- | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000009] J------N--S-- \--* NE int $207
N001 ( 1, 1) [000146] ------------- \--* LCL_VAR int V14 cse0 $200
------------ BB04 [030..034), preds={BB03} succs={BB05}
***** BB04, stmt 11
( 13, 14) [000028] ------------- * STMT void (IL 0x030...0x033)
N010 ( 0, 0) [000026] ------------- | /--* NOP void $5c0
N011 ( 13, 14) [000027] ---XG-------- \--* COMMA void $55c
N008 ( 5, 3) [000025] a--XG-------- | /--* IND ushort <l:$208, c:$4c2>
N006 ( 1, 1) [000128] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem] $48
N007 ( 3, 3) [000129] -------N----- | | \--* ADD byref $441
N005 ( 1, 1) [000121] ------------- | | \--* LCL_VAR ref V00 arg0 u:2 (last use) $80
N009 ( 13, 14) [000131] ---XG-------- \--* COMMA void <l:$209, c:$501>
N004 ( 8, 11) [000124] ---X--------- \--* ARR_BOUNDS_CHECK_Rng void $350
N001 ( 1, 1) [000024] ------------- +--* CNS_INT int 0 $40
N003 ( 3, 3) [000123] ---X--------- \--* ARR_LENGTH int $3c2
N002 ( 1, 1) [000023] ------------- \--* LCL_VAR ref V00 arg0 u:2 $80
------------ BB05 [034..03B) (return), preds={BB03,BB04} succs={}
***** BB05, stmt 12
( 20, 19) [000018] ------------- * STMT void (IL 0x034...0x038)
N010 ( 2, 2) [000015] ------------- | /--* LCL_VAR int V03 arg3 u:2 (last use) $100
N011 ( 20, 19) [000017] -A-XG-------- \--* ASG byte $VN.Void
N008 ( 7, 4) [000016] a--XG--N----- | /--* IND byte $20a
N006 ( 1, 1) [000137] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem] $48
N007 ( 5, 4) [000138] -------N----- | | \--* ADD byref $442
N005 ( 3, 2) [000132] ------------- | | \--* LCL_VAR ref V05 arg5 u:2 (last use) $81
N009 ( 17, 16) [000139] ---XG--N----- \--* COMMA byte $VN.Void
N004 ( 10, 12) [000135] ---X--------- \--* ARR_BOUNDS_CHECK_Rng void $356
N001 ( 1, 1) [000014] ------------- +--* CNS_INT int 0 $40
N003 ( 5, 4) [000134] ---X--------- \--* ARR_LENGTH int $3c3
N002 ( 3, 2) [000013] ------------- \--* LCL_VAR ref V05 arg5 u:2 $81
***** BB05, stmt 13
( 4, 4) [000021] ------------- * STMT void (IL 0x039...0x03A)
N003 ( 4, 4) [000020] ------------- \--* RETURN int $28a
N002 ( 3, 3) [000141] ------------- \--* CAST int <- ushort <- int $20c
N001 ( 2, 2) [000019] ------------- \--* LCL_VAR int V01 arg1 u:2 (last use) $c0
-------------------------------------------------------------------------------------------------------------------
GenTreeNode creates assertion:
N002 ( 3, 3) [000085] ----------S-- * CAST int <- bool <- int $200
In BB01 New Global Subrange Assertion: (320, 0) ($140,$0) V04.02 in [0..1] index=#01, mask=0000000000000001
GenTreeNode creates assertion:
N006 ( 3, 3) [000091] ---X--------- * ARR_LENGTH int <l:$3c1, c:$3c0>
In BB02 New Global Constant Assertion: (896, 0) ($380,$0) V13.03 != null index=#02, mask=0000000000000002
GenTreeNode creates assertion:
N007 ( 8, 11) [000092] ---X--------- * ARR_BOUNDS_CHECK_Rng void <l:$346, c:$345>
In BB02 New Global ArrBnds Assertion: (0, 0) ($0,$0) [idx: {IntCns 0};len: {ARR_LENGTH($380)}] in range index=#03, mask=0000000000000004
GenTreeNode creates assertion:
N003 ( 3, 3) [000123] ---X--------- * ARR_LENGTH int $3c2
In BB04 New Global Constant Assertion: (128, 0) ($80,$0) V00.02 != null index=#04, mask=0000000000000008
GenTreeNode creates assertion:
N004 ( 8, 11) [000124] ---X--------- * ARR_BOUNDS_CHECK_Rng void $350
In BB04 New Global ArrBnds Assertion: (0, 0) ($0,$0) [idx: {IntCns 0};len: {ARR_LENGTH($80)}] in range index=#05, mask=0000000000000010
GenTreeNode creates assertion:
N003 ( 5, 4) [000134] ---X--------- * ARR_LENGTH int $3c3
In BB05 New Global Constant Assertion: (129, 0) ($81,$0) V05.02 != null index=#06, mask=0000000000000020
GenTreeNode creates assertion:
N004 ( 10, 12) [000135] ---X--------- * ARR_BOUNDS_CHECK_Rng void $356
In BB05 New Global ArrBnds Assertion: (0, 0) ($0,$0) [idx: {IntCns 0};len: {ARR_LENGTH($81)}] in range index=#07, mask=0000000000000040
GenTreeNode creates assertion:
N002 ( 3, 3) [000141] ------------- * CAST int <- ushort <- int $20c
In BB05 New Global Subrange Assertion: (192, 0) ($c0,$0) V01.02 in [0..65535] index=#08, mask=0000000000000080
BB01 valueGen = 0000000000000000 => BB03 valueGen = 0000000000000000,
BB02 valueGen = 0000000000000006
BB03 valueGen = 0000000000000000 => BB05 valueGen = 0000000000000000,
BB04 valueGen = 0000000000000018
BB05 valueGen = 0000000000000060AssertionPropCallback::StartMerge: BB01 in -> 0000000000000000
AssertionPropCallback::EndMerge : BB01 in -> 0000000000000000
AssertionPropCallback::Changed : BB01 before out -> 00000000000000FF; after out -> 0000000000000000;
jumpDest before out -> 00000000000000FF; jumpDest after out -> 0000000000000000;
AssertionPropCallback::StartMerge: BB02 in -> 00000000000000FF
AssertionPropCallback::Merge : BB02 in -> 00000000000000FF, predBlock BB01 out -> 0000000000000000
AssertionPropCallback::EndMerge : BB02 in -> 0000000000000000
AssertionPropCallback::Changed : BB02 before out -> 00000000000000FF; after out -> 0000000000000006;
jumpDest before out -> 00000000000000FF; jumpDest after out -> 0000000000000000;
AssertionPropCallback::StartMerge: BB03 in -> 00000000000000FF
AssertionPropCallback::Merge : BB03 in -> 00000000000000FF, predBlock BB01 out -> 0000000000000000
AssertionPropCallback::Merge : BB03 in -> 0000000000000000, predBlock BB02 out -> 0000000000000006
AssertionPropCallback::EndMerge : BB03 in -> 0000000000000000
AssertionPropCallback::Changed : BB03 before out -> 00000000000000FF; after out -> 0000000000000000;
jumpDest before out -> 00000000000000FF; jumpDest after out -> 0000000000000000;
AssertionPropCallback::StartMerge: BB03 in -> 0000000000000000
AssertionPropCallback::Merge : BB03 in -> 0000000000000000, predBlock BB01 out -> 0000000000000000
AssertionPropCallback::Merge : BB03 in -> 0000000000000000, predBlock BB02 out -> 0000000000000006
AssertionPropCallback::EndMerge : BB03 in -> 0000000000000000
AssertionPropCallback::Unchanged : BB03 out -> 0000000000000000; jumpDest out -> 0000000000000000
AssertionPropCallback::StartMerge: BB04 in -> 00000000000000FF
AssertionPropCallback::Merge : BB04 in -> 00000000000000FF, predBlock BB03 out -> 0000000000000000
AssertionPropCallback::EndMerge : BB04 in -> 0000000000000000
AssertionPropCallback::Changed : BB04 before out -> 00000000000000FF; after out -> 0000000000000018;
jumpDest before out -> 00000000000000FF; jumpDest after out -> 0000000000000000;
AssertionPropCallback::StartMerge: BB05 in -> 00000000000000FF
AssertionPropCallback::Merge : BB05 in -> 00000000000000FF, predBlock BB03 out -> 0000000000000000
AssertionPropCallback::Merge : BB05 in -> 0000000000000000, predBlock BB04 out -> 0000000000000018
AssertionPropCallback::EndMerge : BB05 in -> 0000000000000000
AssertionPropCallback::Changed : BB05 before out -> 00000000000000FF; after out -> 0000000000000060;
jumpDest before out -> 00000000000000FF; jumpDest after out -> 0000000000000000;
AssertionPropCallback::StartMerge: BB05 in -> 0000000000000000
AssertionPropCallback::Merge : BB05 in -> 0000000000000000, predBlock BB03 out -> 0000000000000000
AssertionPropCallback::Merge : BB05 in -> 0000000000000000, predBlock BB04 out -> 0000000000000018
AssertionPropCallback::EndMerge : BB05 in -> 0000000000000000
AssertionPropCallback::Unchanged : BB05 out -> 0000000000000060; jumpDest out -> 0000000000000000
BB01 valueIn = 0000000000000000 valueOut = 0000000000000000 => BB03 valueOut= 0000000000000000
BB02 valueIn = 0000000000000000 valueOut = 0000000000000006
BB03 valueIn = 0000000000000000 valueOut = 0000000000000000 => BB05 valueOut= 0000000000000000
BB04 valueIn = 0000000000000000 valueOut = 0000000000000018
BB05 valueIn = 0000000000000000 valueOut = 0000000000000060
Propagating 0000000000000000 assertions for BB01, stmt [000005], tree [000001], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000005], tree [000085], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000005], tree [000142], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000005], tree [000143], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000005], tree [000144], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000005], tree [000145], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000005], tree [000002], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000005], tree [000003], tree -> 0
Propagating 0000000000000000 assertions for BB02, stmt [000034], tree [000030], tree -> 0
Propagating 0000000000000000 assertions for BB02, stmt [000034], tree [000031], tree -> 0
Propagating 0000000000000000 assertions for BB02, stmt [000034], tree [000032], tree -> 0
Propagating 0000000000000000 assertions for BB02, stmt [000034], tree [000033], tree -> 0
Propagating 0000000000000000 assertions for BB02, stmt [000040], tree [000035], tree -> 0
Propagating 0000000000000000 assertions for BB02, stmt [000040], tree [000086], tree -> 0
Propagating 0000000000000000 assertions for BB02, stmt [000040], tree [000087], tree -> 0
Propagating 0000000000000000 assertions for BB02, stmt [000040], tree [000036], tree -> 0
Propagating 0000000000000000 assertions for BB02, stmt [000040], tree [000088], tree -> 0
Propagating 0000000000000000 assertions for BB02, stmt [000040], tree [000091], tree -> 2
Propagating 0000000000000002 assertions for BB02, stmt [000040], tree [000092], tree -> 3
Propagating 0000000000000006 assertions for BB02, stmt [000040], tree [000089], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000040], tree [000096], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000040], tree [000097], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000040], tree [000037], tree -> 2
Non-null prop for index #02 in BB02:
N011 ( 5, 3) [000037] a--XG-------- * IND ushort <l:$203, c:$4c0>
Propagating 0000000000000006 assertions for BB02, stmt [000040], tree [000098], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000040], tree [000099], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000040], tree [000038], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000040], tree [000039], tree -> 0
Re-morphing this stmt:
( 19, 24) [000040] ------------- * STMT void (IL 0x00B...0x012)
N011 ( 5, 3) [000037] a---GO------- | /--* IND ushort <l:$203, c:$4c0>
N009 ( 1, 1) [000096] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem] $48
N010 ( 3, 3) [000097] -------N----- | | \--* ADD byref $440
N008 ( 1, 1) [000089] ------------- | | \--* LCL_VAR ref V13 tmp5 u:3 (last use) <l:$340, c:$380>
N012 ( 13, 14) [000098] ---XG-------- | /--* COMMA ushort <l:$204, c:$500>
N007 ( 8, 11) [000092] ---X--------- | | \--* ARR_BOUNDS_CHECK_Rng void <l:$346, c:$345>
N004 ( 1, 1) [000036] ------------- | | +--* CNS_INT int 0 $40
N006 ( 3, 3) [000091] ---X--------- | | \--* ARR_LENGTH int <l:$3c1, c:$3c0>
N005 ( 1, 1) [000088] ------------- | | \--* LCL_VAR ref V13 tmp5 u:3 <l:$340, c:$380>
N013 ( 19, 24) [000099] -A-XG-------- | /--* COMMA ushort <l:$204, c:$500>
N001 ( 6, 10) [000035] ----G-------- | | | /--* CLS_VAR ref Hnd=0x924808 Fseq[s_8] <l:$340, c:$380>
N003 ( 6, 10) [000087] -A--G---R---- | | \--* ASG ref <l:$340, c:$380>
N002 ( 1, 1) [000086] D------N----- | | \--* LCL_VAR ref V13 tmp5 d:3 <l:$340, c:$380>
N015 ( 19, 24) [000039] -A-XG---R---- \--* ASG ushort <l:$204, c:$500>
N014 ( 2, 2) [000038] D------N----- \--* LCL_VAR ushort V02 arg2 d:3 <l:$203, c:$4c0>
New refCnts for V02: refCnt = 5, refCntWtd = 3.50
New refCnts for V13: refCnt = 4, refCntWtd = 4
New refCnts for V13: refCnt = 5, refCntWtd = 5
New refCnts for V13: refCnt = 6, refCntWtd = 6
optAssertionPropMain morphed tree:
N011 ( 5, 3) [000037] a---GO------- /--* IND ushort <l:$203, c:$4c0>
N009 ( 1, 1) [000096] ------------- | | /--* CNS_INT int 8 Fseq[#FirstElem] $48
N010 ( 3, 3) [000097] -------N----- | \--* ADD byref $440
N008 ( 1, 1) [000089] ------------- | \--* LCL_VAR ref V13 tmp5 u:3 (last use) <l:$340, c:$380>
N012 ( 13, 14) [000098] ---XGO------- /--* COMMA ushort <l:$204, c:$500>
N007 ( 8, 11) [000092] ---X--------- | \--* ARR_BOUNDS_CHECK_Rng void <l:$346, c:$345>
N004 ( 1, 1) [000036] ------------- | +--* CNS_INT int 0 $40
N006 ( 3, 3) [000091] ---X--------- | \--* ARR_LENGTH int <l:$3c1, c:$3c0>
N005 ( 1, 1) [000088] ------------- | \--* LCL_VAR ref V13 tmp5 u:3 <l:$340, c:$380>
N013 ( 19, 24) [000099] -A-XGO------- /--* COMMA ushort <l:$204, c:$500>
N001 ( 6, 10) [000035] ----G-------- | | /--* CLS_VAR ref Hnd=0x924808 Fseq[s_8] <l:$340, c:$380>
N003 ( 6, 10) [000087] -A--G---R---- | \--* ASG ref <l:$340, c:$380>
N002 ( 1, 1) [000086] D------N----- | \--* LCL_VAR ref V13 tmp5 d:3 <l:$340, c:$380>
N015 ( 19, 24) [000039] -A-XGO--R---- * ASG ushort <l:$204, c:$500>
N014 ( 2, 2) [000038] D------N----- \--* LCL_VAR ushort V02 arg2 d:3 <l:$203, c:$4c0>
Propagating 0000000000000006 assertions for BB02, stmt [000050], tree [000045], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000050], tree [000048], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000050], tree [000049], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000061], tree [000100], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000061], tree [000102], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000061], tree [000104], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000061], tree [000055], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000061], tree [000056], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000061], tree [000057], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000061], tree [000052], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000061], tree [000053], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000061], tree [000054], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000061], tree [000105], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000061], tree [000103], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000061], tree [000101], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000061], tree [000058], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000061], tree [000059], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000061], tree [000060], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000064], tree [000106], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000064], tree [000108], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000064], tree [000047], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000064], tree [000051], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000064], tree [000046], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000064], tree [000109], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000064], tree [000107], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000064], tree [000062], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000064], tree [000063], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000070], tree [000065], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000070], tree [000068], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000070], tree [000069], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000081], tree [000110], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000081], tree [000112], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000081], tree [000114], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000081], tree [000075], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000081], tree [000076], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000081], tree [000077], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000081], tree [000072], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000081], tree [000073], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000081], tree [000074], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000081], tree [000115], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000081], tree [000113], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000081], tree [000111], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000081], tree [000078], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000081], tree [000079], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000081], tree [000080], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000084], tree [000116], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000084], tree [000118], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000084], tree [000067], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000084], tree [000071], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000084], tree [000066], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000084], tree [000119], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000084], tree [000117], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000084], tree [000082], tree -> 0
Propagating 0000000000000006 assertions for BB02, stmt [000084], tree [000083], tree -> 0
Propagating 0000000000000000 assertions for BB03, stmt [000011], tree [000146], tree -> 0
Propagating 0000000000000000 assertions for BB03, stmt [000011], tree [000008], tree -> 0
Propagating 0000000000000000 assertions for BB03, stmt [000011], tree [000009], tree -> 0
Propagating 0000000000000000 assertions for BB04, stmt [000028], tree [000024], tree -> 0
Propagating 0000000000000000 assertions for BB04, stmt [000028], tree [000023], tree -> 0
Propagating 0000000000000000 assertions for BB04, stmt [000028], tree [000123], tree -> 4
Propagating 0000000000000008 assertions for BB04, stmt [000028], tree [000124], tree -> 5
Propagating 0000000000000018 assertions for BB04, stmt [000028], tree [000121], tree -> 0
Propagating 0000000000000018 assertions for BB04, stmt [000028], tree [000128], tree -> 0
Propagating 0000000000000018 assertions for BB04, stmt [000028], tree [000129], tree -> 0
Propagating 0000000000000018 assertions for BB04, stmt [000028], tree [000025], tree -> 4
Non-null prop for index #04 in BB04:
N008 ( 5, 3) [000025] a--XG-------- * IND ushort <l:$208, c:$4c2>
Propagating 0000000000000018 assertions for BB04, stmt [000028], tree [000131], tree -> 0
Propagating 0000000000000018 assertions for BB04, stmt [000028], tree [000026], tree -> 0
Propagating 0000000000000018 assertions for BB04, stmt [000028], tree [000027], tree -> 0
Re-morphing this stmt:
( 13, 14) [000028] ------------- * STMT void (IL 0x030...0x033)
N010 ( 0, 0) [000026] ------------- | /--* NOP void $5c0
N011 ( 13, 14) [000027] ---XG-------- \--* COMMA void $55c
N008 ( 5, 3) [000025] a---GO------- | /--* IND ushort <l:$208, c:$4c2>
N006 ( 1, 1) [000128] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem] $48
N007 ( 3, 3) [000129] -------N----- | | \--* ADD byref $441
N005 ( 1, 1) [000121] ------------- | | \--* LCL_VAR ref V00 arg0 u:2 (last use) $80
N009 ( 13, 14) [000131] ---XG-------- \--* COMMA void <l:$209, c:$501>
N004 ( 8, 11) [000124] ---X--------- \--* ARR_BOUNDS_CHECK_Rng void $350
N001 ( 1, 1) [000024] ------------- +--* CNS_INT int 0 $40
N003 ( 3, 3) [000123] ---X--------- \--* ARR_LENGTH int $3c2
N002 ( 1, 1) [000023] ------------- \--* LCL_VAR ref V00 arg0 u:2 $80
New refCnts for V00: refCnt = 5, refCntWtd = 3.50
New refCnts for V00: refCnt = 6, refCntWtd = 4
optAssertionPropMain morphed tree:
N008 ( 5, 3) [000025] a---GO------- /--* IND ushort <l:$208, c:$4c2>
N006 ( 1, 1) [000128] ------------- | | /--* CNS_INT int 8 Fseq[#FirstElem] $48
N007 ( 3, 3) [000129] -------N----- | \--* ADD byref $441
N005 ( 1, 1) [000121] ------------- | \--* LCL_VAR ref V00 arg0 u:2 (last use) $80
N009 ( 13, 14) [000131] ---XGO------- * COMMA void <l:$209, c:$501>
N004 ( 8, 11) [000124] ---X--------- \--* ARR_BOUNDS_CHECK_Rng void $350
N001 ( 1, 1) [000024] ------------- +--* CNS_INT int 0 $40
N003 ( 3, 3) [000123] ---X--------- \--* ARR_LENGTH int $3c2
N002 ( 1, 1) [000023] ------------- \--* LCL_VAR ref V00 arg0 u:2 $80
Propagating 0000000000000000 assertions for BB05, stmt [000018], tree [000014], tree -> 0
Propagating 0000000000000000 assertions for BB05, stmt [000018], tree [000013], tree -> 0
Propagating 0000000000000000 assertions for BB05, stmt [000018], tree [000134], tree -> 6
Propagating 0000000000000020 assertions for BB05, stmt [000018], tree [000135], tree -> 7
Propagating 0000000000000060 assertions for BB05, stmt [000018], tree [000132], tree -> 0
Propagating 0000000000000060 assertions for BB05, stmt [000018], tree [000137], tree -> 0
Propagating 0000000000000060 assertions for BB05, stmt [000018], tree [000138], tree -> 0
Propagating 0000000000000060 assertions for BB05, stmt [000018], tree [000016], tree -> 6
Non-null prop for index #06 in BB05:
N008 ( 7, 4) [000016] a--XG--N----- * IND byte $20a
Propagating 0000000000000060 assertions for BB05, stmt [000018], tree [000139], tree -> 0
Propagating 0000000000000060 assertions for BB05, stmt [000018], tree [000015], tree -> 0
Propagating 0000000000000060 assertions for BB05, stmt [000018], tree [000017], tree -> 0
Re-morphing this stmt:
( 20, 19) [000018] ------------- * STMT void (IL 0x034...0x038)
N010 ( 2, 2) [000015] ------------- | /--* LCL_VAR int V03 arg3 u:2 (last use) $100
N011 ( 20, 19) [000017] -A-XG-------- \--* ASG byte $VN.Void
N008 ( 7, 4) [000016] a---GO-N----- | /--* IND byte $20a
N006 ( 1, 1) [000137] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem] $48
N007 ( 5, 4) [000138] -------N----- | | \--* ADD byref $442
N005 ( 3, 2) [000132] ------------- | | \--* LCL_VAR ref V05 arg5 u:2 (last use) $81
N009 ( 17, 16) [000139] ---XG--N----- \--* COMMA byte $VN.Void
N004 ( 10, 12) [000135] ---X--------- \--* ARR_BOUNDS_CHECK_Rng void $356
N001 ( 1, 1) [000014] ------------- +--* CNS_INT int 0 $40
N003 ( 5, 4) [000134] ---X--------- \--* ARR_LENGTH int $3c3
N002 ( 3, 2) [000013] ------------- \--* LCL_VAR ref V05 arg5 u:2 $81
New refCnts for V05: refCnt = 3, refCntWtd = 3
New refCnts for V05: refCnt = 4, refCntWtd = 4
New refCnts for V03: refCnt = 4, refCntWtd = 4
optAssertionPropMain morphed tree:
N010 ( 2, 2) [000015] ------------- /--* LCL_VAR int V03 arg3 u:2 (last use) $100
N011 ( 16, 17) [000017] -A-XGO------- * ASG byte $VN.Void
N008 ( 5, 3) [000016] a---GO-N----- | /--* IND byte $20a
N006 ( 1, 1) [000137] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem] $48
N007 ( 3, 3) [000138] -------N----- | | \--* ADD byref $442
N005 ( 1, 1) [000132] ------------- | | \--* LCL_VAR ref V05 arg5 u:2 (last use) $81
N009 ( 13, 14) [000139] ---XGO-N----- \--* COMMA byte $VN.Void
N004 ( 8, 11) [000135] ---X--------- \--* ARR_BOUNDS_CHECK_Rng void $356
N001 ( 1, 1) [000014] ------------- +--* CNS_INT int 0 $40
N003 ( 3, 3) [000134] ---X--------- \--* ARR_LENGTH int $3c3
N002 ( 1, 1) [000013] ------------- \--* LCL_VAR ref V05 arg5 u:2 $81
Propagating 0000000000000060 assertions for BB05, stmt [000021], tree [000019], tree -> 0
Propagating 0000000000000060 assertions for BB05, stmt [000021], tree [000141], tree -> 0
Propagating 0000000000000060 assertions for BB05, stmt [000021], tree [000020], tree -> 0
*************** In fgDebugCheckBBlist
*************** In OptimizeRangeChecks()
Blocks/trees before phase
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..004)-> BB03 ( cond ) i label target
BB02 [0001] 1 BB01 0.50 [004..02C) i gcsafe
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target
BB04 [0003] 1 BB03 0.50 [030..034) i idxlen
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..004) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
( 8, 8) [000005] ------------- * STMT void (IL 0x000...0x002)
N009 ( 8, 8) [000004] -A----------- \--* JTRUE void
N007 ( 1, 1) [000002] ------------- | /--* CNS_INT int 0 $40
N008 ( 6, 6) [000003] JA-----N--S-- \--* EQ int $201
N005 ( 1, 1) [000144] ------------- | /--* LCL_VAR int V14 cse0 $200
N006 ( 4, 4) [000145] -A--------S-- \--* COMMA int $200
N002 ( 3, 3) [000085] ----------S-- | /--* CAST int <- bool <- int $200
N001 ( 2, 2) [000001] ------------- | | \--* LCL_VAR int V04 arg4 u:2 $140
N004 ( 3, 3) [000143] -A------R---- \--* ASG int $VN.Void
N003 ( 1, 1) [000142] D------N----- \--* LCL_VAR int V14 cse0 $200
------------ BB02 [004..02C), preds={BB01} succs={BB03}
***** BB02, stmt 2
( 14, 17) [000034] ------------- * STMT void (IL 0x004...0x00A)
N002 ( 7, 11) [000031] ----G-------- | /--* CAST long <- int <l:$2c1, c:$2c0>
N001 ( 6, 10) [000030] ----G-------- | | \--* CLS_VAR int Hnd=0x9247f8 Fseq[s_3] <l:$202, c:$280>
N004 ( 14, 17) [000033] -A--G---R---- \--* ASG long <l:$2c1, c:$2c0>
N003 ( 3, 2) [000032] D------N----- \--* LCL_VAR long V06 loc0 d:3 <l:$2c1, c:$2c0>
***** BB02, stmt 3
( 19, 24) [000040] ------------- * STMT void (IL 0x00B...0x012)
N011 ( 5, 3) [000037] a---GO------- | /--* IND ushort <l:$203, c:$4c0>
N009 ( 1, 1) [000096] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem] $48
N010 ( 3, 3) [000097] -------N----- | | \--* ADD byref $440
N008 ( 1, 1) [000089] ------------- | | \--* LCL_VAR ref V13 tmp5 u:3 (last use) <l:$340, c:$380>
N012 ( 13, 14) [000098] ---XGO------- | /--* COMMA ushort <l:$204, c:$500>
N007 ( 8, 11) [000092] ---X--------- | | \--* ARR_BOUNDS_CHECK_Rng void <l:$346, c:$345>
N004 ( 1, 1) [000036] ------------- | | +--* CNS_INT int 0 $40
N006 ( 3, 3) [000091] ---X--------- | | \--* ARR_LENGTH int <l:$3c1, c:$3c0>
N005 ( 1, 1) [000088] ------------- | | \--* LCL_VAR ref V13 tmp5 u:3 <l:$340, c:$380>
N013 ( 19, 24) [000099] -A-XGO------- | /--* COMMA ushort <l:$204, c:$500>
N001 ( 6, 10) [000035] ----G-------- | | | /--* CLS_VAR ref Hnd=0x924808 Fseq[s_8] <l:$340, c:$380>
N003 ( 6, 10) [000087] -A--G---R---- | | \--* ASG ref <l:$340, c:$380>
N002 ( 1, 1) [000086] D------N----- | | \--* LCL_VAR ref V13 tmp5 d:3 <l:$340, c:$380>
N015 ( 19, 24) [000039] -A-XGO--R---- \--* ASG ushort <l:$204, c:$500>
N014 ( 2, 2) [000038] D------N----- \--* LCL_VAR ushort V02 arg2 d:3 <l:$203, c:$4c0>
***** BB02, stmt 4
( 6, 10) [000050] ------------- * STMT void (IL 0x016...0x027)
N001 ( 6, 10) [000045] ----G-------- | /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt] <l:$349, c:$382>
N003 ( 6, 10) [000049] -A--G---R---- \--* ASG ref <l:$349, c:$382>
N002 ( 1, 1) [000048] D------N----- \--* LCL_VAR ref V09 tmp1 d:3 <l:$349, c:$382>
***** BB02, stmt 5
( 27, 31) [000061] ------------- * STMT void (IL ???... ???)
N013 ( 23, 28) [000058] --CXG-------- | /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $205
N007 ( 1, 1) [000052] ------------- arg0 in r0 | | +--* LCL_VAR ref V09 tmp1 u:3 <l:$349, c:$382>
N008 ( 3, 7) [000053] ------------- arg1 in r1 | | +--* CNS_INT(h) int 0x924994 token $244
N009 ( 3, 7) [000054] ------------- arg2 in r2 | | \--* CNS_INT(h) int 0x924B10 token $245
N015 ( 27, 31) [000060] -ACXG---R---- \--* ASG int $205
N014 ( 3, 2) [000059] D------N----- \--* LCL_VAR int V10 tmp2 d:3 $283
***** BB02, stmt 6
( 24, 10) [000064] ------------- * STMT void (IL ???... ???)
N009 ( 24, 10) [000063] --CXG-------- \--* CALL ind void $VN.Void
N008 ( 3, 2) [000062] ------------- calli tgt \--* LCL_VAR int V10 tmp2 u:3 (last use) $283
N004 ( 1, 1) [000051] ------------- this in r0 +--* LCL_VAR ref V09 tmp1 u:3 (last use) <l:$349, c:$382>
N005 ( 3, 2) [000046] ------------- arg1 r2,r3 \--* LCL_VAR long V06 loc0 u:3 (last use) <l:$2c1, c:$2c0>
***** BB02, stmt 7
( 6, 10) [000070] ------------- * STMT void (IL 0x021... ???)
N001 ( 6, 10) [000065] ----G-------- | /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt] <l:$34b, c:$388>
N003 ( 6, 10) [000069] -A--G---R---- \--* ASG ref <l:$34b, c:$388>
N002 ( 1, 1) [000068] D------N----- \--* LCL_VAR ref V11 tmp3 d:3 <l:$34b, c:$388>
***** BB02, stmt 8
( 27, 31) [000081] ------------- * STMT void (IL ???... ???)
N013 ( 23, 28) [000078] --CXG-------- | /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $206
N007 ( 1, 1) [000072] ------------- arg0 in r0 | | +--* LCL_VAR ref V11 tmp3 u:3 <l:$34b, c:$388>
N008 ( 3, 7) [000073] ------------- arg1 in r1 | | +--* CNS_INT(h) int 0x924994 token $244
N009 ( 3, 7) [000074] ------------- arg2 in r2 | | \--* CNS_INT(h) int 0x924B74 token $246
N015 ( 27, 31) [000080] -ACXG---R---- \--* ASG int $206
N014 ( 3, 2) [000079] D------N----- \--* LCL_VAR int V12 tmp4 d:3 $287
***** BB02, stmt 9
( 23, 10) [000084] ------------- * STMT void (IL ???... ???)
N009 ( 23, 10) [000083] --CXG-------- \--* CALL ind void $VN.Void
N008 ( 3, 2) [000082] ------------- calli tgt \--* LCL_VAR int V12 tmp4 u:3 (last use) $287
N004 ( 1, 1) [000071] ------------- this in r0 +--* LCL_VAR ref V11 tmp3 u:3 (last use) <l:$34b, c:$388>
N005 ( 2, 2) [000066] ------------- arg1 in r1 \--* LCL_VAR int V02 arg2 u:3 (last use) <l:$203, c:$4c0>
------------ BB03 [02C..030) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 10
( 5, 5) [000011] ------------- * STMT void (IL 0x02C...0x02E)
N004 ( 5, 5) [000010] ------------- \--* JTRUE void
N002 ( 1, 1) [000008] ------------- | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000009] J------N--S-- \--* NE int $207
N001 ( 1, 1) [000146] ------------- \--* LCL_VAR int V14 cse0 $200
------------ BB04 [030..034), preds={BB03} succs={BB05}
***** BB04, stmt 11
( 13, 14) [000028] ------------- * STMT void (IL 0x030...0x033)
N008 ( 5, 3) [000025] a---GO------- | /--* IND ushort <l:$208, c:$4c2>
N006 ( 1, 1) [000128] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem] $48
N007 ( 3, 3) [000129] -------N----- | | \--* ADD byref $441
N005 ( 1, 1) [000121] ------------- | | \--* LCL_VAR ref V00 arg0 u:2 (last use) $80
N009 ( 13, 14) [000131] ---XGO------- \--* COMMA void <l:$209, c:$501>
N004 ( 8, 11) [000124] ---X--------- \--* ARR_BOUNDS_CHECK_Rng void $350
N001 ( 1, 1) [000024] ------------- +--* CNS_INT int 0 $40
N003 ( 3, 3) [000123] ---X--------- \--* ARR_LENGTH int $3c2
N002 ( 1, 1) [000023] ------------- \--* LCL_VAR ref V00 arg0 u:2 $80
------------ BB05 [034..03B) (return), preds={BB03,BB04} succs={}
***** BB05, stmt 12
( 16, 17) [000018] ------------- * STMT void (IL 0x034...0x038)
N010 ( 2, 2) [000015] ------------- | /--* LCL_VAR int V03 arg3 u:2 (last use) $100
N011 ( 16, 17) [000017] -A-XGO------- \--* ASG byte $VN.Void
N008 ( 5, 3) [000016] a---GO-N----- | /--* IND byte $20a
N006 ( 1, 1) [000137] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem] $48
N007 ( 3, 3) [000138] -------N----- | | \--* ADD byref $442
N005 ( 1, 1) [000132] ------------- | | \--* LCL_VAR ref V05 arg5 u:2 (last use) $81
N009 ( 13, 14) [000139] ---XGO-N----- \--* COMMA byte $VN.Void
N004 ( 8, 11) [000135] ---X--------- \--* ARR_BOUNDS_CHECK_Rng void $356
N001 ( 1, 1) [000014] ------------- +--* CNS_INT int 0 $40
N003 ( 3, 3) [000134] ---X--------- \--* ARR_LENGTH int $3c3
N002 ( 1, 1) [000013] ------------- \--* LCL_VAR ref V05 arg5 u:2 $81
***** BB05, stmt 13
( 4, 4) [000021] ------------- * STMT void (IL 0x039...0x03A)
N003 ( 4, 4) [000020] ------------- \--* RETURN int $28a
N002 ( 3, 3) [000141] ------------- \--* CAST int <- ushort <- int $20c
N001 ( 2, 2) [000019] ------------- \--* LCL_VAR int V01 arg1 u:2 (last use) $c0
-------------------------------------------------------------------------------------------------------------------
ArrSize for lengthVN:3C0 = 0
[RangeCheck::GetRange] BB02N004 ( 1, 1) [000036] ------------- * CNS_INT int 0 $40
{
Computed Range [000036] => <0, 0>
}
Does overflow [000036]?
Range value <0, 0>
[RangeCheck::Widen] BB02,
[000036]
<0, 0> BetweenBounds <0, [000091]>
VN03C0 upper bound is: {ARR_LENGTH($380)}
Array size is: 0
ArrSize for lengthVN:3C2 = 0
[RangeCheck::GetRange] BB04N001 ( 1, 1) [000024] ------------- * CNS_INT int 0 $40
{
Computed Range [000024] => <0, 0>
}
Does overflow [000024]?
Range value <0, 0>
[RangeCheck::Widen] BB04,
[000024]
<0, 0> BetweenBounds <0, [000123]>
VN03C2 upper bound is: {ARR_LENGTH($80)}
Array size is: 0
ArrSize for lengthVN:3C3 = 0
[RangeCheck::GetRange] BB05N001 ( 1, 1) [000014] ------------- * CNS_INT int 0 $40
{
Computed Range [000014] => <0, 0>
}
Does overflow [000014]?
Range value <0, 0>
[RangeCheck::Widen] BB05,
[000014]
<0, 0> BetweenBounds <0, [000134]>
VN03C3 upper bound is: {ARR_LENGTH($81)}
Array size is: 0
*************** 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 ( cond ) i label target
BB02 [0001] 1 BB01 0.50 [004..02C) i gcsafe
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target
BB04 [0003] 1 BB03 0.50 [030..034) i idxlen
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..004) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1
( 8, 8) [000005] ------------- * STMT void (IL 0x000...0x002)
N009 ( 8, 8) [000004] -A----------- \--* JTRUE void
N007 ( 1, 1) [000002] ------------- | /--* CNS_INT int 0 $40
N008 ( 6, 6) [000003] JA-----N--S-- \--* EQ int $201
N005 ( 1, 1) [000144] ------------- | /--* LCL_VAR int V14 cse0 $200
N006 ( 4, 4) [000145] -A--------S-- \--* COMMA int $200
N002 ( 3, 3) [000085] ----------S-- | /--* CAST int <- bool <- int $200
N001 ( 2, 2) [000001] ------------- | | \--* LCL_VAR int V04 arg4 u:2 $140
N004 ( 3, 3) [000143] -A------R---- \--* ASG int $VN.Void
N003 ( 1, 1) [000142] D------N----- \--* LCL_VAR int V14 cse0 $200
------------ BB02 [004..02C), preds={BB01} succs={BB03}
***** BB02, stmt 2
( 14, 17) [000034] ------------- * STMT void (IL 0x004...0x00A)
N002 ( 7, 11) [000031] ----G-------- | /--* CAST long <- int <l:$2c1, c:$2c0>
N001 ( 6, 10) [000030] ----G-------- | | \--* CLS_VAR int Hnd=0x9247f8 Fseq[s_3] <l:$202, c:$280>
N004 ( 14, 17) [000033] -A--G---R---- \--* ASG long <l:$2c1, c:$2c0>
N003 ( 3, 2) [000032] D------N----- \--* LCL_VAR long V06 loc0 d:3 <l:$2c1, c:$2c0>
***** BB02, stmt 3
( 19, 24) [000040] ------------- * STMT void (IL 0x00B...0x012)
N011 ( 5, 3) [000037] a---GO------- | /--* IND ushort <l:$203, c:$4c0>
N009 ( 1, 1) [000096] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem] $48
N010 ( 3, 3) [000097] -------N----- | | \--* ADD byref $440
N008 ( 1, 1) [000089] ------------- | | \--* LCL_VAR ref V13 tmp5 u:3 (last use) <l:$340, c:$380>
N012 ( 13, 14) [000098] ---XGO------- | /--* COMMA ushort <l:$204, c:$500>
N007 ( 8, 11) [000092] ---X--------- | | \--* ARR_BOUNDS_CHECK_Rng void <l:$346, c:$345>
N004 ( 1, 1) [000036] ------------- | | +--* CNS_INT int 0 $40
N006 ( 3, 3) [000091] ---X--------- | | \--* ARR_LENGTH int <l:$3c1, c:$3c0>
N005 ( 1, 1) [000088] ------------- | | \--* LCL_VAR ref V13 tmp5 u:3 <l:$340, c:$380>
N013 ( 19, 24) [000099] -A-XGO------- | /--* COMMA ushort <l:$204, c:$500>
N001 ( 6, 10) [000035] ----G-------- | | | /--* CLS_VAR ref Hnd=0x924808 Fseq[s_8] <l:$340, c:$380>
N003 ( 6, 10) [000087] -A--G---R---- | | \--* ASG ref <l:$340, c:$380>
N002 ( 1, 1) [000086] D------N----- | | \--* LCL_VAR ref V13 tmp5 d:3 <l:$340, c:$380>
N015 ( 19, 24) [000039] -A-XGO--R---- \--* ASG ushort <l:$204, c:$500>
N014 ( 2, 2) [000038] D------N----- \--* LCL_VAR ushort V02 arg2 d:3 <l:$203, c:$4c0>
***** BB02, stmt 4
( 6, 10) [000050] ------------- * STMT void (IL 0x016...0x027)
N001 ( 6, 10) [000045] ----G-------- | /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt] <l:$349, c:$382>
N003 ( 6, 10) [000049] -A--G---R---- \--* ASG ref <l:$349, c:$382>
N002 ( 1, 1) [000048] D------N----- \--* LCL_VAR ref V09 tmp1 d:3 <l:$349, c:$382>
***** BB02, stmt 5
( 27, 31) [000061] ------------- * STMT void (IL ???... ???)
N013 ( 23, 28) [000058] --CXG-------- | /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $205
N007 ( 1, 1) [000052] ------------- arg0 in r0 | | +--* LCL_VAR ref V09 tmp1 u:3 <l:$349, c:$382>
N008 ( 3, 7) [000053] ------------- arg1 in r1 | | +--* CNS_INT(h) int 0x924994 token $244
N009 ( 3, 7) [000054] ------------- arg2 in r2 | | \--* CNS_INT(h) int 0x924B10 token $245
N015 ( 27, 31) [000060] -ACXG---R---- \--* ASG int $205
N014 ( 3, 2) [000059] D------N----- \--* LCL_VAR int V10 tmp2 d:3 $283
***** BB02, stmt 6
( 24, 10) [000064] ------------- * STMT void (IL ???... ???)
N009 ( 24, 10) [000063] --CXG-------- \--* CALL ind void $VN.Void
N008 ( 3, 2) [000062] ------------- calli tgt \--* LCL_VAR int V10 tmp2 u:3 (last use) $283
N004 ( 1, 1) [000051] ------------- this in r0 +--* LCL_VAR ref V09 tmp1 u:3 (last use) <l:$349, c:$382>
N005 ( 3, 2) [000046] ------------- arg1 r2,r3 \--* LCL_VAR long V06 loc0 u:3 (last use) <l:$2c1, c:$2c0>
***** BB02, stmt 7
( 6, 10) [000070] ------------- * STMT void (IL 0x021... ???)
N001 ( 6, 10) [000065] ----G-------- | /--* CLS_VAR ref Hnd=0x9247d8 Fseq[s_rt] <l:$34b, c:$388>
N003 ( 6, 10) [000069] -A--G---R---- \--* ASG ref <l:$34b, c:$388>
N002 ( 1, 1) [000068] D------N----- \--* LCL_VAR ref V11 tmp3 d:3 <l:$34b, c:$388>
***** BB02, stmt 8
( 27, 31) [000081] ------------- * STMT void (IL ???... ???)
N013 ( 23, 28) [000078] --CXG-------- | /--* CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $206
N007 ( 1, 1) [000072] ------------- arg0 in r0 | | +--* LCL_VAR ref V11 tmp3 u:3 <l:$34b, c:$388>
N008 ( 3, 7) [000073] ------------- arg1 in r1 | | +--* CNS_INT(h) int 0x924994 token $244
N009 ( 3, 7) [000074] ------------- arg2 in r2 | | \--* CNS_INT(h) int 0x924B74 token $246
N015 ( 27, 31) [000080] -ACXG---R---- \--* ASG int $206
N014 ( 3, 2) [000079] D------N----- \--* LCL_VAR int V12 tmp4 d:3 $287
***** BB02, stmt 9
( 23, 10) [000084] ------------- * STMT void (IL ???... ???)
N009 ( 23, 10) [000083] --CXG-------- \--* CALL ind void $VN.Void
N008 ( 3, 2) [000082] ------------- calli tgt \--* LCL_VAR int V12 tmp4 u:3 (last use) $287
N004 ( 1, 1) [000071] ------------- this in r0 +--* LCL_VAR ref V11 tmp3 u:3 (last use) <l:$34b, c:$388>
N005 ( 2, 2) [000066] ------------- arg1 in r1 \--* LCL_VAR int V02 arg2 u:3 (last use) <l:$203, c:$4c0>
------------ BB03 [02C..030) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
***** BB03, stmt 10
( 5, 5) [000011] ------------- * STMT void (IL 0x02C...0x02E)
N004 ( 5, 5) [000010] ------------- \--* JTRUE void
N002 ( 1, 1) [000008] ------------- | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000009] J------N--S-- \--* NE int $207
N001 ( 1, 1) [000146] ------------- \--* LCL_VAR int V14 cse0 $200
------------ BB04 [030..034), preds={BB03} succs={BB05}
***** BB04, stmt 11
( 13, 14) [000028] ------------- * STMT void (IL 0x030...0x033)
N008 ( 5, 3) [000025] a---GO------- | /--* IND ushort <l:$208, c:$4c2>
N006 ( 1, 1) [000128] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem] $48
N007 ( 3, 3) [000129] -------N----- | | \--* ADD byref $441
N005 ( 1, 1) [000121] ------------- | | \--* LCL_VAR ref V00 arg0 u:2 (last use) $80
N009 ( 13, 14) [000131] ---XGO------- \--* COMMA void <l:$209, c:$501>
N004 ( 8, 11) [000124] ---X--------- \--* ARR_BOUNDS_CHECK_Rng void $350
N001 ( 1, 1) [000024] ------------- +--* CNS_INT int 0 $40
N003 ( 3, 3) [000123] ---X--------- \--* ARR_LENGTH int $3c2
N002 ( 1, 1) [000023] ------------- \--* LCL_VAR ref V00 arg0 u:2 $80
------------ BB05 [034..03B) (return), preds={BB03,BB04} succs={}
***** BB05, stmt 12
( 16, 17) [000018] ------------- * STMT void (IL 0x034...0x038)
N010 ( 2, 2) [000015] ------------- | /--* LCL_VAR int V03 arg3 u:2 (last use) $100
N011 ( 16, 17) [000017] -A-XGO------- \--* ASG byte $VN.Void
N008 ( 5, 3) [000016] a---GO-N----- | /--* IND byte $20a
N006 ( 1, 1) [000137] ------------- | | | /--* CNS_INT int 8 Fseq[#FirstElem] $48
N007 ( 3, 3) [000138] -------N----- | | \--* ADD byref $442
N005 ( 1, 1) [000132] ------------- | | \--* LCL_VAR ref V05 arg5 u:2 (last use) $81
N009 ( 13, 14) [000139] ---XGO-N----- \--* COMMA byte $VN.Void
N004 ( 8, 11) [000135] ---X--------- \--* ARR_BOUNDS_CHECK_Rng void $356
N001 ( 1, 1) [000014] ------------- +--* CNS_INT int 0 $40
N003 ( 3, 3) [000134] ---X--------- \--* ARR_LENGTH int $3c3
N002 ( 1, 1) [000013] ------------- \--* LCL_VAR ref V05 arg5 u:2 $81
***** BB05, stmt 13
( 4, 4) [000021] ------------- * STMT void (IL 0x039...0x03A)
N003 ( 4, 4) [000020] ------------- \--* RETURN int $28a
N002 ( 3, 3) [000141] ------------- \--* CAST int <- ushort <- int $20c
N001 ( 2, 2) [000019] ------------- \--* LCL_VAR int V01 arg1 u:2 (last use) $c0
-------------------------------------------------------------------------------------------------------------------
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N004 ( 3, 3) [000143] DA----------- * STORE_LCL_VAR int V14 cse0
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N004 ( 14, 17) [000033] DA--G-------- * STORE_LCL_VAR long V06 loc0 d:3
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N003 ( 6, 10) [000087] DA--G-------- * STORE_LCL_VAR ref V13 tmp5 d:3
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N015 ( 19, 24) [000039] DA-XGO------- * STORE_LCL_VAR ushort V02 arg2 d:3
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N003 ( 6, 10) [000049] DA--G-------- * STORE_LCL_VAR ref V09 tmp1 d:3
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N015 ( 27, 31) [000060] DACXG-------- * STORE_LCL_VAR int V10 tmp2 d:3
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N003 ( 6, 10) [000069] DA--G-------- * STORE_LCL_VAR ref V11 tmp3 d:3
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
N015 ( 27, 31) [000080] DACXG-------- * STORE_LCL_VAR int V12 tmp4 d:3
*************** 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 ( cond ) i label target LIR
BB02 [0001] 1 BB01 0.50 [004..02C) i gcsafe LIR
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target LIR
BB04 [0003] 1 BB03 0.50 [030..034) i idxlen LIR
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen LIR
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..004) -> BB03 (cond), preds={} succs={BB02,BB03}
( 8, 8) [000005] ------------- IL_OFFSET void IL offset: 0x0
N001 ( 2, 2) [000001] ------------- t1 = LCL_VAR int V04 arg4 u:2 $140
/--* t1 int
N002 ( 3, 3) [000085] ----------S-- t85 = * CAST int <- bool <- int $200
/--* t85 int
N004 ( 3, 3) [000143] DA----------- * STORE_LCL_VAR int V14 cse0
N005 ( 1, 1) [000144] ------------- t144 = LCL_VAR int V14 cse0 $200
N007 ( 1, 1) [000002] ------------- t2 = CNS_INT int 0 $40
/--* t144 int
+--* t2 int
N008 ( 6, 6) [000003] J------N--S-- t3 = * EQ int $201
/--* t3 int
N009 ( 8, 8) [000004] ------------- * JTRUE void
------------ BB02 [004..02C), preds={BB01} succs={BB03}
( 14, 17) [000034] ------------- IL_OFFSET void IL offset: 0x4
N001 ( 6, 10) [000030] ----G-------- t30 = CLS_VAR_ADDR byref Hnd=0x9247f8
/--* t30 byref
[000148] ----G-------- t148 = * IND int
/--* t148 int
N002 ( 7, 11) [000031] ----G-------- t31 = * CAST long <- int <l:$2c1, c:$2c0>
/--* t31 long
N004 ( 14, 17) [000033] DA--G-------- * STORE_LCL_VAR long V06 loc0 d:3
( 19, 24) [000040] ------------- IL_OFFSET void IL offset: 0xb
N001 ( 6, 10) [000035] ----G-------- t35 = CLS_VAR_ADDR byref Hnd=0x924808
/--* t35 byref
[000149] ----G-------- t149 = * IND ref
/--* t149 ref
N003 ( 6, 10) [000087] DA--G-------- * STORE_LCL_VAR ref V13 tmp5 d:3
N004 ( 1, 1) [000036] ------------- t36 = CNS_INT int 0 $40
N005 ( 1, 1) [000088] ------------- t88 = LCL_VAR ref V13 tmp5 u:3 <l:$340, c:$380>
/--* t88 ref
N006 ( 3, 3) [000091] ---X--------- t91 = * ARR_LENGTH int <l:$3c1, c:$3c0>
/--* t36 int
+--* t91 int
N007 ( 8, 11) [000092] ---X--------- * ARR_BOUNDS_CHECK_Rng void <l:$346, c:$345>
N008 ( 1, 1) [000089] ------------- t89 = LCL_VAR ref V13 tmp5 u:3 (last use) <l:$340, c:$380>
N009 ( 1, 1) [000096] ------------- t96 = CNS_INT int 8 Fseq[#FirstElem] $48
/--* t89 ref
+--* t96 int
N010 ( 3, 3) [000097] -------N----- t97 = * ADD byref $440
/--* t97 byref
N011 ( 5, 3) [000037] a---GO------- t37 = * IND ushort <l:$203, c:$4c0>
/--* t37 ushort
N015 ( 19, 24) [000039] DA-XGO------- * STORE_LCL_VAR ushort V02 arg2 d:3
( 6, 10) [000050] ------------- IL_OFFSET void IL offset: 0x16
N001 ( 6, 10) [000045] ----G-------- t45 = CLS_VAR_ADDR byref Hnd=0x9247d8
/--* t45 byref
[000150] ----G-------- t150 = * IND ref
/--* t150 ref
N003 ( 6, 10) [000049] DA--G-------- * STORE_LCL_VAR ref V09 tmp1 d:3
N007 ( 1, 1) [000052] ------------- t52 = LCL_VAR ref V09 tmp1 u:3 <l:$349, c:$382>
N008 ( 3, 7) [000053] ------------- t53 = CNS_INT(h) int 0x924994 token $244
N009 ( 3, 7) [000054] ------------- t54 = CNS_INT(h) int 0x924B10 token $245
/--* t52 ref arg0 in r0
+--* t53 int arg1 in r1
+--* t54 int arg2 in r2
N013 ( 23, 28) [000058] --CXG-------- t58 = * CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $205
/--* t58 int
N015 ( 27, 31) [000060] DA-XG-------- * STORE_LCL_VAR int V10 tmp2 d:3
N004 ( 1, 1) [000051] ------------- t51 = LCL_VAR ref V09 tmp1 u:3 (last use) <l:$349, c:$382>
N005 ( 3, 2) [000046] ------------- t46 = LCL_VAR long V06 loc0 u:3 (last use) <l:$2c1, c:$2c0>
N008 ( 3, 2) [000062] ------------- t62 = LCL_VAR int V10 tmp2 u:3 (last use) $283
/--* t51 ref this in r0
+--* t46 long arg1 r2,r3
+--* t62 int calli tgt
N009 ( 24, 10) [000063] --CXG-------- * CALL ind void $VN.Void
( 6, 10) [000070] ------------- IL_OFFSET void IL offset: 0x21
N001 ( 6, 10) [000065] ----G-------- t65 = CLS_VAR_ADDR byref Hnd=0x9247d8
/--* t65 byref
[000151] ----G-------- t151 = * IND ref
/--* t151 ref
N003 ( 6, 10) [000069] DA--G-------- * STORE_LCL_VAR ref V11 tmp3 d:3
N007 ( 1, 1) [000072] ------------- t72 = LCL_VAR ref V11 tmp3 u:3 <l:$34b, c:$388>
N008 ( 3, 7) [000073] ------------- t73 = CNS_INT(h) int 0x924994 token $244
N009 ( 3, 7) [000074] ------------- t74 = CNS_INT(h) int 0x924B74 token $246
/--* t72 ref arg0 in r0
+--* t73 int arg1 in r1
+--* t74 int arg2 in r2
N013 ( 23, 28) [000078] --CXG-------- t78 = * CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $206
/--* t78 int
N015 ( 27, 31) [000080] DA-XG-------- * STORE_LCL_VAR int V12 tmp4 d:3
N004 ( 1, 1) [000071] ------------- t71 = LCL_VAR ref V11 tmp3 u:3 (last use) <l:$34b, c:$388>
N005 ( 2, 2) [000066] ------------- t66 = LCL_VAR int V02 arg2 u:3 (last use) <l:$203, c:$4c0>
N008 ( 3, 2) [000082] ------------- t82 = LCL_VAR int V12 tmp4 u:3 (last use) $287
/--* t71 ref this in r0
+--* t66 int arg1 in r1
+--* t82 int calli tgt
N009 ( 23, 10) [000083] --CXG-------- * CALL ind void $VN.Void
------------ BB03 [02C..030) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
( 5, 5) [000011] ------------- IL_OFFSET void IL offset: 0x2c
N001 ( 1, 1) [000146] ------------- t146 = LCL_VAR int V14 cse0 $200
N002 ( 1, 1) [000008] ------------- t8 = CNS_INT int 0 $40
/--* t146 int
+--* t8 int
N003 ( 3, 3) [000009] J------N--S-- t9 = * NE int $207
/--* t9 int
N004 ( 5, 5) [000010] ------------- * JTRUE void
------------ BB04 [030..034), preds={BB03} succs={BB05}
( 13, 14) [000028] ------------- IL_OFFSET void IL offset: 0x30
N001 ( 1, 1) [000024] ------------- t24 = CNS_INT int 0 $40
N002 ( 1, 1) [000023] ------------- t23 = LCL_VAR ref V00 arg0 u:2 $80
/--* t23 ref
N003 ( 3, 3) [000123] ---X--------- t123 = * ARR_LENGTH int $3c2
/--* t24 int
+--* t123 int
N004 ( 8, 11) [000124] ---X--------- * ARR_BOUNDS_CHECK_Rng void $350
N005 ( 1, 1) [000121] ------------- t121 = LCL_VAR ref V00 arg0 u:2 (last use) $80
N006 ( 1, 1) [000128] ------------- t128 = CNS_INT int 8 Fseq[#FirstElem] $48
/--* t121 ref
+--* t128 int
N007 ( 3, 3) [000129] -------N----- t129 = * ADD byref $441
/--* t129 byref
N008 ( 5, 3) [000025] a---GO------- t25 = * IND ushort <l:$208, c:$4c2>
------------ BB05 [034..03B) (return), preds={BB03,BB04} succs={}
( 16, 17) [000018] ------------- IL_OFFSET void IL offset: 0x34
N001 ( 1, 1) [000014] ------------- t14 = CNS_INT int 0 $40
N002 ( 1, 1) [000013] ------------- t13 = LCL_VAR ref V05 arg5 u:2 $81
/--* t13 ref
N003 ( 3, 3) [000134] ---X--------- t134 = * ARR_LENGTH int $3c3
/--* t14 int
+--* t134 int
N004 ( 8, 11) [000135] ---X--------- * ARR_BOUNDS_CHECK_Rng void $356
N005 ( 1, 1) [000132] ------------- t132 = LCL_VAR ref V05 arg5 u:2 (last use) $81
N006 ( 1, 1) [000137] ------------- t137 = CNS_INT int 8 Fseq[#FirstElem] $48
/--* t132 ref
+--* t137 int
N007 ( 3, 3) [000138] -------N----- t138 = * ADD byref $442
N010 ( 2, 2) [000015] ------------- t15 = LCL_VAR int V03 arg3 u:2 (last use) $100
/--* t138 byref
+--* t15 int
[000152] -A-XGO------- * STOREIND byte
( 4, 4) [000021] ------------- IL_OFFSET void IL offset: 0x39
N001 ( 2, 2) [000019] ------------- t19 = LCL_VAR int V01 arg1 u:2 (last use) $c0
/--* t19 int
N002 ( 3, 3) [000141] ------------- t141 = * CAST int <- ushort <- int $20c
/--* t141 int
N003 ( 4, 4) [000020] ------------- * RETURN int $28a
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*** Computing fgRngChkTarget for block BB02 to stkDepth 0
fgNewBBinRegion(jumpKind=3, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=true, insertAtEnd=true): inserting after BB05
New Basic Block BB06 [0005] created.
fgAddCodeRef - Add BB in non-EH region for RNGCHK_FAIL, new block BB06 [0005], stkDepth is 0
argSlots=0, preallocatedArgCount=0, nextSlotNum=0, outgoingArgSpaceSize=0
outgoingArgSpaceSize 0 sufficient for call [000058], which needs 0
outgoingArgSpaceSize 0 sufficient for call [000063], which needs 0
outgoingArgSpaceSize 0 sufficient for call [000078], which needs 0
outgoingArgSpaceSize 0 sufficient for call [000083], which needs 0
*** Computing fgRngChkTarget for block BB04 to stkDepth 0
*** Computing fgRngChkTarget for block BB05 to stkDepth 0
outgoingArgSpaceSize 0 sufficient for call [000155], which needs 0
After fgSimpleLowering() added some RngChk throw blocks
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..004)-> BB03 ( cond ) i label target LIR
BB02 [0001] 1 BB01 0.50 [004..02C) i gcsafe LIR
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target LIR
BB04 [0003] 1 BB03 0.50 [030..034) i idxlen LIR
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen LIR
BB06 [0005] 0 0 [???..???) (throw ) keep i internal rare label target LIR
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
*************** 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 ( cond ) i label target LIR
BB02 [0001] 1 BB01 0.50 [004..02C) i gcsafe LIR
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target LIR
BB04 [0003] 1 BB03 0.50 [030..034) i idxlen LIR
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen LIR
BB06 [0005] 0 0 [???..???) (throw ) keep i internal rare label target LIR
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..004) -> BB03 (cond), preds={} succs={BB02,BB03}
( 8, 8) [000005] ------------- IL_OFFSET void IL offset: 0x0
N001 ( 2, 2) [000001] ------------- t1 = LCL_VAR int V04 arg4 u:2 $140
/--* t1 int
N002 ( 3, 3) [000085] ----------S-- t85 = * CAST int <- bool <- int $200
/--* t85 int
N004 ( 3, 3) [000143] DA----------- * STORE_LCL_VAR int V14 cse0
N005 ( 1, 1) [000144] ------------- t144 = LCL_VAR int V14 cse0 $200
N007 ( 1, 1) [000002] ------------- t2 = CNS_INT int 0 $40
/--* t144 int
+--* t2 int
N008 ( 6, 6) [000003] J------N--S-- t3 = * EQ int $201
/--* t3 int
N009 ( 8, 8) [000004] ------------- * JTRUE void
------------ BB02 [004..02C), preds={BB01} succs={BB03}
( 14, 17) [000034] ------------- IL_OFFSET void IL offset: 0x4
N001 ( 6, 10) [000030] ----G-------- t30 = CLS_VAR_ADDR byref Hnd=0x9247f8
/--* t30 byref
[000148] ----G-------- t148 = * IND int
/--* t148 int
N002 ( 7, 11) [000031] ----G-------- t31 = * CAST long <- int <l:$2c1, c:$2c0>
/--* t31 long
N004 ( 14, 17) [000033] DA--G-------- * STORE_LCL_VAR long V06 loc0 d:3
( 19, 24) [000040] ------------- IL_OFFSET void IL offset: 0xb
N001 ( 6, 10) [000035] ----G-------- t35 = CLS_VAR_ADDR byref Hnd=0x924808
/--* t35 byref
[000149] ----G-------- t149 = * IND ref
/--* t149 ref
N003 ( 6, 10) [000087] DA--G-------- * STORE_LCL_VAR ref V13 tmp5 d:3
N004 ( 1, 1) [000036] ------------- t36 = CNS_INT int 0 $40
N005 ( 1, 1) [000088] ------------- t88 = LCL_VAR ref V13 tmp5 u:3 <l:$340, c:$380>
[000153] ------------- t153 = CNS_INT int 4
/--* t88 ref
+--* t153 int
[000154] ------------- t154 = * ADD ref
/--* t154 ref
N006 ( 3, 3) [000091] ---X--------- t91 = * IND int <l:$3c1, c:$3c0>
/--* t36 int
+--* t91 int
N007 ( 8, 11) [000092] ---X--------- * ARR_BOUNDS_CHECK_Rng void <l:$346, c:$345>
N008 ( 1, 1) [000089] ------------- t89 = LCL_VAR ref V13 tmp5 u:3 (last use) <l:$340, c:$380>
N009 ( 1, 1) [000096] ------------- t96 = CNS_INT int 8 Fseq[#FirstElem] $48
/--* t89 ref
+--* t96 int
N010 ( 3, 3) [000097] -------N----- t97 = * ADD byref $440
/--* t97 byref
N011 ( 5, 3) [000037] a---GO------- t37 = * IND ushort <l:$203, c:$4c0>
/--* t37 ushort
N015 ( 19, 24) [000039] DA-XGO------- * STORE_LCL_VAR ushort V02 arg2 d:3
( 6, 10) [000050] ------------- IL_OFFSET void IL offset: 0x16
N001 ( 6, 10) [000045] ----G-------- t45 = CLS_VAR_ADDR byref Hnd=0x9247d8
/--* t45 byref
[000150] ----G-------- t150 = * IND ref
/--* t150 ref
N003 ( 6, 10) [000049] DA--G-------- * STORE_LCL_VAR ref V09 tmp1 d:3
N007 ( 1, 1) [000052] ------------- t52 = LCL_VAR ref V09 tmp1 u:3 <l:$349, c:$382>
N008 ( 3, 7) [000053] ------------- t53 = CNS_INT(h) int 0x924994 token $244
N009 ( 3, 7) [000054] ------------- t54 = CNS_INT(h) int 0x924B10 token $245
/--* t52 ref arg0 in r0
+--* t53 int arg1 in r1
+--* t54 int arg2 in r2
N013 ( 23, 28) [000058] --CXG-------- t58 = * CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $205
/--* t58 int
N015 ( 27, 31) [000060] DA-XG-------- * STORE_LCL_VAR int V10 tmp2 d:3
N004 ( 1, 1) [000051] ------------- t51 = LCL_VAR ref V09 tmp1 u:3 (last use) <l:$349, c:$382>
N005 ( 3, 2) [000046] ------------- t46 = LCL_VAR long V06 loc0 u:3 (last use) <l:$2c1, c:$2c0>
N008 ( 3, 2) [000062] ------------- t62 = LCL_VAR int V10 tmp2 u:3 (last use) $283
/--* t51 ref this in r0
+--* t46 long arg1 r2,r3
+--* t62 int calli tgt
N009 ( 24, 10) [000063] --CXG-------- * CALL ind void $VN.Void
( 6, 10) [000070] ------------- IL_OFFSET void IL offset: 0x21
N001 ( 6, 10) [000065] ----G-------- t65 = CLS_VAR_ADDR byref Hnd=0x9247d8
/--* t65 byref
[000151] ----G-------- t151 = * IND ref
/--* t151 ref
N003 ( 6, 10) [000069] DA--G-------- * STORE_LCL_VAR ref V11 tmp3 d:3
N007 ( 1, 1) [000072] ------------- t72 = LCL_VAR ref V11 tmp3 u:3 <l:$34b, c:$388>
N008 ( 3, 7) [000073] ------------- t73 = CNS_INT(h) int 0x924994 token $244
N009 ( 3, 7) [000074] ------------- t74 = CNS_INT(h) int 0x924B74 token $246
/--* t72 ref arg0 in r0
+--* t73 int arg1 in r1
+--* t74 int arg2 in r2
N013 ( 23, 28) [000078] --CXG-------- t78 = * CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $206
/--* t78 int
N015 ( 27, 31) [000080] DA-XG-------- * STORE_LCL_VAR int V12 tmp4 d:3
N004 ( 1, 1) [000071] ------------- t71 = LCL_VAR ref V11 tmp3 u:3 (last use) <l:$34b, c:$388>
N005 ( 2, 2) [000066] ------------- t66 = LCL_VAR int V02 arg2 u:3 (last use) <l:$203, c:$4c0>
N008 ( 3, 2) [000082] ------------- t82 = LCL_VAR int V12 tmp4 u:3 (last use) $287
/--* t71 ref this in r0
+--* t66 int arg1 in r1
+--* t82 int calli tgt
N009 ( 23, 10) [000083] --CXG-------- * CALL ind void $VN.Void
------------ BB03 [02C..030) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
( 5, 5) [000011] ------------- IL_OFFSET void IL offset: 0x2c
N001 ( 1, 1) [000146] ------------- t146 = LCL_VAR int V14 cse0 $200
N002 ( 1, 1) [000008] ------------- t8 = CNS_INT int 0 $40
/--* t146 int
+--* t8 int
N003 ( 3, 3) [000009] J------N--S-- t9 = * NE int $207
/--* t9 int
N004 ( 5, 5) [000010] ------------- * JTRUE void
------------ BB04 [030..034), preds={BB03} succs={BB05}
( 13, 14) [000028] ------------- IL_OFFSET void IL offset: 0x30
N001 ( 1, 1) [000024] ------------- t24 = CNS_INT int 0 $40
N002 ( 1, 1) [000023] ------------- t23 = LCL_VAR ref V00 arg0 u:2 $80
[000157] ------------- t157 = CNS_INT int 4
/--* t23 ref
+--* t157 int
[000158] ------------- t158 = * ADD ref
/--* t158 ref
N003 ( 3, 3) [000123] ---X--------- t123 = * IND int $3c2
/--* t24 int
+--* t123 int
N004 ( 8, 11) [000124] ---X--------- * ARR_BOUNDS_CHECK_Rng void $350
N005 ( 1, 1) [000121] ------------- t121 = LCL_VAR ref V00 arg0 u:2 (last use) $80
N006 ( 1, 1) [000128] ------------- t128 = CNS_INT int 8 Fseq[#FirstElem] $48
/--* t121 ref
+--* t128 int
N007 ( 3, 3) [000129] -------N----- t129 = * ADD byref $441
/--* t129 byref
N008 ( 5, 3) [000025] a---GO------- t25 = * IND ushort <l:$208, c:$4c2>
------------ BB05 [034..03B) (return), preds={BB03,BB04} succs={}
( 16, 17) [000018] ------------- IL_OFFSET void IL offset: 0x34
N001 ( 1, 1) [000014] ------------- t14 = CNS_INT int 0 $40
N002 ( 1, 1) [000013] ------------- t13 = LCL_VAR ref V05 arg5 u:2 $81
[000160] ------------- t160 = CNS_INT int 4
/--* t13 ref
+--* t160 int
[000161] ------------- t161 = * ADD ref
/--* t161 ref
N003 ( 3, 3) [000134] ---X--------- t134 = * IND int $3c3
/--* t14 int
+--* t134 int
N004 ( 8, 11) [000135] ---X--------- * ARR_BOUNDS_CHECK_Rng void $356
N005 ( 1, 1) [000132] ------------- t132 = LCL_VAR ref V05 arg5 u:2 (last use) $81
N006 ( 1, 1) [000137] ------------- t137 = CNS_INT int 8 Fseq[#FirstElem] $48
/--* t132 ref
+--* t137 int
N007 ( 3, 3) [000138] -------N----- t138 = * ADD byref $442
N010 ( 2, 2) [000015] ------------- t15 = LCL_VAR int V03 arg3 u:2 (last use) $100
/--* t138 byref
+--* t15 int
[000152] -A-XGO------- * STOREIND byte
( 4, 4) [000021] ------------- IL_OFFSET void IL offset: 0x39
N001 ( 2, 2) [000019] ------------- t19 = LCL_VAR int V01 arg1 u:2 (last use) $c0
/--* t19 int
N002 ( 3, 3) [000141] ------------- t141 = * CAST int <- ushort <- int $20c
/--* t141 int
N003 ( 4, 4) [000020] ------------- * RETURN int $28a
------------ BB06 [???..???) (throw), preds={} succs={}
N001 ( 16, 10) [000155] --CXG-------- CALL help void HELPER.CORINFO_HELP_RNGCHKFAIL
-------------------------------------------------------------------------------------------------------------------
Promoting long local V06:
lvaGrabTemp returning 15 (V15 rat0) (a long lifetime temp) called for field V06.lo (fldOffset=0x0).
lvaGrabTemp returning 16 (V16 rat1) (a long lifetime temp) called for field V06.hi (fldOffset=0x4).
lvaTable after lvaPromoteLongVars
; Initial local variable assignments
;
; V00 arg0 ref class-hnd
; V01 arg1 ushort
; V02 arg2 ushort
; V03 arg3 ubyte
; V04 arg4 bool
; V05 arg5 ref class-hnd
; V06 loc0 long
; V07 loc1 ushort
; V08 OutArgs lclBlk ( 0)
; V09 tmp1 ref
; V10 tmp2 int
; V11 tmp3 ref
; V12 tmp4 int
; V13 tmp5 ref
; V14 cse0 int
; V15 rat0 int V06.lo(offs=0x00)
; V16 rat1 int V06.hi(offs=0x04)
LowerCast for: N002 ( 3, 3) [000085] ----------S-- * CAST int <- bool <- int $200
Decomposing TYP_LONG tree. BEFORE:
N001 ( 6, 10) [000030] ----G-------- t30 = CLS_VAR_ADDR byref Hnd=0x9247f8
/--* t30 byref
[000148] ----G-------- t148 = * IND int
/--* t148 int
N002 ( 7, 11) [000031] ----G-------- t31 = * CAST long <- int <l:$2c1, c:$2c0>
lvaGrabTemp returning 17 (V17 rat2) called for ReplaceWithLclVar is creating a new local variable.
New refCnts for V17: refCnt = 1, refCntWtd = 1
New refCnts for V17: refCnt = 2, refCntWtd = 2
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
[000164] DA--G-------- * STORE_LCL_VAR int V17 rat2
ReplaceWithLclVar created store :
[000164] DA--G-------- * STORE_LCL_VAR int V17 rat2
New refCnts for V17: refCnt = 3, refCntWtd = 3
Decomposing TYP_LONG tree. AFTER:
[000165] ------------- t165 = LCL_VAR int V17 rat2
[000166] ------------- t166 = LCL_VAR int V17 rat2
[000167] ------------- t167 = CNS_INT int 31
/--* t166 int
+--* t167 int
[000168] ------------- t168 = * RSH int
/--* t165 int
+--* t168 int
[000169] ------------- t169 = * LONG long
Decomposing TYP_LONG tree. BEFORE:
[000165] ------------- t165 = LCL_VAR int V17 rat2
[000166] ------------- t166 = LCL_VAR int V17 rat2
[000167] ------------- t167 = CNS_INT int 31
/--* t166 int
+--* t167 int
[000168] ------------- t168 = * RSH int
/--* t165 int
+--* t168 int
[000169] ------------- t169 = * LONG long
/--* t169 long
N004 ( 14, 17) [000033] DA--G-------- * STORE_LCL_VAR long (P) V06 loc0 d:3
* int V06.hi (offs=0x00) -> V15 rat0
* int V06.hi (offs=0x04) -> V16 rat1
New refCnts for V06: refCnt = 1, refCntWtd = 0.50
New refCnts for V15: refCnt = 1, refCntWtd = 0.50
New refCnts for V16: refCnt = 1, refCntWtd = 0.50
Decomposing TYP_LONG tree. AFTER:
[000165] ------------- t165 = LCL_VAR int V17 rat2
[000166] ------------- t166 = LCL_VAR int V17 rat2
[000167] ------------- t167 = CNS_INT int 31
/--* t166 int
+--* t167 int
[000168] ------------- t168 = * RSH int
/--* t165 int
N004 ( 14, 17) [000033] DA--G-------- * STORE_LCL_VAR int V15 rat0
Decomposing TYP_LONG tree. BEFORE:
N005 ( 3, 2) [000046] ------------- t46 = LCL_VAR long (P) V06 loc0 u:3
* int V06.hi (offs=0x00) -> V15 rat0
* int V06.hi (offs=0x04) -> V16 rat1 <l:$2c1, c:$2c0>
New refCnts for V06: refCnt = 0, refCntWtd = 0
New refCnts for V15: refCnt = 2, refCntWtd = 1
New refCnts for V16: refCnt = 2, refCntWtd = 1
Decomposing TYP_LONG tree. AFTER:
N005 ( 3, 2) [000046] ------------- t46 = LCL_VAR int V15 rat0 <l:$2c1, c:$2c0>
[000171] ------------- t171 = LCL_VAR int V16 rat1
/--* t46 int
+--* t171 int
[000172] ------------- t172 = * LONG long
No addressing mode:
N001 ( 6, 10) [000030] ----G-------- * CLS_VAR_ADDR byref Hnd=0x9247f8
No addressing mode:
N001 ( 6, 10) [000035] ----G-------- * CLS_VAR_ADDR byref Hnd=0x924808
Addressing mode:
Base
N005 ( 1, 1) [000088] ------------- * LCL_VAR ref V13 tmp5 u:3 <l:$340, c:$380>
+ 4
New addressing mode node:
[000173] ------------- * LEA(b+4) byref
Addressing mode:
Base
N008 ( 1, 1) [000089] ------------- * LCL_VAR ref V13 tmp5 u:3 (last use) <l:$340, c:$380>
+ 8
New addressing mode node:
[000174] ------------- * LEA(b+8) byref
No addressing mode:
N001 ( 6, 10) [000045] ----G-------- * CLS_VAR_ADDR byref Hnd=0x9247d8
lowering call (before):
N007 ( 1, 1) [000052] ------------- t52 = LCL_VAR ref V09 tmp1 u:3 <l:$349, c:$382>
N008 ( 3, 7) [000053] ------------- t53 = CNS_INT(h) int 0x924994 token $244
N009 ( 3, 7) [000054] ------------- t54 = CNS_INT(h) int 0x924B10 token $245
/--* t52 ref arg0 in r0
+--* t53 int arg1 in r1
+--* t54 int arg2 in r2
N013 ( 23, 28) [000058] --CXG-------- t58 = * CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $205
objp:
======
args:
======
lowering arg : N001 ( 0, 0) [000100] -----------L- * ARGPLACE ref <l:$349, c:$382>
lowering arg : N002 ( 0, 0) [000102] -----------L- * ARGPLACE int $244
lowering arg : N003 ( 0, 0) [000104] -----------L- * ARGPLACE int $245
late:
======
lowering arg : N007 ( 1, 1) [000052] ------------- * LCL_VAR ref V09 tmp1 u:3 <l:$349, c:$382>
new node is : [000175] ------------- * PUTARG_REG ref REG r0
lowering arg : N008 ( 3, 7) [000053] ------------- * CNS_INT(h) int 0x924994 token $244
new node is : [000176] ------------- * PUTARG_REG int REG r1
lowering arg : N009 ( 3, 7) [000054] ------------- * CNS_INT(h) int 0x924B10 token $245
new node is : [000177] ------------- * PUTARG_REG int REG r2
results of lowering call:
N001 ( 3, 7) [000178] ------------- t178 = CNS_INT(h) int 0xFDA55A0 ftn
lowering call (after):
N007 ( 1, 1) [000052] ------------- t52 = LCL_VAR ref V09 tmp1 u:3 <l:$349, c:$382>
/--* t52 ref
[000175] ------------- t175 = * PUTARG_REG ref REG r0
N008 ( 3, 7) [000053] ------------- t53 = CNS_INT(h) int 0x924994 token $244
/--* t53 int
[000176] ------------- t176 = * PUTARG_REG int REG r1
N009 ( 3, 7) [000054] ------------- t54 = CNS_INT(h) int 0x924B10 token $245
/--* t54 int
[000177] ------------- t177 = * PUTARG_REG int REG r2
N001 ( 3, 7) [000178] ------------- t178 = CNS_INT(h) int 0xFDA55A0 ftn
/--* t175 ref arg0 in r0
+--* t176 int arg1 in r1
+--* t177 int arg2 in r2
+--* t178 int control expr
N013 ( 23, 28) [000058] --CXG-------- t58 = * CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $205
lowering call (before):
N004 ( 1, 1) [000051] ------------- t51 = LCL_VAR ref V09 tmp1 u:3 (last use) <l:$349, c:$382>
N005 ( 3, 2) [000046] ------------- t46 = LCL_VAR int V15 rat0 <l:$2c1, c:$2c0>
[000171] ------------- t171 = LCL_VAR int V16 rat1
/--* t46 int
+--* t171 int
[000172] ------------- t172 = * LONG long
N008 ( 3, 2) [000062] ------------- t62 = LCL_VAR int V10 tmp2 u:3 (last use) $283
/--* t51 ref this in r0
+--* t172 long arg1 r2,r3
+--* t62 int calli tgt
N009 ( 24, 10) [000063] --CXG-------- * CALL ind void $VN.Void
objp:
======
lowering arg : N001 ( 0, 0) [000106] -----------L- * ARGPLACE ref $386
args:
======
lowering arg : N002 ( 0, 0) [000108] -----------L- * ARGPLACE long <l:$349, c:$382>
late:
======
lowering arg : N004 ( 1, 1) [000051] ------------- * LCL_VAR ref V09 tmp1 u:3 (last use) <l:$349, c:$382>
new node is : [000179] ------------- * PUTARG_REG ref REG r0
lowering arg : [000172] ------------- * LONG long
lowering call (after):
N004 ( 1, 1) [000051] ------------- t51 = LCL_VAR ref V09 tmp1 u:3 (last use) <l:$349, c:$382>
/--* t51 ref
[000179] ------------- t179 = * PUTARG_REG ref REG r0
N005 ( 3, 2) [000046] ------------- t46 = LCL_VAR int V15 rat0 <l:$2c1, c:$2c0>
/--* t46 int
[000182] ------------- t182 = * PUTARG_REG int REG r2
[000171] ------------- t171 = LCL_VAR int V16 rat1
/--* t171 int
[000183] ------------- t183 = * PUTARG_REG int REG r3
/--* t182 int
+--* t183 int
[000180] Hc----------- t180 = * FIELD_LIST int int at offset 0 REG NA
N008 ( 3, 2) [000062] ------------- t62 = LCL_VAR int V10 tmp2 u:3 (last use) $283
/--* t179 ref this in r0
+--* t180 int arg1 r2,r3
+--* t62 int calli tgt
N009 ( 24, 10) [000063] --CXG-------- * CALL ind void $VN.Void
No addressing mode:
N001 ( 6, 10) [000065] ----G-------- * CLS_VAR_ADDR byref Hnd=0x9247d8
lowering call (before):
N007 ( 1, 1) [000072] ------------- t72 = LCL_VAR ref V11 tmp3 u:3 <l:$34b, c:$388>
N008 ( 3, 7) [000073] ------------- t73 = CNS_INT(h) int 0x924994 token $244
N009 ( 3, 7) [000074] ------------- t74 = CNS_INT(h) int 0x924B74 token $246
/--* t72 ref arg0 in r0
+--* t73 int arg1 in r1
+--* t74 int arg2 in r2
N013 ( 23, 28) [000078] --CXG-------- t78 = * CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $206
objp:
======
args:
======
lowering arg : N001 ( 0, 0) [000110] -----------L- * ARGPLACE ref <l:$34b, c:$388>
lowering arg : N002 ( 0, 0) [000112] -----------L- * ARGPLACE int $244
lowering arg : N003 ( 0, 0) [000114] -----------L- * ARGPLACE int $246
late:
======
lowering arg : N007 ( 1, 1) [000072] ------------- * LCL_VAR ref V11 tmp3 u:3 <l:$34b, c:$388>
new node is : [000184] ------------- * PUTARG_REG ref REG r0
lowering arg : N008 ( 3, 7) [000073] ------------- * CNS_INT(h) int 0x924994 token $244
new node is : [000185] ------------- * PUTARG_REG int REG r1
lowering arg : N009 ( 3, 7) [000074] ------------- * CNS_INT(h) int 0x924B74 token $246
new node is : [000186] ------------- * PUTARG_REG int REG r2
results of lowering call:
N001 ( 3, 7) [000187] ------------- t187 = CNS_INT(h) int 0xFDA55A0 ftn
lowering call (after):
N007 ( 1, 1) [000072] ------------- t72 = LCL_VAR ref V11 tmp3 u:3 <l:$34b, c:$388>
/--* t72 ref
[000184] ------------- t184 = * PUTARG_REG ref REG r0
N008 ( 3, 7) [000073] ------------- t73 = CNS_INT(h) int 0x924994 token $244
/--* t73 int
[000185] ------------- t185 = * PUTARG_REG int REG r1
N009 ( 3, 7) [000074] ------------- t74 = CNS_INT(h) int 0x924B74 token $246
/--* t74 int
[000186] ------------- t186 = * PUTARG_REG int REG r2
N001 ( 3, 7) [000187] ------------- t187 = CNS_INT(h) int 0xFDA55A0 ftn
/--* t184 ref arg0 in r0
+--* t185 int arg1 in r1
+--* t186 int arg2 in r2
+--* t187 int control expr
N013 ( 23, 28) [000078] --CXG-------- t78 = * CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $206
lowering call (before):
N004 ( 1, 1) [000071] ------------- t71 = LCL_VAR ref V11 tmp3 u:3 (last use) <l:$34b, c:$388>
N005 ( 2, 2) [000066] ------------- t66 = LCL_VAR int V02 arg2 u:3 (last use) <l:$203, c:$4c0>
N008 ( 3, 2) [000082] ------------- t82 = LCL_VAR int V12 tmp4 u:3 (last use) $287
/--* t71 ref this in r0
+--* t66 int arg1 in r1
+--* t82 int calli tgt
N009 ( 23, 10) [000083] --CXG-------- * CALL ind void $VN.Void
objp:
======
lowering arg : N001 ( 0, 0) [000116] -----------L- * ARGPLACE ref $38c
args:
======
lowering arg : N002 ( 0, 0) [000118] -----------L- * ARGPLACE int <l:$34b, c:$388>
late:
======
lowering arg : N004 ( 1, 1) [000071] ------------- * LCL_VAR ref V11 tmp3 u:3 (last use) <l:$34b, c:$388>
new node is : [000188] ------------- * PUTARG_REG ref REG r0
lowering arg : N005 ( 2, 2) [000066] ------------- * LCL_VAR int V02 arg2 u:3 (last use) <l:$203, c:$4c0>
new node is : [000189] ------------- * PUTARG_REG int REG r1
lowering call (after):
N004 ( 1, 1) [000071] ------------- t71 = LCL_VAR ref V11 tmp3 u:3 (last use) <l:$34b, c:$388>
/--* t71 ref
[000188] ------------- t188 = * PUTARG_REG ref REG r0
N005 ( 2, 2) [000066] ------------- t66 = LCL_VAR int V02 arg2 u:3 (last use) <l:$203, c:$4c0>
/--* t66 int
[000189] ------------- t189 = * PUTARG_REG int REG r1
N008 ( 3, 2) [000082] ------------- t82 = LCL_VAR int V12 tmp4 u:3 (last use) $287
/--* t188 ref this in r0
+--* t189 int arg1 in r1
+--* t82 int calli tgt
N009 ( 23, 10) [000083] --CXG-------- * CALL ind void $VN.Void
Addressing mode:
Base
N002 ( 1, 1) [000023] ------------- * LCL_VAR ref V00 arg0 u:2 $80
+ 4
New addressing mode node:
[000190] ------------- * LEA(b+4) byref
Addressing mode:
Base
N005 ( 1, 1) [000121] ------------- * LCL_VAR ref V00 arg0 u:2 (last use) $80
+ 8
New addressing mode node:
[000191] ------------- * LEA(b+8) byref
Addressing mode:
Base
N002 ( 1, 1) [000013] ------------- * LCL_VAR ref V05 arg5 u:2 $81
+ 4
New addressing mode node:
[000192] ------------- * LEA(b+4) byref
Addressing mode:
Base
N005 ( 1, 1) [000132] ------------- * LCL_VAR ref V05 arg5 u:2 (last use) $81
+ 8
New addressing mode node:
[000193] ------------- * LEA(b+8) byref
LowerCast for: N002 ( 3, 3) [000141] ------------- * CAST int <- ushort <- int $20c
lowering GT_RETURN
N003 ( 4, 4) [000020] ------------- * RETURN int $28a
============lowering call (before):
N001 ( 16, 10) [000155] --CXG-------- CALL help void HELPER.CORINFO_HELP_RNGCHKFAIL
objp:
======
args:
======
late:
======
results of lowering call:
N001 ( 3, 7) [000194] ------------- t194 = CNS_INT(h) int 0xFDA7BB0 ftn
lowering call (after):
N001 ( 3, 7) [000194] ------------- t194 = CNS_INT(h) int 0xFDA7BB0 ftn
/--* t194 int control expr
N001 ( 16, 10) [000155] --CXG-------- * CALL help void HELPER.CORINFO_HELP_RNGCHKFAIL
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 ( cond ) i label target LIR
BB02 [0001] 1 BB01 0.50 [004..02C) i gcsafe LIR
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target LIR
BB04 [0003] 1 BB03 0.50 [030..034) i idxlen LIR
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen LIR
BB06 [0005] 0 0 [???..???) (throw ) keep i internal rare label target LIR
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..004) -> BB03 (cond), preds={} succs={BB02,BB03}
( 8, 8) [000005] ------------- IL_OFFSET void IL offset: 0x0
N001 ( 2, 2) [000001] ------------- t1 = LCL_VAR int V04 arg4 u:2 $140
/--* t1 int
N002 ( 3, 3) [000085] ----------S-- t85 = * CAST int <- bool <- int $200
/--* t85 int
N004 ( 3, 3) [000143] DA----------- * STORE_LCL_VAR int V14 cse0
N005 ( 1, 1) [000144] ------------- t144 = LCL_VAR int V14 cse0 $200
N007 ( 1, 1) [000002] -c----------- t2 = CNS_INT int 0 $40
/--* t144 int
+--* t2 int
N008 ( 6, 6) [000003] J------N--S-- * EQ void $201
N009 ( 8, 8) [000004] ------------- * JTRUE void
------------ BB02 [004..02C), preds={BB01} succs={BB03}
( 14, 17) [000034] ------------- IL_OFFSET void IL offset: 0x4
N001 ( 6, 10) [000030] ----G-------- t30 = CLS_VAR_ADDR byref Hnd=0x9247f8
/--* t30 byref
[000148] ----G-------- t148 = * IND int
/--* t148 int
[000164] DA--G-------- * STORE_LCL_VAR int V17 rat2
[000165] ------------- t165 = LCL_VAR int V17 rat2
[000166] ------------- t166 = LCL_VAR int V17 rat2
[000167] -c----------- t167 = CNS_INT int 31
/--* t166 int
+--* t167 int
[000168] ------------- t168 = * RSH int
/--* t165 int
N004 ( 14, 17) [000033] DA--G-------- * STORE_LCL_VAR int V15 rat0
/--* t168 int
[000170] D------------ * STORE_LCL_VAR int V16 rat1
( 19, 24) [000040] ------------- IL_OFFSET void IL offset: 0xb
N001 ( 6, 10) [000035] ----G-------- t35 = CLS_VAR_ADDR byref Hnd=0x924808
/--* t35 byref
[000149] ----G-------- t149 = * IND ref
/--* t149 ref
N003 ( 6, 10) [000087] DA--G-------- * STORE_LCL_VAR ref V13 tmp5 d:3
N004 ( 1, 1) [000036] ------------- t36 = CNS_INT int 0 $40
N005 ( 1, 1) [000088] ------------- t88 = LCL_VAR ref V13 tmp5 u:3 <l:$340, c:$380>
/--* t88 ref
[000173] -c----------- t173 = * LEA(b+4) byref
/--* t173 byref
N006 ( 3, 3) [000091] ---X--------- t91 = * IND int <l:$3c1, c:$3c0>
/--* t36 int
+--* t91 int
N007 ( 8, 11) [000092] ---X--------- * ARR_BOUNDS_CHECK_Rng void <l:$346, c:$345>
N008 ( 1, 1) [000089] ------------- t89 = LCL_VAR ref V13 tmp5 u:3 (last use) <l:$340, c:$380>
/--* t89 ref
[000174] -c----------- t174 = * LEA(b+8) byref
/--* t174 byref
N011 ( 5, 3) [000037] a---GO------- t37 = * IND ushort <l:$203, c:$4c0>
/--* t37 ushort
N015 ( 19, 24) [000039] DA-XGO------- * STORE_LCL_VAR ushort V02 arg2 d:3
( 6, 10) [000050] ------------- IL_OFFSET void IL offset: 0x16
N001 ( 6, 10) [000045] ----G-------- t45 = CLS_VAR_ADDR byref Hnd=0x9247d8
/--* t45 byref
[000150] ----G-------- t150 = * IND ref
/--* t150 ref
N003 ( 6, 10) [000049] DA--G-------- * STORE_LCL_VAR ref V09 tmp1 d:3
N007 ( 1, 1) [000052] ------------- t52 = LCL_VAR ref V09 tmp1 u:3 <l:$349, c:$382>
/--* t52 ref
[000175] ------------- t175 = * PUTARG_REG ref REG r0
N008 ( 3, 7) [000053] ------------- t53 = CNS_INT(h) int 0x924994 token $244
/--* t53 int
[000176] ------------- t176 = * PUTARG_REG int REG r1
N009 ( 3, 7) [000054] ------------- t54 = CNS_INT(h) int 0x924B10 token $245
/--* t54 int
[000177] ------------- t177 = * PUTARG_REG int REG r2
N001 ( 3, 7) [000178] ------------- t178 = CNS_INT(h) int 0xFDA55A0 ftn
/--* t175 ref arg0 in r0
+--* t176 int arg1 in r1
+--* t177 int arg2 in r2
+--* t178 int control expr
N013 ( 23, 28) [000058] --CXG-------- t58 = * CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $205
/--* t58 int
N015 ( 27, 31) [000060] DA-XG-------- * STORE_LCL_VAR int V10 tmp2 d:3
N004 ( 1, 1) [000051] ------------- t51 = LCL_VAR ref V09 tmp1 u:3 (last use) <l:$349, c:$382>
/--* t51 ref
[000179] ------------- t179 = * PUTARG_REG ref REG r0
N005 ( 3, 2) [000046] ------------- t46 = LCL_VAR int V15 rat0 <l:$2c1, c:$2c0>
/--* t46 int
[000182] ------------- t182 = * PUTARG_REG int REG r2
[000171] ------------- t171 = LCL_VAR int V16 rat1
/--* t171 int
[000183] ------------- t183 = * PUTARG_REG int REG r3
/--* t182 int
+--* t183 int
[000180] Hc----------- t180 = * FIELD_LIST int int at offset 0 REG NA
N008 ( 3, 2) [000062] ------------- t62 = LCL_VAR int V10 tmp2 u:3 (last use) $283
/--* t179 ref this in r0
+--* t180 int arg1 r2,r3
+--* t62 int calli tgt
N009 ( 24, 10) [000063] --CXG-------- * CALL ind void $VN.Void
( 6, 10) [000070] ------------- IL_OFFSET void IL offset: 0x21
N001 ( 6, 10) [000065] ----G-------- t65 = CLS_VAR_ADDR byref Hnd=0x9247d8
/--* t65 byref
[000151] ----G-------- t151 = * IND ref
/--* t151 ref
N003 ( 6, 10) [000069] DA--G-------- * STORE_LCL_VAR ref V11 tmp3 d:3
N007 ( 1, 1) [000072] ------------- t72 = LCL_VAR ref V11 tmp3 u:3 <l:$34b, c:$388>
/--* t72 ref
[000184] ------------- t184 = * PUTARG_REG ref REG r0
N008 ( 3, 7) [000073] ------------- t73 = CNS_INT(h) int 0x924994 token $244
/--* t73 int
[000185] ------------- t185 = * PUTARG_REG int REG r1
N009 ( 3, 7) [000074] ------------- t74 = CNS_INT(h) int 0x924B74 token $246
/--* t74 int
[000186] ------------- t186 = * PUTARG_REG int REG r2
N001 ( 3, 7) [000187] ------------- t187 = CNS_INT(h) int 0xFDA55A0 ftn
/--* t184 ref arg0 in r0
+--* t185 int arg1 in r1
+--* t186 int arg2 in r2
+--* t187 int control expr
N013 ( 23, 28) [000078] --CXG-------- t78 = * CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $206
/--* t78 int
N015 ( 27, 31) [000080] DA-XG-------- * STORE_LCL_VAR int V12 tmp4 d:3
N004 ( 1, 1) [000071] ------------- t71 = LCL_VAR ref V11 tmp3 u:3 (last use) <l:$34b, c:$388>
/--* t71 ref
[000188] ------------- t188 = * PUTARG_REG ref REG r0
N005 ( 2, 2) [000066] ------------- t66 = LCL_VAR int V02 arg2 u:3 (last use) <l:$203, c:$4c0>
/--* t66 int
[000189] ------------- t189 = * PUTARG_REG int REG r1
N008 ( 3, 2) [000082] ------------- t82 = LCL_VAR int V12 tmp4 u:3 (last use) $287
/--* t188 ref this in r0
+--* t189 int arg1 in r1
+--* t82 int calli tgt
N009 ( 23, 10) [000083] --CXG-------- * CALL ind void $VN.Void
------------ BB03 [02C..030) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
( 5, 5) [000011] ------------- IL_OFFSET void IL offset: 0x2c
N001 ( 1, 1) [000146] ------------- t146 = LCL_VAR int V14 cse0 $200
N002 ( 1, 1) [000008] -c----------- t8 = CNS_INT int 0 $40
/--* t146 int
+--* t8 int
N003 ( 3, 3) [000009] J------N--S-- * NE void $207
N004 ( 5, 5) [000010] ------------- * JTRUE void
------------ BB04 [030..034), preds={BB03} succs={BB05}
( 13, 14) [000028] ------------- IL_OFFSET void IL offset: 0x30
N001 ( 1, 1) [000024] ------------- t24 = CNS_INT int 0 $40
N002 ( 1, 1) [000023] ------------- t23 = LCL_VAR ref V00 arg0 u:2 $80
/--* t23 ref
[000190] -c----------- t190 = * LEA(b+4) byref
/--* t190 byref
N003 ( 3, 3) [000123] ---X--------- t123 = * IND int $3c2
/--* t24 int
+--* t123 int
N004 ( 8, 11) [000124] ---X--------- * ARR_BOUNDS_CHECK_Rng void $350
N005 ( 1, 1) [000121] ------------- t121 = LCL_VAR ref V00 arg0 u:2 (last use) $80
/--* t121 ref
[000191] -c----------- t191 = * LEA(b+8) byref
/--* t191 byref
N008 ( 5, 3) [000025] a---GO------- t25 = * IND ushort <l:$208, c:$4c2>
------------ BB05 [034..03B) (return), preds={BB03,BB04} succs={}
( 16, 17) [000018] ------------- IL_OFFSET void IL offset: 0x34
N001 ( 1, 1) [000014] ------------- t14 = CNS_INT int 0 $40
N002 ( 1, 1) [000013] ------------- t13 = LCL_VAR ref V05 arg5 u:2 $81
/--* t13 ref
[000192] -c----------- t192 = * LEA(b+4) byref
/--* t192 byref
N003 ( 3, 3) [000134] ---X--------- t134 = * IND int $3c3
/--* t14 int
+--* t134 int
N004 ( 8, 11) [000135] ---X--------- * ARR_BOUNDS_CHECK_Rng void $356
N005 ( 1, 1) [000132] ------------- t132 = LCL_VAR ref V05 arg5 u:2 (last use) $81
/--* t132 ref
[000193] -c----------- t193 = * LEA(b+8) byref
N010 ( 2, 2) [000015] ------------- t15 = LCL_VAR int V03 arg3 u:2 (last use) $100
/--* t193 byref
+--* t15 int
[000152] -A-XGO------- * STOREIND byte
( 4, 4) [000021] ------------- IL_OFFSET void IL offset: 0x39
N001 ( 2, 2) [000019] ------------- t19 = LCL_VAR int V01 arg1 u:2 (last use) $c0
/--* t19 int
N002 ( 3, 3) [000141] ------------- t141 = * CAST int <- ushort <- int $20c
/--* t141 int
N003 ( 4, 4) [000020] ------------- * RETURN int $28a
------------ BB06 [???..???) (throw), preds={} succs={}
N001 ( 3, 7) [000194] ------------- t194 = CNS_INT(h) int 0xFDA7BB0 ftn
/--* t194 int control expr
N001 ( 16, 10) [000155] --CXG-------- * CALL help void HELPER.CORINFO_HELP_RNGCHKFAIL
-------------------------------------------------------------------------------------------------------------------
*************** In fgLocalVarLiveness()
; Initial local variable assignments
;
; V00 arg0 ref class-hnd
; V01 arg1 ushort
; V02 arg2 ushort
; V03 arg3 ubyte
; V04 arg4 bool
; V05 arg5 ref class-hnd
; V06 loc0 long
; V07 loc1 ushort
; V08 OutArgs lclBlk ( 0)
; V09 tmp1 ref
; V10 tmp2 int
; V11 tmp3 ref
; V12 tmp4 int
; V13 tmp5 ref
; V14 cse0 int
; V15 rat0 int V06.lo(offs=0x00)
; V16 rat1 int V06.hi(offs=0x04)
; V17 rat2 int
In fgLocalVarLivenessInit, sorting locals
refCnt table for 'M11':
V00 arg0 [ ref]: refCnt = 6, refCntWtd = 4 pref [r0]
V13 tmp5 [ ref]: refCnt = 6, refCntWtd = 6
V14 cse0 [ int]: refCnt = 6, refCntWtd = 6
V03 arg3 [ ubyte]: refCnt = 4, refCntWtd = 4 pref [r3]
V02 arg2 [ushort]: refCnt = 5, refCntWtd = 3.50 pref [r2]
V01 arg1 [ushort]: refCnt = 3, refCntWtd = 3 pref [r1]
V05 arg5 [ ref]: refCnt = 4, refCntWtd = 4
V09 tmp1 [ ref]: refCnt = 3, refCntWtd = 3
V11 tmp3 [ ref]: refCnt = 3, refCntWtd = 3
V17 rat2 [ int]: refCnt = 3, refCntWtd = 3
V04 arg4 [ bool]: refCnt = 2, refCntWtd = 2
V10 tmp2 [ int]: refCnt = 2, refCntWtd = 2
V12 tmp4 [ int]: refCnt = 2, refCntWtd = 2
V15 rat0 [ int]: refCnt = 2, refCntWtd = 1
V16 rat1 [ int]: refCnt = 2, refCntWtd = 1
V08 OutArgs [lclBlk]: refCnt = 1, refCntWtd = 1
*************** In fgPerBlockLocalVarLiveness()
BB01 USE(1)={ V04}
DEF(1)={V14 }
BB02 USE(0)={ } + ByrefExposed + GcHeap
DEF(9)={V13 V02 V09 V11 V17 V10 V12 V15 V16} + ByrefExposed* + GcHeap*
BB03 USE(1)={V14}
DEF(0)={ }
BB04 USE(1)={V00} + ByrefExposed + GcHeap
DEF(0)={ }
BB05 USE(3)={V03 V01 V05} + ByrefExposed + GcHeap
DEF(0)={ }
BB06 USE(0)={}
DEF(0)={}
** Memory liveness computed, GcHeap states and ByrefExposed states match
*************** In fgInterBlockLocalVarLiveness()
BB liveness after fgLiveVarAnalysis():
BB01 IN (5)={V00 V03 V01 V05 V04} + ByrefExposed + GcHeap
OUT(5)={V00 V14 V03 V01 V05 } + ByrefExposed + GcHeap
BB02 IN (5)={V00 V14 V03 V01 V05} + ByrefExposed + GcHeap
OUT(5)={V00 V14 V03 V01 V05} + ByrefExposed + GcHeap
BB03 IN (5)={V00 V14 V03 V01 V05} + ByrefExposed + GcHeap
OUT(4)={V00 V03 V01 V05} + ByrefExposed + GcHeap
BB04 IN (4)={V00 V03 V01 V05} + ByrefExposed + GcHeap
OUT(3)={ V03 V01 V05} + ByrefExposed + GcHeap
BB05 IN (3)={V03 V01 V05} + ByrefExposed + GcHeap
OUT(0)={ }
BB06 IN (0)={}
OUT(0)={}
Removing dead node:
N008 ( 5, 3) [000025] a---GO------- * IND ushort <l:$208, c:$4c2>
Removing dead node:
[000191] ------------- * LEA(b+8) byref
Removing dead LclVar use:
N005 ( 1, 1) [000121] ------------- * LCL_VAR ref V00 arg0 u:2 (last use) $80
New refCnts for V00: refCnt = 5, refCntWtd = 3.50
In fgLocalVarLiveness, setting lvaSortAgain back to false (set during dead-code removal)
*************** In fgUpdateFlowGraph()
Before updating the flow graph:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..004)-> BB03 ( cond ) i label target LIR
BB02 [0001] 1 BB01 0.50 [004..02C) i gcsafe LIR
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target LIR
BB04 [0003] 1 BB03 0.50 [030..034) i idxlen LIR
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen LIR
BB06 [0005] 0 0 [???..???) (throw ) keep i internal rare label target LIR
--------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
Liveness pass finished after lowering, IR:
lvasortagain = 0
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..004)-> BB03 ( cond ) i label target LIR
BB02 [0001] 1 BB01 0.50 [004..02C) i gcsafe LIR
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target LIR
BB04 [0003] 1 BB03 0.50 [030..034) i idxlen LIR
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen LIR
BB06 [0005] 0 0 [???..???) (throw ) keep i internal rare label target LIR
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..004) -> BB03 (cond), preds={} succs={BB02,BB03}
( 8, 8) [000005] ------------- IL_OFFSET void IL offset: 0x0
N001 ( 2, 2) [000001] ------------- t1 = LCL_VAR int V04 arg4 u:2 (last use) $140
/--* t1 int
N002 ( 3, 3) [000085] ----------S-- t85 = * CAST int <- bool <- int $200
/--* t85 int
N004 ( 3, 3) [000143] DA----------- * STORE_LCL_VAR int V14 cse0
N005 ( 1, 1) [000144] ------------- t144 = LCL_VAR int V14 cse0 $200
N007 ( 1, 1) [000002] -c----------- t2 = CNS_INT int 0 $40
/--* t144 int
+--* t2 int
N008 ( 6, 6) [000003] J------N--S-- * EQ void $201
N009 ( 8, 8) [000004] ------------- * JTRUE void
------------ BB02 [004..02C), preds={BB01} succs={BB03}
( 14, 17) [000034] ------------- IL_OFFSET void IL offset: 0x4
N001 ( 6, 10) [000030] ----G-------- t30 = CLS_VAR_ADDR byref Hnd=0x9247f8
/--* t30 byref
[000148] ----G-------- t148 = * IND int
/--* t148 int
[000164] DA--G-------- * STORE_LCL_VAR int V17 rat2
[000165] ------------- t165 = LCL_VAR int V17 rat2
[000166] ------------- t166 = LCL_VAR int V17 rat2 (last use)
[000167] -c----------- t167 = CNS_INT int 31
/--* t166 int
+--* t167 int
[000168] ------------- t168 = * RSH int
/--* t165 int
N004 ( 14, 17) [000033] DA--G-------- * STORE_LCL_VAR int V15 rat0
/--* t168 int
[000170] D------------ * STORE_LCL_VAR int V16 rat1
( 19, 24) [000040] ------------- IL_OFFSET void IL offset: 0xb
N001 ( 6, 10) [000035] ----G-------- t35 = CLS_VAR_ADDR byref Hnd=0x924808
/--* t35 byref
[000149] ----G-------- t149 = * IND ref
/--* t149 ref
N003 ( 6, 10) [000087] DA--G-------- * STORE_LCL_VAR ref V13 tmp5 d:3
N004 ( 1, 1) [000036] ------------- t36 = CNS_INT int 0 $40
N005 ( 1, 1) [000088] ------------- t88 = LCL_VAR ref V13 tmp5 u:3 <l:$340, c:$380>
/--* t88 ref
[000173] -c----------- t173 = * LEA(b+4) byref
/--* t173 byref
N006 ( 3, 3) [000091] ---X--------- t91 = * IND int <l:$3c1, c:$3c0>
/--* t36 int
+--* t91 int
N007 ( 8, 11) [000092] ---X--------- * ARR_BOUNDS_CHECK_Rng void <l:$346, c:$345>
N008 ( 1, 1) [000089] ------------- t89 = LCL_VAR ref V13 tmp5 u:3 (last use) <l:$340, c:$380>
/--* t89 ref
[000174] -c----------- t174 = * LEA(b+8) byref
/--* t174 byref
N011 ( 5, 3) [000037] a---GO------- t37 = * IND ushort <l:$203, c:$4c0>
/--* t37 ushort
N015 ( 19, 24) [000039] DA-XGO------- * STORE_LCL_VAR ushort V02 arg2 d:3
( 6, 10) [000050] ------------- IL_OFFSET void IL offset: 0x16
N001 ( 6, 10) [000045] ----G-------- t45 = CLS_VAR_ADDR byref Hnd=0x9247d8
/--* t45 byref
[000150] ----G-------- t150 = * IND ref
/--* t150 ref
N003 ( 6, 10) [000049] DA--G-------- * STORE_LCL_VAR ref V09 tmp1 d:3
N007 ( 1, 1) [000052] ------------- t52 = LCL_VAR ref V09 tmp1 u:3 <l:$349, c:$382>
/--* t52 ref
[000175] ------------- t175 = * PUTARG_REG ref REG r0
N008 ( 3, 7) [000053] ------------- t53 = CNS_INT(h) int 0x924994 token $244
/--* t53 int
[000176] ------------- t176 = * PUTARG_REG int REG r1
N009 ( 3, 7) [000054] ------------- t54 = CNS_INT(h) int 0x924B10 token $245
/--* t54 int
[000177] ------------- t177 = * PUTARG_REG int REG r2
N001 ( 3, 7) [000178] ------------- t178 = CNS_INT(h) int 0xFDA55A0 ftn
/--* t175 ref arg0 in r0
+--* t176 int arg1 in r1
+--* t177 int arg2 in r2
+--* t178 int control expr
N013 ( 23, 28) [000058] --CXG-------- t58 = * CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $205
/--* t58 int
N015 ( 27, 31) [000060] DA-XG-------- * STORE_LCL_VAR int V10 tmp2 d:3
N004 ( 1, 1) [000051] ------------- t51 = LCL_VAR ref V09 tmp1 u:3 (last use) <l:$349, c:$382>
/--* t51 ref
[000179] ------------- t179 = * PUTARG_REG ref REG r0
N005 ( 3, 2) [000046] ------------- t46 = LCL_VAR int V15 rat0 (last use) <l:$2c1, c:$2c0>
/--* t46 int
[000182] ------------- t182 = * PUTARG_REG int REG r2
[000171] ------------- t171 = LCL_VAR int V16 rat1 (last use)
/--* t171 int
[000183] ------------- t183 = * PUTARG_REG int REG r3
/--* t182 int
+--* t183 int
[000180] Hc----------- t180 = * FIELD_LIST int int at offset 0 REG NA
N008 ( 3, 2) [000062] ------------- t62 = LCL_VAR int V10 tmp2 u:3 (last use) $283
/--* t179 ref this in r0
+--* t180 int arg1 r2,r3
+--* t62 int calli tgt
N009 ( 24, 10) [000063] --CXG-------- * CALL ind void $VN.Void
( 6, 10) [000070] ------------- IL_OFFSET void IL offset: 0x21
N001 ( 6, 10) [000065] ----G-------- t65 = CLS_VAR_ADDR byref Hnd=0x9247d8
/--* t65 byref
[000151] ----G-------- t151 = * IND ref
/--* t151 ref
N003 ( 6, 10) [000069] DA--G-------- * STORE_LCL_VAR ref V11 tmp3 d:3
N007 ( 1, 1) [000072] ------------- t72 = LCL_VAR ref V11 tmp3 u:3 <l:$34b, c:$388>
/--* t72 ref
[000184] ------------- t184 = * PUTARG_REG ref REG r0
N008 ( 3, 7) [000073] ------------- t73 = CNS_INT(h) int 0x924994 token $244
/--* t73 int
[000185] ------------- t185 = * PUTARG_REG int REG r1
N009 ( 3, 7) [000074] ------------- t74 = CNS_INT(h) int 0x924B74 token $246
/--* t74 int
[000186] ------------- t186 = * PUTARG_REG int REG r2
N001 ( 3, 7) [000187] ------------- t187 = CNS_INT(h) int 0xFDA55A0 ftn
/--* t184 ref arg0 in r0
+--* t185 int arg1 in r1
+--* t186 int arg2 in r2
+--* t187 int control expr
N013 ( 23, 28) [000078] --CXG-------- t78 = * CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $206
/--* t78 int
N015 ( 27, 31) [000080] DA-XG-------- * STORE_LCL_VAR int V12 tmp4 d:3
N004 ( 1, 1) [000071] ------------- t71 = LCL_VAR ref V11 tmp3 u:3 (last use) <l:$34b, c:$388>
/--* t71 ref
[000188] ------------- t188 = * PUTARG_REG ref REG r0
N005 ( 2, 2) [000066] ------------- t66 = LCL_VAR int V02 arg2 u:3 (last use) <l:$203, c:$4c0>
/--* t66 int
[000189] ------------- t189 = * PUTARG_REG int REG r1
N008 ( 3, 2) [000082] ------------- t82 = LCL_VAR int V12 tmp4 u:3 (last use) $287
/--* t188 ref this in r0
+--* t189 int arg1 in r1
+--* t82 int calli tgt
N009 ( 23, 10) [000083] --CXG-------- * CALL ind void $VN.Void
------------ BB03 [02C..030) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
( 5, 5) [000011] ------------- IL_OFFSET void IL offset: 0x2c
N001 ( 1, 1) [000146] ------------- t146 = LCL_VAR int V14 cse0 (last use) $200
N002 ( 1, 1) [000008] -c----------- t8 = CNS_INT int 0 $40
/--* t146 int
+--* t8 int
N003 ( 3, 3) [000009] J------N--S-- * NE void $207
N004 ( 5, 5) [000010] ------------- * JTRUE void
------------ BB04 [030..034), preds={BB03} succs={BB05}
( 13, 14) [000028] ------------- IL_OFFSET void IL offset: 0x30
N001 ( 1, 1) [000024] ------------- t24 = CNS_INT int 0 $40
N002 ( 1, 1) [000023] ------------- t23 = LCL_VAR ref V00 arg0 u:2 (last use) $80
/--* t23 ref
[000190] -c----------- t190 = * LEA(b+4) byref
/--* t190 byref
N003 ( 3, 3) [000123] ---X--------- t123 = * IND int $3c2
/--* t24 int
+--* t123 int
N004 ( 8, 11) [000124] ---X--------- * ARR_BOUNDS_CHECK_Rng void $350
------------ BB05 [034..03B) (return), preds={BB03,BB04} succs={}
( 16, 17) [000018] ------------- IL_OFFSET void IL offset: 0x34
N001 ( 1, 1) [000014] ------------- t14 = CNS_INT int 0 $40
N002 ( 1, 1) [000013] ------------- t13 = LCL_VAR ref V05 arg5 u:2 $81
/--* t13 ref
[000192] -c----------- t192 = * LEA(b+4) byref
/--* t192 byref
N003 ( 3, 3) [000134] ---X--------- t134 = * IND int $3c3
/--* t14 int
+--* t134 int
N004 ( 8, 11) [000135] ---X--------- * ARR_BOUNDS_CHECK_Rng void $356
N005 ( 1, 1) [000132] ------------- t132 = LCL_VAR ref V05 arg5 u:2 (last use) $81
/--* t132 ref
[000193] -c----------- t193 = * LEA(b+8) byref
N010 ( 2, 2) [000015] ------------- t15 = LCL_VAR int V03 arg3 u:2 (last use) $100
/--* t193 byref
+--* t15 int
[000152] -A-XGO------- * STOREIND byte
( 4, 4) [000021] ------------- IL_OFFSET void IL offset: 0x39
N001 ( 2, 2) [000019] ------------- t19 = LCL_VAR int V01 arg1 u:2 (last use) $c0
/--* t19 int
N002 ( 3, 3) [000141] ------------- t141 = * CAST int <- ushort <- int $20c
/--* t141 int
N003 ( 4, 4) [000020] ------------- * RETURN int $28a
------------ BB06 [???..???) (throw), preds={} succs={}
N001 ( 3, 7) [000194] ------------- t194 = CNS_INT(h) int 0xFDA7BB0 ftn
/--* t194 int control expr
N001 ( 16, 10) [000155] --CXG-------- * CALL help void HELPER.CORINFO_HELP_RNGCHKFAIL
-------------------------------------------------------------------------------------------------------------------
*************** 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 ( cond ) i label target LIR
BB02 [0001] 1 BB01 0.50 [004..02C) i gcsafe LIR
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target LIR
BB04 [0003] 1 BB03 0.50 [030..034) i idxlen LIR
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen LIR
BB06 [0005] 0 0 [???..???) (throw ) keep i internal rare label target LIR
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..004) -> BB03 (cond), preds={} succs={BB02,BB03}
( 8, 8) [000005] ------------- IL_OFFSET void IL offset: 0x0
N001 ( 2, 2) [000001] ------------- t1 = LCL_VAR int V04 arg4 u:2 (last use) $140
/--* t1 int
N002 ( 3, 3) [000085] ----------S-- t85 = * CAST int <- bool <- int $200
/--* t85 int
N004 ( 3, 3) [000143] DA----------- * STORE_LCL_VAR int V14 cse0
N005 ( 1, 1) [000144] ------------- t144 = LCL_VAR int V14 cse0 $200
N007 ( 1, 1) [000002] -c----------- t2 = CNS_INT int 0 $40
/--* t144 int
+--* t2 int
N008 ( 6, 6) [000003] J------N--S-- * EQ void $201
N009 ( 8, 8) [000004] ------------- * JTRUE void
------------ BB02 [004..02C), preds={BB01} succs={BB03}
( 14, 17) [000034] ------------- IL_OFFSET void IL offset: 0x4
N001 ( 6, 10) [000030] ----G-------- t30 = CLS_VAR_ADDR byref Hnd=0x9247f8
/--* t30 byref
[000148] ----G-------- t148 = * IND int
/--* t148 int
[000164] DA--G-------- * STORE_LCL_VAR int V17 rat2
[000165] ------------- t165 = LCL_VAR int V17 rat2
[000166] ------------- t166 = LCL_VAR int V17 rat2 (last use)
[000167] -c----------- t167 = CNS_INT int 31
/--* t166 int
+--* t167 int
[000168] ------------- t168 = * RSH int
/--* t165 int
N004 ( 14, 17) [000033] DA--G-------- * STORE_LCL_VAR int V15 rat0
/--* t168 int
[000170] D------------ * STORE_LCL_VAR int V16 rat1
( 19, 24) [000040] ------------- IL_OFFSET void IL offset: 0xb
N001 ( 6, 10) [000035] ----G-------- t35 = CLS_VAR_ADDR byref Hnd=0x924808
/--* t35 byref
[000149] ----G-------- t149 = * IND ref
/--* t149 ref
N003 ( 6, 10) [000087] DA--G-------- * STORE_LCL_VAR ref V13 tmp5 d:3
N004 ( 1, 1) [000036] ------------- t36 = CNS_INT int 0 $40
N005 ( 1, 1) [000088] ------------- t88 = LCL_VAR ref V13 tmp5 u:3 <l:$340, c:$380>
/--* t88 ref
[000173] -c----------- t173 = * LEA(b+4) byref
/--* t173 byref
N006 ( 3, 3) [000091] ---X--------- t91 = * IND int <l:$3c1, c:$3c0>
/--* t36 int
+--* t91 int
N007 ( 8, 11) [000092] ---X--------- * ARR_BOUNDS_CHECK_Rng void <l:$346, c:$345>
N008 ( 1, 1) [000089] ------------- t89 = LCL_VAR ref V13 tmp5 u:3 (last use) <l:$340, c:$380>
/--* t89 ref
[000174] -c----------- t174 = * LEA(b+8) byref
/--* t174 byref
N011 ( 5, 3) [000037] a---GO------- t37 = * IND ushort <l:$203, c:$4c0>
/--* t37 ushort
N015 ( 19, 24) [000039] DA-XGO------- * STORE_LCL_VAR ushort V02 arg2 d:3
( 6, 10) [000050] ------------- IL_OFFSET void IL offset: 0x16
N001 ( 6, 10) [000045] ----G-------- t45 = CLS_VAR_ADDR byref Hnd=0x9247d8
/--* t45 byref
[000150] ----G-------- t150 = * IND ref
/--* t150 ref
N003 ( 6, 10) [000049] DA--G-------- * STORE_LCL_VAR ref V09 tmp1 d:3
N007 ( 1, 1) [000052] ------------- t52 = LCL_VAR ref V09 tmp1 u:3 <l:$349, c:$382>
/--* t52 ref
[000175] ------------- t175 = * PUTARG_REG ref REG r0
N008 ( 3, 7) [000053] ------------- t53 = CNS_INT(h) int 0x924994 token $244
/--* t53 int
[000176] ------------- t176 = * PUTARG_REG int REG r1
N009 ( 3, 7) [000054] ------------- t54 = CNS_INT(h) int 0x924B10 token $245
/--* t54 int
[000177] ------------- t177 = * PUTARG_REG int REG r2
N001 ( 3, 7) [000178] ------------- t178 = CNS_INT(h) int 0xFDA55A0 ftn
/--* t175 ref arg0 in r0
+--* t176 int arg1 in r1
+--* t177 int arg2 in r2
+--* t178 int control expr
N013 ( 23, 28) [000058] --CXG-------- t58 = * CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $205
/--* t58 int
N015 ( 27, 31) [000060] DA-XG-------- * STORE_LCL_VAR int V10 tmp2 d:3
N004 ( 1, 1) [000051] ------------- t51 = LCL_VAR ref V09 tmp1 u:3 (last use) <l:$349, c:$382>
/--* t51 ref
[000179] ------------- t179 = * PUTARG_REG ref REG r0
N005 ( 3, 2) [000046] ------------- t46 = LCL_VAR int V15 rat0 (last use) <l:$2c1, c:$2c0>
/--* t46 int
[000182] ------------- t182 = * PUTARG_REG int REG r2
[000171] ------------- t171 = LCL_VAR int V16 rat1 (last use)
/--* t171 int
[000183] ------------- t183 = * PUTARG_REG int REG r3
/--* t182 int
+--* t183 int
[000180] Hc----------- t180 = * FIELD_LIST int int at offset 0 REG NA
N008 ( 3, 2) [000062] ------------- t62 = LCL_VAR int V10 tmp2 u:3 (last use) $283
/--* t179 ref this in r0
+--* t180 int arg1 r2,r3
+--* t62 int calli tgt
N009 ( 24, 10) [000063] --CXG-------- * CALL ind void $VN.Void
( 6, 10) [000070] ------------- IL_OFFSET void IL offset: 0x21
N001 ( 6, 10) [000065] ----G-------- t65 = CLS_VAR_ADDR byref Hnd=0x9247d8
/--* t65 byref
[000151] ----G-------- t151 = * IND ref
/--* t151 ref
N003 ( 6, 10) [000069] DA--G-------- * STORE_LCL_VAR ref V11 tmp3 d:3
N007 ( 1, 1) [000072] ------------- t72 = LCL_VAR ref V11 tmp3 u:3 <l:$34b, c:$388>
/--* t72 ref
[000184] ------------- t184 = * PUTARG_REG ref REG r0
N008 ( 3, 7) [000073] ------------- t73 = CNS_INT(h) int 0x924994 token $244
/--* t73 int
[000185] ------------- t185 = * PUTARG_REG int REG r1
N009 ( 3, 7) [000074] ------------- t74 = CNS_INT(h) int 0x924B74 token $246
/--* t74 int
[000186] ------------- t186 = * PUTARG_REG int REG r2
N001 ( 3, 7) [000187] ------------- t187 = CNS_INT(h) int 0xFDA55A0 ftn
/--* t184 ref arg0 in r0
+--* t185 int arg1 in r1
+--* t186 int arg2 in r2
+--* t187 int control expr
N013 ( 23, 28) [000078] --CXG-------- t78 = * CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $206
/--* t78 int
N015 ( 27, 31) [000080] DA-XG-------- * STORE_LCL_VAR int V12 tmp4 d:3
N004 ( 1, 1) [000071] ------------- t71 = LCL_VAR ref V11 tmp3 u:3 (last use) <l:$34b, c:$388>
/--* t71 ref
[000188] ------------- t188 = * PUTARG_REG ref REG r0
N005 ( 2, 2) [000066] ------------- t66 = LCL_VAR int V02 arg2 u:3 (last use) <l:$203, c:$4c0>
/--* t66 int
[000189] ------------- t189 = * PUTARG_REG int REG r1
N008 ( 3, 2) [000082] ------------- t82 = LCL_VAR int V12 tmp4 u:3 (last use) $287
/--* t188 ref this in r0
+--* t189 int arg1 in r1
+--* t82 int calli tgt
N009 ( 23, 10) [000083] --CXG-------- * CALL ind void $VN.Void
------------ BB03 [02C..030) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
( 5, 5) [000011] ------------- IL_OFFSET void IL offset: 0x2c
N001 ( 1, 1) [000146] ------------- t146 = LCL_VAR int V14 cse0 (last use) $200
N002 ( 1, 1) [000008] -c----------- t8 = CNS_INT int 0 $40
/--* t146 int
+--* t8 int
N003 ( 3, 3) [000009] J------N--S-- * NE void $207
N004 ( 5, 5) [000010] ------------- * JTRUE void
------------ BB04 [030..034), preds={BB03} succs={BB05}
( 13, 14) [000028] ------------- IL_OFFSET void IL offset: 0x30
N001 ( 1, 1) [000024] ------------- t24 = CNS_INT int 0 $40
N002 ( 1, 1) [000023] ------------- t23 = LCL_VAR ref V00 arg0 u:2 (last use) $80
/--* t23 ref
[000190] -c----------- t190 = * LEA(b+4) byref
/--* t190 byref
N003 ( 3, 3) [000123] ---X--------- t123 = * IND int $3c2
/--* t24 int
+--* t123 int
N004 ( 8, 11) [000124] ---X--------- * ARR_BOUNDS_CHECK_Rng void $350
------------ BB05 [034..03B) (return), preds={BB03,BB04} succs={}
( 16, 17) [000018] ------------- IL_OFFSET void IL offset: 0x34
N001 ( 1, 1) [000014] ------------- t14 = CNS_INT int 0 $40
N002 ( 1, 1) [000013] ------------- t13 = LCL_VAR ref V05 arg5 u:2 $81
/--* t13 ref
[000192] -c----------- t192 = * LEA(b+4) byref
/--* t192 byref
N003 ( 3, 3) [000134] ---X--------- t134 = * IND int $3c3
/--* t14 int
+--* t134 int
N004 ( 8, 11) [000135] ---X--------- * ARR_BOUNDS_CHECK_Rng void $356
N005 ( 1, 1) [000132] ------------- t132 = LCL_VAR ref V05 arg5 u:2 (last use) $81
/--* t132 ref
[000193] -c----------- t193 = * LEA(b+8) byref
N010 ( 2, 2) [000015] ------------- t15 = LCL_VAR int V03 arg3 u:2 (last use) $100
/--* t193 byref
+--* t15 int
[000152] -A-XGO------- * STOREIND byte
( 4, 4) [000021] ------------- IL_OFFSET void IL offset: 0x39
N001 ( 2, 2) [000019] ------------- t19 = LCL_VAR int V01 arg1 u:2 (last use) $c0
/--* t19 int
N002 ( 3, 3) [000141] ------------- t141 = * CAST int <- ushort <- int $20c
/--* t141 int
N003 ( 4, 4) [000020] ------------- * RETURN int $28a
------------ BB06 [???..???) (throw), preds={} succs={}
N001 ( 3, 7) [000194] ------------- t194 = CNS_INT(h) int 0xFDA7BB0 ftn
/--* t194 int control expr
N001 ( 16, 10) [000155] --CXG-------- * CALL help void HELPER.CORINFO_HELP_RNGCHKFAIL
-------------------------------------------------------------------------------------------------------------------
*************** 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 ( cond ) i label target LIR
BB02 [0001] 1 BB01 0.50 [004..02C) i gcsafe LIR
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target LIR
BB04 [0003] 1 BB03 0.50 [030..034) i idxlen LIR
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen LIR
BB06 [0005] 0 0 [???..???) (throw ) keep i internal rare label target LIR
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..004) -> BB03 (cond), preds={} succs={BB02,BB03}
( 8, 8) [000005] ------------- IL_OFFSET void IL offset: 0x0
N001 ( 2, 2) [000001] ------------- t1 = LCL_VAR int V04 arg4 u:2 (last use) $140
/--* t1 int
N002 ( 3, 3) [000085] ----------S-- t85 = * CAST int <- bool <- int $200
/--* t85 int
N004 ( 3, 3) [000143] DA----------- * STORE_LCL_VAR int V14 cse0
N005 ( 1, 1) [000144] ------------- t144 = LCL_VAR int V14 cse0 $200
N007 ( 1, 1) [000002] -c----------- t2 = CNS_INT int 0 $40
/--* t144 int
+--* t2 int
N008 ( 6, 6) [000003] J------N--S-- * EQ void $201
N009 ( 8, 8) [000004] ------------- * JTRUE void
------------ BB02 [004..02C), preds={BB01} succs={BB03}
( 14, 17) [000034] ------------- IL_OFFSET void IL offset: 0x4
N001 ( 6, 10) [000030] ----G-------- t30 = CLS_VAR_ADDR byref Hnd=0x9247f8
/--* t30 byref
[000148] ----G-------- t148 = * IND int
/--* t148 int
[000164] DA--G-------- * STORE_LCL_VAR int V17 rat2
[000165] ------------- t165 = LCL_VAR int V17 rat2
[000166] ------------- t166 = LCL_VAR int V17 rat2 (last use)
[000167] -c----------- t167 = CNS_INT int 31
/--* t166 int
+--* t167 int
[000168] ------------- t168 = * RSH int
/--* t165 int
N004 ( 14, 17) [000033] DA--G-------- * STORE_LCL_VAR int V15 rat0
/--* t168 int
[000170] D------------ * STORE_LCL_VAR int V16 rat1
( 19, 24) [000040] ------------- IL_OFFSET void IL offset: 0xb
N001 ( 6, 10) [000035] ----G-------- t35 = CLS_VAR_ADDR byref Hnd=0x924808
/--* t35 byref
[000149] ----G-------- t149 = * IND ref
/--* t149 ref
N003 ( 6, 10) [000087] DA--G-------- * STORE_LCL_VAR ref V13 tmp5 d:3
N004 ( 1, 1) [000036] ------------- t36 = CNS_INT int 0 $40
N005 ( 1, 1) [000088] ------------- t88 = LCL_VAR ref V13 tmp5 u:3 <l:$340, c:$380>
/--* t88 ref
[000173] -c----------- t173 = * LEA(b+4) byref
/--* t173 byref
N006 ( 3, 3) [000091] ---X--------- t91 = * IND int <l:$3c1, c:$3c0>
/--* t36 int
+--* t91 int
N007 ( 8, 11) [000092] ---X--------- * ARR_BOUNDS_CHECK_Rng void <l:$346, c:$345>
N008 ( 1, 1) [000089] ------------- t89 = LCL_VAR ref V13 tmp5 u:3 (last use) <l:$340, c:$380>
/--* t89 ref
[000174] -c----------- t174 = * LEA(b+8) byref
/--* t174 byref
N011 ( 5, 3) [000037] a---GO------- t37 = * IND ushort <l:$203, c:$4c0>
/--* t37 ushort
N015 ( 19, 24) [000039] DA-XGO------- * STORE_LCL_VAR ushort V02 arg2 d:3
( 6, 10) [000050] ------------- IL_OFFSET void IL offset: 0x16
N001 ( 6, 10) [000045] ----G-------- t45 = CLS_VAR_ADDR byref Hnd=0x9247d8
/--* t45 byref
[000150] ----G-------- t150 = * IND ref
/--* t150 ref
N003 ( 6, 10) [000049] DA--G-------- * STORE_LCL_VAR ref V09 tmp1 d:3
N007 ( 1, 1) [000052] ------------- t52 = LCL_VAR ref V09 tmp1 u:3 <l:$349, c:$382>
/--* t52 ref
[000175] ------------- t175 = * PUTARG_REG ref REG r0
N008 ( 3, 7) [000053] ------------- t53 = CNS_INT(h) int 0x924994 token $244
/--* t53 int
[000176] ------------- t176 = * PUTARG_REG int REG r1
N009 ( 3, 7) [000054] ------------- t54 = CNS_INT(h) int 0x924B10 token $245
/--* t54 int
[000177] ------------- t177 = * PUTARG_REG int REG r2
N001 ( 3, 7) [000178] ------------- t178 = CNS_INT(h) int 0xFDA55A0 ftn
/--* t175 ref arg0 in r0
+--* t176 int arg1 in r1
+--* t177 int arg2 in r2
+--* t178 int control expr
N013 ( 23, 28) [000058] --CXG-------- t58 = * CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $205
/--* t58 int
N015 ( 27, 31) [000060] DA-XG-------- * STORE_LCL_VAR int V10 tmp2 d:3
N004 ( 1, 1) [000051] ------------- t51 = LCL_VAR ref V09 tmp1 u:3 (last use) <l:$349, c:$382>
/--* t51 ref
[000179] ------------- t179 = * PUTARG_REG ref REG r0
N005 ( 3, 2) [000046] ------------- t46 = LCL_VAR int V15 rat0 (last use) <l:$2c1, c:$2c0>
/--* t46 int
[000182] ------------- t182 = * PUTARG_REG int REG r2
[000171] ------------- t171 = LCL_VAR int V16 rat1 (last use)
/--* t171 int
[000183] ------------- t183 = * PUTARG_REG int REG r3
/--* t182 int
+--* t183 int
[000180] Hc----------- t180 = * FIELD_LIST int int at offset 0 REG NA
N008 ( 3, 2) [000062] ------------- t62 = LCL_VAR int V10 tmp2 u:3 (last use) $283
/--* t179 ref this in r0
+--* t180 int arg1 r2,r3
+--* t62 int calli tgt
N009 ( 24, 10) [000063] --CXG-------- * CALL ind void $VN.Void
( 6, 10) [000070] ------------- IL_OFFSET void IL offset: 0x21
N001 ( 6, 10) [000065] ----G-------- t65 = CLS_VAR_ADDR byref Hnd=0x9247d8
/--* t65 byref
[000151] ----G-------- t151 = * IND ref
/--* t151 ref
N003 ( 6, 10) [000069] DA--G-------- * STORE_LCL_VAR ref V11 tmp3 d:3
N007 ( 1, 1) [000072] ------------- t72 = LCL_VAR ref V11 tmp3 u:3 <l:$34b, c:$388>
/--* t72 ref
[000184] ------------- t184 = * PUTARG_REG ref REG r0
N008 ( 3, 7) [000073] ------------- t73 = CNS_INT(h) int 0x924994 token $244
/--* t73 int
[000185] ------------- t185 = * PUTARG_REG int REG r1
N009 ( 3, 7) [000074] ------------- t74 = CNS_INT(h) int 0x924B74 token $246
/--* t74 int
[000186] ------------- t186 = * PUTARG_REG int REG r2
N001 ( 3, 7) [000187] ------------- t187 = CNS_INT(h) int 0xFDA55A0 ftn
/--* t184 ref arg0 in r0
+--* t185 int arg1 in r1
+--* t186 int arg2 in r2
+--* t187 int control expr
N013 ( 23, 28) [000078] --CXG-------- t78 = * CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $206
/--* t78 int
N015 ( 27, 31) [000080] DA-XG-------- * STORE_LCL_VAR int V12 tmp4 d:3
N004 ( 1, 1) [000071] ------------- t71 = LCL_VAR ref V11 tmp3 u:3 (last use) <l:$34b, c:$388>
/--* t71 ref
[000188] ------------- t188 = * PUTARG_REG ref REG r0
N005 ( 2, 2) [000066] ------------- t66 = LCL_VAR int V02 arg2 u:3 (last use) <l:$203, c:$4c0>
/--* t66 int
[000189] ------------- t189 = * PUTARG_REG int REG r1
N008 ( 3, 2) [000082] ------------- t82 = LCL_VAR int V12 tmp4 u:3 (last use) $287
/--* t188 ref this in r0
+--* t189 int arg1 in r1
+--* t82 int calli tgt
N009 ( 23, 10) [000083] --CXG-------- * CALL ind void $VN.Void
------------ BB03 [02C..030) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
( 5, 5) [000011] ------------- IL_OFFSET void IL offset: 0x2c
N001 ( 1, 1) [000146] ------------- t146 = LCL_VAR int V14 cse0 (last use) $200
N002 ( 1, 1) [000008] -c----------- t8 = CNS_INT int 0 $40
/--* t146 int
+--* t8 int
N003 ( 3, 3) [000009] J------N--S-- * NE void $207
N004 ( 5, 5) [000010] ------------- * JTRUE void
------------ BB04 [030..034), preds={BB03} succs={BB05}
( 13, 14) [000028] ------------- IL_OFFSET void IL offset: 0x30
N001 ( 1, 1) [000024] ------------- t24 = CNS_INT int 0 $40
N002 ( 1, 1) [000023] ------------- t23 = LCL_VAR ref V00 arg0 u:2 (last use) $80
/--* t23 ref
[000190] -c----------- t190 = * LEA(b+4) byref
/--* t190 byref
N003 ( 3, 3) [000123] ---X--------- t123 = * IND int $3c2
/--* t24 int
+--* t123 int
N004 ( 8, 11) [000124] ---X--------- * ARR_BOUNDS_CHECK_Rng void $350
------------ BB05 [034..03B) (return), preds={BB03,BB04} succs={}
( 16, 17) [000018] ------------- IL_OFFSET void IL offset: 0x34
N001 ( 1, 1) [000014] ------------- t14 = CNS_INT int 0 $40
N002 ( 1, 1) [000013] ------------- t13 = LCL_VAR ref V05 arg5 u:2 $81
/--* t13 ref
[000192] -c----------- t192 = * LEA(b+4) byref
/--* t192 byref
N003 ( 3, 3) [000134] ---X--------- t134 = * IND int $3c3
/--* t14 int
+--* t134 int
N004 ( 8, 11) [000135] ---X--------- * ARR_BOUNDS_CHECK_Rng void $356
N005 ( 1, 1) [000132] ------------- t132 = LCL_VAR ref V05 arg5 u:2 (last use) $81
/--* t132 ref
[000193] -c----------- t193 = * LEA(b+8) byref
N010 ( 2, 2) [000015] ------------- t15 = LCL_VAR int V03 arg3 u:2 (last use) $100
/--* t193 byref
+--* t15 int
[000152] -A-XGO------- * STOREIND byte
( 4, 4) [000021] ------------- IL_OFFSET void IL offset: 0x39
N001 ( 2, 2) [000019] ------------- t19 = LCL_VAR int V01 arg1 u:2 (last use) $c0
/--* t19 int
N002 ( 3, 3) [000141] ------------- t141 = * CAST int <- ushort <- int $20c
/--* t141 int
N003 ( 4, 4) [000020] ------------- * RETURN int $28a
------------ BB06 [???..???) (throw), preds={} succs={}
N001 ( 3, 7) [000194] ------------- t194 = CNS_INT(h) int 0xFDA7BB0 ftn
/--* t194 int control expr
N001 ( 16, 10) [000155] --CXG-------- * CALL help void HELPER.CORINFO_HELP_RNGCHKFAIL
-------------------------------------------------------------------------------------------------------------------
*************** 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 ( cond ) i label target LIR
BB02 [0001] 1 BB01 0.50 [004..02C) i gcsafe LIR
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target LIR
BB04 [0003] 1 BB03 0.50 [030..034) i idxlen LIR
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen LIR
BB06 [0005] 0 0 [???..???) (throw ) keep i internal rare label target LIR
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..004) -> BB03 (cond), preds={} succs={BB02,BB03}
( 8, 8) [000005] ------------- IL_OFFSET void IL offset: 0x0
N001 ( 2, 2) [000001] ------------- t1 = LCL_VAR int V04 arg4 u:2 (last use) $140
/--* t1 int
N002 ( 3, 3) [000085] ----------S-- t85 = * CAST int <- bool <- int $200
/--* t85 int
N004 ( 3, 3) [000143] DA----------- * STORE_LCL_VAR int V14 cse0
N005 ( 1, 1) [000144] ------------- t144 = LCL_VAR int V14 cse0 $200
N007 ( 1, 1) [000002] -c----------- t2 = CNS_INT int 0 $40
/--* t144 int
+--* t2 int
N008 ( 6, 6) [000003] J------N--S-- * EQ void $201
N009 ( 8, 8) [000004] ------------- * JTRUE void
------------ BB02 [004..02C), preds={BB01} succs={BB03}
( 14, 17) [000034] ------------- IL_OFFSET void IL offset: 0x4
N001 ( 6, 10) [000030] ----G-------- t30 = CLS_VAR_ADDR byref Hnd=0x9247f8
/--* t30 byref
[000148] ----G-------- t148 = * IND int
/--* t148 int
[000164] DA--G-------- * STORE_LCL_VAR int V17 rat2
[000165] ------------- t165 = LCL_VAR int V17 rat2
[000166] ------------- t166 = LCL_VAR int V17 rat2 (last use)
[000167] -c----------- t167 = CNS_INT int 31
/--* t166 int
+--* t167 int
[000168] ------------- t168 = * RSH int
/--* t165 int
N004 ( 14, 17) [000033] DA--G-------- * STORE_LCL_VAR int V15 rat0
/--* t168 int
[000170] D------------ * STORE_LCL_VAR int V16 rat1
( 19, 24) [000040] ------------- IL_OFFSET void IL offset: 0xb
N001 ( 6, 10) [000035] ----G-------- t35 = CLS_VAR_ADDR byref Hnd=0x924808
/--* t35 byref
[000149] ----G-------- t149 = * IND ref
/--* t149 ref
N003 ( 6, 10) [000087] DA--G-------- * STORE_LCL_VAR ref V13 tmp5 d:3
N004 ( 1, 1) [000036] ------------- t36 = CNS_INT int 0 $40
N005 ( 1, 1) [000088] ------------- t88 = LCL_VAR ref V13 tmp5 u:3 <l:$340, c:$380>
/--* t88 ref
[000173] -c----------- t173 = * LEA(b+4) byref
/--* t173 byref
N006 ( 3, 3) [000091] ---X--------- t91 = * IND int <l:$3c1, c:$3c0>
/--* t36 int
+--* t91 int
N007 ( 8, 11) [000092] ---X--------- * ARR_BOUNDS_CHECK_Rng void <l:$346, c:$345>
N008 ( 1, 1) [000089] ------------- t89 = LCL_VAR ref V13 tmp5 u:3 (last use) <l:$340, c:$380>
/--* t89 ref
[000174] -c----------- t174 = * LEA(b+8) byref
/--* t174 byref
N011 ( 5, 3) [000037] a---GO------- t37 = * IND ushort <l:$203, c:$4c0>
/--* t37 ushort
N015 ( 19, 24) [000039] DA-XGO------- * STORE_LCL_VAR ushort V02 arg2 d:3
( 6, 10) [000050] ------------- IL_OFFSET void IL offset: 0x16
N001 ( 6, 10) [000045] ----G-------- t45 = CLS_VAR_ADDR byref Hnd=0x9247d8
/--* t45 byref
[000150] ----G-------- t150 = * IND ref
/--* t150 ref
N003 ( 6, 10) [000049] DA--G-------- * STORE_LCL_VAR ref V09 tmp1 d:3
N007 ( 1, 1) [000052] ------------- t52 = LCL_VAR ref V09 tmp1 u:3 <l:$349, c:$382>
/--* t52 ref
[000175] ------------- t175 = * PUTARG_REG ref REG r0
N008 ( 3, 7) [000053] ------------- t53 = CNS_INT(h) int 0x924994 token $244
/--* t53 int
[000176] ------------- t176 = * PUTARG_REG int REG r1
N009 ( 3, 7) [000054] ------------- t54 = CNS_INT(h) int 0x924B10 token $245
/--* t54 int
[000177] ------------- t177 = * PUTARG_REG int REG r2
N001 ( 3, 7) [000178] ------------- t178 = CNS_INT(h) int 0xFDA55A0 ftn
/--* t175 ref arg0 in r0
+--* t176 int arg1 in r1
+--* t177 int arg2 in r2
+--* t178 int control expr
N013 ( 23, 28) [000058] --CXG-------- t58 = * CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $205
/--* t58 int
N015 ( 27, 31) [000060] DA-XG-------- * STORE_LCL_VAR int V10 tmp2 d:3
N004 ( 1, 1) [000051] ------------- t51 = LCL_VAR ref V09 tmp1 u:3 (last use) <l:$349, c:$382>
/--* t51 ref
[000179] ------------- t179 = * PUTARG_REG ref REG r0
N005 ( 3, 2) [000046] ------------- t46 = LCL_VAR int V15 rat0 (last use) <l:$2c1, c:$2c0>
/--* t46 int
[000182] ------------- t182 = * PUTARG_REG int REG r2
[000171] ------------- t171 = LCL_VAR int V16 rat1 (last use)
/--* t171 int
[000183] ------------- t183 = * PUTARG_REG int REG r3
/--* t182 int
+--* t183 int
[000180] Hc----------- t180 = * FIELD_LIST int int at offset 0 REG NA
N008 ( 3, 2) [000062] ------------- t62 = LCL_VAR int V10 tmp2 u:3 (last use) $283
/--* t179 ref this in r0
+--* t180 int arg1 r2,r3
+--* t62 int calli tgt
N009 ( 24, 10) [000063] --CXG-------- * CALL ind void $VN.Void
( 6, 10) [000070] ------------- IL_OFFSET void IL offset: 0x21
N001 ( 6, 10) [000065] ----G-------- t65 = CLS_VAR_ADDR byref Hnd=0x9247d8
/--* t65 byref
[000151] ----G-------- t151 = * IND ref
/--* t151 ref
N003 ( 6, 10) [000069] DA--G-------- * STORE_LCL_VAR ref V11 tmp3 d:3
N007 ( 1, 1) [000072] ------------- t72 = LCL_VAR ref V11 tmp3 u:3 <l:$34b, c:$388>
/--* t72 ref
[000184] ------------- t184 = * PUTARG_REG ref REG r0
N008 ( 3, 7) [000073] ------------- t73 = CNS_INT(h) int 0x924994 token $244
/--* t73 int
[000185] ------------- t185 = * PUTARG_REG int REG r1
N009 ( 3, 7) [000074] ------------- t74 = CNS_INT(h) int 0x924B74 token $246
/--* t74 int
[000186] ------------- t186 = * PUTARG_REG int REG r2
N001 ( 3, 7) [000187] ------------- t187 = CNS_INT(h) int 0xFDA55A0 ftn
/--* t184 ref arg0 in r0
+--* t185 int arg1 in r1
+--* t186 int arg2 in r2
+--* t187 int control expr
N013 ( 23, 28) [000078] --CXG-------- t78 = * CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $206
/--* t78 int
N015 ( 27, 31) [000080] DA-XG-------- * STORE_LCL_VAR int V12 tmp4 d:3
N004 ( 1, 1) [000071] ------------- t71 = LCL_VAR ref V11 tmp3 u:3 (last use) <l:$34b, c:$388>
/--* t71 ref
[000188] ------------- t188 = * PUTARG_REG ref REG r0
N005 ( 2, 2) [000066] ------------- t66 = LCL_VAR int V02 arg2 u:3 (last use) <l:$203, c:$4c0>
/--* t66 int
[000189] ------------- t189 = * PUTARG_REG int REG r1
N008 ( 3, 2) [000082] ------------- t82 = LCL_VAR int V12 tmp4 u:3 (last use) $287
/--* t188 ref this in r0
+--* t189 int arg1 in r1
+--* t82 int calli tgt
N009 ( 23, 10) [000083] --CXG-------- * CALL ind void $VN.Void
------------ BB03 [02C..030) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
( 5, 5) [000011] ------------- IL_OFFSET void IL offset: 0x2c
N001 ( 1, 1) [000146] ------------- t146 = LCL_VAR int V14 cse0 (last use) $200
N002 ( 1, 1) [000008] -c----------- t8 = CNS_INT int 0 $40
/--* t146 int
+--* t8 int
N003 ( 3, 3) [000009] J------N--S-- * NE void $207
N004 ( 5, 5) [000010] ------------- * JTRUE void
------------ BB04 [030..034), preds={BB03} succs={BB05}
( 13, 14) [000028] ------------- IL_OFFSET void IL offset: 0x30
N001 ( 1, 1) [000024] ------------- t24 = CNS_INT int 0 $40
N002 ( 1, 1) [000023] ------------- t23 = LCL_VAR ref V00 arg0 u:2 (last use) $80
/--* t23 ref
[000190] -c----------- t190 = * LEA(b+4) byref
/--* t190 byref
N003 ( 3, 3) [000123] ---X--------- t123 = * IND int $3c2
/--* t24 int
+--* t123 int
N004 ( 8, 11) [000124] ---X--------- * ARR_BOUNDS_CHECK_Rng void $350
------------ BB05 [034..03B) (return), preds={BB03,BB04} succs={}
( 16, 17) [000018] ------------- IL_OFFSET void IL offset: 0x34
N001 ( 1, 1) [000014] ------------- t14 = CNS_INT int 0 $40
N002 ( 1, 1) [000013] ------------- t13 = LCL_VAR ref V05 arg5 u:2 $81
/--* t13 ref
[000192] -c----------- t192 = * LEA(b+4) byref
/--* t192 byref
N003 ( 3, 3) [000134] ---X--------- t134 = * IND int $3c3
/--* t14 int
+--* t134 int
N004 ( 8, 11) [000135] ---X--------- * ARR_BOUNDS_CHECK_Rng void $356
N005 ( 1, 1) [000132] ------------- t132 = LCL_VAR ref V05 arg5 u:2 (last use) $81
/--* t132 ref
[000193] -c----------- t193 = * LEA(b+8) byref
N010 ( 2, 2) [000015] ------------- t15 = LCL_VAR int V03 arg3 u:2 (last use) $100
/--* t193 byref
+--* t15 int
[000152] -A-XGO------- * STOREIND byte
( 4, 4) [000021] ------------- IL_OFFSET void IL offset: 0x39
N001 ( 2, 2) [000019] ------------- t19 = LCL_VAR int V01 arg1 u:2 (last use) $c0
/--* t19 int
N002 ( 3, 3) [000141] ------------- t141 = * CAST int <- ushort <- int $20c
/--* t141 int
N003 ( 4, 4) [000020] ------------- * RETURN int $28a
------------ BB06 [???..???) (throw), preds={} succs={}
N001 ( 3, 7) [000194] ------------- t194 = CNS_INT(h) int 0xFDA7BB0 ftn
/--* t194 int control expr
N001 ( 16, 10) [000155] --CXG-------- * CALL help void HELPER.CORINFO_HELP_RNGCHKFAIL
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
Clearing modified regs.
buildIntervals ========
-----------------
LIVENESS:
-----------------
BB01 use def in out
{V04}
{V14}
{V00 V01 V03 V04 V05}
{V00 V01 V03 V05 V14}
BB02 use def in out
{}
{V02 V09 V10 V11 V12 V13 V15 V16 V17}
{V00 V01 V03 V05 V14}
{V00 V01 V03 V05 V14}
BB03 use def in out
{V14}
{}
{V00 V01 V03 V05 V14}
{V00 V01 V03 V05}
BB04 use def in out
{V00}
{}
{V00 V01 V03 V05}
{V01 V03 V05}
BB05 use def in out
{V01 V03 V05}
{}
{V01 V03 V05}
{}
BB06 use def in out
{}
{}
{}
{}
Interval 0: RefPositions {} physReg:NA Preferences=[allInt]
Interval 1: RefPositions {} physReg:NA Preferences=[allInt]
Interval 2: RefPositions {} physReg:NA Preferences=[allInt]
Interval 3: RefPositions {} physReg:NA Preferences=[allInt]
Interval 4: RefPositions {} physReg:NA Preferences=[allInt]
Interval 5: RefPositions {} physReg:NA Preferences=[allInt]
Interval 6: RefPositions {} physReg:NA Preferences=[allInt]
Interval 7: RefPositions {} physReg:NA Preferences=[allInt]
Interval 8: RefPositions {} physReg:NA Preferences=[allInt]
Interval 9: RefPositions {} physReg:NA Preferences=[allInt]
Interval 10: RefPositions {} physReg:NA Preferences=[allInt]
Interval 11: RefPositions {} physReg:NA Preferences=[allInt]
Interval 12: RefPositions {} physReg:NA Preferences=[allInt]
Interval 13: RefPositions {} physReg:NA Preferences=[allInt]
Interval 14: RefPositions {} physReg:NA Preferences=[allInt]
FP callee save candidate vars: None
floatVarCount = 0; hasLoops = 0, singleExit = 1
lvaTable after IdentifyCandidates
; Pre-RegAlloc local variable assignments
;
; V00 arg0 [V00,T00] ( 5, 3.50) ref -> class-hnd
; V01 arg1 [V01,T05] ( 3, 3 ) ushort ->
; V02 arg2 [V02,T04] ( 5, 3.50) ushort ->
; V03 arg3 [V03,T03] ( 4, 4 ) ubyte ->
; V04 arg4 [V04,T10] ( 2, 2 ) bool ->
; V05 arg5 [V05,T06] ( 4, 4 ) ref -> class-hnd
;* V06 loc0 [V06 ] ( 0, 0 ) long -> zero-ref
;* V07 loc1 [V07 ] ( 0, 0 ) ushort -> zero-ref
;# V08 OutArgs [V08 ] ( 1, 1 ) lclBlk ( 0)
; V09 tmp1 [V09,T07] ( 3, 3 ) ref ->
; V10 tmp2 [V10,T11] ( 2, 2 ) int ->
; V11 tmp3 [V11,T08] ( 3, 3 ) ref ->
; V12 tmp4 [V12,T12] ( 2, 2 ) int ->
; V13 tmp5 [V13,T01] ( 6, 6 ) ref ->
; V14 cse0 [V14,T02] ( 6, 6 ) int ->
; V15 rat0 [V15,T13] ( 2, 1 ) int -> V06.lo(offs=0x00)
; V16 rat1 [V16,T14] ( 2, 1 ) int -> V06.hi(offs=0x04)
; V17 rat2 [V17,T09] ( 3, 3 ) int ->
; Decided to create an EBP based frame for ETW stackwalking (BasicBlock Count)
*************** In lvaAssignFrameOffsets(REGALLOC_FRAME_LAYOUT)
Assign V01 arg1, size=4, stkOffs=-0x30
Assign V02 arg2, size=4, stkOffs=-0x34
Assign V03 arg3, size=4, stkOffs=-0x38
Assign V06 loc0, size=8, stkOffs=-0x44
Assign V07 loc1, size=4, stkOffs=-0x48
Assign V10 tmp2, size=4, stkOffs=-0x4c
Assign V12 tmp4, size=4, stkOffs=-0x50
Assign V14 cse0, size=4, stkOffs=-0x54
Assign V15 rat0, size=4, stkOffs=-0x58
Assign V16 rat1, size=4, stkOffs=-0x5c
Assign V17 rat2, size=4, stkOffs=-0x60
Assign V00 arg0, size=4, stkOffs=-0x64
Assign V09 tmp1, size=4, stkOffs=-0x68
Assign V11 tmp3, size=4, stkOffs=-0x6c
Assign V13 tmp5, size=4, stkOffs=-0x70
compRsvdRegCheck
frame size = 120
compArgSize = 24
maxR11PositiveEncodingOffset = 4095
maxR11NegativeEncodingOffset = 255
maxR11PositiveOffset = 31
maxR11NegativeOffset = 112
maxSPPositiveEncodingOffset = 4095
maxSPLocalsCombinedOffset = 111
Returning false
TUPLE STYLE DUMP BEFORE LSRA
New BlockSet epoch 2, # of blocks (including unused BB00): 7, bitset array size: 1 (short)
LSRA Block Sequence: BB01( 1 ) BB02( 0.50) BB03( 1 ) BB04( 0.50) BB05( 1 ) BB06( 0 )
BB01 [000..004) -> BB03 (cond), preds={} succs={BB02,BB03}
=====
N000. IL_OFFSET IL offset: 0x0
N001. V04(t1*)
N002. t85 = CAST ; t1*
N004. V14(t143); t85
N005. V14(t144)
N007. CNS_INT 0
N008. EQ ; t144
N009. JTRUE
BB02 [004..02C), preds={BB01} succs={BB03}
=====
N000. IL_OFFSET IL offset: 0x4
N001. t30 = CLS_VAR_ADDR Hnd=0x9247f8
N000. t148 = IND ; t30
N000. V17(t164); t148
N000. V17(t165)
N000. V17(t166*)
N000. CNS_INT 31
N000. t168 = RSH ; t166*
N004. V15(t33); t165
N000. V16(t170); t168
N000. IL_OFFSET IL offset: 0xb
N001. t35 = CLS_VAR_ADDR Hnd=0x924808
N000. t149 = IND ; t35
N003. V13(t87); t149
N004. t36 = CNS_INT 0
N005. V13(t88)
N000. t173 = LEA(b+4) ; t88
N006. t91 = IND ; t173
N007. ARR_BOUNDS_CHECK_Rng; t36,t91
N008. V13(t89*)
N000. t174 = LEA(b+8) ; t89*
N011. t37 = IND ; t174
N015. V02(t39); t37
N000. IL_OFFSET IL offset: 0x16
N001. t45 = CLS_VAR_ADDR Hnd=0x9247d8
N000. t150 = IND ; t45
N003. V09(t49); t150
N007. V09(t52)
N000. t175 = PUTARG_REG; t52
N008. t53 = CNS_INT(h) 0x924994 token
N000. t176 = PUTARG_REG; t53
N009. t54 = CNS_INT(h) 0x924B10 token
N000. t177 = PUTARG_REG; t54
N001. t178 = CNS_INT(h) 0xFDA55A0 ftn
N013. t58 = CALL help; t175,t176,t177,t178
N015. V10(t60); t58
N004. V09(t51*)
N000. t179 = PUTARG_REG; t51*
N005. V15(t46*)
N000. t182 = PUTARG_REG; t46*
N000. V16(t171*)
N000. t183 = PUTARG_REG; t171*
N000. t180 = FIELD_LIST; t182,t183
N008. V10(t62*)
N009. CALL ind ; t179,t180,t180,t62*
N000. IL_OFFSET IL offset: 0x21
N001. t65 = CLS_VAR_ADDR Hnd=0x9247d8
N000. t151 = IND ; t65
N003. V11(t69); t151
N007. V11(t72)
N000. t184 = PUTARG_REG; t72
N008. t73 = CNS_INT(h) 0x924994 token
N000. t185 = PUTARG_REG; t73
N009. t74 = CNS_INT(h) 0x924B74 token
N000. t186 = PUTARG_REG; t74
N001. t187 = CNS_INT(h) 0xFDA55A0 ftn
N013. t78 = CALL help; t184,t185,t186,t187
N015. V12(t80); t78
N004. V11(t71*)
N000. t188 = PUTARG_REG; t71*
N005. V02(t66*)
N000. t189 = PUTARG_REG; t66*
N008. V12(t82*)
N009. CALL ind ; t188,t189,t82*
BB03 [02C..030) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
=====
N000. IL_OFFSET IL offset: 0x2c
N001. V14(t146*)
N002. CNS_INT 0
N003. NE ; t146*
N004. JTRUE
BB04 [030..034), preds={BB03} succs={BB05}
=====
N000. IL_OFFSET IL offset: 0x30
N001. t24 = CNS_INT 0
N002. V00(t23*)
N000. t190 = LEA(b+4) ; t23*
N003. t123 = IND ; t190
N004. ARR_BOUNDS_CHECK_Rng; t24,t123
BB05 [034..03B) (return), preds={BB03,BB04} succs={}
=====
N000. IL_OFFSET IL offset: 0x34
N001. t14 = CNS_INT 0
N002. V05(t13)
N000. t192 = LEA(b+4) ; t13
N003. t134 = IND ; t192
N004. ARR_BOUNDS_CHECK_Rng; t14,t134
N005. V05(t132*)
N000. t193 = LEA(b+8) ; t132*
N010. V03(t15*)
N000. STOREIND ; t193,t15*
N000. IL_OFFSET IL offset: 0x39
N001. V01(t19*)
N002. t141 = CAST ; t19*
N003. RETURN ; t141
BB06 [???..???) (throw), preds={} succs={}
=====
N001. t194 = CNS_INT(h) 0xFDA7BB0 ftn
N001. CALL help; t194
buildIntervals second part ========
Int arg V00 in reg r0
<RefPosition #0 @0 RefTypeParamDef <Ivl:0 V00> BB00 regmask=[r0] minReg=1 fixed>
Int arg V03 in reg r3
<RefPosition #1 @0 RefTypeParamDef <Ivl:3 V03> BB00 regmask=[r3] minReg=1 fixed>
Int arg V02 in reg r2
<RefPosition #2 @0 RefTypeParamDef <Ivl:2 V02> BB00 regmask=[r2] minReg=1 fixed>
Int arg V01 in reg r1
<RefPosition #3 @0 RefTypeParamDef <Ivl:1 V01> BB00 regmask=[r1] minReg=1 fixed>
<RefPosition #4 @0 RefTypeParamDef <Ivl:5 V05> BB00 regmask=[allInt] minReg=1>
<RefPosition #5 @0 RefTypeParamDef <Ivl:4 V04> BB00 regmask=[allInt] minReg=1>
NEW BLOCK BB01
<RefPosition #6 @1 RefTypeBB BB01 regmask=[] minReg=1>
DefList: { }
N003 ( 8, 8) [000005] ------------- * IL_OFFSET void IL offset: 0x0 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N005 ( 2, 2) [000001] ------------- * LCL_VAR int V04 arg4 u:2 NA (last use) REG NA $140
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N007 ( 3, 3) [000085] ----------S-- * CAST int <- bool <- int REG NA $200
<RefPosition #7 @7 RefTypeUse <Ivl:4 V04> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
Interval 15: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #8 @8 RefTypeDef <Ivl:15> CAST BB01 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N007.t85. CAST }
N009 ( 3, 3) [000143] DA----------- * STORE_LCL_VAR int V14 cse0 NA REG NA
<RefPosition #9 @9 RefTypeUse <Ivl:15> BB01 regmask=[allInt] minReg=1 last>
Assigning related <L11> to <I15>
<RefPosition #10 @10 RefTypeDef <Ivl:11 V14> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N011 ( 1, 1) [000144] ------------- * LCL_VAR int V14 cse0 NA REG NA $200
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N013 ( 1, 1) [000002] -c----------- * CNS_INT int 0 REG NA $40
Contained
DefList: { }
N015 ( 6, 6) [000003] J------N--S-- * EQ void REG NA $201
<RefPosition #11 @15 RefTypeUse <Ivl:11 V14> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N017 ( 8, 8) [000004] ------------- * JTRUE void REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
CHECKING LAST USES for block 1, liveout={V00 V01 V03 V05 V14}
==============================
use: {V04}
def: {V14}
NEW BLOCK BB02
Setting BB02 as the predecessor for determining incoming variable registers of BB01
<RefPosition #12 @19 RefTypeBB BB02 regmask=[] minReg=1>
DefList: { }
N021 ( 14, 17) [000034] ------------- * 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: { }
N023 ( 6, 10) [000030] ----G-------- * CLS_VAR_ADDR byref Hnd=0x9247f8 REG NA
Interval 16: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #13 @24 RefTypeDef <Ivl:16> CLS_VAR_ADDR BB02 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { N023.t30. CLS_VAR_ADDR }
N025 (???,???) [000148] ----G-------- * IND int REG NA
<RefPosition #14 @25 RefTypeUse <Ivl:16> BB02 regmask=[allInt] minReg=1 last>
Interval 17: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #15 @26 RefTypeDef <Ivl:17> IND BB02 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N025.t148. IND }
N027 (???,???) [000164] DA--G-------- * STORE_LCL_VAR int V17 rat2 NA REG NA
<RefPosition #16 @27 RefTypeUse <Ivl:17> BB02 regmask=[allInt] minReg=1 last>
Assigning related <L14> to <I17>
<RefPosition #17 @28 RefTypeDef <Ivl:14 V17> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N029 (???,???) [000165] ------------- * LCL_VAR int V17 rat2 NA REG NA
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N031 (???,???) [000166] ------------- * LCL_VAR int V17 rat2 NA (last use) REG NA
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N033 (???,???) [000167] -c----------- * CNS_INT int 31 REG NA
Contained
DefList: { }
N035 (???,???) [000168] ------------- * RSH int REG NA
<RefPosition #18 @35 RefTypeUse <Ivl:14 V17> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
Interval 18: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #19 @36 RefTypeDef <Ivl:18> RSH BB02 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N035.t168. RSH }
N037 ( 14, 17) [000033] DA--G-------- * STORE_LCL_VAR int V15 rat0 NA REG NA
<RefPosition #20 @37 RefTypeUse <Ivl:14 V17> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
<RefPosition #21 @38 RefTypeDef <Ivl:12 V15> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { N035.t168. RSH }
N039 (???,???) [000170] D------------ * STORE_LCL_VAR int V16 rat1 NA REG NA
<RefPosition #22 @39 RefTypeUse <Ivl:18> BB02 regmask=[allInt] minReg=1 last>
Assigning related <L13> to <I18>
<RefPosition #23 @40 RefTypeDef <Ivl:13 V16> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N041 ( 19, 24) [000040] ------------- * IL_OFFSET void IL offset: 0xb REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N043 ( 6, 10) [000035] ----G-------- * CLS_VAR_ADDR byref Hnd=0x924808 REG NA
Interval 19: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #24 @44 RefTypeDef <Ivl:19> CLS_VAR_ADDR BB02 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { N043.t35. CLS_VAR_ADDR }
N045 (???,???) [000149] ----G-------- * IND ref REG NA
<RefPosition #25 @45 RefTypeUse <Ivl:19> BB02 regmask=[allInt] minReg=1 last>
Interval 20: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #26 @46 RefTypeDef <Ivl:20> IND BB02 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N045.t149. IND }
N047 ( 6, 10) [000087] DA--G-------- * STORE_LCL_VAR ref V13 tmp5 d:3 NA REG NA
<RefPosition #27 @47 RefTypeUse <Ivl:20> BB02 regmask=[allInt] minReg=1 last>
Assigning related <L10> to <I20>
<RefPosition #28 @48 RefTypeDef <Ivl:10 V13> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N049 ( 1, 1) [000036] ------------- * CNS_INT int 0 REG NA $40
Interval 21: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #29 @50 RefTypeDef <Ivl:21> CNS_INT BB02 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { N049.t36. CNS_INT }
N051 ( 1, 1) [000088] ------------- * LCL_VAR ref V13 tmp5 u:3 NA REG NA <l:$340, c:$380>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { N049.t36. CNS_INT }
N053 (???,???) [000173] -c----------- * LEA(b+4) byref REG NA
Contained
DefList: { N049.t36. CNS_INT }
N055 ( 3, 3) [000091] ---X--------- * IND int REG NA <l:$3c1, c:$3c0>
<RefPosition #30 @55 RefTypeUse <Ivl:10 V13> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
Interval 22: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #31 @56 RefTypeDef <Ivl:22> IND BB02 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N049.t36. CNS_INT; N055.t91. IND }
N057 ( 8, 11) [000092] ---X--------- * ARR_BOUNDS_CHECK_Rng void <l:$346, c:$345>
<RefPosition #32 @57 RefTypeUse <Ivl:21> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #33 @57 RefTypeUse <Ivl:22> BB02 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 2 produce=0
DefList: { }
N059 ( 1, 1) [000089] ------------- * LCL_VAR ref V13 tmp5 u:3 NA (last use) REG NA <l:$340, c:$380>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N061 (???,???) [000174] -c----------- * LEA(b+8) byref REG NA
Contained
DefList: { }
N063 ( 5, 3) [000037] a---GO------- * IND ushort REG NA <l:$203, c:$4c0>
<RefPosition #34 @63 RefTypeUse <Ivl:10 V13> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
Interval 23: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #35 @64 RefTypeDef <Ivl:23> IND BB02 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N063.t37. IND }
N065 ( 19, 24) [000039] DA-XGO------- * STORE_LCL_VAR ushort V02 arg2 d:3 NA REG NA
<RefPosition #36 @65 RefTypeUse <Ivl:23> BB02 regmask=[allInt] minReg=1 last>
Assigning related <L2> to <I23>
<RefPosition #37 @66 RefTypeDef <Ivl:2 V02> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N067 ( 6, 10) [000050] ------------- * IL_OFFSET void IL offset: 0x16 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N069 ( 6, 10) [000045] ----G-------- * CLS_VAR_ADDR byref Hnd=0x9247d8 REG NA
Interval 24: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #38 @70 RefTypeDef <Ivl:24> CLS_VAR_ADDR BB02 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { N069.t45. CLS_VAR_ADDR }
N071 (???,???) [000150] ----G-------- * IND ref REG NA
<RefPosition #39 @71 RefTypeUse <Ivl:24> BB02 regmask=[allInt] minReg=1 last>
Interval 25: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #40 @72 RefTypeDef <Ivl:25> IND BB02 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N071.t150. IND }
N073 ( 6, 10) [000049] DA--G-------- * STORE_LCL_VAR ref V09 tmp1 d:3 NA REG NA
<RefPosition #41 @73 RefTypeUse <Ivl:25> BB02 regmask=[allInt] minReg=1 last>
Assigning related <L6> to <I25>
<RefPosition #42 @74 RefTypeDef <Ivl:6 V09> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N075 ( 1, 1) [000052] ------------- * LCL_VAR ref V09 tmp1 u:3 NA REG NA <l:$349, c:$382>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N077 (???,???) [000175] ------------- * PUTARG_REG ref REG r0
<RefPosition #43 @77 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #44 @77 RefTypeUse <Ivl:6 V09> LCL_VAR BB02 regmask=[r0] minReg=1 last fixed>
Setting putarg_reg as a pass-through of a non-last use lclVar
Interval 26: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #45 @78 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #46 @78 RefTypeDef <Ivl:26> PUTARG_REG BB02 regmask=[r0] minReg=1 fixed>
Assigning related <L6> to <I26>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N077.t175. PUTARG_REG }
N079 ( 3, 7) [000053] ------------- * CNS_INT(h) int 0x924994 token REG NA $244
Interval 27: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #47 @80 RefTypeDef <Ivl:27> CNS_INT BB02 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { N077.t175. PUTARG_REG; N079.t53. CNS_INT }
N081 (???,???) [000176] ------------- * PUTARG_REG int REG r1
<RefPosition #48 @81 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #49 @81 RefTypeUse <Ivl:27> BB02 regmask=[r1] minReg=1 last fixed>
Interval 28: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #50 @82 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #51 @82 RefTypeDef <Ivl:28> PUTARG_REG BB02 regmask=[r1] minReg=1 fixed>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N077.t175. PUTARG_REG; N081.t176. PUTARG_REG }
N083 ( 3, 7) [000054] ------------- * CNS_INT(h) int 0x924B10 token REG NA $245
Interval 29: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #52 @84 RefTypeDef <Ivl:29> CNS_INT BB02 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { N077.t175. PUTARG_REG; N081.t176. PUTARG_REG; N083.t54. CNS_INT }
N085 (???,???) [000177] ------------- * PUTARG_REG int REG r2
<RefPosition #53 @85 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #54 @85 RefTypeUse <Ivl:29> BB02 regmask=[r2] minReg=1 last fixed>
Interval 30: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #55 @86 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #56 @86 RefTypeDef <Ivl:30> PUTARG_REG BB02 regmask=[r2] minReg=1 fixed>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N077.t175. PUTARG_REG; N081.t176. PUTARG_REG; N085.t177. PUTARG_REG }
N087 ( 3, 7) [000178] ------------- * CNS_INT(h) int 0xFDA55A0 ftn REG NA
Interval 31: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #57 @88 RefTypeDef <Ivl:31> CNS_INT BB02 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { N077.t175. PUTARG_REG; N081.t176. PUTARG_REG; N085.t177. PUTARG_REG; N087.t178. CNS_INT }
N089 ( 23, 28) [000058] --CXG-------- * CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $205
<RefPosition #58 @89 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #59 @89 RefTypeUse <Ivl:26> BB02 regmask=[r0] minReg=1 last fixed>
<RefPosition #60 @89 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #61 @89 RefTypeUse <Ivl:28> BB02 regmask=[r1] minReg=1 last fixed>
<RefPosition #62 @89 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #63 @89 RefTypeUse <Ivl:30> BB02 regmask=[r2] minReg=1 last fixed>
<RefPosition #64 @89 RefTypeUse <Ivl:31> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #65 @90 RefTypeKill <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #66 @90 RefTypeKill <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #67 @90 RefTypeKill <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #68 @90 RefTypeKill <Reg:r3 > BB02 regmask=[r3] minReg=1>
<RefPosition #69 @90 RefTypeKill <Reg:r12> BB02 regmask=[r12] minReg=1>
<RefPosition #70 @90 RefTypeKill <Reg:lr > BB02 regmask=[lr] minReg=1>
<RefPosition #71 @90 RefTypeKill <Reg:f0 > BB02 regmask=[f0] minReg=1>
<RefPosition #72 @90 RefTypeKill <Reg:f1 > BB02 regmask=[f1] minReg=1>
<RefPosition #73 @90 RefTypeKill <Reg:f2 > BB02 regmask=[f2] minReg=1>
<RefPosition #74 @90 RefTypeKill <Reg:f3 > BB02 regmask=[f3] minReg=1>
<RefPosition #75 @90 RefTypeKill <Reg:f4 > BB02 regmask=[f4] minReg=1>
<RefPosition #76 @90 RefTypeKill <Reg:f5 > BB02 regmask=[f5] minReg=1>
<RefPosition #77 @90 RefTypeKill <Reg:f6 > BB02 regmask=[f6] minReg=1>
<RefPosition #78 @90 RefTypeKill <Reg:f7 > BB02 regmask=[f7] minReg=1>
<RefPosition #79 @90 RefTypeKill <Reg:f8 > BB02 regmask=[f8] minReg=1>
<RefPosition #80 @90 RefTypeKill <Reg:f9 > BB02 regmask=[f9] minReg=1>
<RefPosition #81 @90 RefTypeKill <Reg:f10> BB02 regmask=[f10] minReg=1>
<RefPosition #82 @90 RefTypeKill <Reg:f11> BB02 regmask=[f11] minReg=1>
<RefPosition #83 @90 RefTypeKill <Reg:f12> BB02 regmask=[f12] minReg=1>
<RefPosition #84 @90 RefTypeKill <Reg:f13> BB02 regmask=[f13] minReg=1>
<RefPosition #85 @90 RefTypeKill <Reg:f14> BB02 regmask=[f14] minReg=1>
<RefPosition #86 @90 RefTypeKill <Reg:f15> BB02 regmask=[f15] minReg=1>
Interval 32: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #87 @90 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #88 @90 RefTypeDef <Ivl:32> CALL BB02 regmask=[r0] minReg=1 fixed>
+<TreeNodeInfo 1=4 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 4 produce=1
DefList: { N089.t58. CALL }
N091 ( 27, 31) [000060] DA-XG-------- * STORE_LCL_VAR int V10 tmp2 d:3 NA REG NA
<RefPosition #89 @91 RefTypeUse <Ivl:32> BB02 regmask=[allInt] minReg=1 last>
Assigning related <L7> to <I32>
<RefPosition #90 @92 RefTypeDef <Ivl:7 V10> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N093 ( 1, 1) [000051] ------------- * LCL_VAR ref V09 tmp1 u:3 NA (last use) REG NA <l:$349, c:$382>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N095 (???,???) [000179] ------------- * PUTARG_REG ref REG r0
<RefPosition #91 @95 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #92 @95 RefTypeUse <Ivl:6 V09> LCL_VAR BB02 regmask=[r0] minReg=1 last fixed>
Interval 33: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #93 @96 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #94 @96 RefTypeDef <Ivl:33> PUTARG_REG BB02 regmask=[r0] minReg=1 fixed>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N095.t179. PUTARG_REG }
N097 ( 3, 2) [000046] ------------- * LCL_VAR int V15 rat0 NA (last use) REG NA <l:$2c1, c:$2c0>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { N095.t179. PUTARG_REG }
N099 (???,???) [000182] ------------- * PUTARG_REG int REG r2
<RefPosition #95 @99 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #96 @99 RefTypeUse <Ivl:12 V15> LCL_VAR BB02 regmask=[r2] minReg=1 last fixed>
Interval 34: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #97 @100 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #98 @100 RefTypeDef <Ivl:34> PUTARG_REG BB02 regmask=[r2] minReg=1 fixed>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N095.t179. PUTARG_REG; N099.t182. PUTARG_REG }
N101 (???,???) [000171] ------------- * LCL_VAR int V16 rat1 NA (last use) REG NA
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { N095.t179. PUTARG_REG; N099.t182. PUTARG_REG }
N103 (???,???) [000183] ------------- * PUTARG_REG int REG r3
<RefPosition #99 @103 RefTypeFixedReg <Reg:r3 > BB02 regmask=[r3] minReg=1>
<RefPosition #100 @103 RefTypeUse <Ivl:13 V16> LCL_VAR BB02 regmask=[r3] minReg=1 last fixed>
Interval 35: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #101 @104 RefTypeFixedReg <Reg:r3 > BB02 regmask=[r3] minReg=1>
<RefPosition #102 @104 RefTypeDef <Ivl:35> PUTARG_REG BB02 regmask=[r3] minReg=1 fixed>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N095.t179. PUTARG_REG; N099.t182. PUTARG_REG; N103.t183. PUTARG_REG }
N105 (???,???) [000180] Hc----------- * FIELD_LIST int int at offset 0 REG NA
Contained
DefList: { N095.t179. PUTARG_REG; N099.t182. PUTARG_REG; N103.t183. PUTARG_REG }
N107 ( 3, 2) [000062] ------------- * LCL_VAR int V10 tmp2 u:3 NA (last use) REG NA $283
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { N095.t179. PUTARG_REG; N099.t182. PUTARG_REG; N103.t183. PUTARG_REG }
N109 ( 24, 10) [000063] --CXG-------- * CALL ind void $VN.Void
<RefPosition #103 @109 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #104 @109 RefTypeUse <Ivl:33> BB02 regmask=[r0] minReg=1 last fixed>
<RefPosition #105 @109 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #106 @109 RefTypeUse <Ivl:34> BB02 regmask=[r2] minReg=1 last fixed>
<RefPosition #107 @109 RefTypeFixedReg <Reg:r3 > BB02 regmask=[r3] minReg=1>
<RefPosition #108 @109 RefTypeUse <Ivl:35> BB02 regmask=[r3] minReg=1 last fixed>
<RefPosition #109 @109 RefTypeUse <Ivl:7 V10> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
<RefPosition #110 @110 RefTypeKill <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #111 @110 RefTypeKill <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #112 @110 RefTypeKill <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #113 @110 RefTypeKill <Reg:r3 > BB02 regmask=[r3] minReg=1>
<RefPosition #114 @110 RefTypeKill <Reg:r12> BB02 regmask=[r12] minReg=1>
<RefPosition #115 @110 RefTypeKill <Reg:lr > BB02 regmask=[lr] minReg=1>
+<TreeNodeInfo 0=4 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 4 produce=0
DefList: { }
N111 ( 6, 10) [000070] ------------- * IL_OFFSET void IL offset: 0x21 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N113 ( 6, 10) [000065] ----G-------- * CLS_VAR_ADDR byref Hnd=0x9247d8 REG NA
Interval 36: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #116 @114 RefTypeDef <Ivl:36> CLS_VAR_ADDR BB02 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { N113.t65. CLS_VAR_ADDR }
N115 (???,???) [000151] ----G-------- * IND ref REG NA
<RefPosition #117 @115 RefTypeUse <Ivl:36> BB02 regmask=[allInt] minReg=1 last>
Interval 37: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #118 @116 RefTypeDef <Ivl:37> IND BB02 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N115.t151. IND }
N117 ( 6, 10) [000069] DA--G-------- * STORE_LCL_VAR ref V11 tmp3 d:3 NA REG NA
<RefPosition #119 @117 RefTypeUse <Ivl:37> BB02 regmask=[allInt] minReg=1 last>
Assigning related <L8> to <I37>
<RefPosition #120 @118 RefTypeDef <Ivl:8 V11> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N119 ( 1, 1) [000072] ------------- * LCL_VAR ref V11 tmp3 u:3 NA REG NA <l:$34b, c:$388>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N121 (???,???) [000184] ------------- * PUTARG_REG ref REG r0
<RefPosition #121 @121 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #122 @121 RefTypeUse <Ivl:8 V11> LCL_VAR BB02 regmask=[r0] minReg=1 last fixed>
Setting putarg_reg as a pass-through of a non-last use lclVar
Interval 38: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #123 @122 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #124 @122 RefTypeDef <Ivl:38> PUTARG_REG BB02 regmask=[r0] minReg=1 fixed>
Assigning related <L8> to <I38>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N121.t184. PUTARG_REG }
N123 ( 3, 7) [000073] ------------- * CNS_INT(h) int 0x924994 token REG NA $244
Interval 39: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #125 @124 RefTypeDef <Ivl:39> CNS_INT BB02 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { N121.t184. PUTARG_REG; N123.t73. CNS_INT }
N125 (???,???) [000185] ------------- * PUTARG_REG int REG r1
<RefPosition #126 @125 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #127 @125 RefTypeUse <Ivl:39> BB02 regmask=[r1] minReg=1 last fixed>
Interval 40: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #128 @126 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #129 @126 RefTypeDef <Ivl:40> PUTARG_REG BB02 regmask=[r1] minReg=1 fixed>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N121.t184. PUTARG_REG; N125.t185. PUTARG_REG }
N127 ( 3, 7) [000074] ------------- * CNS_INT(h) int 0x924B74 token REG NA $246
Interval 41: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #130 @128 RefTypeDef <Ivl:41> CNS_INT BB02 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { N121.t184. PUTARG_REG; N125.t185. PUTARG_REG; N127.t74. CNS_INT }
N129 (???,???) [000186] ------------- * PUTARG_REG int REG r2
<RefPosition #131 @129 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #132 @129 RefTypeUse <Ivl:41> BB02 regmask=[r2] minReg=1 last fixed>
Interval 42: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #133 @130 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #134 @130 RefTypeDef <Ivl:42> PUTARG_REG BB02 regmask=[r2] minReg=1 fixed>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N121.t184. PUTARG_REG; N125.t185. PUTARG_REG; N129.t186. PUTARG_REG }
N131 ( 3, 7) [000187] ------------- * CNS_INT(h) int 0xFDA55A0 ftn REG NA
Interval 43: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #135 @132 RefTypeDef <Ivl:43> CNS_INT BB02 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { N121.t184. PUTARG_REG; N125.t185. PUTARG_REG; N129.t186. PUTARG_REG; N131.t187. CNS_INT }
N133 ( 23, 28) [000078] --CXG-------- * CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $206
<RefPosition #136 @133 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #137 @133 RefTypeUse <Ivl:38> BB02 regmask=[r0] minReg=1 last fixed>
<RefPosition #138 @133 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #139 @133 RefTypeUse <Ivl:40> BB02 regmask=[r1] minReg=1 last fixed>
<RefPosition #140 @133 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #141 @133 RefTypeUse <Ivl:42> BB02 regmask=[r2] minReg=1 last fixed>
<RefPosition #142 @133 RefTypeUse <Ivl:43> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #143 @134 RefTypeKill <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #144 @134 RefTypeKill <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #145 @134 RefTypeKill <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #146 @134 RefTypeKill <Reg:r3 > BB02 regmask=[r3] minReg=1>
<RefPosition #147 @134 RefTypeKill <Reg:r12> BB02 regmask=[r12] minReg=1>
<RefPosition #148 @134 RefTypeKill <Reg:lr > BB02 regmask=[lr] minReg=1>
<RefPosition #149 @134 RefTypeKill <Reg:f0 > BB02 regmask=[f0] minReg=1>
<RefPosition #150 @134 RefTypeKill <Reg:f1 > BB02 regmask=[f1] minReg=1>
<RefPosition #151 @134 RefTypeKill <Reg:f2 > BB02 regmask=[f2] minReg=1>
<RefPosition #152 @134 RefTypeKill <Reg:f3 > BB02 regmask=[f3] minReg=1>
<RefPosition #153 @134 RefTypeKill <Reg:f4 > BB02 regmask=[f4] minReg=1>
<RefPosition #154 @134 RefTypeKill <Reg:f5 > BB02 regmask=[f5] minReg=1>
<RefPosition #155 @134 RefTypeKill <Reg:f6 > BB02 regmask=[f6] minReg=1>
<RefPosition #156 @134 RefTypeKill <Reg:f7 > BB02 regmask=[f7] minReg=1>
<RefPosition #157 @134 RefTypeKill <Reg:f8 > BB02 regmask=[f8] minReg=1>
<RefPosition #158 @134 RefTypeKill <Reg:f9 > BB02 regmask=[f9] minReg=1>
<RefPosition #159 @134 RefTypeKill <Reg:f10> BB02 regmask=[f10] minReg=1>
<RefPosition #160 @134 RefTypeKill <Reg:f11> BB02 regmask=[f11] minReg=1>
<RefPosition #161 @134 RefTypeKill <Reg:f12> BB02 regmask=[f12] minReg=1>
<RefPosition #162 @134 RefTypeKill <Reg:f13> BB02 regmask=[f13] minReg=1>
<RefPosition #163 @134 RefTypeKill <Reg:f14> BB02 regmask=[f14] minReg=1>
<RefPosition #164 @134 RefTypeKill <Reg:f15> BB02 regmask=[f15] minReg=1>
Interval 44: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #165 @134 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #166 @134 RefTypeDef <Ivl:44> CALL BB02 regmask=[r0] minReg=1 fixed>
+<TreeNodeInfo 1=4 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 4 produce=1
DefList: { N133.t78. CALL }
N135 ( 27, 31) [000080] DA-XG-------- * STORE_LCL_VAR int V12 tmp4 d:3 NA REG NA
<RefPosition #167 @135 RefTypeUse <Ivl:44> BB02 regmask=[allInt] minReg=1 last>
Assigning related <L9> to <I44>
<RefPosition #168 @136 RefTypeDef <Ivl:9 V12> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N137 ( 1, 1) [000071] ------------- * LCL_VAR ref V11 tmp3 u:3 NA (last use) REG NA <l:$34b, c:$388>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N139 (???,???) [000188] ------------- * PUTARG_REG ref REG r0
<RefPosition #169 @139 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #170 @139 RefTypeUse <Ivl:8 V11> LCL_VAR BB02 regmask=[r0] minReg=1 last fixed>
Interval 45: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #171 @140 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #172 @140 RefTypeDef <Ivl:45> PUTARG_REG BB02 regmask=[r0] minReg=1 fixed>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N139.t188. PUTARG_REG }
N141 ( 2, 2) [000066] ------------- * LCL_VAR int V02 arg2 u:3 NA (last use) REG NA <l:$203, c:$4c0>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { N139.t188. PUTARG_REG }
N143 (???,???) [000189] ------------- * PUTARG_REG int REG r1
<RefPosition #173 @143 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #174 @143 RefTypeUse <Ivl:2 V02> LCL_VAR BB02 regmask=[r1] minReg=1 last fixed>
Interval 46: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #175 @144 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #176 @144 RefTypeDef <Ivl:46> PUTARG_REG BB02 regmask=[r1] minReg=1 fixed>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N139.t188. PUTARG_REG; N143.t189. PUTARG_REG }
N145 ( 3, 2) [000082] ------------- * LCL_VAR int V12 tmp4 u:3 NA (last use) REG NA $287
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { N139.t188. PUTARG_REG; N143.t189. PUTARG_REG }
N147 ( 23, 10) [000083] --CXG-------- * CALL ind void $VN.Void
<RefPosition #177 @147 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #178 @147 RefTypeUse <Ivl:45> BB02 regmask=[r0] minReg=1 last fixed>
<RefPosition #179 @147 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #180 @147 RefTypeUse <Ivl:46> BB02 regmask=[r1] minReg=1 last fixed>
<RefPosition #181 @147 RefTypeUse <Ivl:9 V12> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
<RefPosition #182 @148 RefTypeKill <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #183 @148 RefTypeKill <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #184 @148 RefTypeKill <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #185 @148 RefTypeKill <Reg:r3 > BB02 regmask=[r3] minReg=1>
<RefPosition #186 @148 RefTypeKill <Reg:r12> BB02 regmask=[r12] minReg=1>
<RefPosition #187 @148 RefTypeKill <Reg:lr > BB02 regmask=[lr] minReg=1>
+<TreeNodeInfo 0=3 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 3 produce=0
CHECKING LAST USES for block 2, liveout={V00 V01 V03 V05 V14}
==============================
use: {}
def: {V02 V09 V10 V11 V12 V13 V15 V16 V17}
NEW BLOCK BB03
Setting BB03 as the predecessor for determining incoming variable registers of BB01
<RefPosition #188 @149 RefTypeBB BB03 regmask=[] minReg=1>
DefList: { }
N151 ( 5, 5) [000011] ------------- * IL_OFFSET void IL offset: 0x2c REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N153 ( 1, 1) [000146] ------------- * LCL_VAR int V14 cse0 NA (last use) REG NA $200
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N155 ( 1, 1) [000008] -c----------- * CNS_INT int 0 REG NA $40
Contained
DefList: { }
N157 ( 3, 3) [000009] J------N--S-- * NE void REG NA $207
<RefPosition #189 @157 RefTypeUse <Ivl:11 V14> LCL_VAR BB03 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
DefList: { }
N159 ( 5, 5) [000010] ------------- * JTRUE void REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
CHECKING LAST USES for block 3, liveout={V00 V01 V03 V05}
==============================
use: {V14}
def: {}
NEW BLOCK BB04
Setting BB04 as the predecessor for determining incoming variable registers of BB03
<RefPosition #190 @161 RefTypeBB BB04 regmask=[] minReg=1>
DefList: { }
N163 ( 13, 14) [000028] ------------- * IL_OFFSET void IL offset: 0x30 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N165 ( 1, 1) [000024] ------------- * CNS_INT int 0 REG NA $40
Interval 47: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #191 @166 RefTypeDef <Ivl:47> CNS_INT BB04 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { N165.t24. CNS_INT }
N167 ( 1, 1) [000023] ------------- * LCL_VAR ref V00 arg0 u:2 NA (last use) REG NA $80
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { N165.t24. CNS_INT }
N169 (???,???) [000190] -c----------- * LEA(b+4) byref REG NA
Contained
DefList: { N165.t24. CNS_INT }
N171 ( 3, 3) [000123] ---X--------- * IND int REG NA $3c2
<RefPosition #192 @171 RefTypeUse <Ivl:0 V00> LCL_VAR BB04 regmask=[allInt] minReg=1 last>
Interval 48: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #193 @172 RefTypeDef <Ivl:48> IND BB04 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N165.t24. CNS_INT; N171.t123. IND }
N173 ( 8, 11) [000124] ---X--------- * ARR_BOUNDS_CHECK_Rng void $350
<RefPosition #194 @173 RefTypeUse <Ivl:47> BB04 regmask=[allInt] minReg=1 last>
<RefPosition #195 @173 RefTypeUse <Ivl:48> BB04 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 2 produce=0
CHECKING LAST USES for block 4, liveout={V01 V03 V05}
==============================
use: {V00}
def: {}
NEW BLOCK BB05
Setting BB05 as the predecessor for determining incoming variable registers of BB03
<RefPosition #196 @175 RefTypeBB BB05 regmask=[] minReg=1>
DefList: { }
N177 ( 16, 17) [000018] ------------- * 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: { }
N179 ( 1, 1) [000014] ------------- * CNS_INT int 0 REG NA $40
Interval 49: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #197 @180 RefTypeDef <Ivl:49> CNS_INT BB05 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { N179.t14. CNS_INT }
N181 ( 1, 1) [000013] ------------- * LCL_VAR ref V05 arg5 u:2 NA REG NA $81
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { N179.t14. CNS_INT }
N183 (???,???) [000192] -c----------- * LEA(b+4) byref REG NA
Contained
DefList: { N179.t14. CNS_INT }
N185 ( 3, 3) [000134] ---X--------- * IND int REG NA $3c3
<RefPosition #198 @185 RefTypeUse <Ivl:5 V05> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
Interval 50: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #199 @186 RefTypeDef <Ivl:50> IND BB05 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N179.t14. CNS_INT; N185.t134. IND }
N187 ( 8, 11) [000135] ---X--------- * ARR_BOUNDS_CHECK_Rng void $356
<RefPosition #200 @187 RefTypeUse <Ivl:49> BB05 regmask=[allInt] minReg=1 last>
<RefPosition #201 @187 RefTypeUse <Ivl:50> BB05 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 2 produce=0
DefList: { }
N189 ( 1, 1) [000132] ------------- * LCL_VAR ref V05 arg5 u:2 NA (last use) REG NA $81
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N191 (???,???) [000193] -c----------- * LEA(b+8) byref REG NA
Contained
DefList: { }
N193 ( 2, 2) [000015] ------------- * LCL_VAR int V03 arg3 u:2 NA (last use) REG NA $100
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N195 (???,???) [000152] -A-XGO------- * STOREIND byte REG NA
<RefPosition #202 @195 RefTypeUse <Ivl:5 V05> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
<RefPosition #203 @195 RefTypeUse <Ivl:3 V03> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
+<TreeNodeInfo 0=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 2 produce=0
DefList: { }
N197 ( 4, 4) [000021] ------------- * IL_OFFSET void IL offset: 0x39 REG NA
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=0
DefList: { }
N199 ( 2, 2) [000019] ------------- * LCL_VAR int V01 arg1 u:2 NA (last use) REG NA $c0
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { }
N201 ( 3, 3) [000141] ------------- * CAST int <- ushort <- int REG NA $20c
<RefPosition #204 @201 RefTypeUse <Ivl:1 V01> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
Interval 51: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #205 @202 RefTypeDef <Ivl:51> CAST BB05 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=1
DefList: { N201.t141. CAST }
N203 ( 4, 4) [000020] ------------- * RETURN int REG NA $28a
<RefPosition #206 @203 RefTypeFixedReg <Reg:r0 > BB05 regmask=[r0] minReg=1>
<RefPosition #207 @203 RefTypeUse <Ivl:51> BB05 regmask=[r0] minReg=1 last fixed>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
CHECKING LAST USES for block 5, liveout={}
==============================
use: {V01 V03 V05}
def: {}
NEW BLOCK BB06
No allocated predecessor;
Setting BB06 as the predecessor for determining incoming variable registers of BB05
<RefPosition #208 @205 RefTypeBB BB06 regmask=[] minReg=1>
DefList: { }
N207 ( 3, 7) [000194] ------------- * CNS_INT(h) int 0xFDA7BB0 ftn REG NA
Interval 52: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #209 @208 RefTypeDef <Ivl:52> CNS_INT BB06 regmask=[allInt] minReg=1>
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 0 produce=1
DefList: { N207.t194. CNS_INT }
N209 ( 16, 10) [000155] --CXG-------- * CALL help void HELPER.CORINFO_HELP_RNGCHKFAIL
<RefPosition #210 @209 RefTypeUse <Ivl:52> BB06 regmask=[allInt] minReg=1 last>
<RefPosition #211 @210 RefTypeKill <Reg:r0 > BB06 regmask=[r0] minReg=1>
<RefPosition #212 @210 RefTypeKill <Reg:r1 > BB06 regmask=[r1] minReg=1>
<RefPosition #213 @210 RefTypeKill <Reg:r2 > BB06 regmask=[r2] minReg=1>
<RefPosition #214 @210 RefTypeKill <Reg:r3 > BB06 regmask=[r3] minReg=1>
<RefPosition #215 @210 RefTypeKill <Reg:r12> BB06 regmask=[r12] minReg=1>
<RefPosition #216 @210 RefTypeKill <Reg:lr > BB06 regmask=[lr] minReg=1>
<RefPosition #217 @210 RefTypeKill <Reg:f0 > BB06 regmask=[f0] minReg=1>
<RefPosition #218 @210 RefTypeKill <Reg:f1 > BB06 regmask=[f1] minReg=1>
<RefPosition #219 @210 RefTypeKill <Reg:f2 > BB06 regmask=[f2] minReg=1>
<RefPosition #220 @210 RefTypeKill <Reg:f3 > BB06 regmask=[f3] minReg=1>
<RefPosition #221 @210 RefTypeKill <Reg:f4 > BB06 regmask=[f4] minReg=1>
<RefPosition #222 @210 RefTypeKill <Reg:f5 > BB06 regmask=[f5] minReg=1>
<RefPosition #223 @210 RefTypeKill <Reg:f6 > BB06 regmask=[f6] minReg=1>
<RefPosition #224 @210 RefTypeKill <Reg:f7 > BB06 regmask=[f7] minReg=1>
<RefPosition #225 @210 RefTypeKill <Reg:f8 > BB06 regmask=[f8] minReg=1>
<RefPosition #226 @210 RefTypeKill <Reg:f9 > BB06 regmask=[f9] minReg=1>
<RefPosition #227 @210 RefTypeKill <Reg:f10> BB06 regmask=[f10] minReg=1>
<RefPosition #228 @210 RefTypeKill <Reg:f11> BB06 regmask=[f11] minReg=1>
<RefPosition #229 @210 RefTypeKill <Reg:f12> BB06 regmask=[f12] minReg=1>
<RefPosition #230 @210 RefTypeKill <Reg:f13> BB06 regmask=[f13] minReg=1>
<RefPosition #231 @210 RefTypeKill <Reg:f14> BB06 regmask=[f14] minReg=1>
<RefPosition #232 @210 RefTypeKill <Reg:f15> BB06 regmask=[f15] minReg=1>
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--]
consume= 1 produce=0
CHECKING LAST USES for block 6, liveout={}
==============================
use: {}
def: {}
Linear scan intervals BEFORE VALIDATING INTERVALS:
Interval 0: (V00) RefPositions {#0@0 #192@171} physReg:r0 Preferences=[r4-r10]
Interval 1: (V01) RefPositions {#3@0 #204@201} physReg:r1 Preferences=[r4-r10]
Interval 2: (V02) RefPositions {#2@0 #37@66 #174@143} physReg:r2 Preferences=[r4-r10]
Interval 3: (V03) RefPositions {#1@0 #203@195} physReg:r3 Preferences=[r4-r10]
Interval 4: (V04) RefPositions {#5@0 #7@7} physReg:NA Preferences=[allInt]
Interval 5: (V05) RefPositions {#4@0 #198@185 #202@195} physReg:NA Preferences=[r4-r10]
Interval 6: (V09) RefPositions {#42@74 #44@77 #92@95} physReg:NA Preferences=[r4-r10]
Interval 7: (V10) RefPositions {#90@92 #109@109} physReg:NA Preferences=[allInt]
Interval 8: (V11) RefPositions {#120@118 #122@121 #170@139} physReg:NA Preferences=[r4-r10]
Interval 9: (V12) RefPositions {#168@136 #181@147} physReg:NA Preferences=[allInt]
Interval 10: (V13) RefPositions {#28@48 #30@55 #34@63} physReg:NA Preferences=[allInt]
Interval 11: (V14) RefPositions {#10@10 #11@15 #189@157} physReg:NA Preferences=[r4-r10]
Interval 12: (V15) (struct) RefPositions {#21@38 #96@99} physReg:NA Preferences=[r4-r10]
Interval 13: (V16) (struct) RefPositions {#23@40 #100@103} physReg:NA Preferences=[r4-r10]
Interval 14: (V17) RefPositions {#17@28 #18@35 #20@37} physReg:NA Preferences=[allInt]
Interval 15: RefPositions {#8@8 #9@9} physReg:NA Preferences=[allInt] RelatedInterval <L11>[008D0934]
Interval 16: RefPositions {#13@24 #14@25} physReg:NA Preferences=[allInt]
Interval 17: RefPositions {#15@26 #16@27} physReg:NA Preferences=[allInt] RelatedInterval <L14>[008D09DC]
Interval 18: RefPositions {#19@36 #22@39} physReg:NA Preferences=[allInt] RelatedInterval <L13>[008D09A4]
Interval 19: RefPositions {#24@44 #25@45} physReg:NA Preferences=[allInt]
Interval 20: RefPositions {#26@46 #27@47} physReg:NA Preferences=[allInt] RelatedInterval <L10>[008D08FC]
Interval 21: (constant) RefPositions {#29@50 #32@57} physReg:NA Preferences=[allInt]
Interval 22: RefPositions {#31@56 #33@57} physReg:NA Preferences=[allInt]
Interval 23: RefPositions {#35@64 #36@65} physReg:NA Preferences=[allInt] RelatedInterval <L2>[008D073C]
Interval 24: RefPositions {#38@70 #39@71} physReg:NA Preferences=[allInt]
Interval 25: RefPositions {#40@72 #41@73} physReg:NA Preferences=[allInt] RelatedInterval <L6>[008D081C]
Interval 26: (specialPutArg) RefPositions {#46@78 #59@89} physReg:NA Preferences=[r0] RelatedInterval <L6>[008D081C]
Interval 27: (constant) RefPositions {#47@80 #49@81} physReg:NA Preferences=[r1]
Interval 28: RefPositions {#51@82 #61@89} physReg:NA Preferences=[r1]
Interval 29: (constant) RefPositions {#52@84 #54@85} physReg:NA Preferences=[r2]
Interval 30: RefPositions {#56@86 #63@89} physReg:NA Preferences=[r2]
Interval 31: (constant) RefPositions {#57@88 #64@89} physReg:NA Preferences=[allInt]
Interval 32: RefPositions {#88@90 #89@91} physReg:NA Preferences=[r0] RelatedInterval <L7>[008D0854]
Interval 33: RefPositions {#94@96 #104@109} physReg:NA Preferences=[r0]
Interval 34: RefPositions {#98@100 #106@109} physReg:NA Preferences=[r2]
Interval 35: RefPositions {#102@104 #108@109} physReg:NA Preferences=[r3]
Interval 36: RefPositions {#116@114 #117@115} physReg:NA Preferences=[allInt]
Interval 37: RefPositions {#118@116 #119@117} physReg:NA Preferences=[allInt] RelatedInterval <L8>[008D088C]
Interval 38: (specialPutArg) RefPositions {#124@122 #137@133} physReg:NA Preferences=[r0] RelatedInterval <L8>[008D088C]
Interval 39: (constant) RefPositions {#125@124 #127@125} physReg:NA Preferences=[r1]
Interval 40: RefPositions {#129@126 #139@133} physReg:NA Preferences=[r1]
Interval 41: (constant) RefPositions {#130@128 #132@129} physReg:NA Preferences=[r2]
Interval 42: RefPositions {#134@130 #141@133} physReg:NA Preferences=[r2]
Interval 43: (constant) RefPositions {#135@132 #142@133} physReg:NA Preferences=[allInt]
Interval 44: RefPositions {#166@134 #167@135} physReg:NA Preferences=[r0] RelatedInterval <L9>[008D08C4]
Interval 45: RefPositions {#172@140 #178@147} physReg:NA Preferences=[r0]
Interval 46: RefPositions {#176@144 #180@147} physReg:NA Preferences=[r1]
Interval 47: (constant) RefPositions {#191@166 #194@173} physReg:NA Preferences=[allInt]
Interval 48: RefPositions {#193@172 #195@173} physReg:NA Preferences=[allInt]
Interval 49: (constant) RefPositions {#197@180 #200@187} physReg:NA Preferences=[allInt]
Interval 50: RefPositions {#199@186 #201@187} physReg:NA Preferences=[allInt]
Interval 51: RefPositions {#205@202 #207@203} physReg:NA Preferences=[r0]
Interval 52: (constant) RefPositions {#209@208 #210@209} physReg:NA Preferences=[allInt]
------------
REFPOSITIONS BEFORE VALIDATING INTERVALS:
------------
<RefPosition #0 @0 RefTypeParamDef <Ivl:0 V00> BB00 regmask=[r0] minReg=1 fixed>
<RefPosition #1 @0 RefTypeParamDef <Ivl:3 V03> BB00 regmask=[r3] minReg=1 fixed>
<RefPosition #2 @0 RefTypeParamDef <Ivl:2 V02> BB00 regmask=[r2] minReg=1 fixed>
<RefPosition #3 @0 RefTypeParamDef <Ivl:1 V01> BB00 regmask=[r1] minReg=1 fixed>
<RefPosition #4 @0 RefTypeParamDef <Ivl:5 V05> BB00 regmask=[allInt] minReg=1>
<RefPosition #5 @0 RefTypeParamDef <Ivl:4 V04> BB00 regmask=[allInt] minReg=1>
<RefPosition #6 @1 RefTypeBB BB01 regmask=[] minReg=1>
<RefPosition #7 @7 RefTypeUse <Ivl:4 V04> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
<RefPosition #8 @8 RefTypeDef <Ivl:15> CAST BB01 regmask=[allInt] minReg=1>
<RefPosition #9 @9 RefTypeUse <Ivl:15> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #10 @10 RefTypeDef <Ivl:11 V14> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #11 @15 RefTypeUse <Ivl:11 V14> LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #12 @19 RefTypeBB BB02 regmask=[] minReg=1>
<RefPosition #13 @24 RefTypeDef <Ivl:16> CLS_VAR_ADDR BB02 regmask=[allInt] minReg=1>
<RefPosition #14 @25 RefTypeUse <Ivl:16> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #15 @26 RefTypeDef <Ivl:17> IND BB02 regmask=[allInt] minReg=1>
<RefPosition #16 @27 RefTypeUse <Ivl:17> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #17 @28 RefTypeDef <Ivl:14 V17> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #18 @35 RefTypeUse <Ivl:14 V17> LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #19 @36 RefTypeDef <Ivl:18> RSH BB02 regmask=[allInt] minReg=1>
<RefPosition #20 @37 RefTypeUse <Ivl:14 V17> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
<RefPosition #21 @38 RefTypeDef <Ivl:12 V15> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #22 @39 RefTypeUse <Ivl:18> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #23 @40 RefTypeDef <Ivl:13 V16> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #24 @44 RefTypeDef <Ivl:19> CLS_VAR_ADDR BB02 regmask=[allInt] minReg=1>
<RefPosition #25 @45 RefTypeUse <Ivl:19> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #26 @46 RefTypeDef <Ivl:20> IND BB02 regmask=[allInt] minReg=1>
<RefPosition #27 @47 RefTypeUse <Ivl:20> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #28 @48 RefTypeDef <Ivl:10 V13> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #29 @50 RefTypeDef <Ivl:21> CNS_INT BB02 regmask=[allInt] minReg=1>
<RefPosition #30 @55 RefTypeUse <Ivl:10 V13> LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #31 @56 RefTypeDef <Ivl:22> IND BB02 regmask=[allInt] minReg=1>
<RefPosition #32 @57 RefTypeUse <Ivl:21> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #33 @57 RefTypeUse <Ivl:22> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #34 @63 RefTypeUse <Ivl:10 V13> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
<RefPosition #35 @64 RefTypeDef <Ivl:23> IND BB02 regmask=[allInt] minReg=1>
<RefPosition #36 @65 RefTypeUse <Ivl:23> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #37 @66 RefTypeDef <Ivl:2 V02> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #38 @70 RefTypeDef <Ivl:24> CLS_VAR_ADDR BB02 regmask=[allInt] minReg=1>
<RefPosition #39 @71 RefTypeUse <Ivl:24> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #40 @72 RefTypeDef <Ivl:25> IND BB02 regmask=[allInt] minReg=1>
<RefPosition #41 @73 RefTypeUse <Ivl:25> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #42 @74 RefTypeDef <Ivl:6 V09> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #43 @77 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #44 @77 RefTypeUse <Ivl:6 V09> LCL_VAR BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #45 @78 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #46 @78 RefTypeDef <Ivl:26> PUTARG_REG BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #47 @80 RefTypeDef <Ivl:27> CNS_INT BB02 regmask=[r1] minReg=1>
<RefPosition #48 @81 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #49 @81 RefTypeUse <Ivl:27> BB02 regmask=[r1] minReg=1 last fixed>
<RefPosition #50 @82 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #51 @82 RefTypeDef <Ivl:28> PUTARG_REG BB02 regmask=[r1] minReg=1 fixed>
<RefPosition #52 @84 RefTypeDef <Ivl:29> CNS_INT BB02 regmask=[r2] minReg=1>
<RefPosition #53 @85 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #54 @85 RefTypeUse <Ivl:29> BB02 regmask=[r2] minReg=1 last fixed>
<RefPosition #55 @86 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #56 @86 RefTypeDef <Ivl:30> PUTARG_REG BB02 regmask=[r2] minReg=1 fixed>
<RefPosition #57 @88 RefTypeDef <Ivl:31> CNS_INT BB02 regmask=[allInt] minReg=1>
<RefPosition #58 @89 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #59 @89 RefTypeUse <Ivl:26> BB02 regmask=[r0] minReg=1 last fixed>
<RefPosition #60 @89 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #61 @89 RefTypeUse <Ivl:28> BB02 regmask=[r1] minReg=1 last fixed>
<RefPosition #62 @89 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #63 @89 RefTypeUse <Ivl:30> BB02 regmask=[r2] minReg=1 last fixed>
<RefPosition #64 @89 RefTypeUse <Ivl:31> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #65 @90 RefTypeKill <Reg:r0 > BB02 regmask=[r0] minReg=1 last>
<RefPosition #66 @90 RefTypeKill <Reg:r1 > BB02 regmask=[r1] minReg=1 last>
<RefPosition #67 @90 RefTypeKill <Reg:r2 > BB02 regmask=[r2] minReg=1 last>
<RefPosition #68 @90 RefTypeKill <Reg:r3 > BB02 regmask=[r3] minReg=1 last>
<RefPosition #69 @90 RefTypeKill <Reg:r12> BB02 regmask=[r12] minReg=1 last>
<RefPosition #70 @90 RefTypeKill <Reg:lr > BB02 regmask=[lr] minReg=1 last>
<RefPosition #71 @90 RefTypeKill <Reg:f0 > BB02 regmask=[f0] minReg=1 last>
<RefPosition #72 @90 RefTypeKill <Reg:f1 > BB02 regmask=[f1] minReg=1 last>
<RefPosition #73 @90 RefTypeKill <Reg:f2 > BB02 regmask=[f2] minReg=1 last>
<RefPosition #74 @90 RefTypeKill <Reg:f3 > BB02 regmask=[f3] minReg=1 last>
<RefPosition #75 @90 RefTypeKill <Reg:f4 > BB02 regmask=[f4] minReg=1 last>
<RefPosition #76 @90 RefTypeKill <Reg:f5 > BB02 regmask=[f5] minReg=1 last>
<RefPosition #77 @90 RefTypeKill <Reg:f6 > BB02 regmask=[f6] minReg=1 last>
<RefPosition #78 @90 RefTypeKill <Reg:f7 > BB02 regmask=[f7] minReg=1 last>
<RefPosition #79 @90 RefTypeKill <Reg:f8 > BB02 regmask=[f8] minReg=1 last>
<RefPosition #80 @90 RefTypeKill <Reg:f9 > BB02 regmask=[f9] minReg=1 last>
<RefPosition #81 @90 RefTypeKill <Reg:f10> BB02 regmask=[f10] minReg=1 last>
<RefPosition #82 @90 RefTypeKill <Reg:f11> BB02 regmask=[f11] minReg=1 last>
<RefPosition #83 @90 RefTypeKill <Reg:f12> BB02 regmask=[f12] minReg=1 last>
<RefPosition #84 @90 RefTypeKill <Reg:f13> BB02 regmask=[f13] minReg=1 last>
<RefPosition #85 @90 RefTypeKill <Reg:f14> BB02 regmask=[f14] minReg=1 last>
<RefPosition #86 @90 RefTypeKill <Reg:f15> BB02 regmask=[f15] minReg=1 last>
<RefPosition #87 @90 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #88 @90 RefTypeDef <Ivl:32> CALL BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #89 @91 RefTypeUse <Ivl:32> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #90 @92 RefTypeDef <Ivl:7 V10> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #91 @95 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #92 @95 RefTypeUse <Ivl:6 V09> LCL_VAR BB02 regmask=[r0] minReg=1 last fixed>
<RefPosition #93 @96 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #94 @96 RefTypeDef <Ivl:33> PUTARG_REG BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #95 @99 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #96 @99 RefTypeUse <Ivl:12 V15> LCL_VAR BB02 regmask=[r2] minReg=1 last fixed>
<RefPosition #97 @100 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #98 @100 RefTypeDef <Ivl:34> PUTARG_REG BB02 regmask=[r2] minReg=1 fixed>
<RefPosition #99 @103 RefTypeFixedReg <Reg:r3 > BB02 regmask=[r3] minReg=1>
<RefPosition #100 @103 RefTypeUse <Ivl:13 V16> LCL_VAR BB02 regmask=[r3] minReg=1 last fixed>
<RefPosition #101 @104 RefTypeFixedReg <Reg:r3 > BB02 regmask=[r3] minReg=1>
<RefPosition #102 @104 RefTypeDef <Ivl:35> PUTARG_REG BB02 regmask=[r3] minReg=1 fixed>
<RefPosition #103 @109 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #104 @109 RefTypeUse <Ivl:33> BB02 regmask=[r0] minReg=1 last fixed>
<RefPosition #105 @109 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #106 @109 RefTypeUse <Ivl:34> BB02 regmask=[r2] minReg=1 last fixed>
<RefPosition #107 @109 RefTypeFixedReg <Reg:r3 > BB02 regmask=[r3] minReg=1>
<RefPosition #108 @109 RefTypeUse <Ivl:35> BB02 regmask=[r3] minReg=1 last fixed>
<RefPosition #109 @109 RefTypeUse <Ivl:7 V10> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
<RefPosition #110 @110 RefTypeKill <Reg:r0 > BB02 regmask=[r0] minReg=1 last>
<RefPosition #111 @110 RefTypeKill <Reg:r1 > BB02 regmask=[r1] minReg=1 last>
<RefPosition #112 @110 RefTypeKill <Reg:r2 > BB02 regmask=[r2] minReg=1 last>
<RefPosition #113 @110 RefTypeKill <Reg:r3 > BB02 regmask=[r3] minReg=1 last>
<RefPosition #114 @110 RefTypeKill <Reg:r12> BB02 regmask=[r12] minReg=1 last>
<RefPosition #115 @110 RefTypeKill <Reg:lr > BB02 regmask=[lr] minReg=1 last>
<RefPosition #116 @114 RefTypeDef <Ivl:36> CLS_VAR_ADDR BB02 regmask=[allInt] minReg=1>
<RefPosition #117 @115 RefTypeUse <Ivl:36> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #118 @116 RefTypeDef <Ivl:37> IND BB02 regmask=[allInt] minReg=1>
<RefPosition #119 @117 RefTypeUse <Ivl:37> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #120 @118 RefTypeDef <Ivl:8 V11> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #121 @121 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #122 @121 RefTypeUse <Ivl:8 V11> LCL_VAR BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #123 @122 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #124 @122 RefTypeDef <Ivl:38> PUTARG_REG BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #125 @124 RefTypeDef <Ivl:39> CNS_INT BB02 regmask=[r1] minReg=1>
<RefPosition #126 @125 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #127 @125 RefTypeUse <Ivl:39> BB02 regmask=[r1] minReg=1 last fixed>
<RefPosition #128 @126 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #129 @126 RefTypeDef <Ivl:40> PUTARG_REG BB02 regmask=[r1] minReg=1 fixed>
<RefPosition #130 @128 RefTypeDef <Ivl:41> CNS_INT BB02 regmask=[r2] minReg=1>
<RefPosition #131 @129 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #132 @129 RefTypeUse <Ivl:41> BB02 regmask=[r2] minReg=1 last fixed>
<RefPosition #133 @130 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #134 @130 RefTypeDef <Ivl:42> PUTARG_REG BB02 regmask=[r2] minReg=1 fixed>
<RefPosition #135 @132 RefTypeDef <Ivl:43> CNS_INT BB02 regmask=[allInt] minReg=1>
<RefPosition #136 @133 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #137 @133 RefTypeUse <Ivl:38> BB02 regmask=[r0] minReg=1 last fixed>
<RefPosition #138 @133 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #139 @133 RefTypeUse <Ivl:40> BB02 regmask=[r1] minReg=1 last fixed>
<RefPosition #140 @133 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #141 @133 RefTypeUse <Ivl:42> BB02 regmask=[r2] minReg=1 last fixed>
<RefPosition #142 @133 RefTypeUse <Ivl:43> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #143 @134 RefTypeKill <Reg:r0 > BB02 regmask=[r0] minReg=1 last>
<RefPosition #144 @134 RefTypeKill <Reg:r1 > BB02 regmask=[r1] minReg=1 last>
<RefPosition #145 @134 RefTypeKill <Reg:r2 > BB02 regmask=[r2] minReg=1 last>
<RefPosition #146 @134 RefTypeKill <Reg:r3 > BB02 regmask=[r3] minReg=1 last>
<RefPosition #147 @134 RefTypeKill <Reg:r12> BB02 regmask=[r12] minReg=1 last>
<RefPosition #148 @134 RefTypeKill <Reg:lr > BB02 regmask=[lr] minReg=1 last>
<RefPosition #149 @134 RefTypeKill <Reg:f0 > BB02 regmask=[f0] minReg=1 last>
<RefPosition #150 @134 RefTypeKill <Reg:f1 > BB02 regmask=[f1] minReg=1 last>
<RefPosition #151 @134 RefTypeKill <Reg:f2 > BB02 regmask=[f2] minReg=1 last>
<RefPosition #152 @134 RefTypeKill <Reg:f3 > BB02 regmask=[f3] minReg=1 last>
<RefPosition #153 @134 RefTypeKill <Reg:f4 > BB02 regmask=[f4] minReg=1 last>
<RefPosition #154 @134 RefTypeKill <Reg:f5 > BB02 regmask=[f5] minReg=1 last>
<RefPosition #155 @134 RefTypeKill <Reg:f6 > BB02 regmask=[f6] minReg=1 last>
<RefPosition #156 @134 RefTypeKill <Reg:f7 > BB02 regmask=[f7] minReg=1 last>
<RefPosition #157 @134 RefTypeKill <Reg:f8 > BB02 regmask=[f8] minReg=1 last>
<RefPosition #158 @134 RefTypeKill <Reg:f9 > BB02 regmask=[f9] minReg=1 last>
<RefPosition #159 @134 RefTypeKill <Reg:f10> BB02 regmask=[f10] minReg=1 last>
<RefPosition #160 @134 RefTypeKill <Reg:f11> BB02 regmask=[f11] minReg=1 last>
<RefPosition #161 @134 RefTypeKill <Reg:f12> BB02 regmask=[f12] minReg=1 last>
<RefPosition #162 @134 RefTypeKill <Reg:f13> BB02 regmask=[f13] minReg=1 last>
<RefPosition #163 @134 RefTypeKill <Reg:f14> BB02 regmask=[f14] minReg=1 last>
<RefPosition #164 @134 RefTypeKill <Reg:f15> BB02 regmask=[f15] minReg=1 last>
<RefPosition #165 @134 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #166 @134 RefTypeDef <Ivl:44> CALL BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #167 @135 RefTypeUse <Ivl:44> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #168 @136 RefTypeDef <Ivl:9 V12> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #169 @139 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #170 @139 RefTypeUse <Ivl:8 V11> LCL_VAR BB02 regmask=[r0] minReg=1 last fixed>
<RefPosition #171 @140 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #172 @140 RefTypeDef <Ivl:45> PUTARG_REG BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #173 @143 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #174 @143 RefTypeUse <Ivl:2 V02> LCL_VAR BB02 regmask=[r1] minReg=1 last fixed>
<RefPosition #175 @144 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #176 @144 RefTypeDef <Ivl:46> PUTARG_REG BB02 regmask=[r1] minReg=1 fixed>
<RefPosition #177 @147 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #178 @147 RefTypeUse <Ivl:45> BB02 regmask=[r0] minReg=1 last fixed>
<RefPosition #179 @147 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #180 @147 RefTypeUse <Ivl:46> BB02 regmask=[r1] minReg=1 last fixed>
<RefPosition #181 @147 RefTypeUse <Ivl:9 V12> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
<RefPosition #182 @148 RefTypeKill <Reg:r0 > BB02 regmask=[r0] minReg=1 last>
<RefPosition #183 @148 RefTypeKill <Reg:r1 > BB02 regmask=[r1] minReg=1 last>
<RefPosition #184 @148 RefTypeKill <Reg:r2 > BB02 regmask=[r2] minReg=1 last>
<RefPosition #185 @148 RefTypeKill <Reg:r3 > BB02 regmask=[r3] minReg=1 last>
<RefPosition #186 @148 RefTypeKill <Reg:r12> BB02 regmask=[r12] minReg=1 last>
<RefPosition #187 @148 RefTypeKill <Reg:lr > BB02 regmask=[lr] minReg=1 last>
<RefPosition #188 @149 RefTypeBB BB03 regmask=[] minReg=1>
<RefPosition #189 @157 RefTypeUse <Ivl:11 V14> LCL_VAR BB03 regmask=[allInt] minReg=1 last>
<RefPosition #190 @161 RefTypeBB BB04 regmask=[] minReg=1>
<RefPosition #191 @166 RefTypeDef <Ivl:47> CNS_INT BB04 regmask=[allInt] minReg=1>
<RefPosition #192 @171 RefTypeUse <Ivl:0 V00> LCL_VAR BB04 regmask=[allInt] minReg=1 last>
<RefPosition #193 @172 RefTypeDef <Ivl:48> IND BB04 regmask=[allInt] minReg=1>
<RefPosition #194 @173 RefTypeUse <Ivl:47> BB04 regmask=[allInt] minReg=1 last>
<RefPosition #195 @173 RefTypeUse <Ivl:48> BB04 regmask=[allInt] minReg=1 last>
<RefPosition #196 @175 RefTypeBB BB05 regmask=[] minReg=1>
<RefPosition #197 @180 RefTypeDef <Ivl:49> CNS_INT BB05 regmask=[allInt] minReg=1>
<RefPosition #198 @185 RefTypeUse <Ivl:5 V05> LCL_VAR BB05 regmask=[allInt] minReg=1>
<RefPosition #199 @186 RefTypeDef <Ivl:50> IND BB05 regmask=[allInt] minReg=1>
<RefPosition #200 @187 RefTypeUse <Ivl:49> BB05 regmask=[allInt] minReg=1 last>
<RefPosition #201 @187 RefTypeUse <Ivl:50> BB05 regmask=[allInt] minReg=1 last>
<RefPosition #202 @195 RefTypeUse <Ivl:5 V05> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
<RefPosition #203 @195 RefTypeUse <Ivl:3 V03> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
<RefPosition #204 @201 RefTypeUse <Ivl:1 V01> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
<RefPosition #205 @202 RefTypeDef <Ivl:51> CAST BB05 regmask=[r0] minReg=1>
<RefPosition #206 @203 RefTypeFixedReg <Reg:r0 > BB05 regmask=[r0] minReg=1>
<RefPosition #207 @203 RefTypeUse <Ivl:51> BB05 regmask=[r0] minReg=1 last fixed>
<RefPosition #208 @205 RefTypeBB BB06 regmask=[] minReg=1>
<RefPosition #209 @208 RefTypeDef <Ivl:52> CNS_INT BB06 regmask=[allInt] minReg=1>
<RefPosition #210 @209 RefTypeUse <Ivl:52> BB06 regmask=[allInt] minReg=1 last>
<RefPosition #211 @210 RefTypeKill <Reg:r0 > BB06 regmask=[r0] minReg=1 last>
<RefPosition #212 @210 RefTypeKill <Reg:r1 > BB06 regmask=[r1] minReg=1 last>
<RefPosition #213 @210 RefTypeKill <Reg:r2 > BB06 regmask=[r2] minReg=1 last>
<RefPosition #214 @210 RefTypeKill <Reg:r3 > BB06 regmask=[r3] minReg=1 last>
<RefPosition #215 @210 RefTypeKill <Reg:r12> BB06 regmask=[r12] minReg=1 last>
<RefPosition #216 @210 RefTypeKill <Reg:lr > BB06 regmask=[lr] minReg=1 last>
<RefPosition #217 @210 RefTypeKill <Reg:f0 > BB06 regmask=[f0] minReg=1 last>
<RefPosition #218 @210 RefTypeKill <Reg:f1 > BB06 regmask=[f1] minReg=1 last>
<RefPosition #219 @210 RefTypeKill <Reg:f2 > BB06 regmask=[f2] minReg=1 last>
<RefPosition #220 @210 RefTypeKill <Reg:f3 > BB06 regmask=[f3] minReg=1 last>
<RefPosition #221 @210 RefTypeKill <Reg:f4 > BB06 regmask=[f4] minReg=1 last>
<RefPosition #222 @210 RefTypeKill <Reg:f5 > BB06 regmask=[f5] minReg=1 last>
<RefPosition #223 @210 RefTypeKill <Reg:f6 > BB06 regmask=[f6] minReg=1 last>
<RefPosition #224 @210 RefTypeKill <Reg:f7 > BB06 regmask=[f7] minReg=1 last>
<RefPosition #225 @210 RefTypeKill <Reg:f8 > BB06 regmask=[f8] minReg=1 last>
<RefPosition #226 @210 RefTypeKill <Reg:f9 > BB06 regmask=[f9] minReg=1 last>
<RefPosition #227 @210 RefTypeKill <Reg:f10> BB06 regmask=[f10] minReg=1 last>
<RefPosition #228 @210 RefTypeKill <Reg:f11> BB06 regmask=[f11] minReg=1 last>
<RefPosition #229 @210 RefTypeKill <Reg:f12> BB06 regmask=[f12] minReg=1 last>
<RefPosition #230 @210 RefTypeKill <Reg:f13> BB06 regmask=[f13] minReg=1 last>
<RefPosition #231 @210 RefTypeKill <Reg:f14> BB06 regmask=[f14] minReg=1 last>
<RefPosition #232 @210 RefTypeKill <Reg:f15> BB06 regmask=[f15] minReg=1 last>
-----------------
<RefPosition #0 @0 RefTypeParamDef <Ivl:0 V00> BB00 regmask=[r0] minReg=1 fixed>
<RefPosition #192 @171 RefTypeUse <Ivl:0 V00> LCL_VAR BB04 regmask=[allInt] minReg=1 last>
-----------------
<RefPosition #28 @48 RefTypeDef <Ivl:10 V13> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #30 @55 RefTypeUse <Ivl:10 V13> LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #34 @63 RefTypeUse <Ivl:10 V13> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
-----------------
<RefPosition #10 @10 RefTypeDef <Ivl:11 V14> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #11 @15 RefTypeUse <Ivl:11 V14> LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #189 @157 RefTypeUse <Ivl:11 V14> LCL_VAR BB03 regmask=[allInt] minReg=1 last>
-----------------
<RefPosition #1 @0 RefTypeParamDef <Ivl:3 V03> BB00 regmask=[r3] minReg=1 fixed>
<RefPosition #203 @195 RefTypeUse <Ivl:3 V03> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
-----------------
<RefPosition #2 @0 RefTypeParamDef <Ivl:2 V02> BB00 regmask=[r2] minReg=1 fixed>
<RefPosition #37 @66 RefTypeDef <Ivl:2 V02> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #174 @143 RefTypeUse <Ivl:2 V02> LCL_VAR BB02 regmask=[r1] minReg=1 last fixed>
-----------------
<RefPosition #3 @0 RefTypeParamDef <Ivl:1 V01> BB00 regmask=[r1] minReg=1 fixed>
<RefPosition #204 @201 RefTypeUse <Ivl:1 V01> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
-----------------
<RefPosition #4 @0 RefTypeParamDef <Ivl:5 V05> BB00 regmask=[allInt] minReg=1>
<RefPosition #198 @185 RefTypeUse <Ivl:5 V05> LCL_VAR BB05 regmask=[allInt] minReg=1>
<RefPosition #202 @195 RefTypeUse <Ivl:5 V05> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
-----------------
<RefPosition #42 @74 RefTypeDef <Ivl:6 V09> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #44 @77 RefTypeUse <Ivl:6 V09> LCL_VAR BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #92 @95 RefTypeUse <Ivl:6 V09> LCL_VAR BB02 regmask=[r0] minReg=1 last fixed>
-----------------
<RefPosition #120 @118 RefTypeDef <Ivl:8 V11> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #122 @121 RefTypeUse <Ivl:8 V11> LCL_VAR BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #170 @139 RefTypeUse <Ivl:8 V11> LCL_VAR BB02 regmask=[r0] minReg=1 last fixed>
-----------------
<RefPosition #17 @28 RefTypeDef <Ivl:14 V17> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #18 @35 RefTypeUse <Ivl:14 V17> LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #20 @37 RefTypeUse <Ivl:14 V17> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
-----------------
<RefPosition #5 @0 RefTypeParamDef <Ivl:4 V04> BB00 regmask=[allInt] minReg=1>
<RefPosition #7 @7 RefTypeUse <Ivl:4 V04> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
-----------------
<RefPosition #90 @92 RefTypeDef <Ivl:7 V10> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #109 @109 RefTypeUse <Ivl:7 V10> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
-----------------
<RefPosition #168 @136 RefTypeDef <Ivl:9 V12> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #181 @147 RefTypeUse <Ivl:9 V12> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
-----------------
<RefPosition #21 @38 RefTypeDef <Ivl:12 V15> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #96 @99 RefTypeUse <Ivl:12 V15> LCL_VAR BB02 regmask=[r2] minReg=1 last fixed>
-----------------
<RefPosition #23 @40 RefTypeDef <Ivl:13 V16> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #100 @103 RefTypeUse <Ivl:13 V16> LCL_VAR BB02 regmask=[r3] minReg=1 last fixed>
TUPLE STYLE DUMP WITH REF POSITIONS
Incoming Parameters: V00 V03 V02 V01 V05 V04
BB01 [000..004) -> BB03 (cond), preds={} succs={BB02,BB03}
=====
N003. IL_OFFSET IL offset: 0x0 REG NA
N005. V04(L4)
N007. CAST
Use:<L4>(#7) *
Def:<I15>(#8) Pref:<L11>
N009. V14(L11)
Use:<I15>(#9) *
Def:<L11>(#10)
N011. V14(L11)
N013. CNS_INT 0 REG NA
N015. EQ
Use:<L11>(#11)
N017. JTRUE
BB02 [004..02C), preds={BB01} succs={BB03}
=====
N021. IL_OFFSET IL offset: 0x4 REG NA
N023. CLS_VAR_ADDR Hnd=0x9247f8 REG NA
Def:<I16>(#13)
N025. IND
Use:<I16>(#14) *
Def:<I17>(#15) Pref:<L14>
N027. V17(L14)
Use:<I17>(#16) *
Def:<L14>(#17)
N029. V17(L14)
N031. V17(L14)
N033. CNS_INT 31 REG NA
N035. RSH
Use:<L14>(#18)
Def:<I18>(#19) Pref:<L13>
N037. V15(L12)
Use:<L14>(#20) *
Def:<L12>(#21)
N039. V16(L13)
Use:<I18>(#22) *
Def:<L13>(#23)
N041. IL_OFFSET IL offset: 0xb REG NA
N043. CLS_VAR_ADDR Hnd=0x924808 REG NA
Def:<I19>(#24)
N045. IND
Use:<I19>(#25) *
Def:<I20>(#26) Pref:<L10>
N047. V13(L10)
Use:<I20>(#27) *
Def:<L10>(#28)
N049. CNS_INT 0 REG NA
Def:<I21>(#29)
N051. V13(L10)
N053. LEA(b+4)
N055. IND
Use:<L10>(#30)
Def:<I22>(#31)
N057. ARR_BOUNDS_CHECK_Rng
Use:<I21>(#32) *
Use:<I22>(#33) *
N059. V13(L10)
N061. LEA(b+8)
N063. IND
Use:<L10>(#34) *
Def:<I23>(#35) Pref:<L2>
N065. V02(L2)
Use:<I23>(#36) *
Def:<L2>(#37)
N067. IL_OFFSET IL offset: 0x16 REG NA
N069. CLS_VAR_ADDR Hnd=0x9247d8 REG NA
Def:<I24>(#38)
N071. IND
Use:<I24>(#39) *
Def:<I25>(#40) Pref:<L6>
N073. V09(L6)
Use:<I25>(#41) *
Def:<L6>(#42)
N075. V09(L6)
N077. PUTARG_REG
Use:<L6>(#44) Fixed:r0(#43)
Def:<I26>(#46) r0 Pref:<L6>
N079. CNS_INT(h) 0x924994 token REG NA
Def:<I27>(#47)
N081. PUTARG_REG
Use:<I27>(#49) Fixed:r1(#48) *
Def:<I28>(#51) r1
N083. CNS_INT(h) 0x924B10 token REG NA
Def:<I29>(#52)
N085. PUTARG_REG
Use:<I29>(#54) Fixed:r2(#53) *
Def:<I30>(#56) r2
N087. CNS_INT(h) 0xFDA55A0 ftn REG NA
Def:<I31>(#57)
N089. CALL help
Use:<I26>(#59) Fixed:r0(#58) *
Use:<I28>(#61) Fixed:r1(#60) *
Use:<I30>(#63) Fixed:r2(#62) *
Use:<I31>(#64) *
Kill: r0 r1 r2 r3 r12 lr f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15
Def:<I32>(#88) r0 Pref:<L7>
N091. V10(L7)
Use:<I32>(#89) *
Def:<L7>(#90)
N093. V09(L6)
N095. PUTARG_REG
Use:<L6>(#92) Fixed:r0(#91) *
Def:<I33>(#94) r0
N097. V15(L12)
N099. PUTARG_REG
Use:<L12>(#96) Fixed:r2(#95) *
Def:<I34>(#98) r2
N101. V16(L13)
N103. PUTARG_REG
Use:<L13>(#100) Fixed:r3(#99) *
Def:<I35>(#102) r3
N105. FIELD_LIST
N107. V10(L7)
N109. CALL ind
Use:<I33>(#104) Fixed:r0(#103) *
Use:<I34>(#106) Fixed:r2(#105) *
Use:<I35>(#108) Fixed:r3(#107) *
Use:<L7>(#109) *
Kill: r0 r1 r2 r3 r12 lr
N111. IL_OFFSET IL offset: 0x21 REG NA
N113. CLS_VAR_ADDR Hnd=0x9247d8 REG NA
Def:<I36>(#116)
N115. IND
Use:<I36>(#117) *
Def:<I37>(#118) Pref:<L8>
N117. V11(L8)
Use:<I37>(#119) *
Def:<L8>(#120)
N119. V11(L8)
N121. PUTARG_REG
Use:<L8>(#122) Fixed:r0(#121)
Def:<I38>(#124) r0 Pref:<L8>
N123. CNS_INT(h) 0x924994 token REG NA
Def:<I39>(#125)
N125. PUTARG_REG
Use:<I39>(#127) Fixed:r1(#126) *
Def:<I40>(#129) r1
N127. CNS_INT(h) 0x924B74 token REG NA
Def:<I41>(#130)
N129. PUTARG_REG
Use:<I41>(#132) Fixed:r2(#131) *
Def:<I42>(#134) r2
N131. CNS_INT(h) 0xFDA55A0 ftn REG NA
Def:<I43>(#135)
N133. CALL help
Use:<I38>(#137) Fixed:r0(#136) *
Use:<I40>(#139) Fixed:r1(#138) *
Use:<I42>(#141) Fixed:r2(#140) *
Use:<I43>(#142) *
Kill: r0 r1 r2 r3 r12 lr f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15
Def:<I44>(#166) r0 Pref:<L9>
N135. V12(L9)
Use:<I44>(#167) *
Def:<L9>(#168)
N137. V11(L8)
N139. PUTARG_REG
Use:<L8>(#170) Fixed:r0(#169) *
Def:<I45>(#172) r0
N141. V02(L2)
N143. PUTARG_REG
Use:<L2>(#174) Fixed:r1(#173) *
Def:<I46>(#176) r1
N145. V12(L9)
N147. CALL ind
Use:<I45>(#178) Fixed:r0(#177) *
Use:<I46>(#180) Fixed:r1(#179) *
Use:<L9>(#181) *
Kill: r0 r1 r2 r3 r12 lr
BB03 [02C..030) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
=====
N151. IL_OFFSET IL offset: 0x2c REG NA
N153. V14(L11)
N155. CNS_INT 0 REG NA
N157. NE
Use:<L11>(#189) *
N159. JTRUE
BB04 [030..034), preds={BB03} succs={BB05}
=====
N163. IL_OFFSET IL offset: 0x30 REG NA
N165. CNS_INT 0 REG NA
Def:<I47>(#191)
N167. V00(L0)
N169. LEA(b+4)
N171. IND
Use:<L0>(#192) *
Def:<I48>(#193)
N173. ARR_BOUNDS_CHECK_Rng
Use:<I47>(#194) *
Use:<I48>(#195) *
BB05 [034..03B) (return), preds={BB03,BB04} succs={}
=====
N177. IL_OFFSET IL offset: 0x34 REG NA
N179. CNS_INT 0 REG NA
Def:<I49>(#197)
N181. V05(L5)
N183. LEA(b+4)
N185. IND
Use:<L5>(#198)
Def:<I50>(#199)
N187. ARR_BOUNDS_CHECK_Rng
Use:<I49>(#200) *
Use:<I50>(#201) *
N189. V05(L5)
N191. LEA(b+8)
N193. V03(L3)
N195. STOREIND
Use:<L5>(#202) *
Use:<L3>(#203) *
N197. IL_OFFSET IL offset: 0x39 REG NA
N199. V01(L1)
N201. CAST
Use:<L1>(#204) *
Def:<I51>(#205)
N203. RETURN
Use:<I51>(#207) Fixed:r0(#206) *
BB06 [???..???) (throw), preds={} succs={}
=====
N207. CNS_INT(h) 0xFDA7BB0 ftn REG NA
Def:<I52>(#209)
N209. CALL help
Use:<I52>(#210) *
Kill: r0 r1 r2 r3 r12 lr f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15
Linear scan intervals after buildIntervals:
Interval 0: (V00) RefPositions {#0@0 #192@171} physReg:r0 Preferences=[r4-r10]
Interval 1: (V01) RefPositions {#3@0 #204@201} physReg:r1 Preferences=[r4-r10]
Interval 2: (V02) RefPositions {#2@0 #37@66 #174@143} physReg:r2 Preferences=[r4-r10]
Interval 3: (V03) RefPositions {#1@0 #203@195} physReg:r3 Preferences=[r4-r10]
Interval 4: (V04) RefPositions {#5@0 #7@7} physReg:NA Preferences=[allInt]
Interval 5: (V05) RefPositions {#4@0 #198@185 #202@195} physReg:NA Preferences=[r4-r10]
Interval 6: (V09) RefPositions {#42@74 #44@77 #92@95} physReg:NA Preferences=[r4-r10]
Interval 7: (V10) RefPositions {#90@92 #109@109} physReg:NA Preferences=[allInt]
Interval 8: (V11) RefPositions {#120@118 #122@121 #170@139} physReg:NA Preferences=[r4-r10]
Interval 9: (V12) RefPositions {#168@136 #181@147} physReg:NA Preferences=[allInt]
Interval 10: (V13) RefPositions {#28@48 #30@55 #34@63} physReg:NA Preferences=[allInt]
Interval 11: (V14) RefPositions {#10@10 #11@15 #189@157} physReg:NA Preferences=[r4-r10]
Interval 12: (V15) (struct) RefPositions {#21@38 #96@99} physReg:NA Preferences=[r4-r10]
Interval 13: (V16) (struct) RefPositions {#23@40 #100@103} physReg:NA Preferences=[r4-r10]
Interval 14: (V17) RefPositions {#17@28 #18@35 #20@37} physReg:NA Preferences=[allInt]
Interval 15: RefPositions {#8@8 #9@9} physReg:NA Preferences=[allInt] RelatedInterval <L11>[008D0934]
Interval 16: RefPositions {#13@24 #14@25} physReg:NA Preferences=[allInt]
Interval 17: RefPositions {#15@26 #16@27} physReg:NA Preferences=[allInt] RelatedInterval <L14>[008D09DC]
Interval 18: RefPositions {#19@36 #22@39} physReg:NA Preferences=[allInt] RelatedInterval <L13>[008D09A4]
Interval 19: RefPositions {#24@44 #25@45} physReg:NA Preferences=[allInt]
Interval 20: RefPositions {#26@46 #27@47} physReg:NA Preferences=[allInt] RelatedInterval <L10>[008D08FC]
Interval 21: (constant) RefPositions {#29@50 #32@57} physReg:NA Preferences=[allInt]
Interval 22: RefPositions {#31@56 #33@57} physReg:NA Preferences=[allInt]
Interval 23: RefPositions {#35@64 #36@65} physReg:NA Preferences=[allInt] RelatedInterval <L2>[008D073C]
Interval 24: RefPositions {#38@70 #39@71} physReg:NA Preferences=[allInt]
Interval 25: RefPositions {#40@72 #41@73} physReg:NA Preferences=[allInt] RelatedInterval <L6>[008D081C]
Interval 26: (specialPutArg) RefPositions {#46@78 #59@89} physReg:NA Preferences=[r0] RelatedInterval <L6>[008D081C]
Interval 27: (constant) RefPositions {#47@80 #49@81} physReg:NA Preferences=[r1]
Interval 28: RefPositions {#51@82 #61@89} physReg:NA Preferences=[r1]
Interval 29: (constant) RefPositions {#52@84 #54@85} physReg:NA Preferences=[r2]
Interval 30: RefPositions {#56@86 #63@89} physReg:NA Preferences=[r2]
Interval 31: (constant) RefPositions {#57@88 #64@89} physReg:NA Preferences=[allInt]
Interval 32: RefPositions {#88@90 #89@91} physReg:NA Preferences=[r0] RelatedInterval <L7>[008D0854]
Interval 33: RefPositions {#94@96 #104@109} physReg:NA Preferences=[r0]
Interval 34: RefPositions {#98@100 #106@109} physReg:NA Preferences=[r2]
Interval 35: RefPositions {#102@104 #108@109} physReg:NA Preferences=[r3]
Interval 36: RefPositions {#116@114 #117@115} physReg:NA Preferences=[allInt]
Interval 37: RefPositions {#118@116 #119@117} physReg:NA Preferences=[allInt] RelatedInterval <L8>[008D088C]
Interval 38: (specialPutArg) RefPositions {#124@122 #137@133} physReg:NA Preferences=[r0] RelatedInterval <L8>[008D088C]
Interval 39: (constant) RefPositions {#125@124 #127@125} physReg:NA Preferences=[r1]
Interval 40: RefPositions {#129@126 #139@133} physReg:NA Preferences=[r1]
Interval 41: (constant) RefPositions {#130@128 #132@129} physReg:NA Preferences=[r2]
Interval 42: RefPositions {#134@130 #141@133} physReg:NA Preferences=[r2]
Interval 43: (constant) RefPositions {#135@132 #142@133} physReg:NA Preferences=[allInt]
Interval 44: RefPositions {#166@134 #167@135} physReg:NA Preferences=[r0] RelatedInterval <L9>[008D08C4]
Interval 45: RefPositions {#172@140 #178@147} physReg:NA Preferences=[r0]
Interval 46: RefPositions {#176@144 #180@147} physReg:NA Preferences=[r1]
Interval 47: (constant) RefPositions {#191@166 #194@173} physReg:NA Preferences=[allInt]
Interval 48: RefPositions {#193@172 #195@173} physReg:NA Preferences=[allInt]
Interval 49: (constant) RefPositions {#197@180 #200@187} physReg:NA Preferences=[allInt]
Interval 50: RefPositions {#199@186 #201@187} physReg:NA Preferences=[allInt]
Interval 51: RefPositions {#205@202 #207@203} physReg:NA Preferences=[r0]
Interval 52: (constant) RefPositions {#209@208 #210@209} physReg:NA Preferences=[allInt]
*************** In LinearScan::allocateRegisters()
Linear scan intervals before allocateRegisters:
Interval 0: (V00) RefPositions {#0@0 #192@171} physReg:r0 Preferences=[r4-r10]
Interval 1: (V01) RefPositions {#3@0 #204@201} physReg:r1 Preferences=[r4-r10]
Interval 2: (V02) RefPositions {#2@0 #37@66 #174@143} physReg:r2 Preferences=[r4-r10]
Interval 3: (V03) RefPositions {#1@0 #203@195} physReg:r3 Preferences=[r4-r10]
Interval 4: (V04) RefPositions {#5@0 #7@7} physReg:NA Preferences=[allInt]
Interval 5: (V05) RefPositions {#4@0 #198@185 #202@195} physReg:NA Preferences=[r4-r10]
Interval 6: (V09) RefPositions {#42@74 #44@77 #92@95} physReg:NA Preferences=[r4-r10]
Interval 7: (V10) RefPositions {#90@92 #109@109} physReg:NA Preferences=[allInt]
Interval 8: (V11) RefPositions {#120@118 #122@121 #170@139} physReg:NA Preferences=[r4-r10]
Interval 9: (V12) RefPositions {#168@136 #181@147} physReg:NA Preferences=[allInt]
Interval 10: (V13) RefPositions {#28@48 #30@55 #34@63} physReg:NA Preferences=[allInt]
Interval 11: (V14) RefPositions {#10@10 #11@15 #189@157} physReg:NA Preferences=[r4-r10]
Interval 12: (V15) (struct) RefPositions {#21@38 #96@99} physReg:NA Preferences=[r4-r10]
Interval 13: (V16) (struct) RefPositions {#23@40 #100@103} physReg:NA Preferences=[r4-r10]
Interval 14: (V17) RefPositions {#17@28 #18@35 #20@37} physReg:NA Preferences=[allInt]
Interval 15: RefPositions {#8@8 #9@9} physReg:NA Preferences=[allInt] RelatedInterval <L11>[008D0934]
Interval 16: RefPositions {#13@24 #14@25} physReg:NA Preferences=[allInt]
Interval 17: RefPositions {#15@26 #16@27} physReg:NA Preferences=[allInt] RelatedInterval <L14>[008D09DC]
Interval 18: RefPositions {#19@36 #22@39} physReg:NA Preferences=[allInt] RelatedInterval <L13>[008D09A4]
Interval 19: RefPositions {#24@44 #25@45} physReg:NA Preferences=[allInt]
Interval 20: RefPositions {#26@46 #27@47} physReg:NA Preferences=[allInt] RelatedInterval <L10>[008D08FC]
Interval 21: (constant) RefPositions {#29@50 #32@57} physReg:NA Preferences=[allInt]
Interval 22: RefPositions {#31@56 #33@57} physReg:NA Preferences=[allInt]
Interval 23: RefPositions {#35@64 #36@65} physReg:NA Preferences=[allInt] RelatedInterval <L2>[008D073C]
Interval 24: RefPositions {#38@70 #39@71} physReg:NA Preferences=[allInt]
Interval 25: RefPositions {#40@72 #41@73} physReg:NA Preferences=[allInt] RelatedInterval <L6>[008D081C]
Interval 26: (specialPutArg) RefPositions {#46@78 #59@89} physReg:NA Preferences=[r0] RelatedInterval <L6>[008D081C]
Interval 27: (constant) RefPositions {#47@80 #49@81} physReg:NA Preferences=[r1]
Interval 28: RefPositions {#51@82 #61@89} physReg:NA Preferences=[r1]
Interval 29: (constant) RefPositions {#52@84 #54@85} physReg:NA Preferences=[r2]
Interval 30: RefPositions {#56@86 #63@89} physReg:NA Preferences=[r2]
Interval 31: (constant) RefPositions {#57@88 #64@89} physReg:NA Preferences=[allInt]
Interval 32: RefPositions {#88@90 #89@91} physReg:NA Preferences=[r0] RelatedInterval <L7>[008D0854]
Interval 33: RefPositions {#94@96 #104@109} physReg:NA Preferences=[r0]
Interval 34: RefPositions {#98@100 #106@109} physReg:NA Preferences=[r2]
Interval 35: RefPositions {#102@104 #108@109} physReg:NA Preferences=[r3]
Interval 36: RefPositions {#116@114 #117@115} physReg:NA Preferences=[allInt]
Interval 37: RefPositions {#118@116 #119@117} physReg:NA Preferences=[allInt] RelatedInterval <L8>[008D088C]
Interval 38: (specialPutArg) RefPositions {#124@122 #137@133} physReg:NA Preferences=[r0] RelatedInterval <L8>[008D088C]
Interval 39: (constant) RefPositions {#125@124 #127@125} physReg:NA Preferences=[r1]
Interval 40: RefPositions {#129@126 #139@133} physReg:NA Preferences=[r1]
Interval 41: (constant) RefPositions {#130@128 #132@129} physReg:NA Preferences=[r2]
Interval 42: RefPositions {#134@130 #141@133} physReg:NA Preferences=[r2]
Interval 43: (constant) RefPositions {#135@132 #142@133} physReg:NA Preferences=[allInt]
Interval 44: RefPositions {#166@134 #167@135} physReg:NA Preferences=[r0] RelatedInterval <L9>[008D08C4]
Interval 45: RefPositions {#172@140 #178@147} physReg:NA Preferences=[r0]
Interval 46: RefPositions {#176@144 #180@147} physReg:NA Preferences=[r1]
Interval 47: (constant) RefPositions {#191@166 #194@173} physReg:NA Preferences=[allInt]
Interval 48: RefPositions {#193@172 #195@173} physReg:NA Preferences=[allInt]
Interval 49: (constant) RefPositions {#197@180 #200@187} physReg:NA Preferences=[allInt]
Interval 50: RefPositions {#199@186 #201@187} physReg:NA Preferences=[allInt]
Interval 51: RefPositions {#205@202 #207@203} physReg:NA Preferences=[r0]
Interval 52: (constant) RefPositions {#209@208 #210@209} physReg:NA Preferences=[allInt]
------------
REFPOSITIONS BEFORE ALLOCATION:
------------
<RefPosition #0 @0 RefTypeParamDef <Ivl:0 V00> BB00 regmask=[r0] minReg=1 fixed>
<RefPosition #1 @0 RefTypeParamDef <Ivl:3 V03> BB00 regmask=[r3] minReg=1 fixed>
<RefPosition #2 @0 RefTypeParamDef <Ivl:2 V02> BB00 regmask=[r2] minReg=1 fixed>
<RefPosition #3 @0 RefTypeParamDef <Ivl:1 V01> BB00 regmask=[r1] minReg=1 fixed>
<RefPosition #4 @0 RefTypeParamDef <Ivl:5 V05> BB00 regmask=[allInt] minReg=1>
<RefPosition #5 @0 RefTypeParamDef <Ivl:4 V04> BB00 regmask=[allInt] minReg=1>
<RefPosition #6 @1 RefTypeBB BB01 regmask=[] minReg=1>
<RefPosition #7 @7 RefTypeUse <Ivl:4 V04> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
<RefPosition #8 @8 RefTypeDef <Ivl:15> CAST BB01 regmask=[allInt] minReg=1>
<RefPosition #9 @9 RefTypeUse <Ivl:15> BB01 regmask=[allInt] minReg=1 last>
<RefPosition #10 @10 RefTypeDef <Ivl:11 V14> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #11 @15 RefTypeUse <Ivl:11 V14> LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #12 @19 RefTypeBB BB02 regmask=[] minReg=1>
<RefPosition #13 @24 RefTypeDef <Ivl:16> CLS_VAR_ADDR BB02 regmask=[allInt] minReg=1>
<RefPosition #14 @25 RefTypeUse <Ivl:16> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #15 @26 RefTypeDef <Ivl:17> IND BB02 regmask=[allInt] minReg=1>
<RefPosition #16 @27 RefTypeUse <Ivl:17> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #17 @28 RefTypeDef <Ivl:14 V17> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #18 @35 RefTypeUse <Ivl:14 V17> LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #19 @36 RefTypeDef <Ivl:18> RSH BB02 regmask=[allInt] minReg=1>
<RefPosition #20 @37 RefTypeUse <Ivl:14 V17> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
<RefPosition #21 @38 RefTypeDef <Ivl:12 V15> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #22 @39 RefTypeUse <Ivl:18> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #23 @40 RefTypeDef <Ivl:13 V16> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #24 @44 RefTypeDef <Ivl:19> CLS_VAR_ADDR BB02 regmask=[allInt] minReg=1>
<RefPosition #25 @45 RefTypeUse <Ivl:19> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #26 @46 RefTypeDef <Ivl:20> IND BB02 regmask=[allInt] minReg=1>
<RefPosition #27 @47 RefTypeUse <Ivl:20> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #28 @48 RefTypeDef <Ivl:10 V13> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #29 @50 RefTypeDef <Ivl:21> CNS_INT BB02 regmask=[allInt] minReg=1>
<RefPosition #30 @55 RefTypeUse <Ivl:10 V13> LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #31 @56 RefTypeDef <Ivl:22> IND BB02 regmask=[allInt] minReg=1>
<RefPosition #32 @57 RefTypeUse <Ivl:21> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #33 @57 RefTypeUse <Ivl:22> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #34 @63 RefTypeUse <Ivl:10 V13> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
<RefPosition #35 @64 RefTypeDef <Ivl:23> IND BB02 regmask=[allInt] minReg=1>
<RefPosition #36 @65 RefTypeUse <Ivl:23> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #37 @66 RefTypeDef <Ivl:2 V02> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #38 @70 RefTypeDef <Ivl:24> CLS_VAR_ADDR BB02 regmask=[allInt] minReg=1>
<RefPosition #39 @71 RefTypeUse <Ivl:24> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #40 @72 RefTypeDef <Ivl:25> IND BB02 regmask=[allInt] minReg=1>
<RefPosition #41 @73 RefTypeUse <Ivl:25> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #42 @74 RefTypeDef <Ivl:6 V09> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #43 @77 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #44 @77 RefTypeUse <Ivl:6 V09> LCL_VAR BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #45 @78 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #46 @78 RefTypeDef <Ivl:26> PUTARG_REG BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #47 @80 RefTypeDef <Ivl:27> CNS_INT BB02 regmask=[r1] minReg=1>
<RefPosition #48 @81 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #49 @81 RefTypeUse <Ivl:27> BB02 regmask=[r1] minReg=1 last fixed>
<RefPosition #50 @82 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #51 @82 RefTypeDef <Ivl:28> PUTARG_REG BB02 regmask=[r1] minReg=1 fixed>
<RefPosition #52 @84 RefTypeDef <Ivl:29> CNS_INT BB02 regmask=[r2] minReg=1>
<RefPosition #53 @85 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #54 @85 RefTypeUse <Ivl:29> BB02 regmask=[r2] minReg=1 last fixed>
<RefPosition #55 @86 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #56 @86 RefTypeDef <Ivl:30> PUTARG_REG BB02 regmask=[r2] minReg=1 fixed>
<RefPosition #57 @88 RefTypeDef <Ivl:31> CNS_INT BB02 regmask=[allInt] minReg=1>
<RefPosition #58 @89 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #59 @89 RefTypeUse <Ivl:26> BB02 regmask=[r0] minReg=1 last fixed>
<RefPosition #60 @89 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #61 @89 RefTypeUse <Ivl:28> BB02 regmask=[r1] minReg=1 last fixed>
<RefPosition #62 @89 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #63 @89 RefTypeUse <Ivl:30> BB02 regmask=[r2] minReg=1 last fixed>
<RefPosition #64 @89 RefTypeUse <Ivl:31> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #65 @90 RefTypeKill <Reg:r0 > BB02 regmask=[r0] minReg=1 last>
<RefPosition #66 @90 RefTypeKill <Reg:r1 > BB02 regmask=[r1] minReg=1 last>
<RefPosition #67 @90 RefTypeKill <Reg:r2 > BB02 regmask=[r2] minReg=1 last>
<RefPosition #68 @90 RefTypeKill <Reg:r3 > BB02 regmask=[r3] minReg=1 last>
<RefPosition #69 @90 RefTypeKill <Reg:r12> BB02 regmask=[r12] minReg=1 last>
<RefPosition #70 @90 RefTypeKill <Reg:lr > BB02 regmask=[lr] minReg=1 last>
<RefPosition #71 @90 RefTypeKill <Reg:f0 > BB02 regmask=[f0] minReg=1 last>
<RefPosition #72 @90 RefTypeKill <Reg:f1 > BB02 regmask=[f1] minReg=1 last>
<RefPosition #73 @90 RefTypeKill <Reg:f2 > BB02 regmask=[f2] minReg=1 last>
<RefPosition #74 @90 RefTypeKill <Reg:f3 > BB02 regmask=[f3] minReg=1 last>
<RefPosition #75 @90 RefTypeKill <Reg:f4 > BB02 regmask=[f4] minReg=1 last>
<RefPosition #76 @90 RefTypeKill <Reg:f5 > BB02 regmask=[f5] minReg=1 last>
<RefPosition #77 @90 RefTypeKill <Reg:f6 > BB02 regmask=[f6] minReg=1 last>
<RefPosition #78 @90 RefTypeKill <Reg:f7 > BB02 regmask=[f7] minReg=1 last>
<RefPosition #79 @90 RefTypeKill <Reg:f8 > BB02 regmask=[f8] minReg=1 last>
<RefPosition #80 @90 RefTypeKill <Reg:f9 > BB02 regmask=[f9] minReg=1 last>
<RefPosition #81 @90 RefTypeKill <Reg:f10> BB02 regmask=[f10] minReg=1 last>
<RefPosition #82 @90 RefTypeKill <Reg:f11> BB02 regmask=[f11] minReg=1 last>
<RefPosition #83 @90 RefTypeKill <Reg:f12> BB02 regmask=[f12] minReg=1 last>
<RefPosition #84 @90 RefTypeKill <Reg:f13> BB02 regmask=[f13] minReg=1 last>
<RefPosition #85 @90 RefTypeKill <Reg:f14> BB02 regmask=[f14] minReg=1 last>
<RefPosition #86 @90 RefTypeKill <Reg:f15> BB02 regmask=[f15] minReg=1 last>
<RefPosition #87 @90 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #88 @90 RefTypeDef <Ivl:32> CALL BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #89 @91 RefTypeUse <Ivl:32> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #90 @92 RefTypeDef <Ivl:7 V10> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #91 @95 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #92 @95 RefTypeUse <Ivl:6 V09> LCL_VAR BB02 regmask=[r0] minReg=1 last fixed>
<RefPosition #93 @96 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #94 @96 RefTypeDef <Ivl:33> PUTARG_REG BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #95 @99 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #96 @99 RefTypeUse <Ivl:12 V15> LCL_VAR BB02 regmask=[r2] minReg=1 last fixed>
<RefPosition #97 @100 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #98 @100 RefTypeDef <Ivl:34> PUTARG_REG BB02 regmask=[r2] minReg=1 fixed>
<RefPosition #99 @103 RefTypeFixedReg <Reg:r3 > BB02 regmask=[r3] minReg=1>
<RefPosition #100 @103 RefTypeUse <Ivl:13 V16> LCL_VAR BB02 regmask=[r3] minReg=1 last fixed>
<RefPosition #101 @104 RefTypeFixedReg <Reg:r3 > BB02 regmask=[r3] minReg=1>
<RefPosition #102 @104 RefTypeDef <Ivl:35> PUTARG_REG BB02 regmask=[r3] minReg=1 fixed>
<RefPosition #103 @109 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #104 @109 RefTypeUse <Ivl:33> BB02 regmask=[r0] minReg=1 last fixed>
<RefPosition #105 @109 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #106 @109 RefTypeUse <Ivl:34> BB02 regmask=[r2] minReg=1 last fixed>
<RefPosition #107 @109 RefTypeFixedReg <Reg:r3 > BB02 regmask=[r3] minReg=1>
<RefPosition #108 @109 RefTypeUse <Ivl:35> BB02 regmask=[r3] minReg=1 last fixed>
<RefPosition #109 @109 RefTypeUse <Ivl:7 V10> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
<RefPosition #110 @110 RefTypeKill <Reg:r0 > BB02 regmask=[r0] minReg=1 last>
<RefPosition #111 @110 RefTypeKill <Reg:r1 > BB02 regmask=[r1] minReg=1 last>
<RefPosition #112 @110 RefTypeKill <Reg:r2 > BB02 regmask=[r2] minReg=1 last>
<RefPosition #113 @110 RefTypeKill <Reg:r3 > BB02 regmask=[r3] minReg=1 last>
<RefPosition #114 @110 RefTypeKill <Reg:r12> BB02 regmask=[r12] minReg=1 last>
<RefPosition #115 @110 RefTypeKill <Reg:lr > BB02 regmask=[lr] minReg=1 last>
<RefPosition #116 @114 RefTypeDef <Ivl:36> CLS_VAR_ADDR BB02 regmask=[allInt] minReg=1>
<RefPosition #117 @115 RefTypeUse <Ivl:36> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #118 @116 RefTypeDef <Ivl:37> IND BB02 regmask=[allInt] minReg=1>
<RefPosition #119 @117 RefTypeUse <Ivl:37> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #120 @118 RefTypeDef <Ivl:8 V11> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #121 @121 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #122 @121 RefTypeUse <Ivl:8 V11> LCL_VAR BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #123 @122 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #124 @122 RefTypeDef <Ivl:38> PUTARG_REG BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #125 @124 RefTypeDef <Ivl:39> CNS_INT BB02 regmask=[r1] minReg=1>
<RefPosition #126 @125 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #127 @125 RefTypeUse <Ivl:39> BB02 regmask=[r1] minReg=1 last fixed>
<RefPosition #128 @126 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #129 @126 RefTypeDef <Ivl:40> PUTARG_REG BB02 regmask=[r1] minReg=1 fixed>
<RefPosition #130 @128 RefTypeDef <Ivl:41> CNS_INT BB02 regmask=[r2] minReg=1>
<RefPosition #131 @129 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #132 @129 RefTypeUse <Ivl:41> BB02 regmask=[r2] minReg=1 last fixed>
<RefPosition #133 @130 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #134 @130 RefTypeDef <Ivl:42> PUTARG_REG BB02 regmask=[r2] minReg=1 fixed>
<RefPosition #135 @132 RefTypeDef <Ivl:43> CNS_INT BB02 regmask=[allInt] minReg=1>
<RefPosition #136 @133 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #137 @133 RefTypeUse <Ivl:38> BB02 regmask=[r0] minReg=1 last fixed>
<RefPosition #138 @133 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #139 @133 RefTypeUse <Ivl:40> BB02 regmask=[r1] minReg=1 last fixed>
<RefPosition #140 @133 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #141 @133 RefTypeUse <Ivl:42> BB02 regmask=[r2] minReg=1 last fixed>
<RefPosition #142 @133 RefTypeUse <Ivl:43> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #143 @134 RefTypeKill <Reg:r0 > BB02 regmask=[r0] minReg=1 last>
<RefPosition #144 @134 RefTypeKill <Reg:r1 > BB02 regmask=[r1] minReg=1 last>
<RefPosition #145 @134 RefTypeKill <Reg:r2 > BB02 regmask=[r2] minReg=1 last>
<RefPosition #146 @134 RefTypeKill <Reg:r3 > BB02 regmask=[r3] minReg=1 last>
<RefPosition #147 @134 RefTypeKill <Reg:r12> BB02 regmask=[r12] minReg=1 last>
<RefPosition #148 @134 RefTypeKill <Reg:lr > BB02 regmask=[lr] minReg=1 last>
<RefPosition #149 @134 RefTypeKill <Reg:f0 > BB02 regmask=[f0] minReg=1 last>
<RefPosition #150 @134 RefTypeKill <Reg:f1 > BB02 regmask=[f1] minReg=1 last>
<RefPosition #151 @134 RefTypeKill <Reg:f2 > BB02 regmask=[f2] minReg=1 last>
<RefPosition #152 @134 RefTypeKill <Reg:f3 > BB02 regmask=[f3] minReg=1 last>
<RefPosition #153 @134 RefTypeKill <Reg:f4 > BB02 regmask=[f4] minReg=1 last>
<RefPosition #154 @134 RefTypeKill <Reg:f5 > BB02 regmask=[f5] minReg=1 last>
<RefPosition #155 @134 RefTypeKill <Reg:f6 > BB02 regmask=[f6] minReg=1 last>
<RefPosition #156 @134 RefTypeKill <Reg:f7 > BB02 regmask=[f7] minReg=1 last>
<RefPosition #157 @134 RefTypeKill <Reg:f8 > BB02 regmask=[f8] minReg=1 last>
<RefPosition #158 @134 RefTypeKill <Reg:f9 > BB02 regmask=[f9] minReg=1 last>
<RefPosition #159 @134 RefTypeKill <Reg:f10> BB02 regmask=[f10] minReg=1 last>
<RefPosition #160 @134 RefTypeKill <Reg:f11> BB02 regmask=[f11] minReg=1 last>
<RefPosition #161 @134 RefTypeKill <Reg:f12> BB02 regmask=[f12] minReg=1 last>
<RefPosition #162 @134 RefTypeKill <Reg:f13> BB02 regmask=[f13] minReg=1 last>
<RefPosition #163 @134 RefTypeKill <Reg:f14> BB02 regmask=[f14] minReg=1 last>
<RefPosition #164 @134 RefTypeKill <Reg:f15> BB02 regmask=[f15] minReg=1 last>
<RefPosition #165 @134 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #166 @134 RefTypeDef <Ivl:44> CALL BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #167 @135 RefTypeUse <Ivl:44> BB02 regmask=[allInt] minReg=1 last>
<RefPosition #168 @136 RefTypeDef <Ivl:9 V12> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #169 @139 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #170 @139 RefTypeUse <Ivl:8 V11> LCL_VAR BB02 regmask=[r0] minReg=1 last fixed>
<RefPosition #171 @140 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #172 @140 RefTypeDef <Ivl:45> PUTARG_REG BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #173 @143 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #174 @143 RefTypeUse <Ivl:2 V02> LCL_VAR BB02 regmask=[r1] minReg=1 last fixed>
<RefPosition #175 @144 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #176 @144 RefTypeDef <Ivl:46> PUTARG_REG BB02 regmask=[r1] minReg=1 fixed>
<RefPosition #177 @147 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #178 @147 RefTypeUse <Ivl:45> BB02 regmask=[r0] minReg=1 last fixed>
<RefPosition #179 @147 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #180 @147 RefTypeUse <Ivl:46> BB02 regmask=[r1] minReg=1 last fixed>
<RefPosition #181 @147 RefTypeUse <Ivl:9 V12> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
<RefPosition #182 @148 RefTypeKill <Reg:r0 > BB02 regmask=[r0] minReg=1 last>
<RefPosition #183 @148 RefTypeKill <Reg:r1 > BB02 regmask=[r1] minReg=1 last>
<RefPosition #184 @148 RefTypeKill <Reg:r2 > BB02 regmask=[r2] minReg=1 last>
<RefPosition #185 @148 RefTypeKill <Reg:r3 > BB02 regmask=[r3] minReg=1 last>
<RefPosition #186 @148 RefTypeKill <Reg:r12> BB02 regmask=[r12] minReg=1 last>
<RefPosition #187 @148 RefTypeKill <Reg:lr > BB02 regmask=[lr] minReg=1 last>
<RefPosition #188 @149 RefTypeBB BB03 regmask=[] minReg=1>
<RefPosition #189 @157 RefTypeUse <Ivl:11 V14> LCL_VAR BB03 regmask=[allInt] minReg=1 last>
<RefPosition #190 @161 RefTypeBB BB04 regmask=[] minReg=1>
<RefPosition #191 @166 RefTypeDef <Ivl:47> CNS_INT BB04 regmask=[allInt] minReg=1>
<RefPosition #192 @171 RefTypeUse <Ivl:0 V00> LCL_VAR BB04 regmask=[allInt] minReg=1 last>
<RefPosition #193 @172 RefTypeDef <Ivl:48> IND BB04 regmask=[allInt] minReg=1>
<RefPosition #194 @173 RefTypeUse <Ivl:47> BB04 regmask=[allInt] minReg=1 last>
<RefPosition #195 @173 RefTypeUse <Ivl:48> BB04 regmask=[allInt] minReg=1 last>
<RefPosition #196 @175 RefTypeBB BB05 regmask=[] minReg=1>
<RefPosition #197 @180 RefTypeDef <Ivl:49> CNS_INT BB05 regmask=[allInt] minReg=1>
<RefPosition #198 @185 RefTypeUse <Ivl:5 V05> LCL_VAR BB05 regmask=[allInt] minReg=1>
<RefPosition #199 @186 RefTypeDef <Ivl:50> IND BB05 regmask=[allInt] minReg=1>
<RefPosition #200 @187 RefTypeUse <Ivl:49> BB05 regmask=[allInt] minReg=1 last>
<RefPosition #201 @187 RefTypeUse <Ivl:50> BB05 regmask=[allInt] minReg=1 last>
<RefPosition #202 @195 RefTypeUse <Ivl:5 V05> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
<RefPosition #203 @195 RefTypeUse <Ivl:3 V03> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
<RefPosition #204 @201 RefTypeUse <Ivl:1 V01> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
<RefPosition #205 @202 RefTypeDef <Ivl:51> CAST BB05 regmask=[r0] minReg=1>
<RefPosition #206 @203 RefTypeFixedReg <Reg:r0 > BB05 regmask=[r0] minReg=1>
<RefPosition #207 @203 RefTypeUse <Ivl:51> BB05 regmask=[r0] minReg=1 last fixed>
<RefPosition #208 @205 RefTypeBB BB06 regmask=[] minReg=1>
<RefPosition #209 @208 RefTypeDef <Ivl:52> CNS_INT BB06 regmask=[allInt] minReg=1>
<RefPosition #210 @209 RefTypeUse <Ivl:52> BB06 regmask=[allInt] minReg=1 last>
<RefPosition #211 @210 RefTypeKill <Reg:r0 > BB06 regmask=[r0] minReg=1 last>
<RefPosition #212 @210 RefTypeKill <Reg:r1 > BB06 regmask=[r1] minReg=1 last>
<RefPosition #213 @210 RefTypeKill <Reg:r2 > BB06 regmask=[r2] minReg=1 last>
<RefPosition #214 @210 RefTypeKill <Reg:r3 > BB06 regmask=[r3] minReg=1 last>
<RefPosition #215 @210 RefTypeKill <Reg:r12> BB06 regmask=[r12] minReg=1 last>
<RefPosition #216 @210 RefTypeKill <Reg:lr > BB06 regmask=[lr] minReg=1 last>
<RefPosition #217 @210 RefTypeKill <Reg:f0 > BB06 regmask=[f0] minReg=1 last>
<RefPosition #218 @210 RefTypeKill <Reg:f1 > BB06 regmask=[f1] minReg=1 last>
<RefPosition #219 @210 RefTypeKill <Reg:f2 > BB06 regmask=[f2] minReg=1 last>
<RefPosition #220 @210 RefTypeKill <Reg:f3 > BB06 regmask=[f3] minReg=1 last>
<RefPosition #221 @210 RefTypeKill <Reg:f4 > BB06 regmask=[f4] minReg=1 last>
<RefPosition #222 @210 RefTypeKill <Reg:f5 > BB06 regmask=[f5] minReg=1 last>
<RefPosition #223 @210 RefTypeKill <Reg:f6 > BB06 regmask=[f6] minReg=1 last>
<RefPosition #224 @210 RefTypeKill <Reg:f7 > BB06 regmask=[f7] minReg=1 last>
<RefPosition #225 @210 RefTypeKill <Reg:f8 > BB06 regmask=[f8] minReg=1 last>
<RefPosition #226 @210 RefTypeKill <Reg:f9 > BB06 regmask=[f9] minReg=1 last>
<RefPosition #227 @210 RefTypeKill <Reg:f10> BB06 regmask=[f10] minReg=1 last>
<RefPosition #228 @210 RefTypeKill <Reg:f11> BB06 regmask=[f11] minReg=1 last>
<RefPosition #229 @210 RefTypeKill <Reg:f12> BB06 regmask=[f12] minReg=1 last>
<RefPosition #230 @210 RefTypeKill <Reg:f13> BB06 regmask=[f13] minReg=1 last>
<RefPosition #231 @210 RefTypeKill <Reg:f14> BB06 regmask=[f14] minReg=1 last>
<RefPosition #232 @210 RefTypeKill <Reg:f15> BB06 regmask=[f15] minReg=1 last>
VAR REFPOSITIONS BEFORE ALLOCATION
--- V00
<RefPosition #0 @0 RefTypeParamDef <Ivl:0 V00> BB00 regmask=[r0] minReg=1 fixed>
<RefPosition #192 @171 RefTypeUse <Ivl:0 V00> LCL_VAR BB04 regmask=[allInt] minReg=1 last>
--- V01
<RefPosition #3 @0 RefTypeParamDef <Ivl:1 V01> BB00 regmask=[r1] minReg=1 fixed>
<RefPosition #204 @201 RefTypeUse <Ivl:1 V01> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
--- V02
<RefPosition #2 @0 RefTypeParamDef <Ivl:2 V02> BB00 regmask=[r2] minReg=1 fixed>
<RefPosition #37 @66 RefTypeDef <Ivl:2 V02> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #174 @143 RefTypeUse <Ivl:2 V02> LCL_VAR BB02 regmask=[r1] minReg=1 last fixed>
--- V03
<RefPosition #1 @0 RefTypeParamDef <Ivl:3 V03> BB00 regmask=[r3] minReg=1 fixed>
<RefPosition #203 @195 RefTypeUse <Ivl:3 V03> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
--- V04
<RefPosition #5 @0 RefTypeParamDef <Ivl:4 V04> BB00 regmask=[allInt] minReg=1>
<RefPosition #7 @7 RefTypeUse <Ivl:4 V04> LCL_VAR BB01 regmask=[allInt] minReg=1 last>
--- V05
<RefPosition #4 @0 RefTypeParamDef <Ivl:5 V05> BB00 regmask=[allInt] minReg=1>
<RefPosition #198 @185 RefTypeUse <Ivl:5 V05> LCL_VAR BB05 regmask=[allInt] minReg=1>
<RefPosition #202 @195 RefTypeUse <Ivl:5 V05> LCL_VAR BB05 regmask=[allInt] minReg=1 last>
--- V06
--- V07
--- V08
--- V09
<RefPosition #42 @74 RefTypeDef <Ivl:6 V09> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #44 @77 RefTypeUse <Ivl:6 V09> LCL_VAR BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #92 @95 RefTypeUse <Ivl:6 V09> LCL_VAR BB02 regmask=[r0] minReg=1 last fixed>
--- V10
<RefPosition #90 @92 RefTypeDef <Ivl:7 V10> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #109 @109 RefTypeUse <Ivl:7 V10> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
--- V11
<RefPosition #120 @118 RefTypeDef <Ivl:8 V11> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #122 @121 RefTypeUse <Ivl:8 V11> LCL_VAR BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #170 @139 RefTypeUse <Ivl:8 V11> LCL_VAR BB02 regmask=[r0] minReg=1 last fixed>
--- V12
<RefPosition #168 @136 RefTypeDef <Ivl:9 V12> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #181 @147 RefTypeUse <Ivl:9 V12> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
--- V13
<RefPosition #28 @48 RefTypeDef <Ivl:10 V13> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #30 @55 RefTypeUse <Ivl:10 V13> LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #34 @63 RefTypeUse <Ivl:10 V13> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
--- V14
<RefPosition #10 @10 RefTypeDef <Ivl:11 V14> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #11 @15 RefTypeUse <Ivl:11 V14> LCL_VAR BB01 regmask=[allInt] minReg=1>
<RefPosition #189 @157 RefTypeUse <Ivl:11 V14> LCL_VAR BB03 regmask=[allInt] minReg=1 last>
--- V15
<RefPosition #21 @38 RefTypeDef <Ivl:12 V15> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #96 @99 RefTypeUse <Ivl:12 V15> LCL_VAR BB02 regmask=[r2] minReg=1 last fixed>
--- V16
<RefPosition #23 @40 RefTypeDef <Ivl:13 V16> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #100 @103 RefTypeUse <Ivl:13 V16> LCL_VAR BB02 regmask=[r3] minReg=1 last fixed>
--- V17
<RefPosition #17 @28 RefTypeDef <Ivl:14 V17> STORE_LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #18 @35 RefTypeUse <Ivl:14 V17> LCL_VAR BB02 regmask=[allInt] minReg=1>
<RefPosition #20 @37 RefTypeUse <Ivl:14 V17> LCL_VAR BB02 regmask=[allInt] minReg=1 last>
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 |r0 |r1 |r2 |r3 |r4 |r5 |
--------------------------------+----+----+----+----+----+----+
|V0 a|V1 a|V2 a|V3 a| | |
0.#0 V0 Parm Alloc r4 | |V1 a|V2 a|V3 a|V0 a| |
0.#1 V3 Parm Alloc r5 | |V1 a|V2 a| |V0 a|V3 a|
--------------------------------+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |r0 |r1 |r2 |r3 |r4 |r5 |r6 |
--------------------------------+----+----+----+----+----+----+----+
0.#2 V2 Parm Alloc r6 | |V1 a| | |V0 a|V3 a|V2 a|
--------------------------------+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |r0 |r1 |r2 |r3 |r4 |r5 |r6 |r7 |
--------------------------------+----+----+----+----+----+----+----+----+
0.#3 V1 Parm Alloc r7 | | | | |V0 a|V3 a|V2 a|V1 a|
--------------------------------+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |r0 |r1 |r2 |r3 |r4 |r5 |r6 |r7 |r8 |
--------------------------------+----+----+----+----+----+----+----+----+----+
0.#4 V5 Parm Alloc r8 | | | | |V0 a|V3 a|V2 a|V1 a|V5 a|
0.#5 V4 Parm Alloc r0 |V4 a| | | |V0 a|V3 a|V2 a|V1 a|V5 a|
1.#6 BB1 PredBB0 |V4 a| | | |V0 a|V3 a|V2 a|V1 a|V5 a|
7.#7 V4 Use * Keep r0 |V4 a| | | |V0 a|V3 a|V2 a|V1 a|V5 a|
--------------------------------+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |r0 |r1 |r2 |r3 |r4 |r5 |r6 |r7 |r8 |r9 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+
8.#8 I15 Def Alloc r9 | | | | |V0 a|V3 a|V2 a|V1 a|V5 a|I15a|
9.#9 I15 Use * Keep r9 | | | | |V0 a|V3 a|V2 a|V1 a|V5 a|I15a|
10.#10 V14 Def Alloc r9 | | | | |V0 a|V3 a|V2 a|V1 a|V5 a|V14a|
15.#11 V14 Use Keep r9 | | | | |V0 a|V3 a|V2 a|V1 a|V5 a|V14a|
--------------------------------+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |r0 |r1 |r2 |r3 |r4 |r5 |r6 |r7 |r8 |r9 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+
19.#12 BB2 PredBB1 | | | | |V0 a|V3 a|V2 i|V1 a|V5 a|V14a|
24.#13 I16 Def Alloc r0 |I16a| | | |V0 a|V3 a|V2 i|V1 a|V5 a|V14a|
25.#14 I16 Use * Keep r0 |I16a| | | |V0 a|V3 a|V2 i|V1 a|V5 a|V14a|
26.#15 I17 Def Alloc r0 |I17a| | | |V0 a|V3 a|V2 i|V1 a|V5 a|V14a|
27.#16 I17 Use * Keep r0 |I17a| | | |V0 a|V3 a|V2 i|V1 a|V5 a|V14a|
28.#17 V17 Def Alloc r0 |V17a| | | |V0 a|V3 a|V2 i|V1 a|V5 a|V14a|
35.#18 V17 Use Keep r0 |V17a| | | |V0 a|V3 a|V2 i|V1 a|V5 a|V14a|
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |r0 |r1 |r2 |r3 |r4 |r5 |r6 |r7 |r8 |r9 |r10 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+
36.#19 I18 Def Alloc r10 |V17a| | | |V0 a|V3 a|V2 i|V1 a|V5 a|V14a|I18a|
37.#20 V17 Use * Keep r0 |V17a| | | |V0 a|V3 a|V2 i|V1 a|V5 a|V14a|I18a|
38.#21 V15 Def Alloc r6 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|I18a|
39.#22 I18 Use * Keep r10 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|I18a|
40.#23 V16 Def Alloc r10 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|
44.#24 I19 Def Alloc r0 |I19a| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|
45.#25 I19 Use * Keep r0 |I19a| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|
46.#26 I20 Def Alloc r0 |I20a| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|
47.#27 I20 Use * Keep r0 |I20a| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|
48.#28 V13 Def Alloc r0 |V13a| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|
50.#29 C21 Def Alloc r1 |V13a|C21a| | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|
55.#30 V13 Use Keep r0 |V13a|C21a| | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|
56.#31 I22 Def Alloc r2 |V13a|C21a|I22a| |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|
57.#32 C21 Use * Keep r1 |V13a|C21a|I22a| |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|
57.#33 I22 Use * Keep r2 |V13a|C21a|I22a| |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|
63.#34 V13 Use * Keep r0 |V13a|C21i| | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|
64.#35 I23 Def Alloc r0 |I23a|C21i| | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|
65.#36 I23 Use * Keep r0 |I23a|C21i| | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|
66.#37 V2 Def Alloc r3 | |C21i| |V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|
70.#38 I24 Def Alloc r0 |I24a|C21i| |V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|
71.#39 I24 Use * Keep r0 |I24a|C21i| |V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |r0 |r1 |r2 |r3 |r4 |r5 |r6 |r7 |r8 |r9 |r10 |lr |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
72.#40 I25 Def Alloc lr | |C21i| |V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|I25a|
73.#41 I25 Use * Keep lr | |C21i| |V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|I25a|
74.#42 V9 Def Alloc lr | |C21i| |V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|V9 a|
77.#43 r0 Fixd Keep r0 | |C21i| |V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|V9 a|
77.#44 V9 Use Copy r0 |V9 a|C21i| |V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|V9 a|
78.#45 r0 Fixd Keep r0 |V9 a|C21i| |V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|V9 a|
78.#46 I26 Def Alloc r0 |I26a|C21i| |V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|V9 a|
80.#47 C27 Def Alloc r1 |I26a|C27a| |V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|V9 a|
81.#48 r1 Fixd Keep r1 |I26a|C27a| |V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|V9 a|
81.#49 C27 Use * Keep r1 |I26a|C27a| |V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|V9 a|
82.#50 r1 Fixd Keep r1 |I26a| | |V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|V9 a|
82.#51 I28 Def Alloc r1 |I26a|I28a| |V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|V9 a|
84.#52 C29 Def Alloc r2 |I26a|I28a|C29a|V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|V9 a|
85.#53 r2 Fixd Keep r2 |I26a|I28a|C29a|V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|V9 a|
85.#54 C29 Use * Keep r2 |I26a|I28a|C29a|V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|V9 a|
86.#55 r2 Fixd Keep r2 |I26a|I28a| |V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|V9 a|
86.#56 I30 Def Alloc r2 |I26a|I28a|I30a|V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|V9 a|
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |r0 |r1 |r2 |r3 |r4 |r5 |r6 |r7 |r8 |r9 |r10 |r12 |lr |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
88.#57 C31 Def Alloc r12 |I26a|I28a|I30a|V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|C31a|V9 a|
89.#58 r0 Fixd Keep r0 |I26a|I28a|I30a|V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|C31a|V9 a|
89.#59 I26 Use * Keep r0 |I26a|I28a|I30a|V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|C31a|V9 a|
89.#60 r1 Fixd Keep r1 |I26a|I28a|I30a|V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|C31a|V9 a|
89.#61 I28 Use * Keep r1 |I26a|I28a|I30a|V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|C31a|V9 a|
89.#62 r2 Fixd Keep r2 |I26a|I28a|I30a|V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|C31a|V9 a|
89.#63 I30 Use * Keep r2 |I26a|I28a|I30a|V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|C31a|V9 a|
89.#64 C31 Use * Keep r12 |I26a|I28a|I30a|V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|C31a|V9 a|
90.#65 r0 Kill Keep r0 | | | |V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|C31i|V9 a|
90.#66 r1 Kill Keep r1 | | | |V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|C31i|V9 a|
90.#67 r2 Kill Keep r2 | | | |V2 a|V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|C31i|V9 a|
90.#68 r3 Kill Spill r3 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|C31i|V9 a|
Keep r3 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|C31i|V9 a|
90.#69 r12 Kill Keep r12 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| |V9 a|
90.#70 lr Kill Spill lr | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
Keep lr | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#71 f0 Kill Keep f0 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#72 f1 Kill Keep f1 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#73 f2 Kill Keep f2 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#74 f3 Kill Keep f3 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#75 f4 Kill Keep f4 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#76 f5 Kill Keep f5 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#77 f6 Kill Keep f6 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#78 f7 Kill Keep f7 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#79 f8 Kill Keep f8 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#80 f9 Kill Keep f9 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#81 f10 Kill Keep f10 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#82 f11 Kill Keep f11 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#83 f12 Kill Keep f12 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#84 f13 Kill Keep f13 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#85 f14 Kill Keep f14 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#86 f15 Kill Keep f15 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#87 r0 Fixd Keep r0 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#88 I32 Def Alloc r0 |I32a| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
91.#89 I32 Use * Keep r0 |I32a| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
92.#90 V10 Def Alloc r0 |V10a| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
95.#91 r0 Fixd Keep r0 |V10a| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
95.#92 V9 Use * ReLod NA |V10a| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
Spill r0 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
Steal r0 |V9 a| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
96.#93 r0 Fixd Keep r0 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
96.#94 I33 Def Alloc r0 |I33a| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
99.#95 r2 Fixd Keep r2 |I33a| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
99.#96 V15 Use * Copy r2 |I33a| |V15a| |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
100.#97 r2 Fixd Keep r2 |I33a| | | |V0 a|V3 a| |V1 a|V5 a|V14a|V16a| | |
100.#98 I34 Def Alloc r2 |I33a| |I34a| |V0 a|V3 a| |V1 a|V5 a|V14a|V16a| | |
103.#99 r3 Fixd Keep r3 |I33a| |I34a| |V0 a|V3 a| |V1 a|V5 a|V14a|V16a| | |
103.#100 V16 Use * Copy r3 |I33a| |I34a|V16a|V0 a|V3 a| |V1 a|V5 a|V14a|V16a| | |
104.#101 r3 Fixd Keep r3 |I33a| |I34a| |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
104.#102 I35 Def Alloc r3 |I33a| |I34a|I35a|V0 a|V3 a| |V1 a|V5 a|V14a| | | |
109.#103 r0 Fixd Keep r0 |I33a| |I34a|I35a|V0 a|V3 a| |V1 a|V5 a|V14a| | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |r0 |r1 |r2 |r3 |r4 |r5 |r6 |r7 |r8 |r9 |r10 |r12 |lr |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
109.#104 I33 Use * Keep r0 |I33a| |I34a|I35a|V0 a|V3 a| |V1 a|V5 a|V14a| | | |
109.#105 r2 Fixd Keep r2 |I33a| |I34a|I35a|V0 a|V3 a| |V1 a|V5 a|V14a| | | |
109.#106 I34 Use * Keep r2 |I33a| |I34a|I35a|V0 a|V3 a| |V1 a|V5 a|V14a| | | |
109.#107 r3 Fixd Keep r3 |I33a| |I34a|I35a|V0 a|V3 a| |V1 a|V5 a|V14a| | | |
109.#108 I35 Use * Keep r3 |I33a| |I34a|I35a|V0 a|V3 a| |V1 a|V5 a|V14a| | | |
109.#109 V10 Use * ReLod NA |I33a| |I34a|I35a|V0 a|V3 a| |V1 a|V5 a|V14a| | | |
Alloc r1 |I33a|V10a|I34a|I35a|V0 a|V3 a| |V1 a|V5 a|V14a| | | |
110.#110 r0 Kill Keep r0 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
110.#111 r1 Kill Keep r1 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
110.#112 r2 Kill Keep r2 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
110.#113 r3 Kill Keep r3 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
110.#114 r12 Kill Keep r12 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
110.#115 lr Kill Keep lr | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
114.#116 I36 Def Alloc r0 |I36a| | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
115.#117 I36 Use * Keep r0 |I36a| | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
116.#118 I37 Def Alloc r6 | | | | |V0 a|V3 a|I37a|V1 a|V5 a|V14a| | | |
117.#119 I37 Use * Keep r6 | | | | |V0 a|V3 a|I37a|V1 a|V5 a|V14a| | | |
118.#120 V11 Def Alloc r6 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
121.#121 r0 Fixd Keep r0 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
121.#122 V11 Use Copy r0 |V11a| | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
122.#123 r0 Fixd Keep r0 |V11a| | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
122.#124 I38 Def Alloc r0 |I38a| | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
124.#125 C39 Def Alloc r1 |I38a|C39a| | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
125.#126 r1 Fixd Keep r1 |I38a|C39a| | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
125.#127 C39 Use * Keep r1 |I38a|C39a| | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
126.#128 r1 Fixd Keep r1 |I38a| | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
126.#129 I40 Def Alloc r1 |I38a|I40a| | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
128.#130 C41 Def Alloc r2 |I38a|I40a|C41a| |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
129.#131 r2 Fixd Keep r2 |I38a|I40a|C41a| |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
129.#132 C41 Use * Keep r2 |I38a|I40a|C41a| |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
130.#133 r2 Fixd Keep r2 |I38a|I40a| | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
130.#134 I42 Def Alloc r2 |I38a|I40a|I42a| |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
132.#135 C43 Def Alloc r3 |I38a|I40a|I42a|C43a|V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
133.#136 r0 Fixd Keep r0 |I38a|I40a|I42a|C43a|V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
133.#137 I38 Use * Keep r0 |I38a|I40a|I42a|C43a|V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
133.#138 r1 Fixd Keep r1 |I38a|I40a|I42a|C43a|V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
133.#139 I40 Use * Keep r1 |I38a|I40a|I42a|C43a|V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
133.#140 r2 Fixd Keep r2 |I38a|I40a|I42a|C43a|V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
133.#141 I42 Use * Keep r2 |I38a|I40a|I42a|C43a|V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
133.#142 C43 Use * Keep r3 |I38a|I40a|I42a|C43a|V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#143 r0 Kill Keep r0 | | | |C43i|V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#144 r1 Kill Keep r1 | | | |C43i|V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#145 r2 Kill Keep r2 | | | |C43i|V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#146 r3 Kill Keep r3 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#147 r12 Kill Keep r12 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#148 lr Kill Keep lr | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#149 f0 Kill Keep f0 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#150 f1 Kill Keep f1 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#151 f2 Kill Keep f2 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#152 f3 Kill Keep f3 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#153 f4 Kill Keep f4 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#154 f5 Kill Keep f5 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#155 f6 Kill Keep f6 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#156 f7 Kill Keep f7 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#157 f8 Kill Keep f8 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#158 f9 Kill Keep f9 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#159 f10 Kill Keep f10 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#160 f11 Kill Keep f11 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#161 f12 Kill Keep f12 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#162 f13 Kill Keep f13 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#163 f14 Kill Keep f14 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#164 f15 Kill Keep f15 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#165 r0 Fixd Keep r0 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |r0 |r1 |r2 |r3 |r4 |r5 |r6 |r7 |r8 |r9 |r10 |r12 |lr |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
134.#166 I44 Def Alloc r0 |I44a| | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
135.#167 I44 Use * Keep r0 |I44a| | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
136.#168 V12 Def Alloc r0 |V12a| | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
139.#169 r0 Fixd Keep r0 |V12a| | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
139.#170 V11 Use * Spill r0 | | | | |V0 a|V3 a|V11i|V1 a|V5 a|V14a| | | |
Copy r0 |V11a| | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
140.#171 r0 Fixd Keep r0 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
140.#172 I45 Def Alloc r0 |I45a| | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
143.#173 r1 Fixd Keep r1 |I45a| | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
143.#174 V2 Use * ReLod NA |I45a| | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
Alloc r1 |I45a|V2 a| | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
144.#175 r1 Fixd Keep r1 |I45a| | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
144.#176 I46 Def Alloc r1 |I45a|I46a| | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
147.#177 r0 Fixd Keep r0 |I45a|I46a| | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
147.#178 I45 Use * Keep r0 |I45a|I46a| | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
147.#179 r1 Fixd Keep r1 |I45a|I46a| | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
147.#180 I46 Use * Keep r1 |I45a|I46a| | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
147.#181 V12 Use * ReLod NA |I45a|I46a| | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
Alloc r3 |I45a|I46a| |V12a|V0 a|V3 a| |V1 a|V5 a|V14a| | | |
148.#182 r0 Kill Keep r0 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
148.#183 r1 Kill Keep r1 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
148.#184 r2 Kill Keep r2 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
148.#185 r3 Kill Keep r3 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
148.#186 r12 Kill Keep r12 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
148.#187 lr Kill Keep lr | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |r0 |r1 |r2 |r3 |r4 |r5 |r6 |r7 |r8 |r9 |r10 |r12 |lr |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
149.#188 BB3 PredBB1 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
157.#189 V14 Use * Keep r9 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |r0 |r1 |r2 |r3 |r4 |r5 |r6 |r7 |r8 |r9 |r10 |r12 |lr |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
161.#190 BB4 PredBB3 | | | | |V0 a|V3 a| |V1 a|V5 a| | | | |
166.#191 C47 Def Alloc r0 |C47a| | | |V0 a|V3 a| |V1 a|V5 a| | | | |
171.#192 V0 Use * Keep r4 |C47a| | | |V0 a|V3 a| |V1 a|V5 a| | | | |
172.#193 I48 Def Alloc r3 |C47a| | |I48a| |V3 a| |V1 a|V5 a| | | | |
173.#194 C47 Use * Keep r0 |C47a| | |I48a| |V3 a| |V1 a|V5 a| | | | |
173.#195 I48 Use * Keep r3 |C47a| | |I48a| |V3 a| |V1 a|V5 a| | | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |r0 |r1 |r2 |r3 |r4 |r5 |r6 |r7 |r8 |r9 |r10 |r12 |lr |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
175.#196 BB5 PredBB3 | | | | | |V3 a| |V1 a|V5 a| | | | |
180.#197 C49 Def Alloc r0 |C49a| | | | |V3 a| |V1 a|V5 a| | | | |
185.#198 V5 Use Keep r8 |C49a| | | | |V3 a| |V1 a|V5 a| | | | |
186.#199 I50 Def Alloc r3 |C49a| | |I50a| |V3 a| |V1 a|V5 a| | | | |
187.#200 C49 Use * Keep r0 |C49a| | |I50a| |V3 a| |V1 a|V5 a| | | | |
187.#201 I50 Use * Keep r3 |C49a| | |I50a| |V3 a| |V1 a|V5 a| | | | |
195.#202 V5 Use * Keep r8 |C49i| | | | |V3 a| |V1 a|V5 a| | | | |
195.#203 V3 Use * Keep r5 |C49i| | | | |V3 a| |V1 a|V5 a| | | | |
201.#204 V1 Use * Keep r7 |C49i| | | | | | |V1 a| | | | | |
202.#205 I51 Def Alloc r0 |I51a| | | | | | | | | | | | |
203.#206 r0 Fixd Keep r0 |I51a| | | | | | | | | | | | |
203.#207 I51 Use * Keep r0 |I51a| | | | | | | | | | | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |r0 |r1 |r2 |r3 |r4 |r5 |r6 |r7 |r8 |r9 |r10 |r12 |lr |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
205.#208 BB6 PredBB5 | | | | | | | | | | | | | |
208.#209 C52 Def Alloc r3 | | | |C52a| | | | | | | | | |
209.#210 C52 Use * Keep r3 | | | |C52a| | | | | | | | | |
210.#211 r0 Kill Keep r0 | | | |C52i| | | | | | | | | |
210.#212 r1 Kill Keep r1 | | | |C52i| | | | | | | | | |
210.#213 r2 Kill Keep r2 | | | |C52i| | | | | | | | | |
210.#214 r3 Kill Keep r3 | | | | | | | | | | | | | |
210.#215 r12 Kill Keep r12 | | | | | | | | | | | | | |
210.#216 lr Kill Keep lr | | | | | | | | | | | | | |
210.#217 f0 Kill Keep f0 | | | | | | | | | | | | | |
210.#218 f1 Kill Keep f1 | | | | | | | | | | | | | |
210.#219 f2 Kill Keep f2 | | | | | | | | | | | | | |
210.#220 f3 Kill Keep f3 | | | | | | | | | | | | | |
210.#221 f4 Kill Keep f4 | | | | | | | | | | | | | |
210.#222 f5 Kill Keep f5 | | | | | | | | | | | | | |
210.#223 f6 Kill Keep f6 | | | | | | | | | | | | | |
210.#224 f7 Kill Keep f7 | | | | | | | | | | | | | |
210.#225 f8 Kill Keep f8 | | | | | | | | | | | | | |
210.#226 f9 Kill Keep f9 | | | | | | | | | | | | | |
210.#227 f10 Kill Keep f10 | | | | | | | | | | | | | |
210.#228 f11 Kill Keep f11 | | | | | | | | | | | | | |
210.#229 f12 Kill Keep f12 | | | | | | | | | | | | | |
210.#230 f13 Kill Keep f13 | | | | | | | | | | | | | |
210.#231 f14 Kill Keep f14 | | | | | | | | | | | | | |
210.#232 f15 Kill Keep f15 | | | | | | | | | | | | | |
------------
REFPOSITIONS AFTER ALLOCATION:
------------
<RefPosition #0 @0 RefTypeParamDef <Ivl:0 V00> BB00 regmask=[r4] minReg=1 fixed>
<RefPosition #1 @0 RefTypeParamDef <Ivl:3 V03> BB00 regmask=[r5] minReg=1 fixed>
<RefPosition #2 @0 RefTypeParamDef <Ivl:2 V02> BB00 regmask=[r6] minReg=1 fixed>
<RefPosition #3 @0 RefTypeParamDef <Ivl:1 V01> BB00 regmask=[r7] minReg=1 fixed>
<RefPosition #4 @0 RefTypeParamDef <Ivl:5 V05> BB00 regmask=[r8] minReg=1>
<RefPosition #5 @0 RefTypeParamDef <Ivl:4 V04> BB00 regmask=[r0] minReg=1>
<RefPosition #6 @1 RefTypeBB BB01 regmask=[] minReg=1>
<RefPosition #7 @7 RefTypeUse <Ivl:4 V04> LCL_VAR BB01 regmask=[r0] minReg=1 last>
<RefPosition #8 @8 RefTypeDef <Ivl:15> CAST BB01 regmask=[r9] minReg=1>
<RefPosition #9 @9 RefTypeUse <Ivl:15> BB01 regmask=[r9] minReg=1 last>
<RefPosition #10 @10 RefTypeDef <Ivl:11 V14> STORE_LCL_VAR BB01 regmask=[r9] minReg=1>
<RefPosition #11 @15 RefTypeUse <Ivl:11 V14> LCL_VAR BB01 regmask=[r9] minReg=1>
<RefPosition #12 @19 RefTypeBB BB02 regmask=[] minReg=1>
<RefPosition #13 @24 RefTypeDef <Ivl:16> CLS_VAR_ADDR BB02 regmask=[r0] minReg=1>
<RefPosition #14 @25 RefTypeUse <Ivl:16> BB02 regmask=[r0] minReg=1 last>
<RefPosition #15 @26 RefTypeDef <Ivl:17> IND BB02 regmask=[r0] minReg=1>
<RefPosition #16 @27 RefTypeUse <Ivl:17> BB02 regmask=[r0] minReg=1 last>
<RefPosition #17 @28 RefTypeDef <Ivl:14 V17> STORE_LCL_VAR BB02 regmask=[r0] minReg=1>
<RefPosition #18 @35 RefTypeUse <Ivl:14 V17> LCL_VAR BB02 regmask=[r0] minReg=1>
<RefPosition #19 @36 RefTypeDef <Ivl:18> RSH BB02 regmask=[r10] minReg=1>
<RefPosition #20 @37 RefTypeUse <Ivl:14 V17> LCL_VAR BB02 regmask=[r0] minReg=1 last>
<RefPosition #21 @38 RefTypeDef <Ivl:12 V15> STORE_LCL_VAR BB02 regmask=[r6] minReg=1>
<RefPosition #22 @39 RefTypeUse <Ivl:18> BB02 regmask=[r10] minReg=1 last>
<RefPosition #23 @40 RefTypeDef <Ivl:13 V16> STORE_LCL_VAR BB02 regmask=[r10] minReg=1>
<RefPosition #24 @44 RefTypeDef <Ivl:19> CLS_VAR_ADDR BB02 regmask=[r0] minReg=1>
<RefPosition #25 @45 RefTypeUse <Ivl:19> BB02 regmask=[r0] minReg=1 last>
<RefPosition #26 @46 RefTypeDef <Ivl:20> IND BB02 regmask=[r0] minReg=1>
<RefPosition #27 @47 RefTypeUse <Ivl:20> BB02 regmask=[r0] minReg=1 last>
<RefPosition #28 @48 RefTypeDef <Ivl:10 V13> STORE_LCL_VAR BB02 regmask=[r0] minReg=1>
<RefPosition #29 @50 RefTypeDef <Ivl:21> CNS_INT BB02 regmask=[r1] minReg=1>
<RefPosition #30 @55 RefTypeUse <Ivl:10 V13> LCL_VAR BB02 regmask=[r0] minReg=1>
<RefPosition #31 @56 RefTypeDef <Ivl:22> IND BB02 regmask=[r2] minReg=1>
<RefPosition #32 @57 RefTypeUse <Ivl:21> BB02 regmask=[r1] minReg=1 last>
<RefPosition #33 @57 RefTypeUse <Ivl:22> BB02 regmask=[r2] minReg=1 last>
<RefPosition #34 @63 RefTypeUse <Ivl:10 V13> LCL_VAR BB02 regmask=[r0] minReg=1 last>
<RefPosition #35 @64 RefTypeDef <Ivl:23> IND BB02 regmask=[r0] minReg=1>
<RefPosition #36 @65 RefTypeUse <Ivl:23> BB02 regmask=[r0] minReg=1 last>
<RefPosition #37 @66 RefTypeDef <Ivl:2 V02> STORE_LCL_VAR BB02 regmask=[r3] minReg=1 spillAfter>
<RefPosition #38 @70 RefTypeDef <Ivl:24> CLS_VAR_ADDR BB02 regmask=[r0] minReg=1>
<RefPosition #39 @71 RefTypeUse <Ivl:24> BB02 regmask=[r0] minReg=1 last>
<RefPosition #40 @72 RefTypeDef <Ivl:25> IND BB02 regmask=[lr] minReg=1>
<RefPosition #41 @73 RefTypeUse <Ivl:25> BB02 regmask=[lr] minReg=1 last>
<RefPosition #42 @74 RefTypeDef <Ivl:6 V09> STORE_LCL_VAR BB02 regmask=[lr] minReg=1>
<RefPosition #43 @77 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #44 @77 RefTypeUse <Ivl:6 V09> LCL_VAR BB02 regmask=[r0] minReg=1 spillAfter copy fixed>
<RefPosition #45 @78 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #46 @78 RefTypeDef <Ivl:26> PUTARG_REG BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #47 @80 RefTypeDef <Ivl:27> CNS_INT BB02 regmask=[r1] minReg=1>
<RefPosition #48 @81 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #49 @81 RefTypeUse <Ivl:27> BB02 regmask=[r1] minReg=1 last fixed>
<RefPosition #50 @82 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #51 @82 RefTypeDef <Ivl:28> PUTARG_REG BB02 regmask=[r1] minReg=1 fixed>
<RefPosition #52 @84 RefTypeDef <Ivl:29> CNS_INT BB02 regmask=[r2] minReg=1>
<RefPosition #53 @85 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #54 @85 RefTypeUse <Ivl:29> BB02 regmask=[r2] minReg=1 last fixed>
<RefPosition #55 @86 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #56 @86 RefTypeDef <Ivl:30> PUTARG_REG BB02 regmask=[r2] minReg=1 fixed>
<RefPosition #57 @88 RefTypeDef <Ivl:31> CNS_INT BB02 regmask=[r12] minReg=1>
<RefPosition #58 @89 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #59 @89 RefTypeUse <Ivl:26> BB02 regmask=[r0] minReg=1 last fixed>
<RefPosition #60 @89 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #61 @89 RefTypeUse <Ivl:28> BB02 regmask=[r1] minReg=1 last fixed>
<RefPosition #62 @89 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #63 @89 RefTypeUse <Ivl:30> BB02 regmask=[r2] minReg=1 last fixed>
<RefPosition #64 @89 RefTypeUse <Ivl:31> BB02 regmask=[r12] minReg=1 last>
<RefPosition #65 @90 RefTypeKill <Reg:r0 > BB02 regmask=[r0] minReg=1 last>
<RefPosition #66 @90 RefTypeKill <Reg:r1 > BB02 regmask=[r1] minReg=1 last>
<RefPosition #67 @90 RefTypeKill <Reg:r2 > BB02 regmask=[r2] minReg=1 last>
<RefPosition #68 @90 RefTypeKill <Reg:r3 > BB02 regmask=[r3] minReg=1 last>
<RefPosition #69 @90 RefTypeKill <Reg:r12> BB02 regmask=[r12] minReg=1 last>
<RefPosition #70 @90 RefTypeKill <Reg:lr > BB02 regmask=[lr] minReg=1 last>
<RefPosition #71 @90 RefTypeKill <Reg:f0 > BB02 regmask=[f0] minReg=1 last>
<RefPosition #72 @90 RefTypeKill <Reg:f1 > BB02 regmask=[f1] minReg=1 last>
<RefPosition #73 @90 RefTypeKill <Reg:f2 > BB02 regmask=[f2] minReg=1 last>
<RefPosition #74 @90 RefTypeKill <Reg:f3 > BB02 regmask=[f3] minReg=1 last>
<RefPosition #75 @90 RefTypeKill <Reg:f4 > BB02 regmask=[f4] minReg=1 last>
<RefPosition #76 @90 RefTypeKill <Reg:f5 > BB02 regmask=[f5] minReg=1 last>
<RefPosition #77 @90 RefTypeKill <Reg:f6 > BB02 regmask=[f6] minReg=1 last>
<RefPosition #78 @90 RefTypeKill <Reg:f7 > BB02 regmask=[f7] minReg=1 last>
<RefPosition #79 @90 RefTypeKill <Reg:f8 > BB02 regmask=[f8] minReg=1 last>
<RefPosition #80 @90 RefTypeKill <Reg:f9 > BB02 regmask=[f9] minReg=1 last>
<RefPosition #81 @90 RefTypeKill <Reg:f10> BB02 regmask=[f10] minReg=1 last>
<RefPosition #82 @90 RefTypeKill <Reg:f11> BB02 regmask=[f11] minReg=1 last>
<RefPosition #83 @90 RefTypeKill <Reg:f12> BB02 regmask=[f12] minReg=1 last>
<RefPosition #84 @90 RefTypeKill <Reg:f13> BB02 regmask=[f13] minReg=1 last>
<RefPosition #85 @90 RefTypeKill <Reg:f14> BB02 regmask=[f14] minReg=1 last>
<RefPosition #86 @90 RefTypeKill <Reg:f15> BB02 regmask=[f15] minReg=1 last>
<RefPosition #87 @90 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #88 @90 RefTypeDef <Ivl:32> CALL BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #89 @91 RefTypeUse <Ivl:32> BB02 regmask=[r0] minReg=1 last>
<RefPosition #90 @92 RefTypeDef <Ivl:7 V10> STORE_LCL_VAR BB02 regmask=[r0] minReg=1 spillAfter>
<RefPosition #91 @95 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #92 @95 RefTypeUse <Ivl:6 V09> LCL_VAR BB02 regmask=[r0] minReg=1 last reload fixed>
<RefPosition #93 @96 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #94 @96 RefTypeDef <Ivl:33> PUTARG_REG BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #95 @99 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #96 @99 RefTypeUse <Ivl:12 V15> LCL_VAR BB02 regmask=[r2] minReg=1 last copy fixed>
<RefPosition #97 @100 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #98 @100 RefTypeDef <Ivl:34> PUTARG_REG BB02 regmask=[r2] minReg=1 fixed>
<RefPosition #99 @103 RefTypeFixedReg <Reg:r3 > BB02 regmask=[r3] minReg=1>
<RefPosition #100 @103 RefTypeUse <Ivl:13 V16> LCL_VAR BB02 regmask=[r3] minReg=1 last copy fixed>
<RefPosition #101 @104 RefTypeFixedReg <Reg:r3 > BB02 regmask=[r3] minReg=1>
<RefPosition #102 @104 RefTypeDef <Ivl:35> PUTARG_REG BB02 regmask=[r3] minReg=1 fixed>
<RefPosition #103 @109 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #104 @109 RefTypeUse <Ivl:33> BB02 regmask=[r0] minReg=1 last fixed>
<RefPosition #105 @109 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #106 @109 RefTypeUse <Ivl:34> BB02 regmask=[r2] minReg=1 last fixed>
<RefPosition #107 @109 RefTypeFixedReg <Reg:r3 > BB02 regmask=[r3] minReg=1>
<RefPosition #108 @109 RefTypeUse <Ivl:35> BB02 regmask=[r3] minReg=1 last fixed>
<RefPosition #109 @109 RefTypeUse <Ivl:7 V10> LCL_VAR BB02 regmask=[r1] minReg=1 last reload>
<RefPosition #110 @110 RefTypeKill <Reg:r0 > BB02 regmask=[r0] minReg=1 last>
<RefPosition #111 @110 RefTypeKill <Reg:r1 > BB02 regmask=[r1] minReg=1 last>
<RefPosition #112 @110 RefTypeKill <Reg:r2 > BB02 regmask=[r2] minReg=1 last>
<RefPosition #113 @110 RefTypeKill <Reg:r3 > BB02 regmask=[r3] minReg=1 last>
<RefPosition #114 @110 RefTypeKill <Reg:r12> BB02 regmask=[r12] minReg=1 last>
<RefPosition #115 @110 RefTypeKill <Reg:lr > BB02 regmask=[lr] minReg=1 last>
<RefPosition #116 @114 RefTypeDef <Ivl:36> CLS_VAR_ADDR BB02 regmask=[r0] minReg=1>
<RefPosition #117 @115 RefTypeUse <Ivl:36> BB02 regmask=[r0] minReg=1 last>
<RefPosition #118 @116 RefTypeDef <Ivl:37> IND BB02 regmask=[r6] minReg=1>
<RefPosition #119 @117 RefTypeUse <Ivl:37> BB02 regmask=[r6] minReg=1 last>
<RefPosition #120 @118 RefTypeDef <Ivl:8 V11> STORE_LCL_VAR BB02 regmask=[r6] minReg=1>
<RefPosition #121 @121 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #122 @121 RefTypeUse <Ivl:8 V11> LCL_VAR BB02 regmask=[r0] minReg=1 copy fixed>
<RefPosition #123 @122 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #124 @122 RefTypeDef <Ivl:38> PUTARG_REG BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #125 @124 RefTypeDef <Ivl:39> CNS_INT BB02 regmask=[r1] minReg=1>
<RefPosition #126 @125 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #127 @125 RefTypeUse <Ivl:39> BB02 regmask=[r1] minReg=1 last fixed>
<RefPosition #128 @126 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #129 @126 RefTypeDef <Ivl:40> PUTARG_REG BB02 regmask=[r1] minReg=1 fixed>
<RefPosition #130 @128 RefTypeDef <Ivl:41> CNS_INT BB02 regmask=[r2] minReg=1>
<RefPosition #131 @129 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #132 @129 RefTypeUse <Ivl:41> BB02 regmask=[r2] minReg=1 last fixed>
<RefPosition #133 @130 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #134 @130 RefTypeDef <Ivl:42> PUTARG_REG BB02 regmask=[r2] minReg=1 fixed>
<RefPosition #135 @132 RefTypeDef <Ivl:43> CNS_INT BB02 regmask=[r3] minReg=1>
<RefPosition #136 @133 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #137 @133 RefTypeUse <Ivl:38> BB02 regmask=[r0] minReg=1 last fixed>
<RefPosition #138 @133 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #139 @133 RefTypeUse <Ivl:40> BB02 regmask=[r1] minReg=1 last fixed>
<RefPosition #140 @133 RefTypeFixedReg <Reg:r2 > BB02 regmask=[r2] minReg=1>
<RefPosition #141 @133 RefTypeUse <Ivl:42> BB02 regmask=[r2] minReg=1 last fixed>
<RefPosition #142 @133 RefTypeUse <Ivl:43> BB02 regmask=[r3] minReg=1 last>
<RefPosition #143 @134 RefTypeKill <Reg:r0 > BB02 regmask=[r0] minReg=1 last>
<RefPosition #144 @134 RefTypeKill <Reg:r1 > BB02 regmask=[r1] minReg=1 last>
<RefPosition #145 @134 RefTypeKill <Reg:r2 > BB02 regmask=[r2] minReg=1 last>
<RefPosition #146 @134 RefTypeKill <Reg:r3 > BB02 regmask=[r3] minReg=1 last>
<RefPosition #147 @134 RefTypeKill <Reg:r12> BB02 regmask=[r12] minReg=1 last>
<RefPosition #148 @134 RefTypeKill <Reg:lr > BB02 regmask=[lr] minReg=1 last>
<RefPosition #149 @134 RefTypeKill <Reg:f0 > BB02 regmask=[f0] minReg=1 last>
<RefPosition #150 @134 RefTypeKill <Reg:f1 > BB02 regmask=[f1] minReg=1 last>
<RefPosition #151 @134 RefTypeKill <Reg:f2 > BB02 regmask=[f2] minReg=1 last>
<RefPosition #152 @134 RefTypeKill <Reg:f3 > BB02 regmask=[f3] minReg=1 last>
<RefPosition #153 @134 RefTypeKill <Reg:f4 > BB02 regmask=[f4] minReg=1 last>
<RefPosition #154 @134 RefTypeKill <Reg:f5 > BB02 regmask=[f5] minReg=1 last>
<RefPosition #155 @134 RefTypeKill <Reg:f6 > BB02 regmask=[f6] minReg=1 last>
<RefPosition #156 @134 RefTypeKill <Reg:f7 > BB02 regmask=[f7] minReg=1 last>
<RefPosition #157 @134 RefTypeKill <Reg:f8 > BB02 regmask=[f8] minReg=1 last>
<RefPosition #158 @134 RefTypeKill <Reg:f9 > BB02 regmask=[f9] minReg=1 last>
<RefPosition #159 @134 RefTypeKill <Reg:f10> BB02 regmask=[f10] minReg=1 last>
<RefPosition #160 @134 RefTypeKill <Reg:f11> BB02 regmask=[f11] minReg=1 last>
<RefPosition #161 @134 RefTypeKill <Reg:f12> BB02 regmask=[f12] minReg=1 last>
<RefPosition #162 @134 RefTypeKill <Reg:f13> BB02 regmask=[f13] minReg=1 last>
<RefPosition #163 @134 RefTypeKill <Reg:f14> BB02 regmask=[f14] minReg=1 last>
<RefPosition #164 @134 RefTypeKill <Reg:f15> BB02 regmask=[f15] minReg=1 last>
<RefPosition #165 @134 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #166 @134 RefTypeDef <Ivl:44> CALL BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #167 @135 RefTypeUse <Ivl:44> BB02 regmask=[r0] minReg=1 last>
<RefPosition #168 @136 RefTypeDef <Ivl:9 V12> STORE_LCL_VAR BB02 regmask=[r0] minReg=1 spillAfter>
<RefPosition #169 @139 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #170 @139 RefTypeUse <Ivl:8 V11> LCL_VAR BB02 regmask=[r0] minReg=1 last copy fixed>
<RefPosition #171 @140 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #172 @140 RefTypeDef <Ivl:45> PUTARG_REG BB02 regmask=[r0] minReg=1 fixed>
<RefPosition #173 @143 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #174 @143 RefTypeUse <Ivl:2 V02> LCL_VAR BB02 regmask=[r1] minReg=1 last reload fixed>
<RefPosition #175 @144 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #176 @144 RefTypeDef <Ivl:46> PUTARG_REG BB02 regmask=[r1] minReg=1 fixed>
<RefPosition #177 @147 RefTypeFixedReg <Reg:r0 > BB02 regmask=[r0] minReg=1>
<RefPosition #178 @147 RefTypeUse <Ivl:45> BB02 regmask=[r0] minReg=1 last fixed>
<RefPosition #179 @147 RefTypeFixedReg <Reg:r1 > BB02 regmask=[r1] minReg=1>
<RefPosition #180 @147 RefTypeUse <Ivl:46> BB02 regmask=[r1] minReg=1 last fixed>
<RefPosition #181 @147 RefTypeUse <Ivl:9 V12> LCL_VAR BB02 regmask=[r3] minReg=1 last reload>
<RefPosition #182 @148 RefTypeKill <Reg:r0 > BB02 regmask=[r0] minReg=1 last>
<RefPosition #183 @148 RefTypeKill <Reg:r1 > BB02 regmask=[r1] minReg=1 last>
<RefPosition #184 @148 RefTypeKill <Reg:r2 > BB02 regmask=[r2] minReg=1 last>
<RefPosition #185 @148 RefTypeKill <Reg:r3 > BB02 regmask=[r3] minReg=1 last>
<RefPosition #186 @148 RefTypeKill <Reg:r12> BB02 regmask=[r12] minReg=1 last>
<RefPosition #187 @148 RefTypeKill <Reg:lr > BB02 regmask=[lr] minReg=1 last>
<RefPosition #188 @149 RefTypeBB BB03 regmask=[] minReg=1>
<RefPosition #189 @157 RefTypeUse <Ivl:11 V14> LCL_VAR BB03 regmask=[r9] minReg=1 last>
<RefPosition #190 @161 RefTypeBB BB04 regmask=[] minReg=1>
<RefPosition #191 @166 RefTypeDef <Ivl:47> CNS_INT BB04 regmask=[r0] minReg=1>
<RefPosition #192 @171 RefTypeUse <Ivl:0 V00> LCL_VAR BB04 regmask=[r4] minReg=1 last>
<RefPosition #193 @172 RefTypeDef <Ivl:48> IND BB04 regmask=[r3] minReg=1>
<RefPosition #194 @173 RefTypeUse <Ivl:47> BB04 regmask=[r0] minReg=1 last>
<RefPosition #195 @173 RefTypeUse <Ivl:48> BB04 regmask=[r3] minReg=1 last>
<RefPosition #196 @175 RefTypeBB BB05 regmask=[] minReg=1>
<RefPosition #197 @180 RefTypeDef <Ivl:49> CNS_INT BB05 regmask=[r0] minReg=1>
<RefPosition #198 @185 RefTypeUse <Ivl:5 V05> LCL_VAR BB05 regmask=[r8] minReg=1>
<RefPosition #199 @186 RefTypeDef <Ivl:50> IND BB05 regmask=[r3] minReg=1>
<RefPosition #200 @187 RefTypeUse <Ivl:49> BB05 regmask=[r0] minReg=1 last>
<RefPosition #201 @187 RefTypeUse <Ivl:50> BB05 regmask=[r3] minReg=1 last>
<RefPosition #202 @195 RefTypeUse <Ivl:5 V05> LCL_VAR BB05 regmask=[r8] minReg=1 last>
<RefPosition #203 @195 RefTypeUse <Ivl:3 V03> LCL_VAR BB05 regmask=[r5] minReg=1 last>
<RefPosition #204 @201 RefTypeUse <Ivl:1 V01> LCL_VAR BB05 regmask=[r7] minReg=1 last>
<RefPosition #205 @202 RefTypeDef <Ivl:51> CAST BB05 regmask=[r0] minReg=1>
<RefPosition #206 @203 RefTypeFixedReg <Reg:r0 > BB05 regmask=[r0] minReg=1>
<RefPosition #207 @203 RefTypeUse <Ivl:51> BB05 regmask=[r0] minReg=1 last fixed>
<RefPosition #208 @205 RefTypeBB BB06 regmask=[] minReg=1>
<RefPosition #209 @208 RefTypeDef <Ivl:52> CNS_INT BB06 regmask=[r3] minReg=1>
<RefPosition #210 @209 RefTypeUse <Ivl:52> BB06 regmask=[r3] minReg=1 last>
<RefPosition #211 @210 RefTypeKill <Reg:r0 > BB06 regmask=[r0] minReg=1 last>
<RefPosition #212 @210 RefTypeKill <Reg:r1 > BB06 regmask=[r1] minReg=1 last>
<RefPosition #213 @210 RefTypeKill <Reg:r2 > BB06 regmask=[r2] minReg=1 last>
<RefPosition #214 @210 RefTypeKill <Reg:r3 > BB06 regmask=[r3] minReg=1 last>
<RefPosition #215 @210 RefTypeKill <Reg:r12> BB06 regmask=[r12] minReg=1 last>
<RefPosition #216 @210 RefTypeKill <Reg:lr > BB06 regmask=[lr] minReg=1 last>
<RefPosition #217 @210 RefTypeKill <Reg:f0 > BB06 regmask=[f0] minReg=1 last>
<RefPosition #218 @210 RefTypeKill <Reg:f1 > BB06 regmask=[f1] minReg=1 last>
<RefPosition #219 @210 RefTypeKill <Reg:f2 > BB06 regmask=[f2] minReg=1 last>
<RefPosition #220 @210 RefTypeKill <Reg:f3 > BB06 regmask=[f3] minReg=1 last>
<RefPosition #221 @210 RefTypeKill <Reg:f4 > BB06 regmask=[f4] minReg=1 last>
<RefPosition #222 @210 RefTypeKill <Reg:f5 > BB06 regmask=[f5] minReg=1 last>
<RefPosition #223 @210 RefTypeKill <Reg:f6 > BB06 regmask=[f6] minReg=1 last>
<RefPosition #224 @210 RefTypeKill <Reg:f7 > BB06 regmask=[f7] minReg=1 last>
<RefPosition #225 @210 RefTypeKill <Reg:f8 > BB06 regmask=[f8] minReg=1 last>
<RefPosition #226 @210 RefTypeKill <Reg:f9 > BB06 regmask=[f9] minReg=1 last>
<RefPosition #227 @210 RefTypeKill <Reg:f10> BB06 regmask=[f10] minReg=1 last>
<RefPosition #228 @210 RefTypeKill <Reg:f11> BB06 regmask=[f11] minReg=1 last>
<RefPosition #229 @210 RefTypeKill <Reg:f12> BB06 regmask=[f12] minReg=1 last>
<RefPosition #230 @210 RefTypeKill <Reg:f13> BB06 regmask=[f13] minReg=1 last>
<RefPosition #231 @210 RefTypeKill <Reg:f14> BB06 regmask=[f14] minReg=1 last>
<RefPosition #232 @210 RefTypeKill <Reg:f15> BB06 regmask=[f15] minReg=1 last>
VAR REFPOSITIONS AFTER ALLOCATION
--- V00
<RefPosition #0 @0 RefTypeParamDef <Ivl:0 V00> BB00 regmask=[r4] minReg=1 fixed>
<RefPosition #192 @171 RefTypeUse <Ivl:0 V00> LCL_VAR BB04 regmask=[r4] minReg=1 last>
--- V01
<RefPosition #3 @0 RefTypeParamDef <Ivl:1 V01> BB00 regmask=[r7] minReg=1 fixed>
<RefPosition #204 @201 RefTypeUse <Ivl:1 V01> LCL_VAR BB05 regmask=[r7] minReg=1 last>
--- V02
<RefPosition #2 @0 RefTypeParamDef <Ivl:2 V02> BB00 regmask=[r6] minReg=1 fixed>
<RefPosition #37 @66 RefTypeDef <Ivl:2 V02> STORE_LCL_VAR BB02 regmask=[r3] minReg=1 spillAfter>
<RefPosition #174 @143 RefTypeUse <Ivl:2 V02> LCL_VAR BB02 regmask=[r1] minReg=1 last reload fixed>
--- V03
<RefPosition #1 @0 RefTypeParamDef <Ivl:3 V03> BB00 regmask=[r5] minReg=1 fixed>
<RefPosition #203 @195 RefTypeUse <Ivl:3 V03> LCL_VAR BB05 regmask=[r5] minReg=1 last>
--- V04
<RefPosition #5 @0 RefTypeParamDef <Ivl:4 V04> BB00 regmask=[r0] minReg=1>
<RefPosition #7 @7 RefTypeUse <Ivl:4 V04> LCL_VAR BB01 regmask=[r0] minReg=1 last>
--- V05
<RefPosition #4 @0 RefTypeParamDef <Ivl:5 V05> BB00 regmask=[r8] minReg=1>
<RefPosition #198 @185 RefTypeUse <Ivl:5 V05> LCL_VAR BB05 regmask=[r8] minReg=1>
<RefPosition #202 @195 RefTypeUse <Ivl:5 V05> LCL_VAR BB05 regmask=[r8] minReg=1 last>
--- V06
--- V07
--- V08
--- V09
<RefPosition #42 @74 RefTypeDef <Ivl:6 V09> STORE_LCL_VAR BB02 regmask=[lr] minReg=1>
<RefPosition #44 @77 RefTypeUse <Ivl:6 V09> LCL_VAR BB02 regmask=[r0] minReg=1 spillAfter copy fixed>
<RefPosition #92 @95 RefTypeUse <Ivl:6 V09> LCL_VAR BB02 regmask=[r0] minReg=1 last reload fixed>
--- V10
<RefPosition #90 @92 RefTypeDef <Ivl:7 V10> STORE_LCL_VAR BB02 regmask=[r0] minReg=1 spillAfter>
<RefPosition #109 @109 RefTypeUse <Ivl:7 V10> LCL_VAR BB02 regmask=[r1] minReg=1 last reload>
--- V11
<RefPosition #120 @118 RefTypeDef <Ivl:8 V11> STORE_LCL_VAR BB02 regmask=[r6] minReg=1>
<RefPosition #122 @121 RefTypeUse <Ivl:8 V11> LCL_VAR BB02 regmask=[r0] minReg=1 copy fixed>
<RefPosition #170 @139 RefTypeUse <Ivl:8 V11> LCL_VAR BB02 regmask=[r0] minReg=1 last copy fixed>
--- V12
<RefPosition #168 @136 RefTypeDef <Ivl:9 V12> STORE_LCL_VAR BB02 regmask=[r0] minReg=1 spillAfter>
<RefPosition #181 @147 RefTypeUse <Ivl:9 V12> LCL_VAR BB02 regmask=[r3] minReg=1 last reload>
--- V13
<RefPosition #28 @48 RefTypeDef <Ivl:10 V13> STORE_LCL_VAR BB02 regmask=[r0] minReg=1>
<RefPosition #30 @55 RefTypeUse <Ivl:10 V13> LCL_VAR BB02 regmask=[r0] minReg=1>
<RefPosition #34 @63 RefTypeUse <Ivl:10 V13> LCL_VAR BB02 regmask=[r0] minReg=1 last>
--- V14
<RefPosition #10 @10 RefTypeDef <Ivl:11 V14> STORE_LCL_VAR BB01 regmask=[r9] minReg=1>
<RefPosition #11 @15 RefTypeUse <Ivl:11 V14> LCL_VAR BB01 regmask=[r9] minReg=1>
<RefPosition #189 @157 RefTypeUse <Ivl:11 V14> LCL_VAR BB03 regmask=[r9] minReg=1 last>
--- V15
<RefPosition #21 @38 RefTypeDef <Ivl:12 V15> STORE_LCL_VAR BB02 regmask=[r6] minReg=1>
<RefPosition #96 @99 RefTypeUse <Ivl:12 V15> LCL_VAR BB02 regmask=[r2] minReg=1 last copy fixed>
--- V16
<RefPosition #23 @40 RefTypeDef <Ivl:13 V16> STORE_LCL_VAR BB02 regmask=[r10] minReg=1>
<RefPosition #100 @103 RefTypeUse <Ivl:13 V16> LCL_VAR BB02 regmask=[r3] minReg=1 last copy fixed>
--- V17
<RefPosition #17 @28 RefTypeDef <Ivl:14 V17> STORE_LCL_VAR BB02 regmask=[r0] minReg=1>
<RefPosition #18 @35 RefTypeUse <Ivl:14 V17> LCL_VAR BB02 regmask=[r0] minReg=1>
<RefPosition #20 @37 RefTypeUse <Ivl:14 V17> LCL_VAR BB02 regmask=[r0] minReg=1 last>
Active intervals at end of allocation:
-----------------------
RESOLVING BB BOUNDARIES
-----------------------
Resolution Candidates: {V00 V01 V03 V04 V05 V14}
Has Critical Edges
Prior to Resolution
BB01 use def in out
{V04}
{V14}
{V00 V01 V03 V04 V05}
{V00 V01 V03 V05 V14}
Var=Reg beg of BB01: V00=r4 V03=r5 V02=r6 V01=r7 V05=r8 V04=r0
Var=Reg end of BB01: V00=r4 V14=r9 V03=r5 V01=r7 V05=r8
BB02 use def in out
{}
{V02 V09 V10 V11 V12 V13 V15 V16 V17}
{V00 V01 V03 V05 V14}
{V00 V01 V03 V05 V14}
Var=Reg beg of BB02: V00=r4 V14=r9 V03=r5 V01=r7 V05=r8
Var=Reg end of BB02: V00=r4 V14=r9 V03=r5 V01=r7 V05=r8
BB03 use def in out
{V14}
{}
{V00 V01 V03 V05 V14}
{V00 V01 V03 V05}
Var=Reg beg of BB03: V00=r4 V14=r9 V03=r5 V01=r7 V05=r8
Var=Reg end of BB03: V00=r4 V03=r5 V01=r7 V05=r8
BB04 use def in out
{V00}
{}
{V00 V01 V03 V05}
{V01 V03 V05}
Var=Reg beg of BB04: V00=r4 V03=r5 V01=r7 V05=r8
Var=Reg end of BB04: V03=r5 V01=r7 V05=r8
BB05 use def in out
{V01 V03 V05}
{}
{V01 V03 V05}
{}
Var=Reg beg of BB05: V03=r5 V01=r7 V05=r8
Var=Reg end of BB05: none
BB06 use def in out
{}
{}
{}
{}
Var=Reg beg of BB06: none
Var=Reg end of BB06: none
RESOLVING EDGES
Set V00 argument initial register to r4
Set V01 argument initial register to r7
Set V02 argument initial register to r6
Set V03 argument initial register to r5
Set V04 argument initial register to r0
Set V05 argument initial register to r8
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 ( cond ) i label target LIR
BB02 [0001] 1 BB01 0.50 [004..02C) i gcsafe LIR
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target LIR
BB04 [0003] 1 BB03 0.50 [030..034) i idxlen LIR
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen LIR
BB06 [0005] 0 0 [???..???) (throw ) keep i internal rare label target LIR
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..004) -> BB03 (cond), preds={} succs={BB02,BB03}
N003 ( 8, 8) [000005] ------------- IL_OFFSET void IL offset: 0x0 REG NA
N005 ( 2, 2) [000001] ------------- t1 = LCL_VAR int V04 arg4 u:2 r0 (last use) REG r0 $140
/--* t1 int
N007 ( 3, 3) [000085] ----------S-- t85 = * CAST int <- bool <- int REG r9 $200
/--* t85 int
N009 ( 3, 3) [000143] DA----------- * STORE_LCL_VAR int V14 cse0 r9 REG r9
N011 ( 1, 1) [000144] ------------- t144 = LCL_VAR int V14 cse0 r9 REG r9 $200
N013 ( 1, 1) [000002] -c----------- t2 = CNS_INT int 0 REG NA $40
/--* t144 int
+--* t2 int
N015 ( 6, 6) [000003] J------N--S-- * EQ void REG NA $201
N017 ( 8, 8) [000004] ------------- * JTRUE void REG NA
------------ BB02 [004..02C), preds={BB01} succs={BB03}
N021 ( 14, 17) [000034] ------------- IL_OFFSET void IL offset: 0x4 REG NA
N023 ( 6, 10) [000030] ----G-------- t30 = CLS_VAR_ADDR byref Hnd=0x9247f8 REG r0
/--* t30 byref
N025 (???,???) [000148] ----G-------- t148 = * IND int REG r0
/--* t148 int
N027 (???,???) [000164] DA--G-------- * STORE_LCL_VAR int V17 rat2 r0 REG r0
N029 (???,???) [000165] ------------- t165 = LCL_VAR int V17 rat2 r0 (last use) REG r0
N031 (???,???) [000166] ------------- t166 = LCL_VAR int V17 rat2 r0 REG r0
N033 (???,???) [000167] -c----------- t167 = CNS_INT int 31 REG NA
/--* t166 int
+--* t167 int
N035 (???,???) [000168] ------------- t168 = * RSH int REG r10
/--* t165 int
N037 ( 14, 17) [000033] DA--G-------- * STORE_LCL_VAR int V15 rat0 r6 REG r6
/--* t168 int
N039 (???,???) [000170] D------------ * STORE_LCL_VAR int V16 rat1 r10 REG r10
N041 ( 19, 24) [000040] ------------- IL_OFFSET void IL offset: 0xb REG NA
N043 ( 6, 10) [000035] ----G-------- t35 = CLS_VAR_ADDR byref Hnd=0x924808 REG r0
/--* t35 byref
N045 (???,???) [000149] ----G-------- t149 = * IND ref REG r0
/--* t149 ref
N047 ( 6, 10) [000087] DA--G-------- * STORE_LCL_VAR ref V13 tmp5 d:3 r0 REG r0
N049 ( 1, 1) [000036] ------------- t36 = CNS_INT int 0 REG r1 $40
N051 ( 1, 1) [000088] ------------- t88 = LCL_VAR ref V13 tmp5 u:3 r0 REG r0 <l:$340, c:$380>
/--* t88 ref
N053 (???,???) [000173] -c----------- t173 = * LEA(b+4) byref REG NA
/--* t173 byref
N055 ( 3, 3) [000091] ---X--------- t91 = * IND int REG r2 <l:$3c1, c:$3c0>
/--* t36 int
+--* t91 int
N057 ( 8, 11) [000092] ---X--------- * ARR_BOUNDS_CHECK_Rng void <l:$346, c:$345>
N059 ( 1, 1) [000089] ------------- t89 = LCL_VAR ref V13 tmp5 u:3 r0 (last use) REG r0 <l:$340, c:$380>
/--* t89 ref
N061 (???,???) [000174] -c----------- t174 = * LEA(b+8) byref REG NA
/--* t174 byref
N063 ( 5, 3) [000037] a---GO------- t37 = * IND ushort REG r0 <l:$203, c:$4c0>
/--* t37 ushort
N065 ( 19, 24) [000039] DA-XGO------- * STORE_LCL_VAR ushort V02 arg2 d:3 NA REG NA
N067 ( 6, 10) [000050] ------------- IL_OFFSET void IL offset: 0x16 REG NA
N069 ( 6, 10) [000045] ----G-------- t45 = CLS_VAR_ADDR byref Hnd=0x9247d8 REG r0
/--* t45 byref
N071 (???,???) [000150] ----G-------- t150 = * IND ref REG lr
/--* t150 ref
N073 ( 6, 10) [000049] DA--G-------- * STORE_LCL_VAR ref V09 tmp1 d:3 lr REG lr
N075 ( 1, 1) [000052] ------------Z t52 = LCL_VAR ref V09 tmp1 u:3 lr REG lr <l:$349, c:$382>
/--* t52 ref
N077 (???,???) [000175] ------------- t175 = * PUTARG_REG ref REG r0
N079 ( 3, 7) [000053] ------------- t53 = CNS_INT(h) int 0x924994 token REG r1 $244
/--* t53 int
N081 (???,???) [000176] ------------- t176 = * PUTARG_REG int REG r1
N083 ( 3, 7) [000054] ------------- t54 = CNS_INT(h) int 0x924B10 token REG r2 $245
/--* t54 int
N085 (???,???) [000177] ------------- t177 = * PUTARG_REG int REG r2
N087 ( 3, 7) [000178] ------------- t178 = CNS_INT(h) int 0xFDA55A0 ftn REG r12
/--* t175 ref arg0 in r0
+--* t176 int arg1 in r1
+--* t177 int arg2 in r2
+--* t178 int control expr
N089 ( 23, 28) [000058] --CXG-------- t58 = * CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $205
/--* t58 int
N091 ( 27, 31) [000060] DA-XG-------- * STORE_LCL_VAR int V10 tmp2 d:3 NA REG NA
N093 ( 1, 1) [000051] ------------z t51 = LCL_VAR ref V09 tmp1 u:3 r0 (last use) REG r0 <l:$349, c:$382>
/--* t51 ref
N095 (???,???) [000179] ------------- t179 = * PUTARG_REG ref REG r0
N097 ( 3, 2) [000046] ------------- t46 = LCL_VAR int V15 rat0 r6 (last use) REG r6 <l:$2c1, c:$2c0>
/--* t46 int
N099 (???,???) [000182] ------------- t182 = * PUTARG_REG int REG r2
N101 (???,???) [000171] ------------- t171 = LCL_VAR int V16 rat1 r10 (last use) REG r10
/--* t171 int
N103 (???,???) [000183] ------------- t183 = * PUTARG_REG int REG r3
/--* t182 int
+--* t183 int
N105 (???,???) [000180] Hc----------- t180 = * FIELD_LIST int int at offset 0 REG NA
N107 ( 3, 2) [000062] ------------z t62 = LCL_VAR int V10 tmp2 u:3 r1 (last use) REG r1 $283
/--* t179 ref this in r0
+--* t180 int arg1 r2,r3
+--* t62 int calli tgt
N109 ( 24, 10) [000063] --CXG-------- * CALL ind void $VN.Void
N111 ( 6, 10) [000070] ------------- IL_OFFSET void IL offset: 0x21 REG NA
N113 ( 6, 10) [000065] ----G-------- t65 = CLS_VAR_ADDR byref Hnd=0x9247d8 REG r0
/--* t65 byref
N115 (???,???) [000151] ----G-------- t151 = * IND ref REG r6
/--* t151 ref
N117 ( 6, 10) [000069] DA--G-------- * STORE_LCL_VAR ref V11 tmp3 d:3 r6 REG r6
N119 ( 1, 1) [000072] ------------- t72 = LCL_VAR ref V11 tmp3 u:3 r6 REG r6 <l:$34b, c:$388>
/--* t72 ref
N121 (???,???) [000184] ------------- t184 = * PUTARG_REG ref REG r0
N123 ( 3, 7) [000073] ------------- t73 = CNS_INT(h) int 0x924994 token REG r1 $244
/--* t73 int
N125 (???,???) [000185] ------------- t185 = * PUTARG_REG int REG r1
N127 ( 3, 7) [000074] ------------- t74 = CNS_INT(h) int 0x924B74 token REG r2 $246
/--* t74 int
N129 (???,???) [000186] ------------- t186 = * PUTARG_REG int REG r2
N131 ( 3, 7) [000187] ------------- t187 = CNS_INT(h) int 0xFDA55A0 ftn REG r3
/--* t184 ref arg0 in r0
+--* t185 int arg1 in r1
+--* t186 int arg2 in r2
+--* t187 int control expr
N133 ( 23, 28) [000078] --CXG-------- t78 = * CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $206
/--* t78 int
N135 ( 27, 31) [000080] DA-XG-------- * STORE_LCL_VAR int V12 tmp4 d:3 NA REG NA
N137 ( 1, 1) [000071] ------------- t71 = LCL_VAR ref V11 tmp3 u:3 r6 (last use) REG r6 <l:$34b, c:$388>
/--* t71 ref
N139 (???,???) [000188] ------------- t188 = * PUTARG_REG ref REG r0
N141 ( 2, 2) [000066] ------------z t66 = LCL_VAR int V02 arg2 u:3 r1 (last use) REG r1 <l:$203, c:$4c0>
/--* t66 int
N143 (???,???) [000189] ------------- t189 = * PUTARG_REG int REG r1
N145 ( 3, 2) [000082] ------------z t82 = LCL_VAR int V12 tmp4 u:3 r3 (last use) REG r3 $287
/--* t188 ref this in r0
+--* t189 int arg1 in r1
+--* t82 int calli tgt
N147 ( 23, 10) [000083] --CXG-------- * CALL ind void $VN.Void
------------ BB03 [02C..030) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
N151 ( 5, 5) [000011] ------------- IL_OFFSET void IL offset: 0x2c REG NA
N153 ( 1, 1) [000146] ------------- t146 = LCL_VAR int V14 cse0 r9 (last use) REG r9 $200
N155 ( 1, 1) [000008] -c----------- t8 = CNS_INT int 0 REG NA $40
/--* t146 int
+--* t8 int
N157 ( 3, 3) [000009] J------N--S-- * NE void REG NA $207
N159 ( 5, 5) [000010] ------------- * JTRUE void REG NA
------------ BB04 [030..034), preds={BB03} succs={BB05}
N163 ( 13, 14) [000028] ------------- IL_OFFSET void IL offset: 0x30 REG NA
N165 ( 1, 1) [000024] ------------- t24 = CNS_INT int 0 REG r0 $40
N167 ( 1, 1) [000023] ------------- t23 = LCL_VAR ref V00 arg0 u:2 r4 (last use) REG r4 $80
/--* t23 ref
N169 (???,???) [000190] -c----------- t190 = * LEA(b+4) byref REG NA
/--* t190 byref
N171 ( 3, 3) [000123] ---X--------- t123 = * IND int REG r3 $3c2
/--* t24 int
+--* t123 int
N173 ( 8, 11) [000124] ---X--------- * ARR_BOUNDS_CHECK_Rng void $350
------------ BB05 [034..03B) (return), preds={BB03,BB04} succs={}
N177 ( 16, 17) [000018] ------------- IL_OFFSET void IL offset: 0x34 REG NA
N179 ( 1, 1) [000014] ------------- t14 = CNS_INT int 0 REG r0 $40
N181 ( 1, 1) [000013] ------------- t13 = LCL_VAR ref V05 arg5 u:2 r8 REG r8 $81
/--* t13 ref
N183 (???,???) [000192] -c----------- t192 = * LEA(b+4) byref REG NA
/--* t192 byref
N185 ( 3, 3) [000134] ---X--------- t134 = * IND int REG r3 $3c3
/--* t14 int
+--* t134 int
N187 ( 8, 11) [000135] ---X--------- * ARR_BOUNDS_CHECK_Rng void $356
N189 ( 1, 1) [000132] ------------- t132 = LCL_VAR ref V05 arg5 u:2 r8 (last use) REG r8 $81
/--* t132 ref
N191 (???,???) [000193] -c----------- t193 = * LEA(b+8) byref REG NA
N193 ( 2, 2) [000015] ------------- t15 = LCL_VAR int V03 arg3 u:2 r5 (last use) REG r5 $100
/--* t193 byref
+--* t15 int
N195 (???,???) [000152] -A-XGO------- * STOREIND byte REG NA
N197 ( 4, 4) [000021] ------------- IL_OFFSET void IL offset: 0x39 REG NA
N199 ( 2, 2) [000019] ------------- t19 = LCL_VAR int V01 arg1 u:2 r7 (last use) REG r7 $c0
/--* t19 int
N201 ( 3, 3) [000141] ------------- t141 = * CAST int <- ushort <- int REG r0 $20c
/--* t141 int
N203 ( 4, 4) [000020] ------------- * RETURN int REG NA $28a
------------ BB06 [???..???) (throw), preds={} succs={}
N207 ( 3, 7) [000194] ------------- t194 = CNS_INT(h) int 0xFDA7BB0 ftn REG r3
/--* t194 int control expr
N209 ( 16, 10) [000155] --CXG-------- * CALL help void HELPER.CORINFO_HELP_RNGCHKFAIL
-------------------------------------------------------------------------------------------------------------------
Final allocation
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |r0 |r1 |r2 |r3 |r4 |r5 |r6 |r7 |r8 |r9 |r10 |r12 |lr |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
0.#0 V0 Parm Alloc r4 | | | | |V0 a| | | | | | | | |
0.#1 V3 Parm Alloc r5 | | | | |V0 a|V3 a| | | | | | | |
0.#2 V2 Parm Alloc r6 | | | | |V0 a|V3 a|V2 a| | | | | | |
0.#3 V1 Parm Alloc r7 | | | | |V0 a|V3 a|V2 a|V1 a| | | | | |
0.#4 V5 Parm Alloc r8 | | | | |V0 a|V3 a|V2 a|V1 a|V5 a| | | | |
0.#5 V4 Parm Alloc r0 |V4 a| | | |V0 a|V3 a|V2 a|V1 a|V5 a| | | | |
1.#6 BB1 PredBB0 |V4 a| | | |V0 a|V3 a|V2 a|V1 a|V5 a| | | | |
7.#7 V4 Use * Keep r0 |V4 i| | | |V0 a|V3 a|V2 a|V1 a|V5 a| | | | |
8.#8 I15 Def Alloc r9 | | | | |V0 a|V3 a|V2 a|V1 a|V5 a|I15a| | | |
9.#9 I15 Use * Keep r9 | | | | |V0 a|V3 a|V2 a|V1 a|V5 a|I15i| | | |
10.#10 V14 Def Alloc r9 | | | | |V0 a|V3 a|V2 a|V1 a|V5 a|V14a| | | |
15.#11 V14 Use Keep r9 | | | | |V0 a|V3 a|V2 a|V1 a|V5 a|V14a| | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |r0 |r1 |r2 |r3 |r4 |r5 |r6 |r7 |r8 |r9 |r10 |r12 |lr |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
19.#12 BB2 PredBB1 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
24.#13 I16 Def Alloc r0 |I16a| | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
25.#14 I16 Use * Keep r0 |I16i| | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
26.#15 I17 Def Alloc r0 |I17a| | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
27.#16 I17 Use * Keep r0 |I17i| | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
28.#17 V17 Def Alloc r0 |V17a| | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
35.#18 V17 Use Keep r0 |V17a| | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
36.#19 I18 Def Alloc r10 |V17a| | | |V0 a|V3 a| |V1 a|V5 a|V14a|I18a| | |
37.#20 V17 Use * Keep r0 |V17i| | | |V0 a|V3 a| |V1 a|V5 a|V14a|I18a| | |
38.#21 V15 Def Alloc r6 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|I18a| | |
39.#22 I18 Use * Keep r10 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|I18i| | |
40.#23 V16 Def Alloc r10 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
44.#24 I19 Def Alloc r0 |I19a| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
45.#25 I19 Use * Keep r0 |I19i| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
46.#26 I20 Def Alloc r0 |I20a| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
47.#27 I20 Use * Keep r0 |I20i| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
48.#28 V13 Def Alloc r0 |V13a| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
50.#29 C21 Def Alloc r1 |V13a|C21a| | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
55.#30 V13 Use Keep r0 |V13a|C21a| | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
56.#31 I22 Def Alloc r2 |V13a|C21a|I22a| |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
57.#32 C21 Use * Keep r1 |V13a|C21i|I22a| |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
57.#33 I22 Use * Keep r2 |V13a| |I22i| |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
63.#34 V13 Use * Keep r0 |V13i| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
64.#35 I23 Def Alloc r0 |I23a| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
65.#36 I23 Use * Keep r0 |I23i| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
66.#37 V2 Def Alloc r3 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
Spill r3 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
70.#38 I24 Def Alloc r0 |I24a| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
71.#39 I24 Use * Keep r0 |I24i| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
72.#40 I25 Def Alloc lr | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| |I25a|
73.#41 I25 Use * Keep lr | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| |I25i|
74.#42 V9 Def Alloc lr | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| |V9 a|
77.#43 r0 Fixd Keep r0 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| |V9 a|
77.#44 V9 Use Copy r0 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| |V9 i|
Spill lr | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| |V9 i|
78.#45 r0 Fixd Keep r0 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
78.#46 I26 Def Alloc r0 |I26a| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
80.#47 C27 Def Alloc r1 |I26a|C27a| | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
81.#48 r1 Fixd Keep r1 |I26a|C27a| | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
81.#49 C27 Use * Keep r1 |I26a|C27i| | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
82.#50 r1 Fixd Keep r1 |I26a| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
82.#51 I28 Def Alloc r1 |I26a|I28a| | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
84.#52 C29 Def Alloc r2 |I26a|I28a|C29a| |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
85.#53 r2 Fixd Keep r2 |I26a|I28a|C29a| |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
85.#54 C29 Use * Keep r2 |I26a|I28a|C29i| |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
86.#55 r2 Fixd Keep r2 |I26a|I28a| | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
86.#56 I30 Def Alloc r2 |I26a|I28a|I30a| |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
88.#57 C31 Def Alloc r12 |I26a|I28a|I30a| |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|C31a| |
89.#58 r0 Fixd Keep r0 |I26a|I28a|I30a| |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|C31a| |
89.#59 I26 Use * Keep r0 |I26i|I28a|I30a| |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|C31a| |
89.#60 r1 Fixd Keep r1 | |I28a|I30a| |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|C31a| |
89.#61 I28 Use * Keep r1 | |I28i|I30a| |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|C31a| |
89.#62 r2 Fixd Keep r2 | | |I30a| |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|C31a| |
89.#63 I30 Use * Keep r2 | | |I30i| |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|C31a| |
89.#64 C31 Use * Keep r12 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a|C31i| |
90.#65 r0 Kill Keep r0 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#66 r1 Kill Keep r1 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#67 r2 Kill Keep r2 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#68 r3 Kill Keep r3 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#69 r12 Kill Keep r12 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#70 lr Kill Keep lr | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#71 f0 Kill Keep f0 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#72 f1 Kill Keep f1 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#73 f2 Kill Keep f2 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#74 f3 Kill Keep f3 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#75 f4 Kill Keep f4 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#76 f5 Kill Keep f5 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#77 f6 Kill Keep f6 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#78 f7 Kill Keep f7 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#79 f8 Kill Keep f8 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#80 f9 Kill Keep f9 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#81 f10 Kill Keep f10 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#82 f11 Kill Keep f11 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#83 f12 Kill Keep f12 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#84 f13 Kill Keep f13 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#85 f14 Kill Keep f14 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#86 f15 Kill Keep f15 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#87 r0 Fixd Keep r0 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
90.#88 I32 Def Alloc r0 |I32a| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
91.#89 I32 Use * Keep r0 |I32i| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
92.#90 V10 Def Alloc r0 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
Spill r0 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
95.#91 r0 Fixd Keep r0 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
95.#92 V9 Use * ReLod r0 |V9 a| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
Keep r0 |V9 i| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
96.#93 r0 Fixd Keep r0 | | | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
96.#94 I33 Def Alloc r0 |I33a| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
99.#95 r2 Fixd Keep r2 |I33a| | | |V0 a|V3 a|V15a|V1 a|V5 a|V14a|V16a| | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |r0 |r1 |r2 |r3 |r4 |r5 |r6 |r7 |r8 |r9 |r10 |r12 |lr |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
99.#96 V15 Use * Copy r2 |I33a| |V15i| |V0 a|V3 a|V15i|V1 a|V5 a|V14a|V16a| | |
100.#97 r2 Fixd Keep r2 |I33a| | | |V0 a|V3 a| |V1 a|V5 a|V14a|V16a| | |
100.#98 I34 Def Alloc r2 |I33a| |I34a| |V0 a|V3 a| |V1 a|V5 a|V14a|V16a| | |
103.#99 r3 Fixd Keep r3 |I33a| |I34a| |V0 a|V3 a| |V1 a|V5 a|V14a|V16a| | |
103.#100 V16 Use * Copy r3 |I33a| |I34a|V16i|V0 a|V3 a| |V1 a|V5 a|V14a|V16i| | |
104.#101 r3 Fixd Keep r3 |I33a| |I34a| |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
104.#102 I35 Def Alloc r3 |I33a| |I34a|I35a|V0 a|V3 a| |V1 a|V5 a|V14a| | | |
109.#103 r0 Fixd Keep r0 |I33a| |I34a|I35a|V0 a|V3 a| |V1 a|V5 a|V14a| | | |
109.#104 I33 Use * Keep r0 |I33i| |I34a|I35a|V0 a|V3 a| |V1 a|V5 a|V14a| | | |
109.#105 r2 Fixd Keep r2 | | |I34a|I35a|V0 a|V3 a| |V1 a|V5 a|V14a| | | |
109.#106 I34 Use * Keep r2 | | |I34i|I35a|V0 a|V3 a| |V1 a|V5 a|V14a| | | |
109.#107 r3 Fixd Keep r3 | | | |I35a|V0 a|V3 a| |V1 a|V5 a|V14a| | | |
109.#108 I35 Use * Keep r3 | | | |I35i|V0 a|V3 a| |V1 a|V5 a|V14a| | | |
109.#109 V10 Use * ReLod r1 | |V10a| | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
Keep r1 | |V10i| | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
110.#110 r0 Kill Keep r0 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
110.#111 r1 Kill Keep r1 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
110.#112 r2 Kill Keep r2 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
110.#113 r3 Kill Keep r3 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
110.#114 r12 Kill Keep r12 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
110.#115 lr Kill Keep lr | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
114.#116 I36 Def Alloc r0 |I36a| | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
115.#117 I36 Use * Keep r0 |I36i| | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
116.#118 I37 Def Alloc r6 | | | | |V0 a|V3 a|I37a|V1 a|V5 a|V14a| | | |
117.#119 I37 Use * Keep r6 | | | | |V0 a|V3 a|I37i|V1 a|V5 a|V14a| | | |
118.#120 V11 Def Alloc r6 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
121.#121 r0 Fixd Keep r0 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
121.#122 V11 Use Copy r0 |V11a| | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
122.#123 r0 Fixd Keep r0 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
122.#124 I38 Def Alloc r0 |I38a| | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
124.#125 C39 Def Alloc r1 |I38a|C39a| | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
125.#126 r1 Fixd Keep r1 |I38a|C39a| | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
125.#127 C39 Use * Keep r1 |I38a|C39i| | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
126.#128 r1 Fixd Keep r1 |I38a| | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
126.#129 I40 Def Alloc r1 |I38a|I40a| | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
128.#130 C41 Def Alloc r2 |I38a|I40a|C41a| |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
129.#131 r2 Fixd Keep r2 |I38a|I40a|C41a| |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
129.#132 C41 Use * Keep r2 |I38a|I40a|C41i| |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
130.#133 r2 Fixd Keep r2 |I38a|I40a| | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
130.#134 I42 Def Alloc r2 |I38a|I40a|I42a| |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
132.#135 C43 Def Alloc r3 |I38a|I40a|I42a|C43a|V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
133.#136 r0 Fixd Keep r0 |I38a|I40a|I42a|C43a|V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
133.#137 I38 Use * Keep r0 |I38i|I40a|I42a|C43a|V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
133.#138 r1 Fixd Keep r1 | |I40a|I42a|C43a|V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
133.#139 I40 Use * Keep r1 | |I40i|I42a|C43a|V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
133.#140 r2 Fixd Keep r2 | | |I42a|C43a|V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
133.#141 I42 Use * Keep r2 | | |I42i|C43a|V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
133.#142 C43 Use * Keep r3 | | | |C43i|V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#143 r0 Kill Keep r0 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#144 r1 Kill Keep r1 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#145 r2 Kill Keep r2 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#146 r3 Kill Keep r3 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#147 r12 Kill Keep r12 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#148 lr Kill Keep lr | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#149 f0 Kill Keep f0 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#150 f1 Kill Keep f1 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#151 f2 Kill Keep f2 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#152 f3 Kill Keep f3 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#153 f4 Kill Keep f4 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#154 f5 Kill Keep f5 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#155 f6 Kill Keep f6 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#156 f7 Kill Keep f7 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#157 f8 Kill Keep f8 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#158 f9 Kill Keep f9 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#159 f10 Kill Keep f10 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#160 f11 Kill Keep f11 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#161 f12 Kill Keep f12 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#162 f13 Kill Keep f13 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#163 f14 Kill Keep f14 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#164 f15 Kill Keep f15 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#165 r0 Fixd Keep r0 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
134.#166 I44 Def Alloc r0 |I44a| | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
135.#167 I44 Use * Keep r0 |I44i| | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
136.#168 V12 Def Alloc r0 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
Spill r0 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
139.#169 r0 Fixd Keep r0 | | | | |V0 a|V3 a|V11a|V1 a|V5 a|V14a| | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |r0 |r1 |r2 |r3 |r4 |r5 |r6 |r7 |r8 |r9 |r10 |r12 |lr |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
139.#170 V11 Use * Copy r0 |V11i| | | |V0 a|V3 a|V11i|V1 a|V5 a|V14a| | | |
140.#171 r0 Fixd Keep r0 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
140.#172 I45 Def Alloc r0 |I45a| | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
143.#173 r1 Fixd Keep r1 |I45a| | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
143.#174 V2 Use * ReLod r1 |I45a|V2 a| | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
Keep r1 |I45a|V2 i| | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
144.#175 r1 Fixd Keep r1 |I45a| | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
144.#176 I46 Def Alloc r1 |I45a|I46a| | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
147.#177 r0 Fixd Keep r0 |I45a|I46a| | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
147.#178 I45 Use * Keep r0 |I45i|I46a| | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
147.#179 r1 Fixd Keep r1 | |I46a| | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
147.#180 I46 Use * Keep r1 | |I46i| | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
147.#181 V12 Use * ReLod r3 | | | |V12a|V0 a|V3 a| |V1 a|V5 a|V14a| | | |
Keep r3 | | | |V12i|V0 a|V3 a| |V1 a|V5 a|V14a| | | |
148.#182 r0 Kill Keep r0 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
148.#183 r1 Kill Keep r1 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
148.#184 r2 Kill Keep r2 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
148.#185 r3 Kill Keep r3 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
148.#186 r12 Kill Keep r12 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
148.#187 lr Kill Keep lr | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |r0 |r1 |r2 |r3 |r4 |r5 |r6 |r7 |r8 |r9 |r10 |r12 |lr |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
149.#188 BB3 PredBB1 | | | | |V0 a|V3 a| |V1 a|V5 a|V14a| | | |
157.#189 V14 Use * Keep r9 | | | | |V0 a|V3 a| |V1 a|V5 a|V14i| | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |r0 |r1 |r2 |r3 |r4 |r5 |r6 |r7 |r8 |r9 |r10 |r12 |lr |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
161.#190 BB4 PredBB3 | | | | |V0 a|V3 a| |V1 a|V5 a| | | | |
166.#191 C47 Def Alloc r0 |C47a| | | |V0 a|V3 a| |V1 a|V5 a| | | | |
171.#192 V0 Use * Keep r4 |C47a| | | |V0 i|V3 a| |V1 a|V5 a| | | | |
172.#193 I48 Def Alloc r3 |C47a| | |I48a| |V3 a| |V1 a|V5 a| | | | |
173.#194 C47 Use * Keep r0 |C47i| | |I48a| |V3 a| |V1 a|V5 a| | | | |
173.#195 I48 Use * Keep r3 | | | |I48i| |V3 a| |V1 a|V5 a| | | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |r0 |r1 |r2 |r3 |r4 |r5 |r6 |r7 |r8 |r9 |r10 |r12 |lr |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
175.#196 BB5 PredBB3 | | | | | |V3 a| |V1 a|V5 a| | | | |
180.#197 C49 Def Alloc r0 |C49a| | | | |V3 a| |V1 a|V5 a| | | | |
185.#198 V5 Use Keep r8 |C49a| | | | |V3 a| |V1 a|V5 a| | | | |
186.#199 I50 Def Alloc r3 |C49a| | |I50a| |V3 a| |V1 a|V5 a| | | | |
187.#200 C49 Use * Keep r0 |C49i| | |I50a| |V3 a| |V1 a|V5 a| | | | |
187.#201 I50 Use * Keep r3 | | | |I50i| |V3 a| |V1 a|V5 a| | | | |
195.#202 V5 Use * Keep r8 | | | | | |V3 a| |V1 a|V5 i| | | | |
195.#203 V3 Use * Keep r5 | | | | | |V3 i| |V1 a| | | | | |
201.#204 V1 Use * Keep r7 | | | | | | | |V1 i| | | | | |
202.#205 I51 Def Alloc r0 |I51a| | | | | | | | | | | | |
203.#206 r0 Fixd Keep r0 |I51a| | | | | | | | | | | | |
203.#207 I51 Use * Keep r0 |I51i| | | | | | | | | | | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |r0 |r1 |r2 |r3 |r4 |r5 |r6 |r7 |r8 |r9 |r10 |r12 |lr |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+
205.#208 BB6 PredBB5 | | | | | | | | | | | | | |
208.#209 C52 Def Alloc r3 | | | |C52a| | | | | | | | | |
209.#210 C52 Use * Keep r3 | | | |C52i| | | | | | | | | |
210.#211 r0 Kill Keep r0 | | | | | | | | | | | | | |
210.#212 r1 Kill Keep r1 | | | | | | | | | | | | | |
210.#213 r2 Kill Keep r2 | | | | | | | | | | | | | |
210.#214 r3 Kill Keep r3 | | | | | | | | | | | | | |
210.#215 r12 Kill Keep r12 | | | | | | | | | | | | | |
210.#216 lr Kill Keep lr | | | | | | | | | | | | | |
210.#217 f0 Kill Keep f0 | | | | | | | | | | | | | |
210.#218 f1 Kill Keep f1 | | | | | | | | | | | | | |
210.#219 f2 Kill Keep f2 | | | | | | | | | | | | | |
210.#220 f3 Kill Keep f3 | | | | | | | | | | | | | |
210.#221 f4 Kill Keep f4 | | | | | | | | | | | | | |
210.#222 f5 Kill Keep f5 | | | | | | | | | | | | | |
210.#223 f6 Kill Keep f6 | | | | | | | | | | | | | |
210.#224 f7 Kill Keep f7 | | | | | | | | | | | | | |
210.#225 f8 Kill Keep f8 | | | | | | | | | | | | | |
210.#226 f9 Kill Keep f9 | | | | | | | | | | | | | |
210.#227 f10 Kill Keep f10 | | | | | | | | | | | | | |
210.#228 f11 Kill Keep f11 | | | | | | | | | | | | | |
210.#229 f12 Kill Keep f12 | | | | | | | | | | | | | |
210.#230 f13 Kill Keep f13 | | | | | | | | | | | | | |
210.#231 f14 Kill Keep f14 | | | | | | | | | | | | | |
210.#232 f15 Kill Keep f15 | | | | | | | | | | | | | |
Recording the maximum number of concurrent spills:
----------
LSRA Stats
----------
BB02 [ 50]: SpillCount = 4, ResolutionMovs = 0, SplitEdges = 0, CopyReg = 0
Total Tracked Vars: 15
Total Reg Cand Vars: 15
Total number of Intervals: 52
Total number of RefPositions: 232
Total Spill Count: 4 Weighted: 200
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: V00(r0=>r4) V03(r3=>r5) V02(r2=>r6) V01(r1=>r7) V05(STK=>r8) V04(STK=>r0)
BB01 [000..004) -> BB03 (cond), preds={} succs={BB02,BB03}
=====
N003. IL_OFFSET IL offset: 0x0 REG NA
N005. V04(r0*)
N007. r9 = CAST ; r0*
* N009. V14(r9); r9
N011. V14(r9)
N013. CNS_INT 0 REG NA
N015. EQ ; r9
N017. JTRUE
Var=Reg end of BB01: V00=r4 V14=r9 V03=r5 V01=r7 V05=r8
BB02 [004..02C), preds={BB01} succs={BB03}
=====
Predecessor for variable locations: BB01
Var=Reg beg of BB02: V00=r4 V14=r9 V03=r5 V01=r7 V05=r8
N021. IL_OFFSET IL offset: 0x4 REG NA
N023. r0 = CLS_VAR_ADDR Hnd=0x9247f8 REG r0
N025. r0 = IND ; r0
* N027. V17(r0); r0
N029. V17(r0*)
N031. V17(r0)
N033. CNS_INT 31 REG NA
N035. r10 = RSH ; r0
* N037. V15(r6); r0*
* N039. V16(r10); r10
N041. IL_OFFSET IL offset: 0xb REG NA
N043. r0 = CLS_VAR_ADDR Hnd=0x924808 REG r0
N045. r0 = IND ; r0
* N047. V13(r0); r0
N049. r1 = CNS_INT 0 REG r1
N051. V13(r0)
N053. STK = LEA(b+4) ; r0
N055. r2 = IND ; STK
N057. ARR_BOUNDS_CHECK_Rng; r1,r2
N059. V13(r0*)
N061. STK = LEA(b+8) ; r0*
N063. r0 = IND ; STK
N065. V02(STK); r0
N067. IL_OFFSET IL offset: 0x16 REG NA
N069. r0 = CLS_VAR_ADDR Hnd=0x9247d8 REG r0
N071. lr = IND ; r0
* N073. V09(lr); lr
S N075. V09(lr)
N077. r0 = PUTARG_REG; lr
N079. r1 = CNS_INT(h) 0x924994 token REG r1
N081. r1 = PUTARG_REG; r1
N083. r2 = CNS_INT(h) 0x924B10 token REG r2
N085. r2 = PUTARG_REG; r2
N087. r12 = CNS_INT(h) 0xFDA55A0 ftn REG r12
N089. r0 = CALL help; r0,r1,r2,r12
N091. V10(STK); r0
N093. V09(r0*)R
N095. r0 = PUTARG_REG; r0*
N097. V15(r6*)
N099. r2 = PUTARG_REG; r6*
N101. V16(r10*)
N103. r3 = PUTARG_REG; r10*
N105. STK = FIELD_LIST; r2,r3
N107. V10(r1*)R
N109. CALL ind ; r0,STK,STK,r1*
N111. IL_OFFSET IL offset: 0x21 REG NA
N113. r0 = CLS_VAR_ADDR Hnd=0x9247d8 REG r0
N115. r6 = IND ; r0
* N117. V11(r6); r6
N119. V11(r6)
N121. r0 = PUTARG_REG; r6
N123. r1 = CNS_INT(h) 0x924994 token REG r1
N125. r1 = PUTARG_REG; r1
N127. r2 = CNS_INT(h) 0x924B74 token REG r2
N129. r2 = PUTARG_REG; r2
N131. r3 = CNS_INT(h) 0xFDA55A0 ftn REG r3
N133. r0 = CALL help; r0,r1,r2,r3
N135. V12(STK); r0
N137. V11(r6*)
N139. r0 = PUTARG_REG; r6*
N141. V02(r1*)R
N143. r1 = PUTARG_REG; r1*
N145. V12(r3*)R
N147. CALL ind ; r0,r1,r3*
Var=Reg end of BB02: V00=r4 V14=r9 V03=r5 V01=r7 V05=r8
BB03 [02C..030) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05}
=====
Predecessor for variable locations: BB01
Var=Reg beg of BB03: V00=r4 V14=r9 V03=r5 V01=r7 V05=r8
N151. IL_OFFSET IL offset: 0x2c REG NA
N153. V14(r9*)
N155. CNS_INT 0 REG NA
N157. NE ; r9*
N159. JTRUE
Var=Reg end of BB03: V00=r4 V03=r5 V01=r7 V05=r8
BB04 [030..034), preds={BB03} succs={BB05}
=====
Predecessor for variable locations: BB03
Var=Reg beg of BB04: V00=r4 V03=r5 V01=r7 V05=r8
N163. IL_OFFSET IL offset: 0x30 REG NA
N165. r0 = CNS_INT 0 REG r0
N167. V00(r4*)
N169. STK = LEA(b+4) ; r4*
N171. r3 = IND ; STK
N173. ARR_BOUNDS_CHECK_Rng; r0,r3
Var=Reg end of BB04: V03=r5 V01=r7 V05=r8
BB05 [034..03B) (return), preds={BB03,BB04} succs={}
=====
Predecessor for variable locations: BB03
Var=Reg beg of BB05: V03=r5 V01=r7 V05=r8
N177. IL_OFFSET IL offset: 0x34 REG NA
N179. r0 = CNS_INT 0 REG r0
N181. V05(r8)
N183. STK = LEA(b+4) ; r8
N185. r3 = IND ; STK
N187. ARR_BOUNDS_CHECK_Rng; r0,r3
N189. V05(r8*)
N191. STK = LEA(b+8) ; r8*
N193. V03(r5*)
N195. STOREIND ; STK,r5*
N197. IL_OFFSET IL offset: 0x39 REG NA
N199. V01(r7*)
N201. r0 = CAST ; r7*
N203. RETURN ; r0
Var=Reg end of BB05: none
BB06 [???..???) (throw), preds={} succs={}
=====
Predecessor for variable locations: BB05
Var=Reg beg of BB06: none
N207. r3 = CNS_INT(h) 0xFDA7BB0 ftn REG r3
N209. CALL help; r3
Var=Reg end of BB06: none
*************** In genGenerateCode()
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..004)-> BB03 ( cond ) i label target LIR
BB02 [0001] 1 BB01 0.50 [004..02C) i gcsafe LIR
BB03 [0002] 2 BB01,BB02 1 [02C..030)-> BB05 ( cond ) i label target LIR
BB04 [0003] 1 BB03 0.50 [030..034) i idxlen LIR
BB05 [0004] 2 BB03,BB04 1 [034..03B) (return) i label target idxlen LIR
BB06 [0005] 0 0 [???..???) (throw ) keep i internal rare label target LIR
--------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
Finalizing stack frame
Recording Var Locations at start of BB01
V00(r4) V03(r5) V01(r7) V05(r8) V04(r0)
Modified regs: [r0-r10 r12 lr f0-f15]
Callee-saved registers pushed: 9 [r4-r11 lr]
*************** In lvaAssignFrameOffsets(FINAL_FRAME_LAYOUT)
Assign V02 arg2, size=4, stkOffs=-0x2c
Assign V10 tmp2, size=4, stkOffs=-0x30
Assign V12 tmp4, size=4, stkOffs=-0x34
Assign V09 tmp1, size=4, stkOffs=-0x38
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 5, 3.50) ref -> r4 class-hnd
; V01 arg1 [V01,T05] ( 3, 3 ) ushort -> r7
; V02 arg2 [V02,T04] ( 5, 3.50) ushort -> [sp+0x0C]
; V03 arg3 [V03,T03] ( 4, 4 ) ubyte -> r5
; V04 arg4 [V04,T10] ( 2, 2 ) bool -> r0
; V05 arg5 [V05,T06] ( 4, 4 ) ref -> r8 class-hnd
;* V06 loc0 [V06 ] ( 0, 0 ) long -> zero-ref
;* V07 loc1 [V07 ] ( 0, 0 ) ushort -> zero-ref
;# V08 OutArgs [V08 ] ( 1, 1 ) lclBlk ( 0) [sp+0x00]
; V09 tmp1 [V09,T07] ( 3, 3 ) ref -> [sp+0x00]
; V10 tmp2 [V10,T11] ( 2, 2 ) int -> [sp+0x08]
; V11 tmp3 [V11,T08] ( 3, 3 ) ref -> r6
; V12 tmp4 [V12,T12] ( 2, 2 ) int -> [sp+0x04]
; V13 tmp5 [V13,T01] ( 6, 6 ) ref -> r0
; V14 cse0 [V14,T02] ( 6, 6 ) int -> r9
; V15 rat0 [V15,T13] ( 2, 1 ) int -> r6 V06.lo(offs=0x00)
; V16 rat1 [V16,T14] ( 2, 1 ) int -> r10 V06.hi(offs=0x04)
; V17 rat2 [V17,T09] ( 3, 3 ) int -> r0
;
; Lcl frame size = 20
=============== Generating BB01 [000..004) -> BB03 (cond), preds={} succs={BB02,BB03} flags=0x00000000.40030020: i label target LIR
BB01 IN (5)={V00 V03 V01 V05 V04} + ByrefExposed + GcHeap
OUT(5)={V00 V14 V03 V01 V05 } + ByrefExposed + GcHeap
Recording Var Locations at start of BB01
V00(r4) V03(r5) V01(r7) V05(r8) V04(r0)
Change life 00000000 {} -> 00000469 {V00 V01 V03 V04 V05}
V00 in reg r4 is becoming live [------]
Live regs: 0000 {} => 0010 {r4}
V03 in reg r5 is becoming live [------]
Live regs: 0010 {r4} => 0030 {r4 r5}
V01 in reg r7 is becoming live [------]
Live regs: 0030 {r4 r5} => 00B0 {r4 r5 r7}
V05 in reg r8 is becoming live [------]
Live regs: 00B0 {r4 r5 r7} => 01B0 {r4 r5 r7 r8}
V04 in reg r0 is becoming live [------]
Live regs: 01B0 {r4 r5 r7 r8} => 01B1 {r0 r4 r5 r7 r8}
Live regs: (unchanged) 01B1 {r0 r4 r5 r7 r8}
GC regs: (unchanged) 0110 {r4 r8}
Byref regs: (unchanged) 0000 {}
L_M58754_BB01:
Label: IG02, GCvars=00000000 {}, gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}
Setting stack level from -572662307 to 0
Scope info: begin block BB01, IL range [000..004)
Scope info: open scopes =
0 (V00 arg0) [000..03B)
3 (V03 arg3) [000..03B)
1 (V01 arg1) [000..03B)
5 (V05 arg5) [000..03B)
4 (V04 arg4) [000..03B)
Added IP mapping: 0x0000 STACK_EMPTY (G_M58754_IG02,ins#0,ofs#0) label
Generating: N003 ( 8, 8) [000005] ------------- IL_OFFSET void IL offset: 0x0 REG NA
Generating: N005 ( 2, 2) [000001] ------------- t1 = LCL_VAR int V04 arg4 u:2 r0 (last use) REG r0 $140
/--* t1 int
Generating: N007 ( 3, 3) [000085] ----------S-- t85 = * CAST int <- bool <- int REG r9 $200
V04 in reg r0 is becoming dead [000001]
Live regs: 01B1 {r0 r4 r5 r7 r8} => 01B0 {r4 r5 r7 r8}
Live vars: {V00 V01 V03 V04 V05} => {V00 V01 V03 V05}
IN0001: uxtb r9, r0
/--* t85 int
Generating: N009 ( 3, 3) [000143] DA----------- * STORE_LCL_VAR int V14 cse0 r9 REG r9
V14 in reg r9 is becoming live [000143]
Live regs: 01B0 {r4 r5 r7 r8} => 03B0 {r4 r5 r7 r8 r9}
Live vars: {V00 V01 V03 V05} => {V00 V01 V03 V05 V14}
Generating: N011 ( 1, 1) [000144] ------------- t144 = LCL_VAR int V14 cse0 r9 REG r9 $200
Generating: N013 ( 1, 1) [000002] -c----------- t2 = CNS_INT int 0 REG NA $40
/--* t144 int
+--* t2 int
Generating: N015 ( 6, 6) [000003] J------N--S-- * EQ void REG NA $201
IN0002: cmp r9, 0
Generating: N017 ( 8, 8) [000004] ------------- * JTRUE void REG NA
IN0003: beq L_M58754_BB03
Scope info: end block BB01, IL range [000..004)
Scope info: open scopes =
0 (V00 arg0) [000..03B)
3 (V03 arg3) [000..03B)
1 (V01 arg1) [000..03B)
5 (V05 arg5) [000..03B)
=============== Generating BB02 [004..02C), preds={BB01} succs={BB03} flags=0x00000000.40080020: i gcsafe LIR
BB02 IN (5)={V00 V14 V03 V01 V05} + ByrefExposed + GcHeap
OUT(5)={V00 V14 V03 V01 V05} + ByrefExposed + GcHeap
Recording Var Locations at start of BB02
V00(r4) V14(r9) V03(r5) V01(r7) V05(r8)
Liveness not changing: 0000006D {V00 V01 V03 V05 V14}
Live regs: 0000 {} => 03B0 {r4 r5 r7 r8 r9}
GC regs: 0000 {} => 0110 {r4 r8}
Byref regs: (unchanged) 0000 {}
L_M58754_BB02:
Scope info: begin block BB02, IL range [004..02C)
Scope info: open scopes =
0 (V00 arg0) [000..03B)
3 (V03 arg3) [000..03B)
1 (V01 arg1) [000..03B)
5 (V05 arg5) [000..03B)
Added IP mapping: 0x0004 STACK_EMPTY (G_M58754_IG02,ins#3,ofs#14) label
Generating: N021 ( 14, 17) [000034] ------------- IL_OFFSET void IL offset: 0x4 REG NA
Generating: N023 ( 6, 10) [000030] ----G-------- t30 = CLS_VAR_ADDR byref Hnd=0x9247f8 REG r0
IN0004: movw r0, 0x408c
IN0005: movt r0, 0x92
Byref regs: 0000 {} => 0001 {r0}
/--* t30 byref
Generating: N025 (???,???) [000148] ----G-------- t148 = * IND int REG r0
Byref regs: 0001 {r0} => 0000 {}
IN0006: ldr r0, [r0]
/--* t148 int
Generating: N027 (???,???) [000164] DA--G-------- * STORE_LCL_VAR int V17 rat2 r0 REG r0
V17 in reg r0 is becoming live [000164]
Live regs: 03B0 {r4 r5 r7 r8 r9} => 03B1 {r0 r4 r5 r7 r8 r9}
Live vars: {V00 V01 V03 V05 V14} => {V00 V01 V03 V05 V14 V17}
Generating: N029 (???,???) [000165] ------------- t165 = LCL_VAR int V17 rat2 r0 (last use) REG r0
Generating: N031 (???,???) [000166] ------------- t166 = LCL_VAR int V17 rat2 r0 REG r0
Generating: N033 (???,???) [000167] -c----------- t167 = CNS_INT int 31 REG NA
/--* t166 int
+--* t167 int
Generating: N035 (???,???) [000168] ------------- t168 = * RSH int REG r10
IN0007: asr r10, r0, 31
/--* t165 int
Generating: N037 ( 14, 17) [000033] DA--G-------- * STORE_LCL_VAR int V15 rat0 r6 REG r6
V17 in reg r0 is becoming dead [000165]
Live regs: 03B1 {r0 r4 r5 r7 r8 r9} => 03B0 {r4 r5 r7 r8 r9}
Live vars: {V00 V01 V03 V05 V14 V17} => {V00 V01 V03 V05 V14}
IN0008: mov r6, r0
V15 in reg r6 is becoming live [000033]
Live regs: 03B0 {r4 r5 r7 r8 r9} => 03F0 {r4 r5 r6 r7 r8 r9}
Live vars: {V00 V01 V03 V05 V14} => {V00 V01 V03 V05 V14 V15}
/--* t168 int
Generating: N039 (???,???) [000170] D------------ * STORE_LCL_VAR int V16 rat1 r10 REG r10
V16 in reg r10 is becoming live [000170]
Live regs: 03F0 {r4 r5 r6 r7 r8 r9} => 07F0 {r4 r5 r6 r7 r8 r9 r10}
Live vars: {V00 V01 V03 V05 V14 V15} => {V00 V01 V03 V05 V14 V15 V16}
Added IP mapping: 0x000B STACK_EMPTY (G_M58754_IG02,ins#8,ofs#30)
Generating: N041 ( 19, 24) [000040] ------------- IL_OFFSET void IL offset: 0xb REG NA
Generating: N043 ( 6, 10) [000035] ----G-------- t35 = CLS_VAR_ADDR byref Hnd=0x924808 REG r0
IN0009: movw r0, 0x1cb4
IN000a: movt r0, 0x5fd
Byref regs: 0000 {} => 0001 {r0}
/--* t35 byref
Generating: N045 (???,???) [000149] ----G-------- t149 = * IND ref REG r0
Byref regs: 0001 {r0} => 0000 {}
IN000b: ldr r0, [r0]
GC regs: 0110 {r4 r8} => 0111 {r0 r4 r8}
/--* t149 ref
Generating: N047 ( 6, 10) [000087] DA--G-------- * STORE_LCL_VAR ref V13 tmp5 d:3 r0 REG r0
GC regs: 0111 {r0 r4 r8} => 0110 {r4 r8}
V13 in reg r0 is becoming live [000087]
Live regs: 07F0 {r4 r5 r6 r7 r8 r9 r10} => 07F1 {r0 r4 r5 r6 r7 r8 r9 r10}
Live vars: {V00 V01 V03 V05 V14 V15 V16} => {V00 V01 V03 V05 V13 V14 V15 V16}
GC regs: 0110 {r4 r8} => 0111 {r0 r4 r8}
Generating: N049 ( 1, 1) [000036] ------------- t36 = CNS_INT int 0 REG r1 $40
IN000c: movs r1, 0
Generating: N051 ( 1, 1) [000088] ------------- t88 = LCL_VAR ref V13 tmp5 u:3 r0 REG r0 <l:$340, c:$380>
/--* t88 ref
Generating: N053 (???,???) [000173] -c----------- t173 = * LEA(b+4) byref REG NA
/--* t173 byref
Generating: N055 ( 3, 3) [000091] ---X--------- t91 = * IND int REG r2 <l:$3c1, c:$3c0>
IN000d: ldr r2, [r0+4]
/--* t36 int
+--* t91 int
Generating: N057 ( 8, 11) [000092] ---X--------- * ARR_BOUNDS_CHECK_Rng void <l:$346, c:$345>
IN000e: cmp r1, r2
IN000f: bhs L_M58754_BB06
Generating: N059 ( 1, 1) [000089] ------------- t89 = LCL_VAR ref V13 tmp5 u:3 r0 (last use) REG r0 <l:$340, c:$380>
/--* t89 ref
Generating: N061 (???,???) [000174] -c----------- t174 = * LEA(b+8) byref REG NA
/--* t174 byref
Generating: N063 ( 5, 3) [000037] a---GO------- t37 = * IND ushort REG r0 <l:$203, c:$4c0>
V13 in reg r0 is becoming dead [000089]
Live regs: 07F1 {r0 r4 r5 r6 r7 r8 r9 r10} => 07F0 {r4 r5 r6 r7 r8 r9 r10}
Live vars: {V00 V01 V03 V05 V13 V14 V15 V16} => {V00 V01 V03 V05 V14 V15 V16}
GC regs: 0111 {r0 r4 r8} => 0110 {r4 r8}
IN0010: ldrh r0, [r0+8]
/--* t37 ushort
Generating: N065 ( 19, 24) [000039] DA-XGO------- * STORE_LCL_VAR ushort V02 arg2 d:3 NA REG NA
IN0011: strh r0, [sp+0x0c] // [V02 arg2]
Live vars: {V00 V01 V03 V05 V14 V15 V16} => {V00 V01 V02 V03 V05 V14 V15 V16}
Added IP mapping: 0x0016 STACK_EMPTY (G_M58754_IG02,ins#17,ofs#58)
Generating: N067 ( 6, 10) [000050] ------------- IL_OFFSET void IL offset: 0x16 REG NA
Generating: N069 ( 6, 10) [000045] ----G-------- t45 = CLS_VAR_ADDR byref Hnd=0x9247d8 REG r0
IN0012: movw r0, 0x1cac
IN0013: movt r0, 0x5fd
Byref regs: 0000 {} => 0001 {r0}
/--* t45 byref
Generating: N071 (???,???) [000150] ----G-------- t150 = * IND ref REG lr
Byref regs: 0001 {r0} => 0000 {}
IN0014: ldr lr, [r0]
GC regs: 0110 {r4 r8} => 4110 {r4 r8 lr}
/--* t150 ref
Generating: N073 ( 6, 10) [000049] DA--G-------- * STORE_LCL_VAR ref V09 tmp1 d:3 lr REG lr
GC regs: 4110 {r4 r8 lr} => 0110 {r4 r8}
V09 in reg lr is becoming live [000049]
Live regs: 07F0 {r4 r5 r6 r7 r8 r9 r10} => 47F0 {r4 r5 r6 r7 r8 r9 r10 lr}
Live vars: {V00 V01 V02 V03 V05 V14 V15 V16} => {V00 V01 V02 V03 V05 V09 V14 V15 V16}
GC regs: 0110 {r4 r8} => 4110 {r4 r8 lr}
Generating: N075 ( 1, 1) [000052] ------------Z t52 = LCL_VAR ref V09 tmp1 u:3 lr REG lr <l:$349, c:$382>
/--* t52 ref
Generating: N077 (???,???) [000175] ------------- t175 = * PUTARG_REG ref REG r0
IN0015: str lr, [sp] // [V09 tmp1]
V09 in reg lr is becoming dead [000052]
Live regs: 47F0 {r4 r5 r6 r7 r8 r9 r10 lr} => 07F0 {r4 r5 r6 r7 r8 r9 r10}
GC regs: 4110 {r4 r8 lr} => 0110 {r4 r8}
Var V09 becoming live
IN0016: mov r0, lr
GC regs: 0110 {r4 r8} => 0111 {r0 r4 r8}
Generating: N079 ( 3, 7) [000053] ------------- t53 = CNS_INT(h) int 0x924994 token REG r1 $244
IN0017: movw r1, 0x4994
IN0018: movt r1, 0x92
/--* t53 int
Generating: N081 (???,???) [000176] ------------- t176 = * PUTARG_REG int REG r1
Generating: N083 ( 3, 7) [000054] ------------- t54 = CNS_INT(h) int 0x924B10 token REG r2 $245
IN0019: movw r2, 0x4b10
IN001a: movt r2, 0x92
/--* t54 int
Generating: N085 (???,???) [000177] ------------- t177 = * PUTARG_REG int REG r2
Generating: N087 ( 3, 7) [000178] ------------- t178 = CNS_INT(h) int 0xFDA55A0 ftn REG r12
IN001b: movw r12, 0x55a0
IN001c: movt r12, 0xfda
/--* t175 ref arg0 in r0
+--* t176 int arg1 in r1
+--* t177 int arg2 in r2
+--* t178 int control expr
Generating: N089 ( 23, 28) [000058] --CXG-------- t58 = * CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $205
GC regs: 0111 {r0 r4 r8} => 0110 {r4 r8}
Call: GCvars=00000080 {V09}, gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}
[29] Rec call GC vars = 00000080
IN001d: blx r12 // CORINFO_HELP_VIRTUAL_FUNC_PTR
/--* t58 int
Generating: N091 ( 27, 31) [000060] DA-XG-------- * STORE_LCL_VAR int V10 tmp2 d:3 NA REG NA
IN001e: str r0, [sp+0x08] // [V10 tmp2]
Live vars: {V00 V01 V02 V03 V05 V09 V14 V15 V16} => {V00 V01 V02 V03 V05 V09 V10 V14 V15 V16}
Generating: N093 ( 1, 1) [000051] ------------z t51 = LCL_VAR ref V09 tmp1 u:3 r0 (last use) REG r0 <l:$349, c:$382>
/--* t51 ref
Generating: N095 (???,???) [000179] ------------- t179 = * PUTARG_REG ref REG r0
IN001f: ldr r0, [sp] // [V09 tmp1]
Removing V09 from gcVarPtrSetCur
V09 in reg r0 is becoming live [000051]
Live regs: 07F0 {r4 r5 r6 r7 r8 r9 r10} => 07F1 {r0 r4 r5 r6 r7 r8 r9 r10}
GC regs: 0110 {r4 r8} => 0111 {r0 r4 r8}
V09 in reg r0 is becoming dead [000051]
Live regs: 07F1 {r0 r4 r5 r6 r7 r8 r9 r10} => 07F0 {r4 r5 r6 r7 r8 r9 r10}
Live vars: {V00 V01 V02 V03 V05 V09 V10 V14 V15 V16} => {V00 V01 V02 V03 V05 V10 V14 V15 V16}
GC regs: 0111 {r0 r4 r8} => 0110 {r4 r8}
GC regs: 0110 {r4 r8} => 0111 {r0 r4 r8}
Generating: N097 ( 3, 2) [000046] ------------- t46 = LCL_VAR int V15 rat0 r6 (last use) REG r6 <l:$2c1, c:$2c0>
/--* t46 int
Generating: N099 (???,???) [000182] ------------- t182 = * PUTARG_REG int REG r2
V15 in reg r6 is becoming dead [000046]
Live regs: 07F0 {r4 r5 r6 r7 r8 r9 r10} => 07B0 {r4 r5 r7 r8 r9 r10}
Live vars: {V00 V01 V02 V03 V05 V10 V14 V15 V16} => {V00 V01 V02 V03 V05 V10 V14 V16}
IN0020: mov r2, r6
Generating: N101 (???,???) [000171] ------------- t171 = LCL_VAR int V16 rat1 r10 (last use) REG r10
/--* t171 int
Generating: N103 (???,???) [000183] ------------- t183 = * PUTARG_REG int REG r3
V16 in reg r10 is becoming dead [000171]
Live regs: 07B0 {r4 r5 r7 r8 r9 r10} => 03B0 {r4 r5 r7 r8 r9}
Live vars: {V00 V01 V02 V03 V05 V10 V14 V16} => {V00 V01 V02 V03 V05 V10 V14}
IN0021: mov r3, r10
/--* t182 int
+--* t183 int
Generating: N105 (???,???) [000180] Hc----------- t180 = * FIELD_LIST int int at offset 0 REG NA
Generating: N107 ( 3, 2) [000062] ------------z t62 = LCL_VAR int V10 tmp2 u:3 r1 (last use) REG r1 $283
/--* t179 ref this in r0
+--* t180 int arg1 r2,r3
+--* t62 int calli tgt
Generating: N109 ( 24, 10) [000063] --CXG-------- * CALL ind void $VN.Void
GC regs: 0111 {r0 r4 r8} => 0110 {r4 r8}
IN0022: ldr r1, [sp+0x08] // [V10 tmp2]
V10 in reg r1 is becoming live [000062]
Live regs: 03B0 {r4 r5 r7 r8 r9} => 03B2 {r1 r4 r5 r7 r8 r9}
V10 in reg r1 is becoming dead [000062]
Live regs: 03B2 {r1 r4 r5 r7 r8 r9} => 03B0 {r4 r5 r7 r8 r9}
Live vars: {V00 V01 V02 V03 V05 V10 V14} => {V00 V01 V02 V03 V05 V14}
Call: GCvars=00000000 {}, gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}
IN0023: blx r1
Added IP mapping: 0x0021 STACK_EMPTY (G_M58754_IG02,ins#35,ofs#114)
Generating: N111 ( 6, 10) [000070] ------------- IL_OFFSET void IL offset: 0x21 REG NA
Generating: N113 ( 6, 10) [000065] ----G-------- t65 = CLS_VAR_ADDR byref Hnd=0x9247d8 REG r0
IN0024: movw r0, 0x1cac
IN0025: movt r0, 0x5fd
Byref regs: 0000 {} => 0001 {r0}
/--* t65 byref
Generating: N115 (???,???) [000151] ----G-------- t151 = * IND ref REG r6
Byref regs: 0001 {r0} => 0000 {}
IN0026: ldr r6, [r0]
GC regs: 0110 {r4 r8} => 0150 {r4 r6 r8}
/--* t151 ref
Generating: N117 ( 6, 10) [000069] DA--G-------- * STORE_LCL_VAR ref V11 tmp3 d:3 r6 REG r6
GC regs: 0150 {r4 r6 r8} => 0110 {r4 r8}
V11 in reg r6 is becoming live [000069]
Live regs: 03B0 {r4 r5 r7 r8 r9} => 03F0 {r4 r5 r6 r7 r8 r9}
Live vars: {V00 V01 V02 V03 V05 V14} => {V00 V01 V02 V03 V05 V11 V14}
GC regs: 0110 {r4 r8} => 0150 {r4 r6 r8}
Generating: N119 ( 1, 1) [000072] ------------- t72 = LCL_VAR ref V11 tmp3 u:3 r6 REG r6 <l:$34b, c:$388>
/--* t72 ref
Generating: N121 (???,???) [000184] ------------- t184 = * PUTARG_REG ref REG r0
IN0027: mov r0, r6
GC regs: 0150 {r4 r6 r8} => 0151 {r0 r4 r6 r8}
Generating: N123 ( 3, 7) [000073] ------------- t73 = CNS_INT(h) int 0x924994 token REG r1 $244
IN0028: movw r1, 0x4994
IN0029: movt r1, 0x92
/--* t73 int
Generating: N125 (???,???) [000185] ------------- t185 = * PUTARG_REG int REG r1
Generating: N127 ( 3, 7) [000074] ------------- t74 = CNS_INT(h) int 0x924B74 token REG r2 $246
IN002a: movw r2, 0x4b74
IN002b: movt r2, 0x92
/--* t74 int
Generating: N129 (???,???) [000186] ------------- t186 = * PUTARG_REG int REG r2
Generating: N131 ( 3, 7) [000187] ------------- t187 = CNS_INT(h) int 0xFDA55A0 ftn REG r3
IN002c: movw r3, 0x55a0
IN002d: movt r3, 0xfda
/--* t184 ref arg0 in r0
+--* t185 int arg1 in r1
+--* t186 int arg2 in r2
+--* t187 int control expr
Generating: N133 ( 23, 28) [000078] --CXG-------- t78 = * CALL help int HELPER.CORINFO_HELP_VIRTUAL_FUNC_PTR $206
GC regs: 0151 {r0 r4 r6 r8} => 0150 {r4 r6 r8}
Call: GCvars=00000000 {}, gcrefRegs=0150 {r4 r6 r8}, byrefRegs=0000 {}
IN002e: blx r3 // CORINFO_HELP_VIRTUAL_FUNC_PTR
/--* t78 int
Generating: N135 ( 27, 31) [000080] DA-XG-------- * STORE_LCL_VAR int V12 tmp4 d:3 NA REG NA
IN002f: str r0, [sp+0x04] // [V12 tmp4]
Live vars: {V00 V01 V02 V03 V05 V11 V14} => {V00 V01 V02 V03 V05 V11 V12 V14}
Generating: N137 ( 1, 1) [000071] ------------- t71 = LCL_VAR ref V11 tmp3 u:3 r6 (last use) REG r6 <l:$34b, c:$388>
/--* t71 ref
Generating: N139 (???,???) [000188] ------------- t188 = * PUTARG_REG ref REG r0
V11 in reg r6 is becoming dead [000071]
Live regs: 03F0 {r4 r5 r6 r7 r8 r9} => 03B0 {r4 r5 r7 r8 r9}
Live vars: {V00 V01 V02 V03 V05 V11 V12 V14} => {V00 V01 V02 V03 V05 V12 V14}
GC regs: 0150 {r4 r6 r8} => 0110 {r4 r8}
IN0030: mov r0, r6
GC regs: 0110 {r4 r8} => 0111 {r0 r4 r8}
Generating: N141 ( 2, 2) [000066] ------------z t66 = LCL_VAR int V02 arg2 u:3 r1 (last use) REG r1 <l:$203, c:$4c0>
/--* t66 int
Generating: N143 (???,???) [000189] ------------- t189 = * PUTARG_REG int REG r1
IN0031: ldr r1, [sp+0x0c] // [V02 arg2]
V02 in reg r1 is becoming live [000066]
Live regs: 03B0 {r4 r5 r7 r8 r9} => 03B2 {r1 r4 r5 r7 r8 r9}
V02 in reg r1 is becoming dead [000066]
Live regs: 03B2 {r1 r4 r5 r7 r8 r9} => 03B0 {r4 r5 r7 r8 r9}
Live vars: {V00 V01 V02 V03 V05 V12 V14} => {V00 V01 V03 V05 V12 V14}
Generating: N145 ( 3, 2) [000082] ------------z t82 = LCL_VAR int V12 tmp4 u:3 r3 (last use) REG r3 $287
/--* t188 ref this in r0
+--* t189 int arg1 in r1
+--* t82 int calli tgt
Generating: N147 ( 23, 10) [000083] --CXG-------- * CALL ind void $VN.Void
GC regs: 0111 {r0 r4 r8} => 0110 {r4 r8}
IN0032: ldr r3, [sp+0x04] // [V12 tmp4]
V12 in reg r3 is becoming live [000082]
Live regs: 03B0 {r4 r5 r7 r8 r9} => 03B8 {r3 r4 r5 r7 r8 r9}
V12 in reg r3 is becoming dead [000082]
Live regs: 03B8 {r3 r4 r5 r7 r8 r9} => 03B0 {r4 r5 r7 r8 r9}
Live vars: {V00 V01 V03 V05 V12 V14} => {V00 V01 V03 V05 V14}
Call: GCvars=00000000 {}, gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}
IN0033: blx r3
Scope info: end block BB02, IL range [004..02C)
Scope info: open scopes =
0 (V00 arg0) [000..03B)
3 (V03 arg3) [000..03B)
1 (V01 arg1) [000..03B)
5 (V05 arg5) [000..03B)
=============== Generating BB03 [02C..030) -> BB05 (cond), preds={BB01,BB02} succs={BB04,BB05} flags=0x00000000.40030020: i label target LIR
BB03 IN (5)={V00 V14 V03 V01 V05} + ByrefExposed + GcHeap
OUT(4)={V00 V03 V01 V05} + ByrefExposed + GcHeap
Recording Var Locations at start of BB03
V00(r4) V14(r9) V03(r5) V01(r7) V05(r8)
Liveness not changing: 0000006D {V00 V01 V03 V05 V14}
Live regs: 0000 {} => 03B0 {r4 r5 r7 r8 r9}
GC regs: 0000 {} => 0110 {r4 r8}
Byref regs: (unchanged) 0000 {}
L_M58754_BB03:
G_M58754_IG02: ; offs=000000H, funclet=00
Label: IG03, GCvars=00000000 {}, gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}
Scope info: begin block BB03, IL range [02C..030)
Scope info: open scopes =
0 (V00 arg0) [000..03B)
3 (V03 arg3) [000..03B)
1 (V01 arg1) [000..03B)
5 (V05 arg5) [000..03B)
Added IP mapping: 0x002C STACK_EMPTY (G_M58754_IG03,ins#0,ofs#0) label
Generating: N151 ( 5, 5) [000011] ------------- IL_OFFSET void IL offset: 0x2c REG NA
Generating: N153 ( 1, 1) [000146] ------------- t146 = LCL_VAR int V14 cse0 r9 (last use) REG r9 $200
Generating: N155 ( 1, 1) [000008] -c----------- t8 = CNS_INT int 0 REG NA $40
/--* t146 int
+--* t8 int
Generating: N157 ( 3, 3) [000009] J------N--S-- * NE void REG NA $207
V14 in reg r9 is becoming dead [000146]
Live regs: 03B0 {r4 r5 r7 r8 r9} => 01B0 {r4 r5 r7 r8}
Live vars: {V00 V01 V03 V05 V14} => {V00 V01 V03 V05}
IN0034: cmp r9, 0
Generating: N159 ( 5, 5) [000010] ------------- * JTRUE void REG NA
IN0035: bne L_M58754_BB05
Scope info: end block BB03, IL range [02C..030)
Scope info: open scopes =
0 (V00 arg0) [000..03B)
3 (V03 arg3) [000..03B)
1 (V01 arg1) [000..03B)
5 (V05 arg5) [000..03B)
=============== Generating BB04 [030..034), preds={BB03} succs={BB05} flags=0x00000000.40200020: i idxlen LIR
BB04 IN (4)={V00 V03 V01 V05} + ByrefExposed + GcHeap
OUT(3)={ V03 V01 V05} + ByrefExposed + GcHeap
Recording Var Locations at start of BB04
V00(r4) V03(r5) V01(r7) V05(r8)
Liveness not changing: 00000069 {V00 V01 V03 V05}
Live regs: 0000 {} => 01B0 {r4 r5 r7 r8}
GC regs: 0000 {} => 0110 {r4 r8}
Byref regs: (unchanged) 0000 {}
L_M58754_BB04:
Scope info: begin block BB04, IL range [030..034)
Scope info: open scopes =
0 (V00 arg0) [000..03B)
3 (V03 arg3) [000..03B)
1 (V01 arg1) [000..03B)
5 (V05 arg5) [000..03B)
Added IP mapping: 0x0030 STACK_EMPTY (G_M58754_IG03,ins#2,ofs#10) label
Generating: N163 ( 13, 14) [000028] ------------- IL_OFFSET void IL offset: 0x30 REG NA
Generating: N165 ( 1, 1) [000024] ------------- t24 = CNS_INT int 0 REG r0 $40
IN0036: movs r0, 0
Generating: N167 ( 1, 1) [000023] ------------- t23 = LCL_VAR ref V00 arg0 u:2 r4 (last use) REG r4 $80
/--* t23 ref
Generating: N169 (???,???) [000190] -c----------- t190 = * LEA(b+4) byref REG NA
/--* t190 byref
Generating: N171 ( 3, 3) [000123] ---X--------- t123 = * IND int REG r3 $3c2
V00 in reg r4 is becoming dead [000023]
Live regs: 01B0 {r4 r5 r7 r8} => 01A0 {r5 r7 r8}
Live vars: {V00 V01 V03 V05} => {V01 V03 V05}
GC regs: 0110 {r4 r8} => 0100 {r8}
IN0037: ldr r3, [r4+4]
/--* t24 int
+--* t123 int
Generating: N173 ( 8, 11) [000124] ---X--------- * ARR_BOUNDS_CHECK_Rng void $350
IN0038: cmp r0, r3
IN0039: bhs L_M58754_BB06
Scope info: end block BB04, IL range [030..034)
Scope info: open scopes =
3 (V03 arg3) [000..03B)
1 (V01 arg1) [000..03B)
5 (V05 arg5) [000..03B)
=============== Generating BB05 [034..03B) (return), preds={BB03,BB04} succs={} flags=0x00000000.40230020: i label target idxlen LIR
BB05 IN (3)={V03 V01 V05} + ByrefExposed + GcHeap
OUT(0)={ }
Recording Var Locations at start of BB05
V03(r5) V01(r7) V05(r8)
Liveness not changing: 00000068 {V01 V03 V05}
Live regs: 0000 {} => 01A0 {r5 r7 r8}
GC regs: 0000 {} => 0100 {r8}
Byref regs: (unchanged) 0000 {}
L_M58754_BB05:
G_M58754_IG03: ; offs=0000A2H, funclet=00
Label: IG04, GCvars=00000000 {}, gcrefRegs=0100 {r8}, byrefRegs=0000 {}
Scope info: begin block BB05, IL range [034..03B)
Scope info: open scopes =
3 (V03 arg3) [000..03B)
1 (V01 arg1) [000..03B)
5 (V05 arg5) [000..03B)
Added IP mapping: 0x0034 STACK_EMPTY (G_M58754_IG04,ins#0,ofs#0) label
Generating: N177 ( 16, 17) [000018] ------------- IL_OFFSET void IL offset: 0x34 REG NA
Generating: N179 ( 1, 1) [000014] ------------- t14 = CNS_INT int 0 REG r0 $40
IN003a: movs r0, 0
Generating: N181 ( 1, 1) [000013] ------------- t13 = LCL_VAR ref V05 arg5 u:2 r8 REG r8 $81
/--* t13 ref
Generating: N183 (???,???) [000192] -c----------- t192 = * LEA(b+4) byref REG NA
/--* t192 byref
Generating: N185 ( 3, 3) [000134] ---X--------- t134 = * IND int REG r3 $3c3
IN003b: ldr r3, [r8+4]
/--* t14 int
+--* t134 int
Generating: N187 ( 8, 11) [000135] ---X--------- * ARR_BOUNDS_CHECK_Rng void $356
IN003c: cmp r0, r3
IN003d: bhs L_M58754_BB06
Generating: N189 ( 1, 1) [000132] ------------- t132 = LCL_VAR ref V05 arg5 u:2 r8 (last use) REG r8 $81
/--* t132 ref
Generating: N191 (???,???) [000193] -c----------- t193 = * LEA(b+8) byref REG NA
Generating: N193 ( 2, 2) [000015] ------------- t15 = LCL_VAR int V03 arg3 u:2 r5 (last use) REG r5 $100
/--* t193 byref
+--* t15 int
Generating: N195 (???,???) [000152] -A-XGO------- * STOREIND byte REG NA
V05 in reg r8 is becoming dead [000132]
Live regs: 01A0 {r5 r7 r8} => 00A0 {r5 r7}
Live vars: {V01 V03 V05} => {V01 V03}
GC regs: 0100 {r8} => 0000 {}
V03 in reg r5 is becoming dead [000015]
Live regs: 00A0 {r5 r7} => 0080 {r7}
Live vars: {V01 V03} => {V01}
IN003e: strb r5, [r8+8]
Added IP mapping: 0x0039 STACK_EMPTY (G_M58754_IG04,ins#5,ofs#18)
Generating: N197 ( 4, 4) [000021] ------------- IL_OFFSET void IL offset: 0x39 REG NA
Generating: N199 ( 2, 2) [000019] ------------- t19 = LCL_VAR int V01 arg1 u:2 r7 (last use) REG r7 $c0
/--* t19 int
Generating: N201 ( 3, 3) [000141] ------------- t141 = * CAST int <- ushort <- int REG r0 $20c
V01 in reg r7 is becoming dead [000019]
Live regs: 0080 {r7} => 0000 {}
Live vars: {V01} => {}
IN003f: uxth r0, r7
/--* t141 int
Generating: N203 ( 4, 4) [000020] ------------- * RETURN int REG NA $28a
Scope info: end block BB05, IL range [034..03B)
Scope info: ending scope, LVnum=1 [000..03B)
Scope info: ending scope, LVnum=2 [000..03B)
Scope info: ending scope, LVnum=3 [000..03B)
Scope info: ending scope, LVnum=4 [000..03B)
Scope info: ending scope, LVnum=5 [000..03B)
Scope info: ending scope, LVnum=6 [000..03B)
Scope info: ending scope, LVnum=7 [000..03B)
Scope info: ending scope, LVnum=0 [000..03B)
Scope info: open scopes =
<none>
Added IP mapping: EPILOG STACK_EMPTY (G_M58754_IG04,ins#6,ofs#20) label
Reserving epilog IG for block BB05
G_M58754_IG04: ; offs=0000B8H, funclet=00
*************** After placeholder IG creation
G_M58754_IG01: ; func=00, offs=000000H, size=0000H, gcrefRegs=0000 {} <-- Prolog IG
G_M58754_IG02: ; offs=000000H, size=00A2H, gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}, byref
G_M58754_IG03: ; offs=0000A2H, size=0016H, gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}, byref
G_M58754_IG04: ; offs=0000B8H, size=0014H, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref
G_M58754_IG05: ; epilog placeholder, next placeholder=<END>, BB05 [0004], epilog, emitadd <-- First placeholder <-- Last placeholder
; PrevGCVars=00000000 {}, PrevGCrefRegs=0110 {r4 r8}, PrevByrefRegs=0000 {}
; InitGCVars=00000000 {}, InitGCrefRegs=0100 {r8}, InitByrefRegs=0000 {}
G_M58754_IG06: ; offs=0001CCH, size=0000H, gcrefRegs=0000 {} <-- Current IG
=============== Generating BB06 [???..???) (throw), preds={} succs={} flags=0x00000000.40031070: keep i internal rare label target LIR
BB06 IN (0)={}
OUT(0)={}
Recording Var Locations at start of BB06
<none>
Liveness not changing: 00000000 {}
Live regs: (unchanged) 0000 {}
GC regs: (unchanged) 0000 {}
Byref regs: (unchanged) 0000 {}
L_M58754_BB06:
Label: IG06, GCvars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}
Scope info: begin block BB06, IL range [???..???)
Scope info: ignoring block beginning
Added IP mapping: NO_MAP STACK_EMPTY (G_M58754_IG06,ins#0,ofs#0) label
Generating: N207 ( 3, 7) [000194] ------------- t194 = CNS_INT(h) int 0xFDA7BB0 ftn REG r3
IN0040: movw r3, 0x7bb0
IN0041: movt r3, 0xfda
/--* t194 int control expr
Generating: N209 ( 16, 10) [000155] --CXG-------- * CALL help void HELPER.CORINFO_HELP_RNGCHKFAIL
Call: GCvars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}
IN0042: blx r3 // CORINFO_HELP_RNGCHKFAIL
Scope info: end block BB06, IL range [???..???)
Scope info: ignoring block end
IN0043: bkpt
Liveness not changing: 00000000 {}
# compCycleEstimate = 192, compSizeEstimate = 191 Program:M11(ref,ushort,ushort,ubyte,bool,ref):ushort
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 5, 3.50) ref -> r4 class-hnd
; V01 arg1 [V01,T05] ( 3, 3 ) ushort -> r7
; V02 arg2 [V02,T04] ( 5, 3.50) ushort -> [sp+0x0C]
; V03 arg3 [V03,T03] ( 4, 4 ) ubyte -> r5
; V04 arg4 [V04,T10] ( 2, 2 ) bool -> r0
; V05 arg5 [V05,T06] ( 4, 4 ) ref -> r8 class-hnd
;* V06 loc0 [V06 ] ( 0, 0 ) long -> zero-ref
;* V07 loc1 [V07 ] ( 0, 0 ) ushort -> zero-ref
;# V08 OutArgs [V08 ] ( 1, 1 ) lclBlk ( 0) [sp+0x00]
; V09 tmp1 [V09,T07] ( 3, 3 ) ref -> [sp+0x00]
; V10 tmp2 [V10,T11] ( 2, 2 ) int -> [sp+0x08]
; V11 tmp3 [V11,T08] ( 3, 3 ) ref -> r6
; V12 tmp4 [V12,T12] ( 2, 2 ) int -> [sp+0x04]
; V13 tmp5 [V13,T01] ( 6, 6 ) ref -> r0
; V14 cse0 [V14,T02] ( 6, 6 ) int -> r9
; V15 rat0 [V15,T13] ( 2, 1 ) int -> r6 V06.lo(offs=0x00)
; V16 rat1 [V16,T14] ( 2, 1 ) int -> r10 V06.hi(offs=0x04)
; V17 rat2 [V17,T09] ( 3, 3 ) int -> r0
;
; Lcl frame size = 20
*************** Before prolog / epilog generation
G_M58754_IG01: ; func=00, offs=000000H, size=0000H, gcrefRegs=0000 {} <-- Prolog IG
G_M58754_IG02: ; offs=000000H, size=00A2H, gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}, byref
G_M58754_IG03: ; offs=0000A2H, size=0016H, gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}, byref
G_M58754_IG04: ; offs=0000B8H, size=0014H, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref
G_M58754_IG05: ; epilog placeholder, next placeholder=<END>, BB05 [0004], epilog, emitadd <-- First placeholder <-- Last placeholder
; PrevGCVars=00000000 {}, PrevGCrefRegs=0110 {r4 r8}, PrevByrefRegs=0000 {}
; InitGCVars=00000000 {}, InitGCrefRegs=0100 {r8}, InitByrefRegs=0000 {}
G_M58754_IG06: ; offs=0001CCH, size=0000H, gcrefRegs=0000 {} <-- Current IG
Recording Var Locations at start of BB01
V00(r4) V03(r5) V01(r7) V05(r8) V04(r0)
G_M58754_IG06: ; offs=0001CCH, funclet=00
*************** In genFnProlog()
Added IP mapping to front: PROLOG STACK_EMPTY (G_M58754_IG01,ins#0,ofs#0) label
__prolog:
IN0044: push {r4,r5,r6,r7,r8,r9,r10,r11,lr}
IN0045: sub sp, 20
IN0046: add r11, sp, 48
*************** In genFnPrologCalleeRegArgs() for int regs
IN0047: mov r4, r0
IN0048: mov r7, r1
IN0049: mov r6, r2
IN004a: mov r5, r3
*************** In genEnregisterIncomingStackArgs()
IN004b: ldr r0, [sp+0x38] // [V04 arg4]
IN004c: ldr r8, [sp+0x3c] // [V05 arg5]
1 tracked GC refs are at stack offsets -0030 ... -002C
G_M58754_IG01: ; offs=000000H, funclet=00
*************** In genFnEpilog()
__epilog:
gcVarPtrSetCur=00000000 {}, gcRegGCrefSetCur=0100 {r8}, gcRegByrefSetCur=0000 {}
IN004d: add sp, 20
IN004e: pop {r4,r5,r6,r7,r8,r9,r10,r11,pc}
G_M58754_IG05: ; offs=0000CCH, funclet=00
0 prologs, 1 epilogs, 0 funclet prologs, 0 funclet epilogs
*************** After prolog / epilog generation
G_M58754_IG01: ; func=00, offs=000000H, size=0018H, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
G_M58754_IG02: ; offs=000018H, size=00A2H, gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}, byref
G_M58754_IG03: ; offs=0000BAH, size=0016H, gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}, byref
G_M58754_IG04: ; offs=0000D0H, size=0014H, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref
G_M58754_IG05: ; offs=0000E4H, size=0006H, epilog, nogc, emitadd
G_M58754_IG06: ; offs=0000EAH, size=000CH, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
*************** In emitJumpDistBind()
Binding: IN0003: beq L_M58754_BB03
Binding L_M58754_BB03 to G_M58754_IG03
Estimate of fwd jump [008D69E0/003]: 0020 -> 00BA = 0096
Shrinking jump [008D69E0/003]
Binding: IN000f: bhs L_M58754_BB06
Binding L_M58754_BB06 to G_M58754_IG06
Estimate of fwd jump [008D6A8C/015]: 0042 -> 00E6 = 00A0
Shrinking jump [008D6A8C/015]
Adjusted offset of block 03 from 00BA to 00B2
Binding: IN0035: bne L_M58754_BB05
Binding L_M58754_BB05 to G_M58754_IG04
Estimate of fwd jump [008D6DF4/053]: 00B6 -> 00C8 = 000E
Shrinking jump [008D6DF4/053]
Binding: IN0039: bhs L_M58754_BB06
Binding L_M58754_BB06 to G_M58754_IG06
Estimate of fwd jump [008D6E38/057]: 00BE -> 00DE = 001C
Shrinking jump [008D6E38/057]
Adjusted offset of block 04 from 00D0 to 00C0
Binding: IN003d: bhs L_M58754_BB06
Binding L_M58754_BB06 to G_M58754_IG06
Estimate of fwd jump [008D6F84/061]: 00C8 -> 00DA = 000E
Shrinking jump [008D6F84/061]
Adjusted offset of block 05 from 00E4 to 00D0
Adjusted offset of block 06 from 00EA to 00D6
Total shrinkage = 20, min extra short jump size = 4294967295, min extra medium jump size = 4294967295
Hot code size = 0xE2 bytes
Cold code size = 0x0 bytes
reserveUnwindInfo(isFunclet=FALSE, isColdCode=FALSE, unwindSize=0xc)
*************** In emitEndCodeGen()
Converting emitMaxStackDepth from bytes (0) to elements (0)
***************************************************************************
Instructions as they come out of the scheduler
G_M58754_IG01: ; func=00, offs=000000H, size=0018H, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
IN0044: 000000 E92D 4FF0 push {r4,r5,r6,r7,r8,r9,r10,r11,lr}
IN0045: 000004 B085 sub sp, 20
IN0046: 000006 F10D 0B30 add r11, sp, 48
gcrReg +[r4]
IN0047: 00000A 4604 mov r4, r0
IN0048: 00000C 460F mov r7, r1
IN0049: 00000E 4616 mov r6, r2
IN004a: 000010 461D mov r5, r3
IN004b: 000012 980E ldr r0, [sp+0x38] // [V04 arg4]
gcrReg +[r8]
IN004c: 000014 F8DD 803C ldr r8, [sp+0x3c] // [V05 arg5]
G_M58754_IG02: ; func=00, offs=000018H, size=009AH, gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}, byref, isz
IN0001: 000018 FA5F F980 uxtb r9, r0
IN0002: 00001C F1B9 0F00 cmp r9, 0
IN0003: 000020 D047 beq SHORT G_M58754_IG03
IN0004: 000022 F244 008C movw r0, 0x408c
IN0005: 000026 F2C0 0092 movt r0, 0x92
IN0006: 00002A 6800 ldr r0, [r0]
IN0007: 00002C EA4F 7AE0 asr r10, r0, 31
IN0008: 000030 4606 mov r6, r0
IN0009: 000032 F641 40B4 movw r0, 0x1cb4
IN000a: 000036 F2C0 50FD movt r0, 0x5fd
gcrReg +[r0]
IN000b: 00003A 6800 ldr r0, [r0]
IN000c: 00003C 2100 movs r1, 0
IN000d: 00003E 6842 ldr r2, [r0+4]
IN000e: 000040 4291 cmp r1, r2
IN000f: 000042 D248 bhs SHORT G_M58754_IG06
gcrReg -[r0]
IN0010: 000044 8900 ldrh r0, [r0+8]
IN0011: 000046 F8AD 000C strh r0, [sp+0x0c] // [V02 arg2]
IN0012: 00004A F641 40AC movw r0, 0x1cac
IN0013: 00004E F2C0 50FD movt r0, 0x5fd
gcrReg +[lr]
IN0014: 000052 F8D0 E000 ldr lr, [r0]
[008D747C] gcr var born at [r11-30H]
IN0015: 000056 F8CD E000 str lr, [sp] // [V09 tmp1]
gcrReg +[r0]
IN0016: 00005A 4670 mov r0, lr
IN0017: 00005C F644 1194 movw r1, 0x4994
IN0018: 000060 F2C0 0192 movt r1, 0x92
IN0019: 000064 F644 3210 movw r2, 0x4b10
IN001a: 000068 F2C0 0292 movt r2, 0x92
IN001b: 00006C F245 5CA0 movw r12, 0x55a0
IN001c: 000070 F6C0 7CDA movt r12, 0xfda
New GC ref live vars=00000080 {V09}
New gcrReg live regs=0110 {r4 r8}
; Call at 0074 [stk=0], GCvars=[r11-30H], gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}
IN001d: 000074 47E0 blx r12 // CORINFO_HELP_VIRTUAL_FUNC_PTR
IN001e: 000076 9002 str r0, [sp+0x08] // [V10 tmp2]
gcrReg +[r0]
IN001f: 000078 9800 ldr r0, [sp] // [V09 tmp1]
IN0020: 00007A 4632 mov r2, r6
IN0021: 00007C 4653 mov r3, r10
IN0022: 00007E 9902 ldr r1, [sp+0x08] // [V10 tmp2]
New GC ref live vars=00000000 {}
[008D747C] gcr var died at [r11-30H]
New gcrReg live regs=0110 {r4 r8}
; Call at 0080 [stk=0], GCvars=none, gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}
IN0023: 000080 4788 blx r1
IN0024: 000082 F641 40AC movw r0, 0x1cac
IN0025: 000086 F2C0 50FD movt r0, 0x5fd
gcrReg +[r6]
IN0026: 00008A 6806 ldr r6, [r0]
gcrReg +[r0]
IN0027: 00008C 4630 mov r0, r6
IN0028: 00008E F644 1194 movw r1, 0x4994
IN0029: 000092 F2C0 0192 movt r1, 0x92
IN002a: 000096 F644 3274 movw r2, 0x4b74
IN002b: 00009A F2C0 0292 movt r2, 0x92
IN002c: 00009E F245 53A0 movw r3, 0x55a0
IN002d: 0000A2 F6C0 73DA movt r3, 0xfda
New gcrReg live regs=0150 {r4 r6 r8}
; Call at 00A6 [stk=0], GCvars=none, gcrefRegs=0150 {r4 r6 r8}, byrefRegs=0000 {}
IN002e: 0000A6 4798 blx r3 // CORINFO_HELP_VIRTUAL_FUNC_PTR
IN002f: 0000A8 9001 str r0, [sp+0x04] // [V12 tmp4]
gcrReg +[r0]
IN0030: 0000AA 4630 mov r0, r6
IN0031: 0000AC 9903 ldr r1, [sp+0x0c] // [V02 arg2]
IN0032: 0000AE 9B01 ldr r3, [sp+0x04] // [V12 tmp4]
New gcrReg live regs=0110 {r4 r8}
; Call at 00B0 [stk=0], GCvars=none, gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}
IN0033: 0000B0 4798 blx r3
G_M58754_IG03: ; func=00, offs=0000B2H, size=000EH, gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}, byref, isz
IN0034: 0000B2 F1B9 0F00 cmp r9, 0
IN0035: 0000B6 D103 bne SHORT G_M58754_IG04
IN0036: 0000B8 2000 movs r0, 0
IN0037: 0000BA 6863 ldr r3, [r4+4]
IN0038: 0000BC 4298 cmp r0, r3
IN0039: 0000BE D20A bhs SHORT G_M58754_IG06
G_M58754_IG04: ; func=00, offs=0000C0H, size=0010H, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref, isz
New gcrReg live regs=0100 {r8}
IN003a: 0000C0 2000 movs r0, 0
IN003b: 0000C2 F8D8 3004 ldr r3, [r8+4]
IN003c: 0000C6 4298 cmp r0, r3
IN003d: 0000C8 D205 bhs SHORT G_M58754_IG06
IN003e: 0000CA F888 5008 strb r5, [r8+8]
IN003f: 0000CE B2B8 uxth r0, r7
G_M58754_IG05: ; func=00, offs=0000D0H, size=0006H, epilog, nogc, emitadd
IN004d: 0000D0 B005 add sp, 20
IN004e: 0000D2 E8BD 8FF0 pop {r4,r5,r6,r7,r8,r9,r10,r11,pc}
G_M58754_IG06: ; func=00, offs=0000D6H, size=000CH, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
New gcrReg live regs=0000 {}
IN0040: 0000D6 F647 33B0 movw r3, 0x7bb0
IN0041: 0000DA F6C0 73DA movt r3, 0xfda
; Call at 00DE [stk=0], GCvars=none, gcrefRegs=0000 {}, byrefRegs=0000 {}
IN0042: 0000DE 4798 blx r3 // CORINFO_HELP_RNGCHKFAIL
IN0043: 0000E0 DEFE bkpt
Allocated method code size = 226 , actual size = 226
*************** After end code gen, before unwindEmit()
G_M58754_IG01: ; func=00, offs=000000H, size=0018H, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
IN0044: 000000 push {r4,r5,r6,r7,r8,r9,r10,r11,lr}
IN0045: 000004 sub sp, 20
IN0046: 000006 add r11, sp, 48
IN0047: 00000A mov r4, r0
IN0048: 00000C mov r7, r1
IN0049: 00000E mov r6, r2
IN004a: 000010 mov r5, r3
IN004b: 000012 ldr r0, [sp+0x38] // [V04 arg4]
IN004c: 000014 ldr r8, [sp+0x3c] // [V05 arg5]
G_M58754_IG02: ; offs=000018H, size=009AH, gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}, byref, isz
IN0001: 000018 uxtb r9, r0
IN0002: 00001C cmp r9, 0
IN0003: 000020 beq SHORT G_M58754_IG03
IN0004: 000022 movw r0, 0x408c
IN0005: 000026 movt r0, 0x92
IN0006: 00002A ldr r0, [r0]
IN0007: 00002C asr r10, r0, 31
IN0008: 000030 mov r6, r0
IN0009: 000032 movw r0, 0x1cb4
IN000a: 000036 movt r0, 0x5fd
IN000b: 00003A ldr r0, [r0]
IN000c: 00003C movs r1, 0
IN000d: 00003E ldr r2, [r0+4]
IN000e: 000040 cmp r1, r2
IN000f: 000042 bhs SHORT G_M58754_IG06
IN0010: 000044 ldrh r0, [r0+8]
IN0011: 000046 strh r0, [sp+0x0c] // [V02 arg2]
IN0012: 00004A movw r0, 0x1cac
IN0013: 00004E movt r0, 0x5fd
IN0014: 000052 ldr lr, [r0]
IN0015: 000056 str lr, [sp] // [V09 tmp1]
IN0016: 00005A mov r0, lr
IN0017: 00005C movw r1, 0x4994
IN0018: 000060 movt r1, 0x92
IN0019: 000064 movw r2, 0x4b10
IN001a: 000068 movt r2, 0x92
IN001b: 00006C movw r12, 0x55a0
IN001c: 000070 movt r12, 0xfda
IN001d: 000074 blx r12 // CORINFO_HELP_VIRTUAL_FUNC_PTR
IN001e: 000076 str r0, [sp+0x08] // [V10 tmp2]
IN001f: 000078 ldr r0, [sp] // [V09 tmp1]
IN0020: 00007A mov r2, r6
IN0021: 00007C mov r3, r10
IN0022: 00007E ldr r1, [sp+0x08] // [V10 tmp2]
IN0023: 000080 blx r1
IN0024: 000082 movw r0, 0x1cac
IN0025: 000086 movt r0, 0x5fd
IN0026: 00008A ldr r6, [r0]
IN0027: 00008C mov r0, r6
IN0028: 00008E movw r1, 0x4994
IN0029: 000092 movt r1, 0x92
IN002a: 000096 movw r2, 0x4b74
IN002b: 00009A movt r2, 0x92
IN002c: 00009E movw r3, 0x55a0
IN002d: 0000A2 movt r3, 0xfda
IN002e: 0000A6 blx r3 // CORINFO_HELP_VIRTUAL_FUNC_PTR
IN002f: 0000A8 str r0, [sp+0x04] // [V12 tmp4]
IN0030: 0000AA mov r0, r6
IN0031: 0000AC ldr r1, [sp+0x0c] // [V02 arg2]
IN0032: 0000AE ldr r3, [sp+0x04] // [V12 tmp4]
IN0033: 0000B0 blx r3
G_M58754_IG03: ; offs=0000B2H, size=000EH, gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}, byref, isz
IN0034: 0000B2 cmp r9, 0
IN0035: 0000B6 bne SHORT G_M58754_IG04
IN0036: 0000B8 movs r0, 0
IN0037: 0000BA ldr r3, [r4+4]
IN0038: 0000BC cmp r0, r3
IN0039: 0000BE bhs SHORT G_M58754_IG06
G_M58754_IG04: ; offs=0000C0H, size=0010H, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref, isz
IN003a: 0000C0 movs r0, 0
IN003b: 0000C2 ldr r3, [r8+4]
IN003c: 0000C6 cmp r0, r3
IN003d: 0000C8 bhs SHORT G_M58754_IG06
IN003e: 0000CA strb r5, [r8+8]
IN003f: 0000CE uxth r0, r7
G_M58754_IG05: ; offs=0000D0H, size=0006H, epilog, nogc, emitadd
IN004d: 0000D0 add sp, 20
IN004e: 0000D2 pop {r4,r5,r6,r7,r8,r9,r10,r11,pc}
G_M58754_IG06: ; offs=0000D6H, size=000CH, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
IN0040: 0000D6 movw r3, 0x7bb0
IN0041: 0000DA movt r3, 0xfda
IN0042: 0000DE blx r3 // CORINFO_HELP_RNGCHKFAIL
IN0043: 0000E0 bkpt
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0x0000e2 (not in unwind data)
Code Words : 1
Epilog Count : 1
F bit : 0
E bit : 0
X bit : 0
Vers : 0
Function Length : 113 (0x00071) Actual length = 226 (0x0000e2)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 104 (0x00068) Actual offset = 208 (0x0000d0) Offset from main function begin = 208 (0x0000d0)
Condition : 14 (0xe) (always)
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
05 add sp, sp, #20 ; opsize 16
DF pop {r4,r5,r6,r7,r8,r9,r10,r11,lr} ; opsize 32
FF end
FF end
allocUnwindInfo(pHotCode=0x00F82280, pColdCode=0x00000000, startOffset=0x0, endOffset=0xe2, unwindSize=0xc, pUnwindBlock=0x00886CAE, funKind=0 (main function))
*************** In genIPmappingGen()
IP mapping count : 12
IL offs PROLOG : 0x00000000 ( STACK_EMPTY )
IL offs 0x0000 : 0x00000018 ( STACK_EMPTY )
IL offs 0x0004 : 0x00000022 ( STACK_EMPTY )
IL offs 0x000B : 0x00000032 ( STACK_EMPTY )
IL offs 0x0016 : 0x0000004A ( STACK_EMPTY )
IL offs 0x0021 : 0x00000082 ( STACK_EMPTY )
IL offs 0x002C : 0x000000B2 ( STACK_EMPTY )
IL offs 0x0030 : 0x000000B8 ( STACK_EMPTY )
IL offs 0x0034 : 0x000000C0 ( STACK_EMPTY )
IL offs 0x0039 : 0x000000CE ( STACK_EMPTY )
IL offs EPILOG : 0x000000D0 ( STACK_EMPTY )
IL offs NO_MAP : 0x000000D6 ( STACK_EMPTY )
*************** In genSetScopeInfo()
VarLocInfo count is 10
*************** Variable debug info
10 vars
1( UNKNOWN) : From 00000000h to 00000018h, in r1
2( UNKNOWN) : From 00000000h to 00000018h, in r2
3( UNKNOWN) : From 00000000h to 00000018h, in r3
4( UNKNOWN) : From 00000000h to 00000018h, in sp[4] (1 slot)
5( UNKNOWN) : From 00000000h to 00000018h, in sp[8] (1 slot)
0( UNKNOWN) : From 00000000h to 00000018h, in r0
0( UNKNOWN) : From 00000018h to 000000BAh, in r4
5( UNKNOWN) : From 00000018h to 000000CAh, in r8
3( UNKNOWN) : From 00000018h to 000000CAh, in r5
1( UNKNOWN) : From 00000018h to 000000CEh, in r7
*************** In gcInfoBlockHdrSave()
Set code length to 226.
Set ReturnKind to Scalar.
Set stack base register to r11.
Set Outgoing stack arg area size to 0.
Stack slot id for offset -48 (0xffffffd0) (frame) = 0.
Register slot id for reg r4 = 1.
Register slot id for reg r8 = 2.
Register slot id for reg r6 = 3.
Set state of slot 0 at instr offset 0x5a to Live.
Set state of slot 0 at instr offset 0x80 to Dead.
Set state of slot 1 at instr offset 0x74 to Live.
Set state of slot 2 at instr offset 0x74 to Live.
Set state of slot 1 at instr offset 0x76 to Dead.
Set state of slot 2 at instr offset 0x76 to Dead.
Set state of slot 1 at instr offset 0x80 to Live.
Set state of slot 2 at instr offset 0x80 to Live.
Set state of slot 1 at instr offset 0x82 to Dead.
Set state of slot 2 at instr offset 0x82 to Dead.
Set state of slot 1 at instr offset 0xa6 to Live.
Set state of slot 3 at instr offset 0xa6 to Live.
Set state of slot 2 at instr offset 0xa6 to Live.
Set state of slot 1 at instr offset 0xa8 to Dead.
Set state of slot 3 at instr offset 0xa8 to Dead.
Set state of slot 2 at instr offset 0xa8 to Dead.
Set state of slot 1 at instr offset 0xb0 to Live.
Set state of slot 2 at instr offset 0xb0 to Live.
Set state of slot 1 at instr offset 0xb2 to Dead.
Set state of slot 2 at instr offset 0xb2 to Dead.
Defining 5 call sites:
Offset 0x74, size 2.
Offset 0x80, size 2.
Offset 0xa6, size 2.
Offset 0xb0, size 2.
Offset 0xde, size 2.
Method code size: 226
Allocations for Program:M11(ref,ushort,ushort,ubyte,bool,ref):ushort (MethodHash=c9f11a7d)
count: 2025, size: 121761, max = 2600
allocateMemory: 131072, nraUsed: 123356
Alloc'd bytes by kind:
kind | size | pct
---------------------+------------+--------
AssertionProp | 5412 | 4.44%
ASTNode | 19880 | 16.33%
InstDesc | 5236 | 4.30%
ImpStack | 192 | 0.16%
BasicBlock | 1332 | 1.09%
fgArgInfo | 440 | 0.36%
fgArgInfoPtrArr | 40 | 0.03%
FlowList | 120 | 0.10%
TreeStatementList | 32 | 0.03%
SiScope | 524 | 0.43%
FlatFPStateX87 | 0 | 0.00%
DominatorMemory | 128 | 0.11%
LSRA | 2908 | 2.39%
LSRA_Interval | 2968 | 2.44%
LSRA_RefPosition | 13048 | 10.72%
Reachability | 8 | 0.01%
SSA | 1516 | 1.25%
ValueNumber | 20550 | 16.88%
LvaTable | 6440 | 5.29%
UnwindInfo | 16 | 0.01%
hashBv | 100 | 0.08%
bitset | 1132 | 0.93%
FixedBitVect | 0 | 0.00%
Generic | 1818 | 1.49%
IndirAssignMap | 0 | 0.00%
FieldSeqStore | 168 | 0.14%
ZeroOffsetFieldMap | 28 | 0.02%
ArrayInfoMap | 164 | 0.13%
MemoryPhiArg | 16 | 0.01%
CSE | 1196 | 0.98%
GC | 2385 | 1.96%
CorSig | 104 | 0.09%
Inlining | 636 | 0.52%
ArrayStack | 0 | 0.00%
DebugInfo | 464 | 0.38%
DebugOnly | 29820 | 24.49%
Codegen | 752 | 0.62%
LoopOpt | 0 | 0.00%
LoopHoist | 0 | 0.00%
Unknown | 388 | 0.32%
RangeCheck | 680 | 0.56%
CopyProp | 1120 | 0.92%
****** DONE compiling Program:M11(ref,ushort,ushort,ubyte,bool,ref):ushort
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment