Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ****** START compiling CoreLab.Program:Caller() (MethodHash=4dbcbd65)
- Generating code for Windows x64
- OPTIONS: compCodeOpt = BLENDED_CODE
- OPTIONS: compDbgCode = true
- OPTIONS: compDbgInfo = true
- OPTIONS: compDbgEnC = false
- OPTIONS: compProcedureSplitting = false
- OPTIONS: compProcedureSplittingEH = false
- IL to import:
- IL_0000 00 nop
- IL_0001 28 03 00 00 06 call 0x6000003
- IL_0006 26 pop
- IL_0007 2a ret
- lvaGrabTemp returning 0 (V00 tmp0) (a long lifetime temp) called for OutgoingArgSpace.
- ; Initial local variable assignments
- ;
- ; V00 OutArgs lclBlk (na) "OutgoingArgSpace"
- *************** In compInitDebuggingInfo() for CoreLab.Program:Caller()
- getVars() returned cVars = 0, extendOthers = true
- info.compStmtOffsetsCount = 0
- info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE )
- *************** In fgFindBasicBlocks() for CoreLab.Program:Caller()
- Jump targets:
- none
- New Basic Block BB01 [0000] created.
- BB01 [000..008)
- CLFLG_MINOPT set for method CoreLab.Program:Caller()
- IL Code Size,Instr 8, 4, Basic Block count 1, Local Variable Num,Ref count 1, 0 for method CoreLab.Program:Caller()
- IL Code Size,Instr 8, 4, Basic Block count 1, Local Variable Num,Ref count 1, 0 for method CoreLab.Program:Caller()
- OPTIONS: opts.MinOpts() == true
- Basic block list for 'CoreLab.Program:Caller()'
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [000..008) (return)
- -----------------------------------------------------------------------------------------------------------------------------------------
- *************** In impImport() for CoreLab.Program:Caller()
- impImportBlockPending for BB01
- Importing BB01 (PC=000) of 'CoreLab.Program:Caller()'
- [ 0] 0 (0x000) nop
- STMT00000 (IL 0x000... ???)
- [000000] ------------ * NO_OP void
- [ 0] 1 (0x001) call 06000003
- In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 16
- HW Intrinsic SIMD Candidate Type Vector128`1 with Base Type Double
- Found type Hardware Intrinsic SIMD Vector128<double>
- Known type Vector128<double>
- lvaGrabTemp returning 1 (V01 tmp1) called for impSpillStackEnsure.
- Known type Vector128<double>
- STMT00001 (IL 0x001... ???)
- [000004] -AC-G------- * ASG simd16 (copy)
- [000002] D----------- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 tmp1
- [000001] --C-G------- \--* CALL simd16 CoreLab.Program.Callee
- [ 1] 6 (0x006) pop
- ... CEE_POP struct ...
- [000005] ------------ * LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 tmp1
- ... optimized to ...
- [000006] ------------ * ADDR byref
- [000005] ------------ \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 tmp1
- STMT00002 (IL 0x006... ???)
- [000008] ------------ * COMMA void
- [000006] ------------ +--* ADDR byref
- [000005] ------------ | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 tmp1
- [000007] ------------ \--* NOP void
- [ 0] 7 (0x007) ret
- STMT00003 (IL 0x007... ???)
- [000009] ------------ * RETURN void
- *************** in fgTransformIndirectCalls(root)
- -- no candidates to transform
- New BlockSet epoch 1, # of blocks (including unused BB00): 2, bitset array size: 1 (short)
- *************** In fgMorph()
- *************** In fgDebugCheckBBlist
- *************** In Allocate Objects
- Trees before Allocate Objects
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [000..008) (return) i
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [000..008) (return), preds={} succs={}
- ***** BB01
- STMT00000 (IL 0x000...0x000)
- [000000] ------------ * NO_OP void
- ***** BB01
- STMT00001 (IL 0x001...0x006)
- [000004] -AC-G------- * ASG simd16 (copy)
- [000002] D----------- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 tmp1
- [000001] --C-G------- \--* CALL simd16 CoreLab.Program.Callee
- ***** BB01
- STMT00002 (IL 0x006... ???)
- [000008] ------------ * COMMA void
- [000006] ------------ +--* ADDR byref
- [000005] ------------ | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 tmp1
- [000007] ------------ \--* NOP void
- ***** BB01
- STMT00003 (IL 0x007...0x007)
- [000009] ------------ * RETURN void
- -------------------------------------------------------------------------------------------------------------------
- *** ObjectAllocationPhase: no newobjs in this method; punting
- *************** Exiting Allocate Objects
- Trees after Allocate Objects
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [000..008) (return) i
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [000..008) (return), preds={} succs={}
- ***** BB01
- STMT00000 (IL 0x000...0x000)
- [000000] ------------ * NO_OP void
- ***** BB01
- STMT00001 (IL 0x001...0x006)
- [000004] -AC-G------- * ASG simd16 (copy)
- [000002] D----------- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 tmp1
- [000001] --C-G------- \--* CALL simd16 CoreLab.Program.Callee
- ***** BB01
- STMT00002 (IL 0x006... ???)
- [000008] ------------ * COMMA void
- [000006] ------------ +--* ADDR byref
- [000005] ------------ | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 tmp1
- [000007] ------------ \--* NOP void
- ***** BB01
- STMT00003 (IL 0x007...0x007)
- [000009] ------------ * RETURN void
- -------------------------------------------------------------------------------------------------------------------
- New Basic Block BB02 [0001] created.
- New scratch BB02
- *************** After fgAddInternal()
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB02 [0001] 1 1 [???..???) i internal
- BB01 [0000] 1 1 [000..008) (return) i
- -----------------------------------------------------------------------------------------------------------------------------------------
- *************** Exception Handling table is empty
- *************** In fgDebugCheckBBlist
- *************** In fgRemoveEmptyTry()
- No EH in this method, nothing to remove.
- *************** In fgRemoveEmptyFinally()
- No EH in this method, nothing to remove.
- *************** In fgMergeFinallyChains()
- No EH in this method, nothing to merge.
- *************** In fgCloneFinally()
- No EH in this method, no cloning.
- *************** In fgResetImplicitByRefRefCount()
- *************** In fgPromoteStructs()
- promotion opt flag not enabled
- *************** In fgMarkAddressExposedLocals()
- LocalAddressVisitor visiting statement:
- STMT00004 (IL ???... ???)
- [000017] --C-G------- * QMARK void
- [000013] Q----------- if +--* EQ int
- [000011] ------------ | +--* IND int
- [000010] ------------ | | \--* CNS_INT(h) long 0x7fff4561eaf0 token
- [000012] ------------ | \--* CNS_INT int 0
- [000016] --C-G------- if \--* COLON void
- [000014] --C-G------- else +--* CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- [000015] ------------ then \--* NOP void
- LocalAddressVisitor visiting statement:
- STMT00000 (IL 0x000...0x000)
- [000000] ------------ * NO_OP void
- LocalAddressVisitor visiting statement:
- STMT00001 (IL 0x001...0x006)
- [000004] -AC-G------- * ASG simd16 (copy)
- [000002] D----------- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 tmp1
- [000001] --C-G------- \--* CALL simd16 CoreLab.Program.Callee
- LocalAddressVisitor visiting statement:
- STMT00002 (IL 0x006... ???)
- [000008] ------------ * COMMA void
- [000006] ------------ +--* ADDR byref
- [000005] ------------ | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 tmp1
- [000007] ------------ \--* NOP void
- Local V01 should not be enregistered because: it is address exposed
- LocalAddressVisitor visiting statement:
- STMT00003 (IL 0x007...0x007)
- [000009] ------------ * RETURN void
- *************** In fgRetypeImplicitByRefArgs()
- *************** In fgMorphBlocks()
- Morphing BB02 of 'CoreLab.Program:Caller()'
- fgMorphTree BB02, STMT00004 (before)
- [000017] --C-G------- * QMARK void
- [000013] Q----------- if +--* EQ int
- [000011] ------------ | +--* IND int
- [000010] ------------ | | \--* CNS_INT(h) long 0x7fff4561eaf0 token
- [000012] ------------ | \--* CNS_INT int 0
- [000016] --C-G------- if \--* COLON void
- [000014] --C-G------- else +--* CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- [000015] ------------ then \--* NOP void
- Initializing arg info for 14.CALL:
- ArgTable for 14.CALL after fgInitArgInfo:
- Morphing args for 14.CALL:
- argSlots=0, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
- ArgTable for 14.CALL after fgMorphArgs:
- Morphing BB01 of 'CoreLab.Program:Caller()'
- fgMorphTree BB01, STMT00000 (before)
- [000000] ------------ * NO_OP void
- fgMorphTree BB01, STMT00001 (before)
- [000004] -AC-G------- * ASG simd16 (copy)
- [000002] D----------- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]>(AX) V01 tmp1
- [000001] --C-G------- \--* CALL simd16 CoreLab.Program.Callee
- Known type Vector128<double>
- Initializing arg info for 1.CALL:
- ArgTable for 1.CALL after fgInitArgInfo:
- Morphing args for 1.CALL:
- argSlots=0, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
- ArgTable for 1.CALL after fgMorphArgs:
- fgMorphCopyBlock:fgMorphOneAsgBlock (after):
- [000004] -ACXG------- * ASG simd16 (copy)
- [000002] D---G+-N---- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]>(AX) V01 tmp1
- [000001] --CXG+------ \--* CALL simd16 CoreLab.Program.Callee
- using oneAsgTree.
- fgMorphCopyBlock (after):
- [000004] -ACXG------- * ASG simd16 (copy)
- [000002] D---G+-N---- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]>(AX) V01 tmp1
- [000001] --CXG+------ \--* CALL simd16 CoreLab.Program.Callee
- fgMorphTree BB01, STMT00002 (before)
- [000008] ------------ * COMMA void
- [000006] ------------ +--* ADDR byref
- [000005] ------------ | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]>(AX) V01 tmp1
- [000007] ------------ \--* NOP void
- fgMorphTree BB01, STMT00002 (after)
- [000007] -----+------ * NOP void
- fgMorphTree BB01, STMT00003 (before)
- [000009] ------------ * RETURN void
- Expanding top-level qmark in BB02 (before)
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB02 [0001] 1 1 [???..???) i internal
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB02 [???..???), preds={} succs={BB01}
- ***** BB02
- STMT00004 (IL ???... ???)
- [000017] --C-G+------ * QMARK void
- [000013] J----+-N---- if +--* EQ int
- [000011] n----+------ | +--* IND int
- [000010] -----+------ | | \--* CNS_INT(h) long 0x7fff4561eaf0 token
- [000012] -----+------ | \--* CNS_INT int 0
- [000016] --C-G+?----- if \--* COLON void
- [000014] --C-G+?----- else +--* CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- [000015] -----+?----- then \--* NOP void
- -------------------------------------------------------------------------------------------------------------------
- New Basic Block BB03 [0002] created.
- BB01 previous predecessor was BB02, now is BB03
- New Basic Block BB04 [0003] created.
- New Basic Block BB05 [0004] created.
- Removing statement STMT00004 (IL ???... ???)
- [000017] --C-G+------ * QMARK void
- [000013] J----+-N---- if +--* EQ int
- [000011] n----+------ | +--* IND int
- [000010] -----+------ | | \--* CNS_INT(h) long 0x7fff4561eaf0 token
- [000012] -----+------ | \--* CNS_INT int 0
- [000016] --C-G+?----- if \--* COLON void
- [000014] --C-G+?----- else +--* CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- [000015] -----+?----- then \--* NOP void
- in BB02 as useless:
- BB02 becomes empty
- Expanding top-level qmark in BB02 (after)
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB02 [0001] 1 1 [???..???) i internal
- BB04 [0003] 1 1 [???..???)-> BB03 ( cond ) internal
- BB05 [0004] 1 0.50 [???..???) internal
- BB03 [0002] 2 1 [???..???) i internal label target
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB02 [???..???), preds={} succs={BB04}
- ------------ BB04 [???..???) -> BB03 (cond), preds={} succs={BB05,BB03}
- ***** BB04
- STMT00005 (IL ???... ???)
- [000018] ------------ * JTRUE void
- [000013] J----+-N---- \--* EQ int
- [000011] n----+------ +--* IND int
- [000010] -----+------ | \--* CNS_INT(h) long 0x7fff4561eaf0 token
- [000012] -----+------ \--* CNS_INT int 0
- ------------ BB05 [???..???), preds={} succs={BB03}
- ***** BB05
- STMT00006 (IL ???... ???)
- [000014] --C-G+?----- * CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- ------------ BB03 [???..???), preds={} succs={BB01}
- -------------------------------------------------------------------------------------------------------------------
- Renumbering the basic blocks for fgComputePred
- *************** Before renumbering the basic blocks
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB02 [0001] 1 1 [???..???) i internal
- BB04 [0003] 1 1 [???..???)-> BB03 ( cond ) internal
- BB05 [0004] 1 0.50 [???..???) internal
- BB03 [0002] 2 1 [???..???) i internal label target
- BB01 [0000] 1 1 [000..008) (return) i gcsafe
- -----------------------------------------------------------------------------------------------------------------------------------------
- *************** Exception Handling table is empty
- Renumber BB02 to BB01
- Renumber BB04 to BB02
- Renumber BB05 to BB03
- Renumber BB03 to BB04
- Renumber BB01 to BB05
- *************** After renumbering the basic blocks
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0001] 1 1 [???..???) i internal
- BB02 [0003] 1 1 [???..???)-> BB04 ( cond ) internal
- BB03 [0004] 1 0.50 [???..???) internal
- BB04 [0002] 2 1 [???..???) i internal label target
- BB05 [0000] 1 1 [000..008) (return) i gcsafe
- -----------------------------------------------------------------------------------------------------------------------------------------
- *************** Exception Handling table is empty
- New BlockSet epoch 2, # of blocks (including unused BB00): 6, bitset array size: 1 (short)
- *************** In fgComputePreds()
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0001] 1 1 [???..???) i internal
- BB02 [0003] 1 1 [???..???)-> BB04 ( cond ) internal
- BB03 [0004] 1 0.50 [???..???) internal
- BB04 [0002] 2 1 [???..???) i internal label target
- BB05 [0000] 1 1 [000..008) (return) i gcsafe
- -----------------------------------------------------------------------------------------------------------------------------------------
- *************** After fgComputePreds()
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0001] 1 1 [???..???) i internal label target
- BB02 [0003] 1 BB01 1 [???..???)-> BB04 ( cond ) internal
- BB03 [0004] 1 BB02 0.50 [???..???) internal
- BB04 [0002] 2 BB02,BB03 1 [???..???) i internal label target
- BB05 [0000] 1 BB04 1 [000..008) (return) i gcsafe
- -----------------------------------------------------------------------------------------------------------------------------------------
- *************** In fgComputeBlockAndEdgeWeights()
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0001] 1 1 [???..???) i internal label target
- BB02 [0003] 1 BB01 1 [???..???)-> BB04 ( cond ) internal
- BB03 [0004] 1 BB02 0.50 [???..???) internal
- BB04 [0002] 2 BB02,BB03 1 [???..???) i internal label target
- BB05 [0000] 1 BB04 1 [000..008) (return) i gcsafe
- -----------------------------------------------------------------------------------------------------------------------------------------
- -- no profile data, so using default called count
- -- not optimizing, so not computing edge weights
- *************** In fgCreateFunclets()
- After fgCreateFunclets()
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0001] 1 1 [???..???) i internal label target
- BB02 [0003] 1 BB01 1 [???..???)-> BB04 ( cond ) internal
- BB03 [0004] 1 BB02 0.50 [???..???) internal
- BB04 [0002] 2 BB02,BB03 1 [???..???) i internal label target
- BB05 [0000] 1 BB04 1 [000..008) (return) i gcsafe
- -----------------------------------------------------------------------------------------------------------------------------------------
- *************** Exception Handling table is empty
- *************** In fgDebugCheckBBlist
- *************** In lvaMarkLocalVars()
- *** lvaComputeRefCounts ***
- *************** In fgFindOperOrder()
- *************** In fgSetBlockOrder()
- The biggest BB has 5 tree nodes
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0001] 1 1 [???..???) i internal label target
- BB02 [0003] 1 BB01 1 [???..???)-> BB04 ( cond ) internal
- BB03 [0004] 1 BB02 0.50 [???..???) internal
- BB04 [0002] 2 BB02,BB03 1 [???..???) i internal label target
- BB05 [0000] 1 BB04 1 [000..008) (return) i gcsafe
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [???..???), preds={} succs={BB02}
- ------------ BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- ***** BB02
- STMT00005 (IL ???... ???)
- N005 ( 9, 16) [000018] ------------ * JTRUE void
- N004 ( 7, 14) [000013] J------N---- \--* EQ int
- N002 ( 5, 12) [000011] n----------- +--* IND int
- N001 ( 3, 10) [000010] ------------ | \--* CNS_INT(h) long 0x7fff4561eaf0 token
- N003 ( 1, 1) [000012] ------------ \--* CNS_INT int 0
- ------------ BB03 [???..???), preds={BB02} succs={BB04}
- ***** BB03
- STMT00006 (IL ???... ???)
- N001 ( 14, 5) [000014] --C-G-?----- * CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- ------------ BB04 [???..???), preds={BB02,BB03} succs={BB05}
- ------------ BB05 [000..008) (return), preds={BB04} succs={}
- ***** BB05
- STMT00000 (IL 0x000...0x000)
- N001 ( 1, 1) [000000] ------------ * NO_OP void
- ***** BB05
- STMT00001 (IL 0x001...0x006)
- N003 ( 18, 8) [000004] -ACXG---R--- * ASG simd16 (copy)
- N002 ( 3, 2) [000002] D---G--N---- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]>(AX) V01 tmp1
- N001 ( 14, 5) [000001] --CXG------- \--* CALL simd16 CoreLab.Program.Callee
- ***** BB05
- STMT00002 (IL 0x006... ???)
- N001 ( 0, 0) [000007] ------------ * NOP void
- ***** BB05
- STMT00003 (IL 0x007...0x007)
- N001 ( 0, 0) [000009] ------------ * RETURN void
- -------------------------------------------------------------------------------------------------------------------
- *************** 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 lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0001] 1 1 [???..???) i internal label target
- BB02 [0003] 1 BB01 1 [???..???)-> BB04 ( cond ) internal
- BB03 [0004] 1 BB02 0.50 [???..???) internal
- BB04 [0002] 2 BB02,BB03 1 [???..???) i internal label target
- BB05 [0000] 1 BB04 1 [000..008) (return) i gcsafe
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [???..???), preds={} succs={BB02}
- ------------ BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- ***** BB02
- STMT00005 (IL ???... ???)
- N005 ( 9, 16) [000018] ------------ * JTRUE void
- N004 ( 7, 14) [000013] J------N---- \--* EQ int
- N002 ( 5, 12) [000011] n----------- +--* IND int
- N001 ( 3, 10) [000010] ------------ | \--* CNS_INT(h) long 0x7fff4561eaf0 token
- N003 ( 1, 1) [000012] ------------ \--* CNS_INT int 0
- ------------ BB03 [???..???), preds={BB02} succs={BB04}
- ***** BB03
- STMT00006 (IL ???... ???)
- N001 ( 14, 5) [000014] --C-G-?----- * CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- ------------ BB04 [???..???), preds={BB02,BB03} succs={BB05}
- ------------ BB05 [000..008) (return), preds={BB04} succs={}
- ***** BB05
- STMT00000 (IL 0x000...0x000)
- N001 ( 1, 1) [000000] ------------ * NO_OP void
- ***** BB05
- STMT00001 (IL 0x001...0x006)
- N003 ( 18, 8) [000004] -ACXG---R--- * ASG simd16 (copy)
- N002 ( 3, 2) [000002] D---G--N---- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]>(AX) V01 tmp1
- N001 ( 14, 5) [000001] --CXG------- \--* CALL simd16 CoreLab.Program.Callee
- ***** BB05
- STMT00002 (IL 0x006... ???)
- N001 ( 0, 0) [000007] ------------ * NOP void
- ***** BB05
- STMT00003 (IL 0x007...0x007)
- N001 ( 0, 0) [000009] ------------ * RETURN void
- -------------------------------------------------------------------------------------------------------------------
- rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
- N003 ( 18, 8) [000004] DACXG------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]>(AX) V01 tmp1
- *************** Exiting IR Rationalize
- Trees after IR Rationalize
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0001] 1 1 [???..???) i internal label target LIR
- BB02 [0003] 1 BB01 1 [???..???)-> BB04 ( cond ) internal LIR
- BB03 [0004] 1 BB02 0.50 [???..???) internal LIR
- BB04 [0002] 2 BB02,BB03 1 [???..???) i internal label target LIR
- BB05 [0000] 1 BB04 1 [000..008) (return) i gcsafe LIR
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [???..???), preds={} succs={BB02}
- ------------ BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- N001 ( 3, 10) [000010] ------------ t10 = CNS_INT(h) long 0x7fff4561eaf0 token
- /--* t10 long
- N002 ( 5, 12) [000011] n----------- t11 = * IND int
- N003 ( 1, 1) [000012] ------------ t12 = CNS_INT int 0
- /--* t11 int
- +--* t12 int
- N004 ( 7, 14) [000013] J------N---- t13 = * EQ int
- /--* t13 int
- N005 ( 9, 16) [000018] ------------ * JTRUE void
- ------------ BB03 [???..???), preds={BB02} succs={BB04}
- N001 ( 14, 5) [000014] --C-G-?----- CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- ------------ BB04 [???..???), preds={BB02,BB03} succs={BB05}
- ------------ BB05 [000..008) (return), preds={BB04} succs={}
- [000019] ------------ IL_OFFSET void IL offset: 0x0
- N001 ( 1, 1) [000000] ------------ NO_OP void
- [000020] ------------ IL_OFFSET void IL offset: 0x1
- N001 ( 14, 5) [000001] --CXG------- t1 = CALL simd16 CoreLab.Program.Callee
- /--* t1 simd16
- N003 ( 18, 8) [000004] DA-XG------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]>(AX) V01 tmp1
- [000021] ------------ IL_OFFSET void IL offset: 0x6
- N001 ( 0, 0) [000007] ------------ NOP void
- [000022] ------------ IL_OFFSET void IL offset: 0x7
- N001 ( 0, 0) [000009] ------------ RETURN void
- -------------------------------------------------------------------------------------------------------------------
- *************** In fgDebugCheckBBlist
- Bumping outgoingArgSpaceSize to 32 for call [000014]
- outgoingArgSpaceSize 32 sufficient for call [000001], which needs 32
- *************** In fgDebugCheckBBlist
- *************** In Lowering
- Trees before Lowering
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0001] 1 1 [???..???) i internal label target LIR
- BB02 [0003] 1 BB01 1 [???..???)-> BB04 ( cond ) internal LIR
- BB03 [0004] 1 BB02 0.50 [???..???) internal LIR
- BB04 [0002] 2 BB02,BB03 1 [???..???) i internal label target LIR
- BB05 [0000] 1 BB04 1 [000..008) (return) i gcsafe LIR
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [???..???), preds={} succs={BB02}
- ------------ BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- N001 ( 3, 10) [000010] ------------ t10 = CNS_INT(h) long 0x7fff4561eaf0 token
- /--* t10 long
- N002 ( 5, 12) [000011] n----------- t11 = * IND int
- N003 ( 1, 1) [000012] ------------ t12 = CNS_INT int 0
- /--* t11 int
- +--* t12 int
- N004 ( 7, 14) [000013] J------N---- t13 = * EQ int
- /--* t13 int
- N005 ( 9, 16) [000018] ------------ * JTRUE void
- ------------ BB03 [???..???), preds={BB02} succs={BB04}
- N001 ( 14, 5) [000014] --C-G-?----- CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- ------------ BB04 [???..???), preds={BB02,BB03} succs={BB05}
- ------------ BB05 [000..008) (return), preds={BB04} succs={}
- [000019] ------------ IL_OFFSET void IL offset: 0x0
- N001 ( 1, 1) [000000] ------------ NO_OP void
- [000020] ------------ IL_OFFSET void IL offset: 0x1
- N001 ( 14, 5) [000001] --CXG------- t1 = CALL simd16 CoreLab.Program.Callee
- /--* t1 simd16
- N003 ( 18, 8) [000004] DA-XG------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]>(AX) V01 tmp1
- [000021] ------------ IL_OFFSET void IL offset: 0x6
- N001 ( 0, 0) [000007] ------------ NOP void
- [000022] ------------ IL_OFFSET void IL offset: 0x7
- N001 ( 0, 0) [000009] ------------ RETURN void
- -------------------------------------------------------------------------------------------------------------------
- lowering call (before):
- N001 ( 14, 5) [000014] --C-G-?----- CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- objp:
- ======
- args:
- ======
- late:
- ======
- lowering call (after):
- N001 ( 14, 5) [000014] --C-G-?----- CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- lowering call (before):
- N001 ( 14, 5) [000001] --CXG------- t1 = CALL simd16 CoreLab.Program.Callee
- objp:
- ======
- args:
- ======
- late:
- ======
- lowering call (after):
- N001 ( 14, 5) [000001] --CXG------- t1 = CALL simd16 CoreLab.Program.Callee
- lowering GT_RETURN
- N001 ( 0, 0) [000009] ------------ * RETURN void
- ============Lower has completed modifying nodes.
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0001] 1 1 [???..???) i internal label target LIR
- BB02 [0003] 1 BB01 1 [???..???)-> BB04 ( cond ) internal LIR
- BB03 [0004] 1 BB02 0.50 [???..???) internal LIR
- BB04 [0002] 2 BB02,BB03 1 [???..???) i internal label target LIR
- BB05 [0000] 1 BB04 1 [000..008) (return) i gcsafe LIR
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [???..???), preds={} succs={BB02}
- ------------ BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- N001 ( 3, 10) [000010] -c---------- t10 = CNS_INT(h) long 0x7fff4561eaf0 token
- /--* t10 long
- N002 ( 5, 12) [000011] nc---------- t11 = * IND int
- N003 ( 1, 1) [000012] -c---------- t12 = CNS_INT int 0
- /--* t11 int
- +--* t12 int
- N004 ( 7, 14) [000013] J------N---- * EQ void
- N005 ( 9, 16) [000018] ------------ * JTRUE void
- ------------ BB03 [???..???), preds={BB02} succs={BB04}
- N001 ( 14, 5) [000014] --C-G-?----- CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- ------------ BB04 [???..???), preds={BB02,BB03} succs={BB05}
- ------------ BB05 [000..008) (return), preds={BB04} succs={}
- [000019] ------------ IL_OFFSET void IL offset: 0x0
- N001 ( 1, 1) [000000] ------------ NO_OP void
- [000020] ------------ IL_OFFSET void IL offset: 0x1
- N001 ( 14, 5) [000001] --CXG------- t1 = CALL simd16 CoreLab.Program.Callee
- /--* t1 simd16
- N003 ( 18, 8) [000004] DA-XG------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]>(AX) V01 tmp1
- [000021] ------------ IL_OFFSET void IL offset: 0x6
- N001 ( 0, 0) [000007] ------------ NOP void
- [000022] ------------ IL_OFFSET void IL offset: 0x7
- N001 ( 0, 0) [000009] ------------ RETURN void
- -------------------------------------------------------------------------------------------------------------------
- *** lvaComputeRefCounts ***
- *************** In fgLocalVarLiveness()
- ; Initial local variable assignments
- ;
- ; V00 OutArgs lclBlk (32) "OutgoingArgSpace"
- ; V01 tmp1 simd16 do-not-enreg[XS] addr-exposed "impSpillStackEnsure"
- In fgLocalVarLivenessInit
- *************** In fgPerBlockLocalVarLiveness()
- *************** In fgInterBlockLocalVarLiveness()
- *** lvaComputeRefCounts ***
- Liveness pass finished after lowering, IR:
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0001] 1 1 [???..???) i internal label target LIR
- BB02 [0003] 1 BB01 1 [???..???)-> BB04 ( cond ) internal LIR
- BB03 [0004] 1 BB02 0.50 [???..???) internal LIR
- BB04 [0002] 2 BB02,BB03 1 [???..???) i internal label target LIR
- BB05 [0000] 1 BB04 1 [000..008) (return) i gcsafe LIR
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [???..???), preds={} succs={BB02}
- ------------ BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- N001 ( 3, 10) [000010] -c---------- t10 = CNS_INT(h) long 0x7fff4561eaf0 token
- /--* t10 long
- N002 ( 5, 12) [000011] nc---------- t11 = * IND int
- N003 ( 1, 1) [000012] -c---------- t12 = CNS_INT int 0
- /--* t11 int
- +--* t12 int
- N004 ( 7, 14) [000013] J------N---- * EQ void
- N005 ( 9, 16) [000018] ------------ * JTRUE void
- ------------ BB03 [???..???), preds={BB02} succs={BB04}
- N001 ( 14, 5) [000014] --C-G-?----- CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- ------------ BB04 [???..???), preds={BB02,BB03} succs={BB05}
- ------------ BB05 [000..008) (return), preds={BB04} succs={}
- [000019] ------------ IL_OFFSET void IL offset: 0x0
- N001 ( 1, 1) [000000] ------------ NO_OP void
- [000020] ------------ IL_OFFSET void IL offset: 0x1
- N001 ( 14, 5) [000001] --CXG------- t1 = CALL simd16 CoreLab.Program.Callee
- /--* t1 simd16
- N003 ( 18, 8) [000004] DA-XG------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]>(AX) V01 tmp1
- [000021] ------------ IL_OFFSET void IL offset: 0x6
- N001 ( 0, 0) [000007] ------------ NOP void
- [000022] ------------ IL_OFFSET void IL offset: 0x7
- N001 ( 0, 0) [000009] ------------ RETURN void
- -------------------------------------------------------------------------------------------------------------------
- *************** Exiting Lowering
- Trees after Lowering
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0001] 1 1 [???..???) i internal label target LIR
- BB02 [0003] 1 BB01 1 [???..???)-> BB04 ( cond ) internal LIR
- BB03 [0004] 1 BB02 0.50 [???..???) internal LIR
- BB04 [0002] 2 BB02,BB03 1 [???..???) i internal label target LIR
- BB05 [0000] 1 BB04 1 [000..008) (return) i gcsafe LIR
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [???..???), preds={} succs={BB02}
- ------------ BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- N001 ( 3, 10) [000010] -c---------- t10 = CNS_INT(h) long 0x7fff4561eaf0 token
- /--* t10 long
- N002 ( 5, 12) [000011] nc---------- t11 = * IND int
- N003 ( 1, 1) [000012] -c---------- t12 = CNS_INT int 0
- /--* t11 int
- +--* t12 int
- N004 ( 7, 14) [000013] J------N---- * EQ void
- N005 ( 9, 16) [000018] ------------ * JTRUE void
- ------------ BB03 [???..???), preds={BB02} succs={BB04}
- N001 ( 14, 5) [000014] --C-G-?----- CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- ------------ BB04 [???..???), preds={BB02,BB03} succs={BB05}
- ------------ BB05 [000..008) (return), preds={BB04} succs={}
- [000019] ------------ IL_OFFSET void IL offset: 0x0
- N001 ( 1, 1) [000000] ------------ NO_OP void
- [000020] ------------ IL_OFFSET void IL offset: 0x1
- N001 ( 14, 5) [000001] --CXG------- t1 = CALL simd16 CoreLab.Program.Callee
- /--* t1 simd16
- N003 ( 18, 8) [000004] DA-XG------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]>(AX) V01 tmp1
- [000021] ------------ IL_OFFSET void IL offset: 0x6
- N001 ( 0, 0) [000007] ------------ NOP void
- [000022] ------------ IL_OFFSET void IL offset: 0x7
- N001 ( 0, 0) [000009] ------------ RETURN void
- -------------------------------------------------------------------------------------------------------------------
- *************** In fgDebugCheckBBlist
- *************** In StackLevelSetter
- Trees before StackLevelSetter
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0001] 1 1 [???..???) i internal label target LIR
- BB02 [0003] 1 BB01 1 [???..???)-> BB04 ( cond ) internal LIR
- BB03 [0004] 1 BB02 0.50 [???..???) internal LIR
- BB04 [0002] 2 BB02,BB03 1 [???..???) i internal label target LIR
- BB05 [0000] 1 BB04 1 [000..008) (return) i gcsafe LIR
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [???..???), preds={} succs={BB02}
- ------------ BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- N001 ( 3, 10) [000010] -c---------- t10 = CNS_INT(h) long 0x7fff4561eaf0 token
- /--* t10 long
- N002 ( 5, 12) [000011] nc---------- t11 = * IND int
- N003 ( 1, 1) [000012] -c---------- t12 = CNS_INT int 0
- /--* t11 int
- +--* t12 int
- N004 ( 7, 14) [000013] J------N---- * EQ void
- N005 ( 9, 16) [000018] ------------ * JTRUE void
- ------------ BB03 [???..???), preds={BB02} succs={BB04}
- N001 ( 14, 5) [000014] --C-G-?----- CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- ------------ BB04 [???..???), preds={BB02,BB03} succs={BB05}
- ------------ BB05 [000..008) (return), preds={BB04} succs={}
- [000019] ------------ IL_OFFSET void IL offset: 0x0
- N001 ( 1, 1) [000000] ------------ NO_OP void
- [000020] ------------ IL_OFFSET void IL offset: 0x1
- N001 ( 14, 5) [000001] --CXG------- t1 = CALL simd16 CoreLab.Program.Callee
- /--* t1 simd16
- N003 ( 18, 8) [000004] DA-XG------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]>(AX) V01 tmp1
- [000021] ------------ IL_OFFSET void IL offset: 0x6
- N001 ( 0, 0) [000007] ------------ NOP void
- [000022] ------------ IL_OFFSET void IL offset: 0x7
- N001 ( 0, 0) [000009] ------------ RETURN void
- -------------------------------------------------------------------------------------------------------------------
- *************** Exiting StackLevelSetter
- Trees after StackLevelSetter
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0001] 1 1 [???..???) i internal label target LIR
- BB02 [0003] 1 BB01 1 [???..???)-> BB04 ( cond ) internal LIR
- BB03 [0004] 1 BB02 0.50 [???..???) internal LIR
- BB04 [0002] 2 BB02,BB03 1 [???..???) i internal label target LIR
- BB05 [0000] 1 BB04 1 [000..008) (return) i gcsafe LIR
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [???..???), preds={} succs={BB02}
- ------------ BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- N001 ( 3, 10) [000010] -c---------- t10 = CNS_INT(h) long 0x7fff4561eaf0 token
- /--* t10 long
- N002 ( 5, 12) [000011] nc---------- t11 = * IND int
- N003 ( 1, 1) [000012] -c---------- t12 = CNS_INT int 0
- /--* t11 int
- +--* t12 int
- N004 ( 7, 14) [000013] J------N---- * EQ void
- N005 ( 9, 16) [000018] ------------ * JTRUE void
- ------------ BB03 [???..???), preds={BB02} succs={BB04}
- N001 ( 14, 5) [000014] --C-G-?----- CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- ------------ BB04 [???..???), preds={BB02,BB03} succs={BB05}
- ------------ BB05 [000..008) (return), preds={BB04} succs={}
- [000019] ------------ IL_OFFSET void IL offset: 0x0
- N001 ( 1, 1) [000000] ------------ NO_OP void
- [000020] ------------ IL_OFFSET void IL offset: 0x1
- N001 ( 14, 5) [000001] --CXG------- t1 = CALL simd16 CoreLab.Program.Callee
- /--* t1 simd16
- N003 ( 18, 8) [000004] DA-XG------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]>(AX) V01 tmp1
- [000021] ------------ IL_OFFSET void IL offset: 0x6
- N001 ( 0, 0) [000007] ------------ NOP void
- [000022] ------------ IL_OFFSET void IL offset: 0x7
- N001 ( 0, 0) [000009] ------------ RETURN void
- -------------------------------------------------------------------------------------------------------------------
- *************** In fgDebugCheckBBlist
- Clearing modified regs.
- buildIntervals ========
- -----------------
- LIVENESS:
- -----------------
- BB01 use def in out
- {}
- {}
- {}
- {}
- BB02 use def in out
- {}
- {}
- {}
- {}
- BB03 use def in out
- {}
- {}
- {}
- {}
- BB04 use def in out
- {}
- {}
- {}
- {}
- BB05 use def in out
- {}
- {}
- {}
- {}
- FP callee save candidate vars: None
- floatVarCount = 0; hasLoops = 0, singleExit = 1
- TUPLE STYLE DUMP BEFORE LSRA
- LSRA Block Sequence: BB01( 1 )
- BB02( 1 )
- BB03( 0.50)
- BB04( 1 )
- BB05( 1 )
- BB01 [???..???), preds={} succs={BB02}
- =====
- BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- =====
- N001. CNS_INT(h) 0x7fff4561eaf0 token
- N002. IND
- N003. CNS_INT 0
- N004. EQ
- N005. JTRUE
- BB03 [???..???), preds={BB02} succs={BB04}
- =====
- N001. CALL help
- BB04 [???..???), preds={BB02,BB03} succs={BB05}
- =====
- BB05 [000..008) (return), preds={BB04} succs={}
- =====
- N000. IL_OFFSET IL offset: 0x0
- N001. NO_OP
- N000. IL_OFFSET IL offset: 0x1
- N001. t1 = CALL
- N003. V01 MEM; t1
- N000. IL_OFFSET IL offset: 0x6
- N001. NOP
- N000. IL_OFFSET IL offset: 0x7
- N001. RETURN
- buildIntervals second part ========
- NEW BLOCK BB01
- <RefPosition #0 @0 RefTypeBB BB01 regmask=[] minReg=1>
- NEW BLOCK BB02
- Setting BB01 as the predecessor for determining incoming variable registers of BB02
- <RefPosition #1 @2 RefTypeBB BB02 regmask=[] minReg=1>
- DefList: { }
- N004 ( 3, 10) [000010] -c---------- * CNS_INT(h) long 0x7fff4561eaf0 token REG NA
- Contained
- DefList: { }
- N006 ( 5, 12) [000011] nc---------- * IND int REG NA
- Contained
- DefList: { }
- N008 ( 1, 1) [000012] -c---------- * CNS_INT int 0 REG NA
- Contained
- DefList: { }
- N010 ( 7, 14) [000013] J------N---- * EQ void REG NA
- DefList: { }
- N012 ( 9, 16) [000018] ------------ * JTRUE void REG NA
- NEW BLOCK BB03
- Setting BB02 as the predecessor for determining incoming variable registers of BB03
- <RefPosition #2 @14 RefTypeBB BB03 regmask=[] minReg=1>
- DefList: { }
- N016 ( 14, 5) [000014] --C-G-?----- * CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE REG NA
- <RefPosition #3 @17 RefTypeKill <Reg:rax> BB03 regmask=[rax] minReg=1>
- <RefPosition #4 @17 RefTypeKill <Reg:rcx> BB03 regmask=[rcx] minReg=1>
- <RefPosition #5 @17 RefTypeKill <Reg:rdx> BB03 regmask=[rdx] minReg=1>
- <RefPosition #6 @17 RefTypeKill <Reg:r8 > BB03 regmask=[r8] minReg=1>
- <RefPosition #7 @17 RefTypeKill <Reg:r9 > BB03 regmask=[r9] minReg=1>
- <RefPosition #8 @17 RefTypeKill <Reg:r10> BB03 regmask=[r10] minReg=1>
- <RefPosition #9 @17 RefTypeKill <Reg:r11> BB03 regmask=[r11] minReg=1>
- <RefPosition #10 @17 RefTypeKill <Reg:mm0> BB03 regmask=[mm0] minReg=1>
- <RefPosition #11 @17 RefTypeKill <Reg:mm1> BB03 regmask=[mm1] minReg=1>
- <RefPosition #12 @17 RefTypeKill <Reg:mm2> BB03 regmask=[mm2] minReg=1>
- <RefPosition #13 @17 RefTypeKill <Reg:mm3> BB03 regmask=[mm3] minReg=1>
- <RefPosition #14 @17 RefTypeKill <Reg:mm4> BB03 regmask=[mm4] minReg=1>
- <RefPosition #15 @17 RefTypeKill <Reg:mm5> BB03 regmask=[mm5] minReg=1>
- NEW BLOCK BB04
- Setting BB02 as the predecessor for determining incoming variable registers of BB04
- <RefPosition #16 @18 RefTypeBB BB04 regmask=[] minReg=1>
- NEW BLOCK BB05
- Setting BB04 as the predecessor for determining incoming variable registers of BB05
- <RefPosition #17 @20 RefTypeBB BB05 regmask=[] minReg=1>
- DefList: { }
- N022 (???,???) [000019] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
- DefList: { }
- N024 ( 1, 1) [000000] ------------ * NO_OP void REG NA
- DefList: { }
- N026 (???,???) [000020] ------------ * IL_OFFSET void IL offset: 0x1 REG NA
- DefList: { }
- N028 ( 14, 5) [000001] --CXG------- * CALL simd16 CoreLab.Program.Callee REG NA
- <RefPosition #18 @29 RefTypeKill <Reg:rax> BB05 regmask=[rax] minReg=1>
- <RefPosition #19 @29 RefTypeKill <Reg:rcx> BB05 regmask=[rcx] minReg=1>
- <RefPosition #20 @29 RefTypeKill <Reg:rdx> BB05 regmask=[rdx] minReg=1>
- <RefPosition #21 @29 RefTypeKill <Reg:r8 > BB05 regmask=[r8] minReg=1>
- <RefPosition #22 @29 RefTypeKill <Reg:r9 > BB05 regmask=[r9] minReg=1>
- <RefPosition #23 @29 RefTypeKill <Reg:r10> BB05 regmask=[r10] minReg=1>
- <RefPosition #24 @29 RefTypeKill <Reg:r11> BB05 regmask=[r11] minReg=1>
- <RefPosition #25 @29 RefTypeKill <Reg:mm0> BB05 regmask=[mm0] minReg=1>
- <RefPosition #26 @29 RefTypeKill <Reg:mm1> BB05 regmask=[mm1] minReg=1>
- <RefPosition #27 @29 RefTypeKill <Reg:mm2> BB05 regmask=[mm2] minReg=1>
- <RefPosition #28 @29 RefTypeKill <Reg:mm3> BB05 regmask=[mm3] minReg=1>
- <RefPosition #29 @29 RefTypeKill <Reg:mm4> BB05 regmask=[mm4] minReg=1>
- <RefPosition #30 @29 RefTypeKill <Reg:mm5> BB05 regmask=[mm5] minReg=1>
- Interval 0: simd16 RefPositions {} physReg:NA Preferences=[allFloat]
- <RefPosition #31 @29 RefTypeFixedReg <Reg:mm0> BB05 regmask=[mm0] minReg=1>
- <RefPosition #32 @29 RefTypeDef <Ivl:0> CALL BB05 regmask=[mm0] minReg=1 fixed>
- DefList: { N028.t1. CALL }
- N030 ( 18, 8) [000004] DA-XG------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]>(AX) V01 tmp1 NA REG NA
- <RefPosition #33 @30 RefTypeUse <Ivl:0> BB05 regmask=[allFloat] minReg=1 last>
- DefList: { }
- N032 (???,???) [000021] ------------ * IL_OFFSET void IL offset: 0x6 REG NA
- DefList: { }
- N034 ( 0, 0) [000007] ------------ * NOP void REG NA
- DefList: { }
- N036 (???,???) [000022] ------------ * IL_OFFSET void IL offset: 0x7 REG NA
- DefList: { }
- N038 ( 0, 0) [000009] ------------ * RETURN void REG NA
- Linear scan intervals BEFORE VALIDATING INTERVALS:
- Interval 0: simd16 RefPositions {#32@29 #33@30} physReg:NA Preferences=[mm0]
- ------------
- REFPOSITIONS BEFORE VALIDATING INTERVALS:
- ------------
- <RefPosition #0 @0 RefTypeBB BB01 regmask=[] minReg=1>
- <RefPosition #1 @2 RefTypeBB BB02 regmask=[] minReg=1>
- <RefPosition #2 @14 RefTypeBB BB03 regmask=[] minReg=1>
- <RefPosition #3 @17 RefTypeKill <Reg:rax> BB03 regmask=[rax] minReg=1 last>
- <RefPosition #4 @17 RefTypeKill <Reg:rcx> BB03 regmask=[rcx] minReg=1 last>
- <RefPosition #5 @17 RefTypeKill <Reg:rdx> BB03 regmask=[rdx] minReg=1 last>
- <RefPosition #6 @17 RefTypeKill <Reg:r8 > BB03 regmask=[r8] minReg=1 last>
- <RefPosition #7 @17 RefTypeKill <Reg:r9 > BB03 regmask=[r9] minReg=1 last>
- <RefPosition #8 @17 RefTypeKill <Reg:r10> BB03 regmask=[r10] minReg=1 last>
- <RefPosition #9 @17 RefTypeKill <Reg:r11> BB03 regmask=[r11] minReg=1 last>
- <RefPosition #10 @17 RefTypeKill <Reg:mm0> BB03 regmask=[mm0] minReg=1 last>
- <RefPosition #11 @17 RefTypeKill <Reg:mm1> BB03 regmask=[mm1] minReg=1 last>
- <RefPosition #12 @17 RefTypeKill <Reg:mm2> BB03 regmask=[mm2] minReg=1 last>
- <RefPosition #13 @17 RefTypeKill <Reg:mm3> BB03 regmask=[mm3] minReg=1 last>
- <RefPosition #14 @17 RefTypeKill <Reg:mm4> BB03 regmask=[mm4] minReg=1 last>
- <RefPosition #15 @17 RefTypeKill <Reg:mm5> BB03 regmask=[mm5] minReg=1 last>
- <RefPosition #16 @18 RefTypeBB BB04 regmask=[] minReg=1>
- <RefPosition #17 @20 RefTypeBB BB05 regmask=[] minReg=1>
- <RefPosition #18 @29 RefTypeKill <Reg:rax> BB05 regmask=[rax] minReg=1 last>
- <RefPosition #19 @29 RefTypeKill <Reg:rcx> BB05 regmask=[rcx] minReg=1 last>
- <RefPosition #20 @29 RefTypeKill <Reg:rdx> BB05 regmask=[rdx] minReg=1 last>
- <RefPosition #21 @29 RefTypeKill <Reg:r8 > BB05 regmask=[r8] minReg=1 last>
- <RefPosition #22 @29 RefTypeKill <Reg:r9 > BB05 regmask=[r9] minReg=1 last>
- <RefPosition #23 @29 RefTypeKill <Reg:r10> BB05 regmask=[r10] minReg=1 last>
- <RefPosition #24 @29 RefTypeKill <Reg:r11> BB05 regmask=[r11] minReg=1 last>
- <RefPosition #25 @29 RefTypeKill <Reg:mm0> BB05 regmask=[mm0] minReg=1 last>
- <RefPosition #26 @29 RefTypeKill <Reg:mm1> BB05 regmask=[mm1] minReg=1 last>
- <RefPosition #27 @29 RefTypeKill <Reg:mm2> BB05 regmask=[mm2] minReg=1 last>
- <RefPosition #28 @29 RefTypeKill <Reg:mm3> BB05 regmask=[mm3] minReg=1 last>
- <RefPosition #29 @29 RefTypeKill <Reg:mm4> BB05 regmask=[mm4] minReg=1 last>
- <RefPosition #30 @29 RefTypeKill <Reg:mm5> BB05 regmask=[mm5] minReg=1 last>
- <RefPosition #31 @29 RefTypeFixedReg <Reg:mm0> BB05 regmask=[mm0] minReg=1>
- <RefPosition #32 @29 RefTypeDef <Ivl:0> CALL BB05 regmask=[mm0] minReg=1 fixed>
- <RefPosition #33 @30 RefTypeUse <Ivl:0> BB05 regmask=[allFloat] minReg=1 last>
- TUPLE STYLE DUMP WITH REF POSITIONS
- Incoming Parameters:
- BB01 [???..???), preds={} succs={BB02}
- =====
- BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- =====
- N004. CNS_INT(h) 0x7fff4561eaf0 token
- N006. IND
- N008. CNS_INT 0
- N010. EQ
- N012. JTRUE
- BB03 [???..???), preds={BB02} succs={BB04}
- =====
- N016. CALL help
- Kill: rax rcx rdx r8 r9 r10 r11 mm0 mm1 mm2 mm3 mm4 mm5
- BB04 [???..???), preds={BB02,BB03} succs={BB05}
- =====
- BB05 [000..008) (return), preds={BB04} succs={}
- =====
- N022. IL_OFFSET IL offset: 0x0
- N024. NO_OP
- N026. IL_OFFSET IL offset: 0x1
- N028. CALL
- Kill: rax rcx rdx r8 r9 r10 r11 mm0 mm1 mm2 mm3 mm4 mm5
- Def:<I0>(#32) mm0
- N030. V01 MEM
- Use:<I0>(#33) *
- N032. IL_OFFSET IL offset: 0x6
- N034. NOP
- N036. IL_OFFSET IL offset: 0x7
- N038. RETURN
- Linear scan intervals after buildIntervals:
- Interval 0: simd16 RefPositions {#32@29 #33@30} physReg:NA Preferences=[mm0]
- *************** In LinearScan::allocateRegisters()
- Linear scan intervals before allocateRegisters:
- Interval 0: simd16 RefPositions {#32@29 #33@30} physReg:NA Preferences=[mm0]
- ------------
- REFPOSITIONS BEFORE ALLOCATION:
- ------------
- <RefPosition #0 @0 RefTypeBB BB01 regmask=[] minReg=1>
- <RefPosition #1 @2 RefTypeBB BB02 regmask=[] minReg=1>
- <RefPosition #2 @14 RefTypeBB BB03 regmask=[] minReg=1>
- <RefPosition #3 @17 RefTypeKill <Reg:rax> BB03 regmask=[rax] minReg=1 last>
- <RefPosition #4 @17 RefTypeKill <Reg:rcx> BB03 regmask=[rcx] minReg=1 last>
- <RefPosition #5 @17 RefTypeKill <Reg:rdx> BB03 regmask=[rdx] minReg=1 last>
- <RefPosition #6 @17 RefTypeKill <Reg:r8 > BB03 regmask=[r8] minReg=1 last>
- <RefPosition #7 @17 RefTypeKill <Reg:r9 > BB03 regmask=[r9] minReg=1 last>
- <RefPosition #8 @17 RefTypeKill <Reg:r10> BB03 regmask=[r10] minReg=1 last>
- <RefPosition #9 @17 RefTypeKill <Reg:r11> BB03 regmask=[r11] minReg=1 last>
- <RefPosition #10 @17 RefTypeKill <Reg:mm0> BB03 regmask=[mm0] minReg=1 last>
- <RefPosition #11 @17 RefTypeKill <Reg:mm1> BB03 regmask=[mm1] minReg=1 last>
- <RefPosition #12 @17 RefTypeKill <Reg:mm2> BB03 regmask=[mm2] minReg=1 last>
- <RefPosition #13 @17 RefTypeKill <Reg:mm3> BB03 regmask=[mm3] minReg=1 last>
- <RefPosition #14 @17 RefTypeKill <Reg:mm4> BB03 regmask=[mm4] minReg=1 last>
- <RefPosition #15 @17 RefTypeKill <Reg:mm5> BB03 regmask=[mm5] minReg=1 last>
- <RefPosition #16 @18 RefTypeBB BB04 regmask=[] minReg=1>
- <RefPosition #17 @20 RefTypeBB BB05 regmask=[] minReg=1>
- <RefPosition #18 @29 RefTypeKill <Reg:rax> BB05 regmask=[rax] minReg=1 last>
- <RefPosition #19 @29 RefTypeKill <Reg:rcx> BB05 regmask=[rcx] minReg=1 last>
- <RefPosition #20 @29 RefTypeKill <Reg:rdx> BB05 regmask=[rdx] minReg=1 last>
- <RefPosition #21 @29 RefTypeKill <Reg:r8 > BB05 regmask=[r8] minReg=1 last>
- <RefPosition #22 @29 RefTypeKill <Reg:r9 > BB05 regmask=[r9] minReg=1 last>
- <RefPosition #23 @29 RefTypeKill <Reg:r10> BB05 regmask=[r10] minReg=1 last>
- <RefPosition #24 @29 RefTypeKill <Reg:r11> BB05 regmask=[r11] minReg=1 last>
- <RefPosition #25 @29 RefTypeKill <Reg:mm0> BB05 regmask=[mm0] minReg=1 last>
- <RefPosition #26 @29 RefTypeKill <Reg:mm1> BB05 regmask=[mm1] minReg=1 last>
- <RefPosition #27 @29 RefTypeKill <Reg:mm2> BB05 regmask=[mm2] minReg=1 last>
- <RefPosition #28 @29 RefTypeKill <Reg:mm3> BB05 regmask=[mm3] minReg=1 last>
- <RefPosition #29 @29 RefTypeKill <Reg:mm4> BB05 regmask=[mm4] minReg=1 last>
- <RefPosition #30 @29 RefTypeKill <Reg:mm5> BB05 regmask=[mm5] minReg=1 last>
- <RefPosition #31 @29 RefTypeFixedReg <Reg:mm0> BB05 regmask=[mm0] minReg=1>
- <RefPosition #32 @29 RefTypeDef <Ivl:0> CALL BB05 regmask=[mm0] minReg=1 fixed>
- <RefPosition #33 @30 RefTypeUse <Ivl:0> BB05 regmask=[allFloat] 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, a 'p' if it is a large vector that has been partially spilled, and 'i'if it is inactive.
- Columns are only printed up to the last modifed register, which may increase during allocation,
- in which case additional columns will appear.
- Registers which are not marked modified have ---- in their column.
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm6 |mm7 |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- | | | | | | | | | | | | | | |
- 0.#0 BB1 PredBB0 | | | | | | | | | | | | | | |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm6 |mm7 |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- 2.#1 BB2 PredBB1 | | | | | | | | | | | | | | |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm6 |mm7 |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- 14.#2 BB3 PredBB2 | | | | | | | | | | | | | | |
- 17.#3 rax Kill Keep rax | | | | | | | | | | | | | | |
- 17.#4 rcx Kill Keep rcx | | | | | | | | | | | | | | |
- 17.#5 rdx Kill Keep rdx | | | | | | | | | | | | | | |
- 17.#6 r8 Kill Keep r8 | | | | | | | | | | | | | | |
- 17.#7 r9 Kill Keep r9 | | | | | | | | | | | | | | |
- 17.#8 r10 Kill Keep r10 | | | | | | | | | | | | | | |
- 17.#9 r11 Kill Keep r11 | | | | | | | | | | | | | | |
- 17.#10 mm0 Kill Keep mm0 | | | | | | | | | | | | | | |
- 17.#11 mm1 Kill Keep mm1 | | | | | | | | | | | | | | |
- 17.#12 mm2 Kill Keep mm2 | | | | | | | | | | | | | | |
- 17.#13 mm3 Kill Keep mm3 | | | | | | | | | | | | | | |
- 17.#14 mm4 Kill Keep mm4 | | | | | | | | | | | | | | |
- 17.#15 mm5 Kill Keep mm5 | | | | | | | | | | | | | | |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm6 |mm7 |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- 18.#16 BB4 PredBB2 | | | | | | | | | | | | | | |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm6 |mm7 |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- 20.#17 BB5 PredBB4 | | | | | | | | | | | | | | |
- 29.#18 rax Kill Keep rax | | | | | | | | | | | | | | |
- 29.#19 rcx Kill Keep rcx | | | | | | | | | | | | | | |
- 29.#20 rdx Kill Keep rdx | | | | | | | | | | | | | | |
- 29.#21 r8 Kill Keep r8 | | | | | | | | | | | | | | |
- 29.#22 r9 Kill Keep r9 | | | | | | | | | | | | | | |
- 29.#23 r10 Kill Keep r10 | | | | | | | | | | | | | | |
- 29.#24 r11 Kill Keep r11 | | | | | | | | | | | | | | |
- 29.#25 mm0 Kill Keep mm0 | | | | | | | | | | | | | | |
- 29.#26 mm1 Kill Keep mm1 | | | | | | | | | | | | | | |
- 29.#27 mm2 Kill Keep mm2 | | | | | | | | | | | | | | |
- 29.#28 mm3 Kill Keep mm3 | | | | | | | | | | | | | | |
- 29.#29 mm4 Kill Keep mm4 | | | | | | | | | | | | | | |
- 29.#30 mm5 Kill Keep mm5 | | | | | | | | | | | | | | |
- 29.#31 mm0 Fixd Keep mm0 | | | | | | | | | | | | | | |
- 29.#32 I0 Def Alloc mm0 | | | | | | | | | |I0 a| | | | |
- 30.#33 I0 Use * Keep mm0 | | | | | | | | | | | | | | |
- ------------
- REFPOSITIONS AFTER ALLOCATION:
- ------------
- <RefPosition #0 @0 RefTypeBB BB01 regmask=[] minReg=1>
- <RefPosition #1 @2 RefTypeBB BB02 regmask=[] minReg=1>
- <RefPosition #2 @14 RefTypeBB BB03 regmask=[] minReg=1>
- <RefPosition #3 @17 RefTypeKill <Reg:rax> BB03 regmask=[rax] minReg=1 last>
- <RefPosition #4 @17 RefTypeKill <Reg:rcx> BB03 regmask=[rcx] minReg=1 last>
- <RefPosition #5 @17 RefTypeKill <Reg:rdx> BB03 regmask=[rdx] minReg=1 last>
- <RefPosition #6 @17 RefTypeKill <Reg:r8 > BB03 regmask=[r8] minReg=1 last>
- <RefPosition #7 @17 RefTypeKill <Reg:r9 > BB03 regmask=[r9] minReg=1 last>
- <RefPosition #8 @17 RefTypeKill <Reg:r10> BB03 regmask=[r10] minReg=1 last>
- <RefPosition #9 @17 RefTypeKill <Reg:r11> BB03 regmask=[r11] minReg=1 last>
- <RefPosition #10 @17 RefTypeKill <Reg:mm0> BB03 regmask=[mm0] minReg=1 last>
- <RefPosition #11 @17 RefTypeKill <Reg:mm1> BB03 regmask=[mm1] minReg=1 last>
- <RefPosition #12 @17 RefTypeKill <Reg:mm2> BB03 regmask=[mm2] minReg=1 last>
- <RefPosition #13 @17 RefTypeKill <Reg:mm3> BB03 regmask=[mm3] minReg=1 last>
- <RefPosition #14 @17 RefTypeKill <Reg:mm4> BB03 regmask=[mm4] minReg=1 last>
- <RefPosition #15 @17 RefTypeKill <Reg:mm5> BB03 regmask=[mm5] minReg=1 last>
- <RefPosition #16 @18 RefTypeBB BB04 regmask=[] minReg=1>
- <RefPosition #17 @20 RefTypeBB BB05 regmask=[] minReg=1>
- <RefPosition #18 @29 RefTypeKill <Reg:rax> BB05 regmask=[rax] minReg=1 last>
- <RefPosition #19 @29 RefTypeKill <Reg:rcx> BB05 regmask=[rcx] minReg=1 last>
- <RefPosition #20 @29 RefTypeKill <Reg:rdx> BB05 regmask=[rdx] minReg=1 last>
- <RefPosition #21 @29 RefTypeKill <Reg:r8 > BB05 regmask=[r8] minReg=1 last>
- <RefPosition #22 @29 RefTypeKill <Reg:r9 > BB05 regmask=[r9] minReg=1 last>
- <RefPosition #23 @29 RefTypeKill <Reg:r10> BB05 regmask=[r10] minReg=1 last>
- <RefPosition #24 @29 RefTypeKill <Reg:r11> BB05 regmask=[r11] minReg=1 last>
- <RefPosition #25 @29 RefTypeKill <Reg:mm0> BB05 regmask=[mm0] minReg=1 last>
- <RefPosition #26 @29 RefTypeKill <Reg:mm1> BB05 regmask=[mm1] minReg=1 last>
- <RefPosition #27 @29 RefTypeKill <Reg:mm2> BB05 regmask=[mm2] minReg=1 last>
- <RefPosition #28 @29 RefTypeKill <Reg:mm3> BB05 regmask=[mm3] minReg=1 last>
- <RefPosition #29 @29 RefTypeKill <Reg:mm4> BB05 regmask=[mm4] minReg=1 last>
- <RefPosition #30 @29 RefTypeKill <Reg:mm5> BB05 regmask=[mm5] minReg=1 last>
- <RefPosition #31 @29 RefTypeFixedReg <Reg:mm0> BB05 regmask=[mm0] minReg=1>
- <RefPosition #32 @29 RefTypeDef <Ivl:0> CALL BB05 regmask=[mm0] minReg=1 fixed>
- <RefPosition #33 @30 RefTypeUse <Ivl:0> BB05 regmask=[mm0] minReg=1 last>
- Active intervals at end of allocation:
- Trees after linear scan register allocator (LSRA)
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0001] 1 1 [???..???) i internal label target LIR
- BB02 [0003] 1 BB01 1 [???..???)-> BB04 ( cond ) internal LIR
- BB03 [0004] 1 BB02 0.50 [???..???) internal LIR
- BB04 [0002] 2 BB02,BB03 1 [???..???) i internal label target LIR
- BB05 [0000] 1 BB04 1 [000..008) (return) i gcsafe LIR
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [???..???), preds={} succs={BB02}
- ------------ BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- N004 ( 3, 10) [000010] -c---------- t10 = CNS_INT(h) long 0x7fff4561eaf0 token REG NA
- /--* t10 long
- N006 ( 5, 12) [000011] nc---------- t11 = * IND int REG NA
- N008 ( 1, 1) [000012] -c---------- t12 = CNS_INT int 0 REG NA
- /--* t11 int
- +--* t12 int
- N010 ( 7, 14) [000013] J------N---- * EQ void REG NA
- N012 ( 9, 16) [000018] ------------ * JTRUE void REG NA
- ------------ BB03 [???..???), preds={BB02} succs={BB04}
- N016 ( 14, 5) [000014] --C-G-?----- CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE REG NA
- ------------ BB04 [???..???), preds={BB02,BB03} succs={BB05}
- ------------ BB05 [000..008) (return), preds={BB04} succs={}
- N022 (???,???) [000019] ------------ IL_OFFSET void IL offset: 0x0 REG NA
- N024 ( 1, 1) [000000] ------------ NO_OP void REG NA
- N026 (???,???) [000020] ------------ IL_OFFSET void IL offset: 0x1 REG NA
- N028 ( 14, 5) [000001] --CXG------- t1 = CALL simd16 CoreLab.Program.Callee REG mm0
- /--* t1 simd16
- N030 ( 18, 8) [000004] DA-XG------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]>(AX) V01 tmp1 NA REG NA
- N032 (???,???) [000021] ------------ IL_OFFSET void IL offset: 0x6 REG NA
- N034 ( 0, 0) [000007] ------------ NOP void REG NA
- N036 (???,???) [000022] ------------ IL_OFFSET void IL offset: 0x7 REG NA
- N038 ( 0, 0) [000009] ------------ RETURN void REG NA
- -------------------------------------------------------------------------------------------------------------------
- Final allocation
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm6 |mm7 |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- 0.#0 BB1 PredBB0 | | | | | | | | | | | | | | |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm6 |mm7 |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- 2.#1 BB2 PredBB1 | | | | | | | | | | | | | | |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm6 |mm7 |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- 14.#2 BB3 PredBB2 | | | | | | | | | | | | | | |
- 17.#3 rax Kill Keep rax | | | | | | | | | | | | | | |
- 17.#4 rcx Kill Keep rcx | | | | | | | | | | | | | | |
- 17.#5 rdx Kill Keep rdx | | | | | | | | | | | | | | |
- 17.#6 r8 Kill Keep r8 | | | | | | | | | | | | | | |
- 17.#7 r9 Kill Keep r9 | | | | | | | | | | | | | | |
- 17.#8 r10 Kill Keep r10 | | | | | | | | | | | | | | |
- 17.#9 r11 Kill Keep r11 | | | | | | | | | | | | | | |
- 17.#10 mm0 Kill Keep mm0 | | | | | | | | | | | | | | |
- 17.#11 mm1 Kill Keep mm1 | | | | | | | | | | | | | | |
- 17.#12 mm2 Kill Keep mm2 | | | | | | | | | | | | | | |
- 17.#13 mm3 Kill Keep mm3 | | | | | | | | | | | | | | |
- 17.#14 mm4 Kill Keep mm4 | | | | | | | | | | | | | | |
- 17.#15 mm5 Kill Keep mm5 | | | | | | | | | | | | | | |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm6 |mm7 |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- 18.#16 BB4 PredBB2 | | | | | | | | | | | | | | |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm6 |mm7 |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- 20.#17 BB5 PredBB4 | | | | | | | | | | | | | | |
- 29.#18 rax Kill Keep rax | | | | | | | | | | | | | | |
- 29.#19 rcx Kill Keep rcx | | | | | | | | | | | | | | |
- 29.#20 rdx Kill Keep rdx | | | | | | | | | | | | | | |
- 29.#21 r8 Kill Keep r8 | | | | | | | | | | | | | | |
- 29.#22 r9 Kill Keep r9 | | | | | | | | | | | | | | |
- 29.#23 r10 Kill Keep r10 | | | | | | | | | | | | | | |
- 29.#24 r11 Kill Keep r11 | | | | | | | | | | | | | | |
- 29.#25 mm0 Kill Keep mm0 | | | | | | | | | | | | | | |
- 29.#26 mm1 Kill Keep mm1 | | | | | | | | | | | | | | |
- 29.#27 mm2 Kill Keep mm2 | | | | | | | | | | | | | | |
- 29.#28 mm3 Kill Keep mm3 | | | | | | | | | | | | | | |
- 29.#29 mm4 Kill Keep mm4 | | | | | | | | | | | | | | |
- 29.#30 mm5 Kill Keep mm5 | | | | | | | | | | | | | | |
- 29.#31 mm0 Fixd Keep mm0 | | | | | | | | | | | | | | |
- 29.#32 I0 Def Alloc mm0 | | | | | | | | | |I0 a| | | | |
- 30.#33 I0 Use * Keep mm0 | | | | | | | | | |I0 i| | | | |
- Recording the maximum number of concurrent spills:
- ----------
- LSRA Stats
- ----------
- Total Tracked Vars: 0
- Total Reg Cand Vars: 0
- Total number of Intervals: 0
- Total number of RefPositions: 33
- Total Spill Count: 0 Weighted: 0
- Total CopyReg Count: 0 Weighted: 0
- Total ResolutionMov Count: 0 Weighted: 0
- Total number of split edges: 0
- Total Number of spill temps created: 0
- TUPLE STYLE DUMP WITH REGISTER ASSIGNMENTS
- Incoming Parameters:
- BB01 [???..???), preds={} succs={BB02}
- =====
- BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- =====
- N004. CNS_INT(h) 0x7fff4561eaf0 token
- N006. IND
- N008. CNS_INT 0
- N010. EQ
- N012. JTRUE
- BB03 [???..???), preds={BB02} succs={BB04}
- =====
- N016. CALL help
- BB04 [???..???), preds={BB02,BB03} succs={BB05}
- =====
- BB05 [000..008) (return), preds={BB04} succs={}
- =====
- N022. IL_OFFSET IL offset: 0x0
- N024. NO_OP
- N026. IL_OFFSET IL offset: 0x1
- N028. mm0 = CALL
- N030. V01 MEM; mm0
- N032. IL_OFFSET IL offset: 0x6
- N034. NOP
- N036. IL_OFFSET IL offset: 0x7
- N038. RETURN
- *************** In genGenerateCode()
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0001] 1 1 [???..???) i internal label target LIR
- BB02 [0003] 1 BB01 1 [???..???)-> BB04 ( cond ) internal LIR
- BB03 [0004] 1 BB02 0.50 [???..???) internal LIR
- BB04 [0002] 2 BB02,BB03 1 [???..???) i internal label target LIR
- BB05 [0000] 1 BB04 1 [000..008) (return) i gcsafe LIR
- -----------------------------------------------------------------------------------------------------------------------------------------
- *************** In fgDebugCheckBBlist
- Finalizing stack frame
- Modified regs: [rax rcx rdx r8-r11 mm0-mm5]
- Callee-saved registers pushed: 0 []
- *************** In lvaAssignFrameOffsets(FINAL_FRAME_LAYOUT)
- Pad V01 tmp1, size=16, stkOffs=-0x10, pad=0
- Assign V01 tmp1, size=16, stkOffs=-0x20
- Assign V00 OutArgs, size=32, stkOffs=-0x40
- ; Final local variable assignments
- ;
- ; V00 OutArgs [V00 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace"
- ; V01 tmp1 [V01 ] ( 1, 1 ) simd16 -> [rbp-0x10] do-not-enreg[XS] addr-exposed "impSpillStackEnsure"
- ;
- ; Lcl frame size = 48
- Setting stack level from -572662307 to 0
- =============== Generating BB01 [???..???), preds={} succs={BB02} flags=0x00000004.40030060: i internal label target LIR
- BB01 IN (0)={} + ByrefExposed + GcHeap
- OUT(0)={} + ByrefExposed + GcHeap
- Liveness not changing: 0000000000000000 {}
- Live regs: (unchanged) 00000000 {}
- GC regs: (unchanged) 00000000 {}
- Byref regs: (unchanged) 00000000 {}
- L_M17050_BB01:
- Label: IG02, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
- =============== Generating BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04} flags=0x00000000.40000040: internal LIR
- BB02 IN (0)={} + ByrefExposed + GcHeap
- OUT(0)={} + ByrefExposed + GcHeap
- Liveness not changing: 0000000000000000 {}
- Live regs: (unchanged) 00000000 {}
- GC regs: (unchanged) 00000000 {}
- Byref regs: (unchanged) 00000000 {}
- L_M17050_BB02:
- Added IP mapping: NO_MAP STACK_EMPTY (G_M17050_IG02,ins#0,ofs#0) label
- Generating: N004 ( 3, 10) [000010] -c---------- t10 = CNS_INT(h) long 0x7fff4561eaf0 token REG NA
- /--* t10 long
- Generating: N006 ( 5, 12) [000011] nc---------- t11 = * IND int REG NA
- Generating: N008 ( 1, 1) [000012] -c---------- t12 = CNS_INT int 0 REG NA
- /--* t11 int
- +--* t12 int
- Generating: N010 ( 7, 14) [000013] J------N---- * EQ void REG NA
- IN0001: cmp dword ptr [(reloc 0x7fff4561eaf0)], 0
- Generating: N012 ( 9, 16) [000018] ------------ * JTRUE void REG NA
- IN0002: je L_M17050_BB04
- =============== Generating BB03 [???..???), preds={BB02} succs={BB04} flags=0x00000000.40000040: internal LIR
- BB03 IN (0)={} + ByrefExposed + GcHeap
- OUT(0)={} + ByrefExposed + GcHeap
- Liveness not changing: 0000000000000000 {}
- Live regs: (unchanged) 00000000 {}
- GC regs: (unchanged) 00000000 {}
- Byref regs: (unchanged) 00000000 {}
- L_M17050_BB03:
- G_M17050_IG02: ; offs=000000H, funclet=00, bbWeight=1
- Label: IG03, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
- genIPmappingAdd: ignoring duplicate IL offset 0xffffffff
- Generating: N016 ( 14, 5) [000014] --C-G-?----- CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE REG NA
- Call: GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
- IN0003: call CORINFO_HELP_DBG_IS_JUST_MY_CODE
- =============== Generating BB04 [???..???), preds={BB02,BB03} succs={BB05} flags=0x00000000.40030060: i internal label target LIR
- BB04 IN (0)={} + ByrefExposed + GcHeap
- OUT(0)={} + ByrefExposed + GcHeap
- Liveness not changing: 0000000000000000 {}
- Live regs: (unchanged) 00000000 {}
- GC regs: (unchanged) 00000000 {}
- Byref regs: (unchanged) 00000000 {}
- L_M17050_BB04:
- G_M17050_IG03: ; offs=00000DH, funclet=00, bbWeight=0.50
- Label: IG04, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
- genIPmappingAdd: ignoring duplicate IL offset 0xffffffff
- =============== Generating BB05 [000..008) (return), preds={BB04} succs={} flags=0x00000004.40080020: i gcsafe LIR
- BB05 IN (0)={} + ByrefExposed + GcHeap
- OUT(0)={} + ByrefExposed + GcHeap
- Liveness not changing: 0000000000000000 {}
- Live regs: (unchanged) 00000000 {}
- GC regs: (unchanged) 00000000 {}
- Byref regs: (unchanged) 00000000 {}
- L_M17050_BB05:
- Added IP mapping: 0x0000 STACK_EMPTY (G_M17050_IG04,ins#0,ofs#0) label
- Generating: N022 (???,???) [000019] ------------ IL_OFFSET void IL offset: 0x0 REG NA
- Generating: N024 ( 1, 1) [000000] ------------ NO_OP void REG NA
- IN0004: nop
- Added IP mapping: 0x0001 STACK_EMPTY (G_M17050_IG04,ins#1,ofs#1)
- Generating: N026 (???,???) [000020] ------------ IL_OFFSET void IL offset: 0x1 REG NA
- Generating: N028 ( 14, 5) [000001] --CXG------- t1 = CALL simd16 CoreLab.Program.Callee REG mm0
- Call: GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
- Added IP mapping: 0x0001 STACK_EMPTY CALL_INSTRUCTION (G_M17050_IG04,ins#1,ofs#1)
- IN0005: call CoreLab.Program:Callee():System.Runtime.Intrinsics.Vector128`1[Double]
- IN0006: vmovaps xmm0, xrax
- /--* t1 simd16
- Generating: N030 ( 18, 8) [000004] DA-XG------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]>(AX) V01 tmp1 NA REG NA
- IN0007: vmovapd xmmword ptr [V01 rbp-10H], xmm0
- Added IP mapping: 0x0006 (G_M17050_IG04,ins#4,ofs#17)
- Generating: N032 (???,???) [000021] ------------ IL_OFFSET void IL offset: 0x6 REG NA
- Generating: N034 ( 0, 0) [000007] ------------ NOP void REG NA
- IN0008: nop
- Added IP mapping: 0x0007 STACK_EMPTY (G_M17050_IG04,ins#5,ofs#18)
- Generating: N036 (???,???) [000022] ------------ IL_OFFSET void IL offset: 0x7 REG NA
- Generating: N038 ( 0, 0) [000009] ------------ RETURN void REG NA
- IN0009: nop
- Added IP mapping: EPILOG STACK_EMPTY (G_M17050_IG04,ins#6,ofs#19) label
- Reserving epilog IG for block BB05
- G_M17050_IG04: ; offs=000012H, funclet=00, bbWeight=1
- *************** After placeholder IG creation
- G_M17050_IG01: ; func=00, offs=000000H, size=0000H, gcrefRegs=00000000 {} <-- Prolog IG
- G_M17050_IG02: ; offs=000000H, size=000DH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- G_M17050_IG03: ; offs=00000DH, size=0005H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- G_M17050_IG04: ; offs=000012H, size=0013H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- G_M17050_IG05: ; epilog placeholder, next placeholder=<END>, BB05 [0000], epilog, extend <-- First placeholder <-- Last placeholder
- ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=00000000 {}, PrevByrefRegs=00000000 {}
- ; InitGCVars=0000000000000000 {}, InitGCrefRegs=00000000 {}, InitByrefRegs=00000000 {}
- Liveness not changing: 0000000000000000 {}
- # compCycleEstimate = 42, compSizeEstimate = 30 CoreLab.Program:Caller()
- ; Final local variable assignments
- ;
- ; V00 OutArgs [V00 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace"
- ; V01 tmp1 [V01 ] ( 1, 1 ) simd16 -> [rbp-0x10] do-not-enreg[XS] addr-exposed "impSpillStackEnsure"
- ;
- ; Lcl frame size = 48
- *************** Before prolog / epilog generation
- G_M17050_IG01: ; func=00, offs=000000H, size=0000H, gcrefRegs=00000000 {} <-- Prolog IG
- G_M17050_IG02: ; offs=000000H, size=000DH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- G_M17050_IG03: ; offs=00000DH, size=0005H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- G_M17050_IG04: ; offs=000012H, size=0013H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- G_M17050_IG05: ; epilog placeholder, next placeholder=<END>, BB05 [0000], epilog, extend <-- First placeholder <-- Last placeholder
- ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=00000000 {}, PrevByrefRegs=00000000 {}
- ; InitGCVars=0000000000000000 {}, InitGCrefRegs=00000000 {}, InitByrefRegs=00000000 {}
- *************** In genFnProlog()
- Added IP mapping to front: PROLOG STACK_EMPTY (G_M17050_IG01,ins#0,ofs#0) label
- __prolog:
- IN000a: push rbp
- IN000b: sub rsp, 48
- IN000c: lea rbp, [rsp+30H]
- *************** In genEnregisterIncomingStackArgs()
- G_M17050_IG01: ; offs=000000H, funclet=00, bbWeight=1
- *************** In genFnEpilog()
- __epilog:
- gcVarPtrSetCur=0000000000000000 {}, gcRegGCrefSetCur=00000000 {}, gcRegByrefSetCur=00000000 {}
- IN000d: lea rsp, [rbp]
- IN000e: pop rbp
- IN000f: ret
- G_M17050_IG05: ; offs=000025H, funclet=00, bbWeight=1
- 0 prologs, 1 epilogs, 0 funclet prologs, 0 funclet epilogs
- *************** After prolog / epilog generation
- G_M17050_IG01: ; func=00, offs=000000H, size=000AH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- G_M17050_IG02: ; offs=00000AH, size=000DH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- G_M17050_IG03: ; offs=000017H, size=0005H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- G_M17050_IG04: ; offs=00001CH, size=0013H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- G_M17050_IG05: ; offs=00002FH, size=0006H, epilog, nogc, extend
- *************** In emitJumpDistBind()
- Binding: IN0002: 000000 je L_M17050_BB04
- Binding L_M17050_BB04to G_M17050_IG04
- Estimate of fwd jump [647DCC64/002]: 0011 -> 001C = 0009
- Shrinking jump [647DCC64/002]
- Adjusted offset of BB03 from 0017 to 0013
- Adjusted offset of BB04 from 001C to 0018
- Adjusted offset of BB05 from 002F to 002B
- Total shrinkage = 4, min extra jump size = 4294967295
- Hot code size = 0x31 bytes
- Cold code size = 0x0 bytes
- reserveUnwindInfo(isFunclet=FALSE, isColdCode=FALSE, unwindSize=0x8)
- *************** In emitEndCodeGen()
- Converting emitMaxStackDepth from bytes (0) to elements (0)
- ***************************************************************************
- Instructions as they come out of the scheduler
- G_M17050_IG01: ; func=00, offs=000000H, size=000AH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- IN000a: 000000 55 push rbp
- IN000b: 000001 4883EC30 sub rsp, 48
- IN000c: 000005 488D6C2430 lea rbp, [rsp+30H]
- ;; bbWeight=1 PerfScore 1.75
- G_M17050_IG02: ; func=00, offs=00000AH, size=0009H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- IN0001: 00000A 833DDF6D1F0000 cmp dword ptr [(reloc 0x7fff4561eaf0)], 0
- IN0002: 000011 7405 je SHORT G_M17050_IG04
- ;; bbWeight=1 PerfScore 3.00
- G_M17050_IG03: ; func=00, offs=000013H, size=0005H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- [647DD398] ptr arg pop 0
- IN0003: 000013 E828B3A15E call CORINFO_HELP_DBG_IS_JUST_MY_CODE
- ;; bbWeight=0.50 PerfScore 0.50
- G_M17050_IG04: ; func=00, offs=000018H, size=0013H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- IN0004: 000018 90 nop
- [647DD3B8] ptr arg pop 0
- IN0005: 000019 E8BA94FFFF call CoreLab.Program:Callee():System.Runtime.Intrinsics.Vector128`1[Double]
- IN0006: 00001E C5F828C0 vmovaps xmm0, xrax (ECS:5, ACS:4)
- Instruction predicted size = 5, actual = 4
- IN0007: 000022 C5F92945F0 vmovapd xmmword ptr [rbp-10H], xmm0 (ECS:6, ACS:5)
- Instruction predicted size = 6, actual = 5
- IN0008: 000027 90 nop
- IN0009: 000028 90 nop
- ;; bbWeight=1 PerfScore 4.00
- G_M17050_IG05: ; func=00, offs=00002BH, size=0006H, epilog, nogc, extend
- Block predicted offs = 0000002B, actual = 00000029 -> size adj = 2
- IN000d: 000029 488D6500 lea rsp, [rbp]
- IN000e: 00002D 5D pop rbp
- IN000f: 00002E C3 ret
- ;; bbWeight=1 PerfScore 2.00Allocated method code size = 49 , actual size = 47
- ; Total bytes of code 47, prolog size 10, PerfScore 16.15, (MethodHash=4dbcbd65) for method CoreLab.Program:Caller()
- ; ============================================================
- *************** After end code gen, before unwindEmit()
- G_M17050_IG01: ; func=00, offs=000000H, size=000AH, bbWeight=1 PerfScore 1.75, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- IN000a: 000000 push rbp
- IN000b: 000001 sub rsp, 48
- IN000c: 000005 lea rbp, [rsp+30H]
- G_M17050_IG02: ; offs=00000AH, size=0009H, bbWeight=1 PerfScore 3.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- IN0001: 00000A cmp dword ptr [(reloc 0x7fff4561eaf0)], 0
- IN0002: 000011 je SHORT G_M17050_IG04
- G_M17050_IG03: ; offs=000013H, size=0005H, bbWeight=0.50 PerfScore 0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- IN0003: 000013 call CORINFO_HELP_DBG_IS_JUST_MY_CODE
- G_M17050_IG04: ; offs=000018H, size=0011H, bbWeight=1 PerfScore 4.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- IN0004: 000018 nop
- IN0005: 000019 call CoreLab.Program:Callee():System.Runtime.Intrinsics.Vector128`1[Double]
- IN0006: 00001E vmovaps xmm0, xrax
- IN0007: 000022 vmovapd xmmword ptr [V01 rbp-10H], xmm0
- IN0008: 000027 nop
- IN0009: 000028 nop
- G_M17050_IG05: ; offs=000029H, size=0006H, bbWeight=1 PerfScore 2.00, epilog, nogc, extend
- IN000d: 000029 lea rsp, [rbp]
- IN000e: 00002D pop rbp
- IN000f: 00002E ret
- Unwind Info:
- >> Start offset : 0x000000 (not in unwind data)
- >> End offset : 0x00002f (not in unwind data)
- Version : 1
- Flags : 0x00
- SizeOfProlog : 0x05
- CountOfUnwindCodes: 2
- FrameRegister : none (0)
- FrameOffset : N/A (no FrameRegister) (Value=0)
- UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
- allocUnwindInfo(pHotCode=0x00007FFF45427D00, pColdCode=0x0000000000000000, startOffset=0x0, endOffset=0x2f, unwindSize=0x8, pUnwindBlock=0x000001A2647DA698, funKind=0 (main function))
- *************** In genIPmappingGen()
- IP mapping count : 8
- IL offs PROLOG : 0x00000000 ( STACK_EMPTY )
- IL offs NO_MAP : 0x0000000A ( STACK_EMPTY )
- IL offs 0x0000 : 0x00000018 ( STACK_EMPTY )
- IL offs 0x0001 : 0x00000019 ( STACK_EMPTY )
- IL offs 0x0001 : 0x00000019 ( STACK_EMPTY CALL_INSTRUCTION )
- IL offs 0x0006 : 0x00000027
- IL offs 0x0007 : 0x00000028 ( STACK_EMPTY )
- IL offs EPILOG : 0x00000029 ( STACK_EMPTY )
- *************** In genSetScopeInfo()
- VarLocInfo count is 0
- *************** Variable debug info
- 0 live ranges
- *************** In gcInfoBlockHdrSave()
- Set code length to 47.
- Set ReturnKind to Scalar.
- Set stack base register to rbp.
- Set Outgoing stack arg area size to 32.
- Defining interruptible range: [0xa, 0x29).
- Method code size: 47
- Allocations for CoreLab.Program:Caller() (MethodHash=4dbcbd65)
- count: 240, size: 25060, max = 2640
- allocateMemory: 65536, nraUsed: 27472
- Alloc'd bytes by kind:
- kind | size | pct
- ---------------------+------------+--------
- AssertionProp | 0 | 0.00%
- ASTNode | 3184 | 12.71%
- InstDesc | 2944 | 11.75%
- ImpStack | 384 | 1.53%
- BasicBlock | 1936 | 7.73%
- fgArgInfo | 0 | 0.00%
- fgArgInfoPtrArr | 0 | 0.00%
- FlowList | 160 | 0.64%
- TreeStatementList | 0 | 0.00%
- SiScope | 0 | 0.00%
- DominatorMemory | 0 | 0.00%
- LSRA | 3208 | 12.80%
- LSRA_Interval | 88 | 0.35%
- LSRA_RefPosition | 2176 | 8.68%
- Reachability | 0 | 0.00%
- SSA | 0 | 0.00%
- ValueNumber | 0 | 0.00%
- LvaTable | 1920 | 7.66%
- UnwindInfo | 0 | 0.00%
- hashBv | 80 | 0.32%
- bitset | 56 | 0.22%
- FixedBitVect | 8 | 0.03%
- Generic | 1230 | 4.91%
- LocalAddressVisitor | 0 | 0.00%
- FieldSeqStore | 0 | 0.00%
- ZeroOffsetFieldMap | 40 | 0.16%
- ArrayInfoMap | 0 | 0.00%
- MemoryPhiArg | 0 | 0.00%
- CSE | 0 | 0.00%
- GC | 1392 | 5.55%
- CorSig | 104 | 0.42%
- Inlining | 120 | 0.48%
- ArrayStack | 0 | 0.00%
- DebugInfo | 256 | 1.02%
- DebugOnly | 4414 | 17.61%
- Codegen | 1128 | 4.50%
- LoopOpt | 0 | 0.00%
- LoopHoist | 0 | 0.00%
- Unknown | 160 | 0.64%
- RangeCheck | 0 | 0.00%
- CopyProp | 0 | 0.00%
- SideEffects | 0 | 0.00%
- ObjectAllocator | 0 | 0.00%
- VariableLiveRanges | 0 | 0.00%
- ClassLayout | 72 | 0.29%
- TailMergeThrows | 0 | 0.00%
- ****** DONE compiling CoreLab.Program:Caller()
- ****** START compiling CoreLab.Program:Callee():System.Runtime.Intrinsics.Vector128`1[Double] (MethodHash=f5b01313)
- Generating code for Windows x64
- OPTIONS: compCodeOpt = BLENDED_CODE
- OPTIONS: compDbgCode = true
- OPTIONS: compDbgInfo = true
- OPTIONS: compDbgEnC = false
- OPTIONS: compProcedureSplitting = false
- OPTIONS: compProcedureSplittingEH = false
- IL to import:
- IL_0000 00 nop
- IL_0001 12 00 ldloca.s 0x0
- IL_0003 fe 15 01 00 00 1b initobj 0x1B000001
- IL_0009 06 ldloc.0
- IL_000a 0b stloc.1
- IL_000b 2b 00 br.s 0 (IL_000d)
- IL_000d 07 ldloc.1
- IL_000e 2a ret
- HW Intrinsic SIMD Candidate Type Vector128`1 with Base Type Double
- Found type Hardware Intrinsic SIMD Vector128<double>
- Known type Vector128<double>
- Known type Vector128<double>
- Known type Vector128<double>
- Known type Vector128<double>
- Known type Vector128<double>
- lvaGrabTemp returning 2 (V02 tmp0) (a long lifetime temp) called for OutgoingArgSpace.
- ; Initial local variable assignments
- ;
- ; V00 loc0 simd16
- ; V01 loc1 simd16
- ; V02 OutArgs lclBlk (na) "OutgoingArgSpace"
- *************** In compInitDebuggingInfo() for CoreLab.Program:Callee():System.Runtime.Intrinsics.Vector128`1[Double]
- getVars() returned cVars = 0, extendOthers = true
- info.compVarScopesCount = 2
- VarNum LVNum Name Beg End
- 0: 00h 00h V00 loc0 000h 00Fh
- 1: 01h 01h V01 loc1 000h 00Fh
- New Basic Block BB01 [0000] created.
- New scratch BB01
- Debuggable code - Add new BB01 [0000] to perform initialization of variables
- info.compStmtOffsetsCount = 0
- info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE )
- *************** In fgFindBasicBlocks() for CoreLab.Program:Callee():System.Runtime.Intrinsics.Vector128`1[Double]
- Marked V01 as a single def local
- Jump targets:
- IL_000d
- New Basic Block BB02 [0001] created.
- BB02 [000..00D)
- New Basic Block BB03 [0002] created.
- BB03 [00D..00F)
- CLFLG_MINOPT set for method CoreLab.Program:Callee():System.Runtime.Intrinsics.Vector128`1[Double]
- IL Code Size,Instr 15, 8, Basic Block count 3, Local Variable Num,Ref count 3, 4 for method CoreLab.Program:Callee():System.Runtime.Intrinsics.Vector128`1[Double]
- IL Code Size,Instr 15, 8, Basic Block count 3, Local Variable Num,Ref count 3, 4 for method CoreLab.Program:Callee():System.Runtime.Intrinsics.Vector128`1[Double]
- OPTIONS: opts.MinOpts() == true
- Basic block list for 'CoreLab.Program:Callee():System.Runtime.Intrinsics.Vector128`1[Double]'
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [???..???) i internal
- BB02 [0001] 1 1 [000..00D)-> BB03 (always)
- BB03 [0002] 1 1 [00D..00F) (return)
- -----------------------------------------------------------------------------------------------------------------------------------------
- *************** In impImport() for CoreLab.Program:Callee():System.Runtime.Intrinsics.Vector128`1[Double]
- Marking leading BBF_INTERNAL block BB01 as BBF_IMPORTED
- impImportBlockPending for BB02
- Importing BB02 (PC=000) of 'CoreLab.Program:Callee():System.Runtime.Intrinsics.Vector128`1[Double]'
- [ 0] 0 (0x000) nop
- STMT00001 (IL 0x000... ???)
- [000001] ------------ * NO_OP void
- [ 0] 1 (0x001) ldloca.s 0
- [ 1] 3 (0x003) initobj 1B000001
- STMT00002 (IL 0x001... ???)
- [000005] IA---------- * ASG simd16 (init)
- [000002] D------N---- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- [000004] ------------ \--* CNS_INT int 0
- [ 0] 9 (0x009) ldloc.0
- [ 1] 10 (0x00a) stloc.1
- STMT00003 (IL 0x009... ???)
- [000009] -A---------- * ASG simd16 (copy)
- [000007] D----------- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- [000006] ------------ \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- [ 0] 11 (0x00b) br.s
- STMT00004 (IL 0x00B... ???)
- [000010] ------------ * NOP void
- impImportBlockPending for BB03
- Importing BB03 (PC=013) of 'CoreLab.Program:Callee():System.Runtime.Intrinsics.Vector128`1[Double]'
- [ 0] 13 (0x00d) ldloc.1
- [ 1] 14 (0x00e) ret
- impFixupStructReturnType: retyping
- [000011] ------------ * LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- impFixupStructReturnType: result of retyping is
- [000011] ------------ * LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- STMT00005 (IL 0x00D... ???)
- [000012] ------------ * RETURN simd16
- [000011] ------------ \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- *************** in fgTransformIndirectCalls(root)
- -- no candidates to transform
- New BlockSet epoch 1, # of blocks (including unused BB00): 4, bitset array size: 1 (short)
- *************** In fgMorph()
- *************** In fgDebugCheckBBlist
- *************** In Allocate Objects
- Trees before Allocate Objects
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [???..???) i internal
- BB02 [0001] 1 1 [000..00D)-> BB03 (always) i
- BB03 [0002] 1 1 [00D..00F) (return) i
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [???..???), preds={} succs={BB02}
- ***** BB01
- STMT00000 (IL ???... ???)
- [000000] ------------ * NOP void
- ------------ BB02 [000..00D) -> BB03 (always), preds={} succs={BB03}
- ***** BB02
- STMT00001 (IL 0x000...0x000)
- [000001] ------------ * NO_OP void
- ***** BB02
- STMT00002 (IL 0x001...0x004)
- [000005] IA---------- * ASG simd16 (init)
- [000002] D------N---- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- [000004] ------------ \--* CNS_INT int 0
- ***** BB02
- STMT00003 (IL 0x009...0x00A)
- [000009] -A---------- * ASG simd16 (copy)
- [000007] D----------- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- [000006] ------------ \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- ***** BB02
- STMT00004 (IL 0x00B...0x00B)
- [000010] ------------ * NOP void
- ------------ BB03 [00D..00F) (return), preds={} succs={}
- ***** BB03
- STMT00005 (IL 0x00D...0x00E)
- [000012] ------------ * RETURN simd16
- [000011] ------------ \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- -------------------------------------------------------------------------------------------------------------------
- *** ObjectAllocationPhase: no newobjs in this method; punting
- *************** Exiting Allocate Objects
- Trees after Allocate Objects
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [???..???) i internal
- BB02 [0001] 1 1 [000..00D)-> BB03 (always) i
- BB03 [0002] 1 1 [00D..00F) (return) i
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [???..???), preds={} succs={BB02}
- ***** BB01
- STMT00000 (IL ???... ???)
- [000000] ------------ * NOP void
- ------------ BB02 [000..00D) -> BB03 (always), preds={} succs={BB03}
- ***** BB02
- STMT00001 (IL 0x000...0x000)
- [000001] ------------ * NO_OP void
- ***** BB02
- STMT00002 (IL 0x001...0x004)
- [000005] IA---------- * ASG simd16 (init)
- [000002] D------N---- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- [000004] ------------ \--* CNS_INT int 0
- ***** BB02
- STMT00003 (IL 0x009...0x00A)
- [000009] -A---------- * ASG simd16 (copy)
- [000007] D----------- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- [000006] ------------ \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- ***** BB02
- STMT00004 (IL 0x00B...0x00B)
- [000010] ------------ * NOP void
- ------------ BB03 [00D..00F) (return), preds={} succs={}
- ***** BB03
- STMT00005 (IL 0x00D...0x00E)
- [000012] ------------ * RETURN simd16
- [000011] ------------ \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- -------------------------------------------------------------------------------------------------------------------
- *************** After fgAddInternal()
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [???..???) i internal
- BB02 [0001] 1 1 [000..00D)-> BB03 (always) i
- BB03 [0002] 1 1 [00D..00F) (return) i
- -----------------------------------------------------------------------------------------------------------------------------------------
- *************** Exception Handling table is empty
- *************** In fgDebugCheckBBlist
- *************** In fgRemoveEmptyTry()
- No EH in this method, nothing to remove.
- *************** In fgRemoveEmptyFinally()
- No EH in this method, nothing to remove.
- *************** In fgMergeFinallyChains()
- No EH in this method, nothing to merge.
- *************** In fgCloneFinally()
- No EH in this method, no cloning.
- *************** In fgResetImplicitByRefRefCount()
- *************** In fgPromoteStructs()
- promotion opt flag not enabled
- *************** In fgMarkAddressExposedLocals()
- LocalAddressVisitor visiting statement:
- STMT00000 (IL ???... ???)
- [000000] ------------ * NOP void
- LocalAddressVisitor visiting statement:
- STMT00006 (IL ???... ???)
- [000020] --C-G------- * QMARK void
- [000016] Q----------- if +--* EQ int
- [000014] ------------ | +--* IND int
- [000013] ------------ | | \--* CNS_INT(h) long 0x7fff4561eaf0 token
- [000015] ------------ | \--* CNS_INT int 0
- [000019] --C-G------- if \--* COLON void
- [000017] --C-G------- else +--* CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- [000018] ------------ then \--* NOP void
- LocalAddressVisitor visiting statement:
- STMT00001 (IL 0x000...0x000)
- [000001] ------------ * NO_OP void
- LocalAddressVisitor visiting statement:
- STMT00002 (IL 0x001...0x004)
- [000005] IA---------- * ASG simd16 (init)
- [000002] D------N---- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- [000004] ------------ \--* CNS_INT int 0
- LocalAddressVisitor visiting statement:
- STMT00003 (IL 0x009...0x00A)
- [000009] -A---------- * ASG simd16 (copy)
- [000007] D----------- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- [000006] ------------ \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- LocalAddressVisitor visiting statement:
- STMT00004 (IL 0x00B...0x00B)
- [000010] ------------ * NOP void
- LocalAddressVisitor visiting statement:
- STMT00005 (IL 0x00D...0x00E)
- [000012] ------------ * RETURN simd16
- [000011] ------------ \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- *************** In fgRetypeImplicitByRefArgs()
- *************** In fgMorphBlocks()
- Morphing BB01 of 'CoreLab.Program:Callee():System.Runtime.Intrinsics.Vector128`1[Double]'
- fgMorphTree BB01, STMT00000 (before)
- [000000] ------------ * NOP void
- fgMorphTree BB01, STMT00006 (before)
- [000020] --C-G------- * QMARK void
- [000016] Q----------- if +--* EQ int
- [000014] ------------ | +--* IND int
- [000013] ------------ | | \--* CNS_INT(h) long 0x7fff4561eaf0 token
- [000015] ------------ | \--* CNS_INT int 0
- [000019] --C-G------- if \--* COLON void
- [000017] --C-G------- else +--* CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- [000018] ------------ then \--* NOP void
- Initializing arg info for 17.CALL:
- ArgTable for 17.CALL after fgInitArgInfo:
- Morphing args for 17.CALL:
- argSlots=0, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
- ArgTable for 17.CALL after fgMorphArgs:
- Morphing BB02 of 'CoreLab.Program:Callee():System.Runtime.Intrinsics.Vector128`1[Double]'
- fgMorphTree BB02, STMT00001 (before)
- [000001] ------------ * NO_OP void
- fgMorphTree BB02, STMT00002 (before)
- [000005] IA---------- * ASG simd16 (init)
- [000002] D------N---- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- [000004] ------------ \--* CNS_INT int 0
- fgMorphInitBlock:fgMorphOneAsgBlock (after):
- [000005] -A---------- * ASG simd16 (copy)
- [000002] D----+-N---- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- [000021] ------------ \--* SIMD simd16 double init
- [000004] -----+------ \--* CNS_INT int 0
- using oneAsgTree.
- fgMorphTree BB02, STMT00002 (after)
- [000005] -A---+------ * ASG simd16 (copy)
- [000002] D----+-N---- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- [000021] ------------ \--* SIMD simd16 double init
- [000004] -----+------ \--* CNS_INT int 0
- fgMorphTree BB02, STMT00003 (before)
- [000009] -A---------- * ASG simd16 (copy)
- [000007] D----------- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- [000006] ------------ \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- fgMorphCopyBlock:fgMorphOneAsgBlock (after):
- [000009] -A---------- * ASG simd16 (copy)
- [000007] D----+-N---- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- [000006] -----+------ \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- using oneAsgTree.
- fgMorphCopyBlock (after):
- [000009] -A---------- * ASG simd16 (copy)
- [000007] D----+-N---- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- [000006] -----+------ \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- fgMorphTree BB02, STMT00004 (before)
- [000010] ------------ * NOP void
- Morphing BB03 of 'CoreLab.Program:Callee():System.Runtime.Intrinsics.Vector128`1[Double]'
- fgMorphTree BB03, STMT00005 (before)
- [000012] ------------ * RETURN simd16
- [000011] ------------ \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- Expanding top-level qmark in BB01 (before)
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [???..???) i internal
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [???..???), preds={} succs={BB02}
- ***** BB01
- STMT00000 (IL ???... ???)
- [000000] -----+------ * NOP void
- ***** BB01
- STMT00006 (IL ???... ???)
- [000020] --C-G+------ * QMARK void
- [000016] J----+-N---- if +--* EQ int
- [000014] n----+------ | +--* IND int
- [000013] -----+------ | | \--* CNS_INT(h) long 0x7fff4561eaf0 token
- [000015] -----+------ | \--* CNS_INT int 0
- [000019] --C-G+?----- if \--* COLON void
- [000017] --C-G+?----- else +--* CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- [000018] -----+?----- then \--* NOP void
- -------------------------------------------------------------------------------------------------------------------
- New Basic Block BB04 [0003] created.
- BB02 previous predecessor was BB01, now is BB04
- New Basic Block BB05 [0004] created.
- New Basic Block BB06 [0005] created.
- Removing statement STMT00006 (IL ???... ???)
- [000020] --C-G+------ * QMARK void
- [000016] J----+-N---- if +--* EQ int
- [000014] n----+------ | +--* IND int
- [000013] -----+------ | | \--* CNS_INT(h) long 0x7fff4561eaf0 token
- [000015] -----+------ | \--* CNS_INT int 0
- [000019] --C-G+?----- if \--* COLON void
- [000017] --C-G+?----- else +--* CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- [000018] -----+?----- then \--* NOP void
- in BB01 as useless:
- Expanding top-level qmark in BB01 (after)
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [???..???) i internal
- BB05 [0004] 1 1 [???..???)-> BB04 ( cond ) internal
- BB06 [0005] 1 0.50 [???..???) internal
- BB04 [0003] 2 1 [???..???) i internal label target
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [???..???), preds={} succs={BB05}
- ***** BB01
- STMT00000 (IL ???... ???)
- [000000] -----+------ * NOP void
- ------------ BB05 [???..???) -> BB04 (cond), preds={} succs={BB06,BB04}
- ***** BB05
- STMT00007 (IL ???... ???)
- [000022] ------------ * JTRUE void
- [000016] J----+-N---- \--* EQ int
- [000014] n----+------ +--* IND int
- [000013] -----+------ | \--* CNS_INT(h) long 0x7fff4561eaf0 token
- [000015] -----+------ \--* CNS_INT int 0
- ------------ BB06 [???..???), preds={} succs={BB04}
- ***** BB06
- STMT00008 (IL ???... ???)
- [000017] --C-G+?----- * CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- ------------ BB04 [???..???), preds={} succs={BB02}
- -------------------------------------------------------------------------------------------------------------------
- Renumbering the basic blocks for fgComputePred
- *************** Before renumbering the basic blocks
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [???..???) i internal
- BB05 [0004] 1 1 [???..???)-> BB04 ( cond ) internal
- BB06 [0005] 1 0.50 [???..???) internal
- BB04 [0003] 2 1 [???..???) i internal label target
- BB02 [0001] 1 1 [000..00D)-> BB03 (always) i
- BB03 [0002] 1 1 [00D..00F) (return) i
- -----------------------------------------------------------------------------------------------------------------------------------------
- *************** Exception Handling table is empty
- Renumber BB05 to BB02
- Renumber BB06 to BB03
- Renumber BB02 to BB05
- Renumber BB03 to BB06
- *************** After renumbering the basic blocks
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [???..???) i internal
- BB02 [0004] 1 1 [???..???)-> BB04 ( cond ) internal
- BB03 [0005] 1 0.50 [???..???) internal
- BB04 [0003] 2 1 [???..???) i internal label target
- BB05 [0001] 1 1 [000..00D)-> BB06 (always) i
- BB06 [0002] 1 1 [00D..00F) (return) i
- -----------------------------------------------------------------------------------------------------------------------------------------
- *************** Exception Handling table is empty
- New BlockSet epoch 2, # of blocks (including unused BB00): 7, bitset array size: 1 (short)
- *************** In fgComputePreds()
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [???..???) i internal
- BB02 [0004] 1 1 [???..???)-> BB04 ( cond ) internal
- BB03 [0005] 1 0.50 [???..???) internal
- BB04 [0003] 2 1 [???..???) i internal label target
- BB05 [0001] 1 1 [000..00D)-> BB06 (always) i
- BB06 [0002] 1 1 [00D..00F) (return) i
- -----------------------------------------------------------------------------------------------------------------------------------------
- *************** After fgComputePreds()
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [???..???) i internal label target
- BB02 [0004] 1 BB01 1 [???..???)-> BB04 ( cond ) internal
- BB03 [0005] 1 BB02 0.50 [???..???) internal
- BB04 [0003] 2 BB02,BB03 1 [???..???) i internal label target
- BB05 [0001] 1 BB04 1 [000..00D)-> BB06 (always) i
- BB06 [0002] 1 BB05 1 [00D..00F) (return) i label target
- -----------------------------------------------------------------------------------------------------------------------------------------
- *************** In fgComputeBlockAndEdgeWeights()
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [???..???) i internal label target
- BB02 [0004] 1 BB01 1 [???..???)-> BB04 ( cond ) internal
- BB03 [0005] 1 BB02 0.50 [???..???) internal
- BB04 [0003] 2 BB02,BB03 1 [???..???) i internal label target
- BB05 [0001] 1 BB04 1 [000..00D)-> BB06 (always) i
- BB06 [0002] 1 BB05 1 [00D..00F) (return) i label target
- -----------------------------------------------------------------------------------------------------------------------------------------
- -- no profile data, so using default called count
- -- not optimizing, so not computing edge weights
- *************** In fgCreateFunclets()
- After fgCreateFunclets()
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [???..???) i internal label target
- BB02 [0004] 1 BB01 1 [???..???)-> BB04 ( cond ) internal
- BB03 [0005] 1 BB02 0.50 [???..???) internal
- BB04 [0003] 2 BB02,BB03 1 [???..???) i internal label target
- BB05 [0001] 1 BB04 1 [000..00D)-> BB06 (always) i
- BB06 [0002] 1 BB05 1 [00D..00F) (return) i label target
- -----------------------------------------------------------------------------------------------------------------------------------------
- *************** Exception Handling table is empty
- *************** In fgDebugCheckBBlist
- *************** In lvaMarkLocalVars()
- *** lvaComputeRefCounts ***
- *************** In fgFindOperOrder()
- *************** In fgSetBlockOrder()
- The biggest BB has 5 tree nodes
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [???..???) i internal label target
- BB02 [0004] 1 BB01 1 [???..???)-> BB04 ( cond ) internal
- BB03 [0005] 1 BB02 0.50 [???..???) internal
- BB04 [0003] 2 BB02,BB03 1 [???..???) i internal label target
- BB05 [0001] 1 BB04 1 [000..00D)-> BB06 (always) i
- BB06 [0002] 1 BB05 1 [00D..00F) (return) i label target
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [???..???), preds={} succs={BB02}
- ***** BB01
- STMT00000 (IL ???... ???)
- N001 ( 0, 0) [000000] ------------ * NOP void
- ------------ BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- ***** BB02
- STMT00007 (IL ???... ???)
- N005 ( 9, 16) [000022] ------------ * JTRUE void
- N004 ( 7, 14) [000016] J------N---- \--* EQ int
- N002 ( 5, 12) [000014] n----------- +--* IND int
- N001 ( 3, 10) [000013] ------------ | \--* CNS_INT(h) long 0x7fff4561eaf0 token
- N003 ( 1, 1) [000015] ------------ \--* CNS_INT int 0
- ------------ BB03 [???..???), preds={BB02} succs={BB04}
- ***** BB03
- STMT00008 (IL ???... ???)
- N001 ( 14, 5) [000017] --C-G-?----- * CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- ------------ BB04 [???..???), preds={BB02,BB03} succs={BB05}
- ------------ BB05 [000..00D) -> BB06 (always), preds={BB04} succs={BB06}
- ***** BB05
- STMT00001 (IL 0x000...0x000)
- N001 ( 1, 1) [000001] ------------ * NO_OP void
- ***** BB05
- STMT00002 (IL 0x001...0x004)
- N004 ( 6, 5) [000005] -A------R--- * ASG simd16 (copy)
- N003 ( 3, 2) [000002] D------N---- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- N002 ( 2, 2) [000021] ------------ \--* SIMD simd16 double init
- N001 ( 1, 1) [000004] ------------ \--* CNS_INT int 0
- ***** BB05
- STMT00003 (IL 0x009...0x00A)
- N003 ( 7, 5) [000009] -A------R--- * ASG simd16 (copy)
- N002 ( 3, 2) [000007] D------N---- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- N001 ( 3, 2) [000006] ------------ \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- ***** BB05
- STMT00004 (IL 0x00B...0x00B)
- N001 ( 0, 0) [000010] ------------ * NOP void
- ------------ BB06 [00D..00F) (return), preds={BB05} succs={}
- ***** BB06
- STMT00005 (IL 0x00D...0x00E)
- N002 ( 4, 3) [000012] ------------ * RETURN simd16
- N001 ( 3, 2) [000011] ------------ \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- -------------------------------------------------------------------------------------------------------------------
- *************** 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 lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [???..???) i internal label target
- BB02 [0004] 1 BB01 1 [???..???)-> BB04 ( cond ) internal
- BB03 [0005] 1 BB02 0.50 [???..???) internal
- BB04 [0003] 2 BB02,BB03 1 [???..???) i internal label target
- BB05 [0001] 1 BB04 1 [000..00D)-> BB06 (always) i
- BB06 [0002] 1 BB05 1 [00D..00F) (return) i label target
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [???..???), preds={} succs={BB02}
- ***** BB01
- STMT00000 (IL ???... ???)
- N001 ( 0, 0) [000000] ------------ * NOP void
- ------------ BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- ***** BB02
- STMT00007 (IL ???... ???)
- N005 ( 9, 16) [000022] ------------ * JTRUE void
- N004 ( 7, 14) [000016] J------N---- \--* EQ int
- N002 ( 5, 12) [000014] n----------- +--* IND int
- N001 ( 3, 10) [000013] ------------ | \--* CNS_INT(h) long 0x7fff4561eaf0 token
- N003 ( 1, 1) [000015] ------------ \--* CNS_INT int 0
- ------------ BB03 [???..???), preds={BB02} succs={BB04}
- ***** BB03
- STMT00008 (IL ???... ???)
- N001 ( 14, 5) [000017] --C-G-?----- * CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- ------------ BB04 [???..???), preds={BB02,BB03} succs={BB05}
- ------------ BB05 [000..00D) -> BB06 (always), preds={BB04} succs={BB06}
- ***** BB05
- STMT00001 (IL 0x000...0x000)
- N001 ( 1, 1) [000001] ------------ * NO_OP void
- ***** BB05
- STMT00002 (IL 0x001...0x004)
- N004 ( 6, 5) [000005] -A------R--- * ASG simd16 (copy)
- N003 ( 3, 2) [000002] D------N---- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- N002 ( 2, 2) [000021] ------------ \--* SIMD simd16 double init
- N001 ( 1, 1) [000004] ------------ \--* CNS_INT int 0
- ***** BB05
- STMT00003 (IL 0x009...0x00A)
- N003 ( 7, 5) [000009] -A------R--- * ASG simd16 (copy)
- N002 ( 3, 2) [000007] D------N---- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- N001 ( 3, 2) [000006] ------------ \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- ***** BB05
- STMT00004 (IL 0x00B...0x00B)
- N001 ( 0, 0) [000010] ------------ * NOP void
- ------------ BB06 [00D..00F) (return), preds={BB05} succs={}
- ***** BB06
- STMT00005 (IL 0x00D...0x00E)
- N002 ( 4, 3) [000012] ------------ * RETURN simd16
- N001 ( 3, 2) [000011] ------------ \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- -------------------------------------------------------------------------------------------------------------------
- rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
- N004 ( 6, 5) [000005] DA---------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X)
- N003 ( 7, 5) [000009] DA---------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- *************** Exiting IR Rationalize
- Trees after IR Rationalize
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [???..???) i internal label target LIR
- BB02 [0004] 1 BB01 1 [???..???)-> BB04 ( cond ) internal LIR
- BB03 [0005] 1 BB02 0.50 [???..???) internal LIR
- BB04 [0003] 2 BB02,BB03 1 [???..???) i internal label target LIR
- BB05 [0001] 1 BB04 1 [000..00D)-> BB06 (always) i LIR
- BB06 [0002] 1 BB05 1 [00D..00F) (return) i label target LIR
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [???..???), preds={} succs={BB02}
- N001 ( 0, 0) [000000] ------------ NOP void
- ------------ BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- N001 ( 3, 10) [000013] ------------ t13 = CNS_INT(h) long 0x7fff4561eaf0 token
- /--* t13 long
- N002 ( 5, 12) [000014] n----------- t14 = * IND int
- N003 ( 1, 1) [000015] ------------ t15 = CNS_INT int 0
- /--* t14 int
- +--* t15 int
- N004 ( 7, 14) [000016] J------N---- t16 = * EQ int
- /--* t16 int
- N005 ( 9, 16) [000022] ------------ * JTRUE void
- ------------ BB03 [???..???), preds={BB02} succs={BB04}
- N001 ( 14, 5) [000017] --C-G-?----- CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- ------------ BB04 [???..???), preds={BB02,BB03} succs={BB05}
- ------------ BB05 [000..00D) -> BB06 (always), preds={BB04} succs={BB06}
- [000023] ------------ IL_OFFSET void IL offset: 0x0
- N001 ( 1, 1) [000001] ------------ NO_OP void
- [000024] ------------ IL_OFFSET void IL offset: 0x1
- N001 ( 1, 1) [000004] ------------ t4 = CNS_INT int 0
- /--* t4 int
- N002 ( 2, 2) [000021] ------------ t21 = * SIMD simd16 double init
- /--* t21 simd16
- N004 ( 6, 5) [000005] DA---------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- [000025] ------------ IL_OFFSET void IL offset: 0x9
- N001 ( 3, 2) [000006] ------------ t6 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- /--* t6 simd16
- N003 ( 7, 5) [000009] DA---------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- [000026] ------------ IL_OFFSET void IL offset: 0xb
- N001 ( 0, 0) [000010] ------------ NOP void
- ------------ BB06 [00D..00F) (return), preds={BB05} succs={}
- [000027] ------------ IL_OFFSET void IL offset: 0xd
- N001 ( 3, 2) [000011] ------------ t11 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- /--* t11 simd16
- N002 ( 4, 3) [000012] ------------ * RETURN simd16
- -------------------------------------------------------------------------------------------------------------------
- *************** In fgDebugCheckBBlist
- Bumping outgoingArgSpaceSize to 32 for call [000017]
- *************** In fgDebugCheckBBlist
- *************** In Lowering
- Trees before Lowering
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [???..???) i internal label target LIR
- BB02 [0004] 1 BB01 1 [???..???)-> BB04 ( cond ) internal LIR
- BB03 [0005] 1 BB02 0.50 [???..???) internal LIR
- BB04 [0003] 2 BB02,BB03 1 [???..???) i internal label target LIR
- BB05 [0001] 1 BB04 1 [000..00D)-> BB06 (always) i LIR
- BB06 [0002] 1 BB05 1 [00D..00F) (return) i label target LIR
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [???..???), preds={} succs={BB02}
- N001 ( 0, 0) [000000] ------------ NOP void
- ------------ BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- N001 ( 3, 10) [000013] ------------ t13 = CNS_INT(h) long 0x7fff4561eaf0 token
- /--* t13 long
- N002 ( 5, 12) [000014] n----------- t14 = * IND int
- N003 ( 1, 1) [000015] ------------ t15 = CNS_INT int 0
- /--* t14 int
- +--* t15 int
- N004 ( 7, 14) [000016] J------N---- t16 = * EQ int
- /--* t16 int
- N005 ( 9, 16) [000022] ------------ * JTRUE void
- ------------ BB03 [???..???), preds={BB02} succs={BB04}
- N001 ( 14, 5) [000017] --C-G-?----- CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- ------------ BB04 [???..???), preds={BB02,BB03} succs={BB05}
- ------------ BB05 [000..00D) -> BB06 (always), preds={BB04} succs={BB06}
- [000023] ------------ IL_OFFSET void IL offset: 0x0
- N001 ( 1, 1) [000001] ------------ NO_OP void
- [000024] ------------ IL_OFFSET void IL offset: 0x1
- N001 ( 1, 1) [000004] ------------ t4 = CNS_INT int 0
- /--* t4 int
- N002 ( 2, 2) [000021] ------------ t21 = * SIMD simd16 double init
- /--* t21 simd16
- N004 ( 6, 5) [000005] DA---------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- [000025] ------------ IL_OFFSET void IL offset: 0x9
- N001 ( 3, 2) [000006] ------------ t6 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- /--* t6 simd16
- N003 ( 7, 5) [000009] DA---------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- [000026] ------------ IL_OFFSET void IL offset: 0xb
- N001 ( 0, 0) [000010] ------------ NOP void
- ------------ BB06 [00D..00F) (return), preds={BB05} succs={}
- [000027] ------------ IL_OFFSET void IL offset: 0xd
- N001 ( 3, 2) [000011] ------------ t11 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- /--* t11 simd16
- N002 ( 4, 3) [000012] ------------ * RETURN simd16
- -------------------------------------------------------------------------------------------------------------------
- lowering call (before):
- N001 ( 14, 5) [000017] --C-G-?----- CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- objp:
- ======
- args:
- ======
- late:
- ======
- lowering call (after):
- N001 ( 14, 5) [000017] --C-G-?----- CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- lowering GT_RETURN
- N002 ( 4, 3) [000012] ------------ * RETURN simd16
- ============Lower has completed modifying nodes.
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [???..???) i internal label target LIR
- BB02 [0004] 1 BB01 1 [???..???)-> BB04 ( cond ) internal LIR
- BB03 [0005] 1 BB02 0.50 [???..???) internal LIR
- BB04 [0003] 2 BB02,BB03 1 [???..???) i internal label target LIR
- BB05 [0001] 1 BB04 1 [000..00D)-> BB06 (always) i LIR
- BB06 [0002] 1 BB05 1 [00D..00F) (return) i label target LIR
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [???..???), preds={} succs={BB02}
- N001 ( 0, 0) [000000] ------------ NOP void
- ------------ BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- N001 ( 3, 10) [000013] -c---------- t13 = CNS_INT(h) long 0x7fff4561eaf0 token
- /--* t13 long
- N002 ( 5, 12) [000014] nc---------- t14 = * IND int
- N003 ( 1, 1) [000015] -c---------- t15 = CNS_INT int 0
- /--* t14 int
- +--* t15 int
- N004 ( 7, 14) [000016] J------N---- * EQ void
- N005 ( 9, 16) [000022] ------------ * JTRUE void
- ------------ BB03 [???..???), preds={BB02} succs={BB04}
- N001 ( 14, 5) [000017] --C-G-?----- CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- ------------ BB04 [???..???), preds={BB02,BB03} succs={BB05}
- ------------ BB05 [000..00D) -> BB06 (always), preds={BB04} succs={BB06}
- [000023] ------------ IL_OFFSET void IL offset: 0x0
- N001 ( 1, 1) [000001] ------------ NO_OP void
- [000024] ------------ IL_OFFSET void IL offset: 0x1
- N001 ( 1, 1) [000004] -c---------- t4 = CNS_INT int 0
- /--* t4 int
- N002 ( 2, 2) [000021] ------------ t21 = * SIMD simd16 double init
- /--* t21 simd16
- N004 ( 6, 5) [000005] DA---------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- [000025] ------------ IL_OFFSET void IL offset: 0x9
- N001 ( 3, 2) [000006] ------------ t6 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- /--* t6 simd16
- N003 ( 7, 5) [000009] DA---------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- [000026] ------------ IL_OFFSET void IL offset: 0xb
- N001 ( 0, 0) [000010] ------------ NOP void
- ------------ BB06 [00D..00F) (return), preds={BB05} succs={}
- [000027] ------------ IL_OFFSET void IL offset: 0xd
- N001 ( 3, 2) [000011] ------------ t11 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- /--* t11 simd16
- N002 ( 4, 3) [000012] ------------ * RETURN simd16
- -------------------------------------------------------------------------------------------------------------------
- *** lvaComputeRefCounts ***
- *************** In fgLocalVarLiveness()
- ; Initial local variable assignments
- ;
- ; V00 loc0 simd16 ld-addr-op
- ; V01 loc1 simd16
- ; V02 OutArgs lclBlk (32) "OutgoingArgSpace"
- In fgLocalVarLivenessInit
- *************** In fgPerBlockLocalVarLiveness()
- *************** In fgInterBlockLocalVarLiveness()
- *************** In fgExtendDbgLifetimes()
- Marking vars alive over their entire scope :
- Local variable scopes = 2
- VarNum LVNum Name Beg End
- Sorted by enter scope:
- 0: 01h 01h V01 loc1 000h 00Fh <-- next enter scope
- 1: 00h 00h V00 loc0 000h 00Fh
- Sorted by exit scope:
- 0: 01h 01h V01 loc1 000h 00Fh <-- next exit scope
- 1: 00h 00h V00 loc0 000h 00Fh
- Scope info: block BB01 marking in scope: {}
- Scope info: block BB02 marking in scope: {}
- Scope info: block BB03 marking in scope: {}
- Scope info: block BB04 marking in scope: {}
- Scope info: block BB05 marking in scope: {}
- Scope info: block BB06 marking in scope: {}
- Debug scopes:
- BB01: {}
- BB02: {}
- BB03: {}
- BB04: {}
- BB05: {}
- BB06: {}
- Scope info: block BB01 UNmarking in scope: {}
- BB liveness after fgExtendDbgLifetimes():
- BB01 IN (0)={} + ByrefExposed + GcHeap
- OUT(0)={} + ByrefExposed + GcHeap
- BB02 IN (0)={} + ByrefExposed + GcHeap
- OUT(0)={} + ByrefExposed + GcHeap
- BB03 IN (0)={} + ByrefExposed + GcHeap
- OUT(0)={} + ByrefExposed + GcHeap
- BB04 IN (0)={} + ByrefExposed + GcHeap
- OUT(0)={} + ByrefExposed + GcHeap
- BB05 IN (0)={} + ByrefExposed + GcHeap
- OUT(0)={} + ByrefExposed + GcHeap
- BB06 IN (0)={} + ByrefExposed + GcHeap
- OUT(0)={} + ByrefExposed + GcHeap
- *** lvaComputeRefCounts ***
- Liveness pass finished after lowering, IR:
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [???..???) i internal label target LIR
- BB02 [0004] 1 BB01 1 [???..???)-> BB04 ( cond ) internal LIR
- BB03 [0005] 1 BB02 0.50 [???..???) internal LIR
- BB04 [0003] 2 BB02,BB03 1 [???..???) i internal label target LIR
- BB05 [0001] 1 BB04 1 [000..00D)-> BB06 (always) i LIR
- BB06 [0002] 1 BB05 1 [00D..00F) (return) i label target LIR
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [???..???), preds={} succs={BB02}
- N001 ( 0, 0) [000000] ------------ NOP void
- ------------ BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- N001 ( 3, 10) [000013] -c---------- t13 = CNS_INT(h) long 0x7fff4561eaf0 token
- /--* t13 long
- N002 ( 5, 12) [000014] nc---------- t14 = * IND int
- N003 ( 1, 1) [000015] -c---------- t15 = CNS_INT int 0
- /--* t14 int
- +--* t15 int
- N004 ( 7, 14) [000016] J------N---- * EQ void
- N005 ( 9, 16) [000022] ------------ * JTRUE void
- ------------ BB03 [???..???), preds={BB02} succs={BB04}
- N001 ( 14, 5) [000017] --C-G-?----- CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- ------------ BB04 [???..???), preds={BB02,BB03} succs={BB05}
- ------------ BB05 [000..00D) -> BB06 (always), preds={BB04} succs={BB06}
- [000023] ------------ IL_OFFSET void IL offset: 0x0
- N001 ( 1, 1) [000001] ------------ NO_OP void
- [000024] ------------ IL_OFFSET void IL offset: 0x1
- N001 ( 1, 1) [000004] -c---------- t4 = CNS_INT int 0
- /--* t4 int
- N002 ( 2, 2) [000021] ------------ t21 = * SIMD simd16 double init
- /--* t21 simd16
- N004 ( 6, 5) [000005] DA---------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- [000025] ------------ IL_OFFSET void IL offset: 0x9
- N001 ( 3, 2) [000006] ------------ t6 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- /--* t6 simd16
- N003 ( 7, 5) [000009] DA---------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- [000026] ------------ IL_OFFSET void IL offset: 0xb
- N001 ( 0, 0) [000010] ------------ NOP void
- ------------ BB06 [00D..00F) (return), preds={BB05} succs={}
- [000027] ------------ IL_OFFSET void IL offset: 0xd
- N001 ( 3, 2) [000011] ------------ t11 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- /--* t11 simd16
- N002 ( 4, 3) [000012] ------------ * RETURN simd16
- -------------------------------------------------------------------------------------------------------------------
- *************** Exiting Lowering
- Trees after Lowering
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [???..???) i internal label target LIR
- BB02 [0004] 1 BB01 1 [???..???)-> BB04 ( cond ) internal LIR
- BB03 [0005] 1 BB02 0.50 [???..???) internal LIR
- BB04 [0003] 2 BB02,BB03 1 [???..???) i internal label target LIR
- BB05 [0001] 1 BB04 1 [000..00D)-> BB06 (always) i LIR
- BB06 [0002] 1 BB05 1 [00D..00F) (return) i label target LIR
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [???..???), preds={} succs={BB02}
- N001 ( 0, 0) [000000] ------------ NOP void
- ------------ BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- N001 ( 3, 10) [000013] -c---------- t13 = CNS_INT(h) long 0x7fff4561eaf0 token
- /--* t13 long
- N002 ( 5, 12) [000014] nc---------- t14 = * IND int
- N003 ( 1, 1) [000015] -c---------- t15 = CNS_INT int 0
- /--* t14 int
- +--* t15 int
- N004 ( 7, 14) [000016] J------N---- * EQ void
- N005 ( 9, 16) [000022] ------------ * JTRUE void
- ------------ BB03 [???..???), preds={BB02} succs={BB04}
- N001 ( 14, 5) [000017] --C-G-?----- CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- ------------ BB04 [???..???), preds={BB02,BB03} succs={BB05}
- ------------ BB05 [000..00D) -> BB06 (always), preds={BB04} succs={BB06}
- [000023] ------------ IL_OFFSET void IL offset: 0x0
- N001 ( 1, 1) [000001] ------------ NO_OP void
- [000024] ------------ IL_OFFSET void IL offset: 0x1
- N001 ( 1, 1) [000004] -c---------- t4 = CNS_INT int 0
- /--* t4 int
- N002 ( 2, 2) [000021] ------------ t21 = * SIMD simd16 double init
- /--* t21 simd16
- N004 ( 6, 5) [000005] DA---------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- [000025] ------------ IL_OFFSET void IL offset: 0x9
- N001 ( 3, 2) [000006] ------------ t6 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- /--* t6 simd16
- N003 ( 7, 5) [000009] DA---------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- [000026] ------------ IL_OFFSET void IL offset: 0xb
- N001 ( 0, 0) [000010] ------------ NOP void
- ------------ BB06 [00D..00F) (return), preds={BB05} succs={}
- [000027] ------------ IL_OFFSET void IL offset: 0xd
- N001 ( 3, 2) [000011] ------------ t11 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- /--* t11 simd16
- N002 ( 4, 3) [000012] ------------ * RETURN simd16
- -------------------------------------------------------------------------------------------------------------------
- *************** In fgDebugCheckBBlist
- *************** In StackLevelSetter
- Trees before StackLevelSetter
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [???..???) i internal label target LIR
- BB02 [0004] 1 BB01 1 [???..???)-> BB04 ( cond ) internal LIR
- BB03 [0005] 1 BB02 0.50 [???..???) internal LIR
- BB04 [0003] 2 BB02,BB03 1 [???..???) i internal label target LIR
- BB05 [0001] 1 BB04 1 [000..00D)-> BB06 (always) i LIR
- BB06 [0002] 1 BB05 1 [00D..00F) (return) i label target LIR
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [???..???), preds={} succs={BB02}
- N001 ( 0, 0) [000000] ------------ NOP void
- ------------ BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- N001 ( 3, 10) [000013] -c---------- t13 = CNS_INT(h) long 0x7fff4561eaf0 token
- /--* t13 long
- N002 ( 5, 12) [000014] nc---------- t14 = * IND int
- N003 ( 1, 1) [000015] -c---------- t15 = CNS_INT int 0
- /--* t14 int
- +--* t15 int
- N004 ( 7, 14) [000016] J------N---- * EQ void
- N005 ( 9, 16) [000022] ------------ * JTRUE void
- ------------ BB03 [???..???), preds={BB02} succs={BB04}
- N001 ( 14, 5) [000017] --C-G-?----- CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- ------------ BB04 [???..???), preds={BB02,BB03} succs={BB05}
- ------------ BB05 [000..00D) -> BB06 (always), preds={BB04} succs={BB06}
- [000023] ------------ IL_OFFSET void IL offset: 0x0
- N001 ( 1, 1) [000001] ------------ NO_OP void
- [000024] ------------ IL_OFFSET void IL offset: 0x1
- N001 ( 1, 1) [000004] -c---------- t4 = CNS_INT int 0
- /--* t4 int
- N002 ( 2, 2) [000021] ------------ t21 = * SIMD simd16 double init
- /--* t21 simd16
- N004 ( 6, 5) [000005] DA---------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- [000025] ------------ IL_OFFSET void IL offset: 0x9
- N001 ( 3, 2) [000006] ------------ t6 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- /--* t6 simd16
- N003 ( 7, 5) [000009] DA---------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- [000026] ------------ IL_OFFSET void IL offset: 0xb
- N001 ( 0, 0) [000010] ------------ NOP void
- ------------ BB06 [00D..00F) (return), preds={BB05} succs={}
- [000027] ------------ IL_OFFSET void IL offset: 0xd
- N001 ( 3, 2) [000011] ------------ t11 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- /--* t11 simd16
- N002 ( 4, 3) [000012] ------------ * RETURN simd16
- -------------------------------------------------------------------------------------------------------------------
- *************** Exiting StackLevelSetter
- Trees after StackLevelSetter
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [???..???) i internal label target LIR
- BB02 [0004] 1 BB01 1 [???..???)-> BB04 ( cond ) internal LIR
- BB03 [0005] 1 BB02 0.50 [???..???) internal LIR
- BB04 [0003] 2 BB02,BB03 1 [???..???) i internal label target LIR
- BB05 [0001] 1 BB04 1 [000..00D)-> BB06 (always) i LIR
- BB06 [0002] 1 BB05 1 [00D..00F) (return) i label target LIR
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [???..???), preds={} succs={BB02}
- N001 ( 0, 0) [000000] ------------ NOP void
- ------------ BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- N001 ( 3, 10) [000013] -c---------- t13 = CNS_INT(h) long 0x7fff4561eaf0 token
- /--* t13 long
- N002 ( 5, 12) [000014] nc---------- t14 = * IND int
- N003 ( 1, 1) [000015] -c---------- t15 = CNS_INT int 0
- /--* t14 int
- +--* t15 int
- N004 ( 7, 14) [000016] J------N---- * EQ void
- N005 ( 9, 16) [000022] ------------ * JTRUE void
- ------------ BB03 [???..???), preds={BB02} succs={BB04}
- N001 ( 14, 5) [000017] --C-G-?----- CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE
- ------------ BB04 [???..???), preds={BB02,BB03} succs={BB05}
- ------------ BB05 [000..00D) -> BB06 (always), preds={BB04} succs={BB06}
- [000023] ------------ IL_OFFSET void IL offset: 0x0
- N001 ( 1, 1) [000001] ------------ NO_OP void
- [000024] ------------ IL_OFFSET void IL offset: 0x1
- N001 ( 1, 1) [000004] -c---------- t4 = CNS_INT int 0
- /--* t4 int
- N002 ( 2, 2) [000021] ------------ t21 = * SIMD simd16 double init
- /--* t21 simd16
- N004 ( 6, 5) [000005] DA---------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- [000025] ------------ IL_OFFSET void IL offset: 0x9
- N001 ( 3, 2) [000006] ------------ t6 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0
- /--* t6 simd16
- N003 ( 7, 5) [000009] DA---------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- [000026] ------------ IL_OFFSET void IL offset: 0xb
- N001 ( 0, 0) [000010] ------------ NOP void
- ------------ BB06 [00D..00F) (return), preds={BB05} succs={}
- [000027] ------------ IL_OFFSET void IL offset: 0xd
- N001 ( 3, 2) [000011] ------------ t11 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1
- /--* t11 simd16
- N002 ( 4, 3) [000012] ------------ * RETURN simd16
- -------------------------------------------------------------------------------------------------------------------
- *************** In fgDebugCheckBBlist
- Clearing modified regs.
- buildIntervals ========
- -----------------
- LIVENESS:
- -----------------
- BB01 use def in out
- {}
- {}
- {}
- {}
- BB02 use def in out
- {}
- {}
- {}
- {}
- BB03 use def in out
- {}
- {}
- {}
- {}
- BB04 use def in out
- {}
- {}
- {}
- {}
- BB05 use def in out
- {}
- {}
- {}
- {}
- BB06 use def in out
- {}
- {}
- {}
- {}
- FP callee save candidate vars: None
- floatVarCount = 0; hasLoops = 0, singleExit = 1
- TUPLE STYLE DUMP BEFORE LSRA
- LSRA Block Sequence: BB01( 1 )
- BB02( 1 )
- BB03( 0.50)
- BB04( 1 )
- BB05( 1 )
- BB06( 1 )
- BB01 [???..???), preds={} succs={BB02}
- =====
- N001. NOP
- BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- =====
- N001. CNS_INT(h) 0x7fff4561eaf0 token
- N002. IND
- N003. CNS_INT 0
- N004. EQ
- N005. JTRUE
- BB03 [???..???), preds={BB02} succs={BB04}
- =====
- N001. CALL help
- BB04 [???..???), preds={BB02,BB03} succs={BB05}
- =====
- BB05 [000..00D) -> BB06 (always), preds={BB04} succs={BB06}
- =====
- N000. IL_OFFSET IL offset: 0x0
- N001. NO_OP
- N000. IL_OFFSET IL offset: 0x1
- N001. CNS_INT 0
- N002. t21 = SIMD
- N004. V00 MEM; t21
- N000. IL_OFFSET IL offset: 0x9
- N001. t6 = V00 MEM
- N003. V01 MEM; t6
- N000. IL_OFFSET IL offset: 0xb
- N001. NOP
- BB06 [00D..00F) (return), preds={BB05} succs={}
- =====
- N000. IL_OFFSET IL offset: 0xd
- N001. t11 = V01 MEM
- N002. RETURN ; t11
- buildIntervals second part ========
- NEW BLOCK BB01
- <RefPosition #0 @0 RefTypeBB BB01 regmask=[] minReg=1>
- DefList: { }
- N002 ( 0, 0) [000000] ------------ * NOP void REG NA
- NEW BLOCK BB02
- Setting BB01 as the predecessor for determining incoming variable registers of BB02
- <RefPosition #1 @4 RefTypeBB BB02 regmask=[] minReg=1>
- DefList: { }
- N006 ( 3, 10) [000013] -c---------- * CNS_INT(h) long 0x7fff4561eaf0 token REG NA
- Contained
- DefList: { }
- N008 ( 5, 12) [000014] nc---------- * IND int REG NA
- Contained
- DefList: { }
- N010 ( 1, 1) [000015] -c---------- * CNS_INT int 0 REG NA
- Contained
- DefList: { }
- N012 ( 7, 14) [000016] J------N---- * EQ void REG NA
- DefList: { }
- N014 ( 9, 16) [000022] ------------ * JTRUE void REG NA
- NEW BLOCK BB03
- Setting BB02 as the predecessor for determining incoming variable registers of BB03
- <RefPosition #2 @16 RefTypeBB BB03 regmask=[] minReg=1>
- DefList: { }
- N018 ( 14, 5) [000017] --C-G-?----- * CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE REG NA
- <RefPosition #3 @19 RefTypeKill <Reg:rax> BB03 regmask=[rax] minReg=1>
- <RefPosition #4 @19 RefTypeKill <Reg:rcx> BB03 regmask=[rcx] minReg=1>
- <RefPosition #5 @19 RefTypeKill <Reg:rdx> BB03 regmask=[rdx] minReg=1>
- <RefPosition #6 @19 RefTypeKill <Reg:r8 > BB03 regmask=[r8] minReg=1>
- <RefPosition #7 @19 RefTypeKill <Reg:r9 > BB03 regmask=[r9] minReg=1>
- <RefPosition #8 @19 RefTypeKill <Reg:r10> BB03 regmask=[r10] minReg=1>
- <RefPosition #9 @19 RefTypeKill <Reg:r11> BB03 regmask=[r11] minReg=1>
- <RefPosition #10 @19 RefTypeKill <Reg:mm0> BB03 regmask=[mm0] minReg=1>
- <RefPosition #11 @19 RefTypeKill <Reg:mm1> BB03 regmask=[mm1] minReg=1>
- <RefPosition #12 @19 RefTypeKill <Reg:mm2> BB03 regmask=[mm2] minReg=1>
- <RefPosition #13 @19 RefTypeKill <Reg:mm3> BB03 regmask=[mm3] minReg=1>
- <RefPosition #14 @19 RefTypeKill <Reg:mm4> BB03 regmask=[mm4] minReg=1>
- <RefPosition #15 @19 RefTypeKill <Reg:mm5> BB03 regmask=[mm5] minReg=1>
- NEW BLOCK BB04
- Setting BB02 as the predecessor for determining incoming variable registers of BB04
- <RefPosition #16 @20 RefTypeBB BB04 regmask=[] minReg=1>
- NEW BLOCK BB05
- Setting BB04 as the predecessor for determining incoming variable registers of BB05
- <RefPosition #17 @22 RefTypeBB BB05 regmask=[] minReg=1>
- DefList: { }
- N024 (???,???) [000023] ------------ * IL_OFFSET void IL offset: 0x0 REG NA
- DefList: { }
- N026 ( 1, 1) [000001] ------------ * NO_OP void REG NA
- DefList: { }
- N028 (???,???) [000024] ------------ * IL_OFFSET void IL offset: 0x1 REG NA
- DefList: { }
- N030 ( 1, 1) [000004] -c---------- * CNS_INT int 0 REG NA
- Contained
- DefList: { }
- N032 ( 2, 2) [000021] ------------ * SIMD simd16 double init REG NA
- Interval 0: simd16 RefPositions {} physReg:NA Preferences=[allFloat]
- <RefPosition #18 @33 RefTypeDef <Ivl:0> SIMD BB05 regmask=[allFloat] minReg=1>
- DefList: { N032.t21. SIMD }
- N034 ( 6, 5) [000005] DA---------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0 NA REG NA
- <RefPosition #19 @34 RefTypeUse <Ivl:0> BB05 regmask=[allFloat] minReg=1 last>
- DefList: { }
- N036 (???,???) [000025] ------------ * IL_OFFSET void IL offset: 0x9 REG NA
- DefList: { }
- N038 ( 3, 2) [000006] ------------ * LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0 NA REG NA
- Interval 1: simd16 RefPositions {} physReg:NA Preferences=[allFloat]
- <RefPosition #20 @39 RefTypeDef <Ivl:1> LCL_VAR BB05 regmask=[allFloat] minReg=1>
- DefList: { N038.t6. LCL_VAR }
- N040 ( 7, 5) [000009] DA---------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1 NA REG NA
- <RefPosition #21 @40 RefTypeUse <Ivl:1> BB05 regmask=[allFloat] minReg=1 last>
- DefList: { }
- N042 (???,???) [000026] ------------ * IL_OFFSET void IL offset: 0xb REG NA
- DefList: { }
- N044 ( 0, 0) [000010] ------------ * NOP void REG NA
- NEW BLOCK BB06
- Setting BB05 as the predecessor for determining incoming variable registers of BB06
- <RefPosition #22 @46 RefTypeBB BB06 regmask=[] minReg=1>
- DefList: { }
- N048 (???,???) [000027] ------------ * IL_OFFSET void IL offset: 0xd REG NA
- DefList: { }
- N050 ( 3, 2) [000011] ------------ * LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1 NA REG NA
- Interval 2: simd16 RefPositions {} physReg:NA Preferences=[allFloat]
- <RefPosition #23 @51 RefTypeDef <Ivl:2> LCL_VAR BB06 regmask=[allFloat] minReg=1>
- DefList: { N050.t11. LCL_VAR }
- N052 ( 4, 3) [000012] ------------ * RETURN simd16 REG NA
- <RefPosition #24 @52 RefTypeFixedReg <Reg:mm0> BB06 regmask=[mm0] minReg=1>
- <RefPosition #25 @52 RefTypeUse <Ivl:2> BB06 regmask=[mm0] minReg=1 last fixed>
- Linear scan intervals BEFORE VALIDATING INTERVALS:
- Interval 0: simd16 RefPositions {#18@33 #19@34} physReg:NA Preferences=[allFloat]
- Interval 1: simd16 RefPositions {#20@39 #21@40} physReg:NA Preferences=[allFloat]
- Interval 2: simd16 RefPositions {#23@51 #25@52} physReg:NA Preferences=[mm0]
- ------------
- REFPOSITIONS BEFORE VALIDATING INTERVALS:
- ------------
- <RefPosition #0 @0 RefTypeBB BB01 regmask=[] minReg=1>
- <RefPosition #1 @4 RefTypeBB BB02 regmask=[] minReg=1>
- <RefPosition #2 @16 RefTypeBB BB03 regmask=[] minReg=1>
- <RefPosition #3 @19 RefTypeKill <Reg:rax> BB03 regmask=[rax] minReg=1 last>
- <RefPosition #4 @19 RefTypeKill <Reg:rcx> BB03 regmask=[rcx] minReg=1 last>
- <RefPosition #5 @19 RefTypeKill <Reg:rdx> BB03 regmask=[rdx] minReg=1 last>
- <RefPosition #6 @19 RefTypeKill <Reg:r8 > BB03 regmask=[r8] minReg=1 last>
- <RefPosition #7 @19 RefTypeKill <Reg:r9 > BB03 regmask=[r9] minReg=1 last>
- <RefPosition #8 @19 RefTypeKill <Reg:r10> BB03 regmask=[r10] minReg=1 last>
- <RefPosition #9 @19 RefTypeKill <Reg:r11> BB03 regmask=[r11] minReg=1 last>
- <RefPosition #10 @19 RefTypeKill <Reg:mm0> BB03 regmask=[mm0] minReg=1 last>
- <RefPosition #11 @19 RefTypeKill <Reg:mm1> BB03 regmask=[mm1] minReg=1 last>
- <RefPosition #12 @19 RefTypeKill <Reg:mm2> BB03 regmask=[mm2] minReg=1 last>
- <RefPosition #13 @19 RefTypeKill <Reg:mm3> BB03 regmask=[mm3] minReg=1 last>
- <RefPosition #14 @19 RefTypeKill <Reg:mm4> BB03 regmask=[mm4] minReg=1 last>
- <RefPosition #15 @19 RefTypeKill <Reg:mm5> BB03 regmask=[mm5] minReg=1 last>
- <RefPosition #16 @20 RefTypeBB BB04 regmask=[] minReg=1>
- <RefPosition #17 @22 RefTypeBB BB05 regmask=[] minReg=1>
- <RefPosition #18 @33 RefTypeDef <Ivl:0> SIMD BB05 regmask=[allFloat] minReg=1>
- <RefPosition #19 @34 RefTypeUse <Ivl:0> BB05 regmask=[allFloat] minReg=1 last>
- <RefPosition #20 @39 RefTypeDef <Ivl:1> LCL_VAR BB05 regmask=[allFloat] minReg=1>
- <RefPosition #21 @40 RefTypeUse <Ivl:1> BB05 regmask=[allFloat] minReg=1 last>
- <RefPosition #22 @46 RefTypeBB BB06 regmask=[] minReg=1>
- <RefPosition #23 @51 RefTypeDef <Ivl:2> LCL_VAR BB06 regmask=[mm0] minReg=1>
- <RefPosition #24 @52 RefTypeFixedReg <Reg:mm0> BB06 regmask=[mm0] minReg=1>
- <RefPosition #25 @52 RefTypeUse <Ivl:2> BB06 regmask=[mm0] minReg=1 last fixed>
- TUPLE STYLE DUMP WITH REF POSITIONS
- Incoming Parameters:
- BB01 [???..???), preds={} succs={BB02}
- =====
- N002. NOP
- BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- =====
- N006. CNS_INT(h) 0x7fff4561eaf0 token
- N008. IND
- N010. CNS_INT 0
- N012. EQ
- N014. JTRUE
- BB03 [???..???), preds={BB02} succs={BB04}
- =====
- N018. CALL help
- Kill: rax rcx rdx r8 r9 r10 r11 mm0 mm1 mm2 mm3 mm4 mm5
- BB04 [???..???), preds={BB02,BB03} succs={BB05}
- =====
- BB05 [000..00D) -> BB06 (always), preds={BB04} succs={BB06}
- =====
- N024. IL_OFFSET IL offset: 0x0
- N026. NO_OP
- N028. IL_OFFSET IL offset: 0x1
- N030. CNS_INT 0
- N032. SIMD
- Def:<I0>(#18)
- N034. V00 MEM
- Use:<I0>(#19) *
- N036. IL_OFFSET IL offset: 0x9
- N038. V00 MEM
- Def:<I1>(#20)
- N040. V01 MEM
- Use:<I1>(#21) *
- N042. IL_OFFSET IL offset: 0xb
- N044. NOP
- BB06 [00D..00F) (return), preds={BB05} succs={}
- =====
- N048. IL_OFFSET IL offset: 0xd
- N050. V01 MEM
- Def:<I2>(#23)
- N052. RETURN
- Use:<I2>(#25) Fixed:mm0(#24) *
- Linear scan intervals after buildIntervals:
- Interval 0: simd16 RefPositions {#18@33 #19@34} physReg:NA Preferences=[allFloat]
- Interval 1: simd16 RefPositions {#20@39 #21@40} physReg:NA Preferences=[allFloat]
- Interval 2: simd16 RefPositions {#23@51 #25@52} physReg:NA Preferences=[mm0]
- *************** In LinearScan::allocateRegisters()
- Linear scan intervals before allocateRegisters:
- Interval 0: simd16 RefPositions {#18@33 #19@34} physReg:NA Preferences=[allFloat]
- Interval 1: simd16 RefPositions {#20@39 #21@40} physReg:NA Preferences=[allFloat]
- Interval 2: simd16 RefPositions {#23@51 #25@52} physReg:NA Preferences=[mm0]
- ------------
- REFPOSITIONS BEFORE ALLOCATION:
- ------------
- <RefPosition #0 @0 RefTypeBB BB01 regmask=[] minReg=1>
- <RefPosition #1 @4 RefTypeBB BB02 regmask=[] minReg=1>
- <RefPosition #2 @16 RefTypeBB BB03 regmask=[] minReg=1>
- <RefPosition #3 @19 RefTypeKill <Reg:rax> BB03 regmask=[rax] minReg=1 last>
- <RefPosition #4 @19 RefTypeKill <Reg:rcx> BB03 regmask=[rcx] minReg=1 last>
- <RefPosition #5 @19 RefTypeKill <Reg:rdx> BB03 regmask=[rdx] minReg=1 last>
- <RefPosition #6 @19 RefTypeKill <Reg:r8 > BB03 regmask=[r8] minReg=1 last>
- <RefPosition #7 @19 RefTypeKill <Reg:r9 > BB03 regmask=[r9] minReg=1 last>
- <RefPosition #8 @19 RefTypeKill <Reg:r10> BB03 regmask=[r10] minReg=1 last>
- <RefPosition #9 @19 RefTypeKill <Reg:r11> BB03 regmask=[r11] minReg=1 last>
- <RefPosition #10 @19 RefTypeKill <Reg:mm0> BB03 regmask=[mm0] minReg=1 last>
- <RefPosition #11 @19 RefTypeKill <Reg:mm1> BB03 regmask=[mm1] minReg=1 last>
- <RefPosition #12 @19 RefTypeKill <Reg:mm2> BB03 regmask=[mm2] minReg=1 last>
- <RefPosition #13 @19 RefTypeKill <Reg:mm3> BB03 regmask=[mm3] minReg=1 last>
- <RefPosition #14 @19 RefTypeKill <Reg:mm4> BB03 regmask=[mm4] minReg=1 last>
- <RefPosition #15 @19 RefTypeKill <Reg:mm5> BB03 regmask=[mm5] minReg=1 last>
- <RefPosition #16 @20 RefTypeBB BB04 regmask=[] minReg=1>
- <RefPosition #17 @22 RefTypeBB BB05 regmask=[] minReg=1>
- <RefPosition #18 @33 RefTypeDef <Ivl:0> SIMD BB05 regmask=[allFloat] minReg=1>
- <RefPosition #19 @34 RefTypeUse <Ivl:0> BB05 regmask=[allFloat] minReg=1 last>
- <RefPosition #20 @39 RefTypeDef <Ivl:1> LCL_VAR BB05 regmask=[allFloat] minReg=1>
- <RefPosition #21 @40 RefTypeUse <Ivl:1> BB05 regmask=[allFloat] minReg=1 last>
- <RefPosition #22 @46 RefTypeBB BB06 regmask=[] minReg=1>
- <RefPosition #23 @51 RefTypeDef <Ivl:2> LCL_VAR BB06 regmask=[mm0] minReg=1>
- <RefPosition #24 @52 RefTypeFixedReg <Reg:mm0> BB06 regmask=[mm0] minReg=1>
- <RefPosition #25 @52 RefTypeUse <Ivl:2> BB06 regmask=[mm0] minReg=1 last fixed>
- Allocating Registers
- --------------------
- The following table has one or more rows for each RefPosition that is handled during allocation.
- The first column provides the basic information about the RefPosition, with its type (e.g. Def,
- Use, Fixd) followed by a '*' if it is a last use, and a 'D' if it is delayRegFree, and then the
- action taken during allocation (e.g. Alloc a new register, or Keep an existing one).
- The subsequent columns show the Interval occupying each register, if any, followed by 'a' if it is
- active, a 'p' if it is a large vector that has been partially spilled, and 'i'if it is inactive.
- Columns are only printed up to the last modifed register, which may increase during allocation,
- in which case additional columns will appear.
- Registers which are not marked modified have ---- in their column.
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm6 |mm7 |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- | | | | | | | | | | | | | | |
- 0.#0 BB1 PredBB0 | | | | | | | | | | | | | | |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm6 |mm7 |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- 4.#1 BB2 PredBB1 | | | | | | | | | | | | | | |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm6 |mm7 |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- 16.#2 BB3 PredBB2 | | | | | | | | | | | | | | |
- 19.#3 rax Kill Keep rax | | | | | | | | | | | | | | |
- 19.#4 rcx Kill Keep rcx | | | | | | | | | | | | | | |
- 19.#5 rdx Kill Keep rdx | | | | | | | | | | | | | | |
- 19.#6 r8 Kill Keep r8 | | | | | | | | | | | | | | |
- 19.#7 r9 Kill Keep r9 | | | | | | | | | | | | | | |
- 19.#8 r10 Kill Keep r10 | | | | | | | | | | | | | | |
- 19.#9 r11 Kill Keep r11 | | | | | | | | | | | | | | |
- 19.#10 mm0 Kill Keep mm0 | | | | | | | | | | | | | | |
- 19.#11 mm1 Kill Keep mm1 | | | | | | | | | | | | | | |
- 19.#12 mm2 Kill Keep mm2 | | | | | | | | | | | | | | |
- 19.#13 mm3 Kill Keep mm3 | | | | | | | | | | | | | | |
- 19.#14 mm4 Kill Keep mm4 | | | | | | | | | | | | | | |
- 19.#15 mm5 Kill Keep mm5 | | | | | | | | | | | | | | |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm6 |mm7 |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- 20.#16 BB4 PredBB2 | | | | | | | | | | | | | | |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm6 |mm7 |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- 22.#17 BB5 PredBB4 | | | | | | | | | | | | | | |
- 33.#18 I0 Def Alloc mm0 | | | | | | | | | |I0 a| | | | |
- 34.#19 I0 Use * Keep mm0 | | | | | | | | | |I0 a| | | | |
- 39.#20 I1 Def Alloc mm0 | | | | | | | | | |I1 a| | | | |
- 40.#21 I1 Use * Keep mm0 | | | | | | | | | |I1 a| | | | |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm6 |mm7 |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- 46.#22 BB6 PredBB5 | | | | | | | | | | | | | | |
- 51.#23 I2 Def Alloc mm0 | | | | | | | | | |I2 a| | | | |
- 52.#24 mm0 Fixd Keep mm0 | | | | | | | | | |I2 a| | | | |
- 52.#25 I2 Use * Keep mm0 | | | | | | | | | | | | | | |
- ------------
- REFPOSITIONS AFTER ALLOCATION:
- ------------
- <RefPosition #0 @0 RefTypeBB BB01 regmask=[] minReg=1>
- <RefPosition #1 @4 RefTypeBB BB02 regmask=[] minReg=1>
- <RefPosition #2 @16 RefTypeBB BB03 regmask=[] minReg=1>
- <RefPosition #3 @19 RefTypeKill <Reg:rax> BB03 regmask=[rax] minReg=1 last>
- <RefPosition #4 @19 RefTypeKill <Reg:rcx> BB03 regmask=[rcx] minReg=1 last>
- <RefPosition #5 @19 RefTypeKill <Reg:rdx> BB03 regmask=[rdx] minReg=1 last>
- <RefPosition #6 @19 RefTypeKill <Reg:r8 > BB03 regmask=[r8] minReg=1 last>
- <RefPosition #7 @19 RefTypeKill <Reg:r9 > BB03 regmask=[r9] minReg=1 last>
- <RefPosition #8 @19 RefTypeKill <Reg:r10> BB03 regmask=[r10] minReg=1 last>
- <RefPosition #9 @19 RefTypeKill <Reg:r11> BB03 regmask=[r11] minReg=1 last>
- <RefPosition #10 @19 RefTypeKill <Reg:mm0> BB03 regmask=[mm0] minReg=1 last>
- <RefPosition #11 @19 RefTypeKill <Reg:mm1> BB03 regmask=[mm1] minReg=1 last>
- <RefPosition #12 @19 RefTypeKill <Reg:mm2> BB03 regmask=[mm2] minReg=1 last>
- <RefPosition #13 @19 RefTypeKill <Reg:mm3> BB03 regmask=[mm3] minReg=1 last>
- <RefPosition #14 @19 RefTypeKill <Reg:mm4> BB03 regmask=[mm4] minReg=1 last>
- <RefPosition #15 @19 RefTypeKill <Reg:mm5> BB03 regmask=[mm5] minReg=1 last>
- <RefPosition #16 @20 RefTypeBB BB04 regmask=[] minReg=1>
- <RefPosition #17 @22 RefTypeBB BB05 regmask=[] minReg=1>
- <RefPosition #18 @33 RefTypeDef <Ivl:0> SIMD BB05 regmask=[mm0] minReg=1>
- <RefPosition #19 @34 RefTypeUse <Ivl:0> BB05 regmask=[mm0] minReg=1 last>
- <RefPosition #20 @39 RefTypeDef <Ivl:1> LCL_VAR BB05 regmask=[mm0] minReg=1>
- <RefPosition #21 @40 RefTypeUse <Ivl:1> BB05 regmask=[mm0] minReg=1 last>
- <RefPosition #22 @46 RefTypeBB BB06 regmask=[] minReg=1>
- <RefPosition #23 @51 RefTypeDef <Ivl:2> LCL_VAR BB06 regmask=[mm0] minReg=1>
- <RefPosition #24 @52 RefTypeFixedReg <Reg:mm0> BB06 regmask=[mm0] minReg=1>
- <RefPosition #25 @52 RefTypeUse <Ivl:2> BB06 regmask=[mm0] minReg=1 last fixed>
- Active intervals at end of allocation:
- Trees after linear scan register allocator (LSRA)
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [???..???) i internal label target LIR
- BB02 [0004] 1 BB01 1 [???..???)-> BB04 ( cond ) internal LIR
- BB03 [0005] 1 BB02 0.50 [???..???) internal LIR
- BB04 [0003] 2 BB02,BB03 1 [???..???) i internal label target LIR
- BB05 [0001] 1 BB04 1 [000..00D)-> BB06 (always) i LIR
- BB06 [0002] 1 BB05 1 [00D..00F) (return) i label target LIR
- -----------------------------------------------------------------------------------------------------------------------------------------
- ------------ BB01 [???..???), preds={} succs={BB02}
- N002 ( 0, 0) [000000] ------------ NOP void REG NA
- ------------ BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- N006 ( 3, 10) [000013] -c---------- t13 = CNS_INT(h) long 0x7fff4561eaf0 token REG NA
- /--* t13 long
- N008 ( 5, 12) [000014] nc---------- t14 = * IND int REG NA
- N010 ( 1, 1) [000015] -c---------- t15 = CNS_INT int 0 REG NA
- /--* t14 int
- +--* t15 int
- N012 ( 7, 14) [000016] J------N---- * EQ void REG NA
- N014 ( 9, 16) [000022] ------------ * JTRUE void REG NA
- ------------ BB03 [???..???), preds={BB02} succs={BB04}
- N018 ( 14, 5) [000017] --C-G-?----- CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE REG NA
- ------------ BB04 [???..???), preds={BB02,BB03} succs={BB05}
- ------------ BB05 [000..00D) -> BB06 (always), preds={BB04} succs={BB06}
- N024 (???,???) [000023] ------------ IL_OFFSET void IL offset: 0x0 REG NA
- N026 ( 1, 1) [000001] ------------ NO_OP void REG NA
- N028 (???,???) [000024] ------------ IL_OFFSET void IL offset: 0x1 REG NA
- N030 ( 1, 1) [000004] -c---------- t4 = CNS_INT int 0 REG NA
- /--* t4 int
- N032 ( 2, 2) [000021] ------------ t21 = * SIMD simd16 double init REG mm0
- /--* t21 simd16
- N034 ( 6, 5) [000005] DA---------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0 NA REG NA
- N036 (???,???) [000025] ------------ IL_OFFSET void IL offset: 0x9 REG NA
- N038 ( 3, 2) [000006] ------------ t6 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0 mm0 REG mm0
- /--* t6 simd16
- N040 ( 7, 5) [000009] DA---------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1 NA REG NA
- N042 (???,???) [000026] ------------ IL_OFFSET void IL offset: 0xb REG NA
- N044 ( 0, 0) [000010] ------------ NOP void REG NA
- ------------ BB06 [00D..00F) (return), preds={BB05} succs={}
- N048 (???,???) [000027] ------------ IL_OFFSET void IL offset: 0xd REG NA
- N050 ( 3, 2) [000011] ------------ t11 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1 mm0 REG mm0
- /--* t11 simd16
- N052 ( 4, 3) [000012] ------------ * RETURN simd16 REG NA
- -------------------------------------------------------------------------------------------------------------------
- Final allocation
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm6 |mm7 |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- 0.#0 BB1 PredBB0 | | | | | | | | | | | | | | |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm6 |mm7 |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- 4.#1 BB2 PredBB1 | | | | | | | | | | | | | | |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm6 |mm7 |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- 16.#2 BB3 PredBB2 | | | | | | | | | | | | | | |
- 19.#3 rax Kill Keep rax | | | | | | | | | | | | | | |
- 19.#4 rcx Kill Keep rcx | | | | | | | | | | | | | | |
- 19.#5 rdx Kill Keep rdx | | | | | | | | | | | | | | |
- 19.#6 r8 Kill Keep r8 | | | | | | | | | | | | | | |
- 19.#7 r9 Kill Keep r9 | | | | | | | | | | | | | | |
- 19.#8 r10 Kill Keep r10 | | | | | | | | | | | | | | |
- 19.#9 r11 Kill Keep r11 | | | | | | | | | | | | | | |
- 19.#10 mm0 Kill Keep mm0 | | | | | | | | | | | | | | |
- 19.#11 mm1 Kill Keep mm1 | | | | | | | | | | | | | | |
- 19.#12 mm2 Kill Keep mm2 | | | | | | | | | | | | | | |
- 19.#13 mm3 Kill Keep mm3 | | | | | | | | | | | | | | |
- 19.#14 mm4 Kill Keep mm4 | | | | | | | | | | | | | | |
- 19.#15 mm5 Kill Keep mm5 | | | | | | | | | | | | | | |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm6 |mm7 |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- 20.#16 BB4 PredBB2 | | | | | | | | | | | | | | |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm6 |mm7 |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- 22.#17 BB5 PredBB4 | | | | | | | | | | | | | | |
- 33.#18 I0 Def Alloc mm0 | | | | | | | | | |I0 a| | | | |
- 34.#19 I0 Use * Keep mm0 | | | | | | | | | |I0 i| | | | |
- 39.#20 I1 Def Alloc mm0 | | | | | | | | | |I1 a| | | | |
- 40.#21 I1 Use * Keep mm0 | | | | | | | | | |I1 i| | | | |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- LocRP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |mm0 |mm1 |mm2 |mm6 |mm7 |
- ------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
- 46.#22 BB6 PredBB5 | | | | | | | | | | | | | | |
- 51.#23 I2 Def Alloc mm0 | | | | | | | | | |I2 a| | | | |
- 52.#24 mm0 Fixd Keep mm0 | | | | | | | | | |I2 a| | | | |
- 52.#25 I2 Use * Keep mm0 | | | | | | | | | |I2 i| | | | |
- Recording the maximum number of concurrent spills:
- ----------
- LSRA Stats
- ----------
- Total Tracked Vars: 0
- Total Reg Cand Vars: 0
- Total number of Intervals: 2
- Total number of RefPositions: 25
- Total Spill Count: 0 Weighted: 0
- Total CopyReg Count: 0 Weighted: 0
- Total ResolutionMov Count: 0 Weighted: 0
- Total number of split edges: 0
- Total Number of spill temps created: 0
- TUPLE STYLE DUMP WITH REGISTER ASSIGNMENTS
- Incoming Parameters:
- BB01 [???..???), preds={} succs={BB02}
- =====
- N002. NOP
- BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04}
- =====
- N006. CNS_INT(h) 0x7fff4561eaf0 token
- N008. IND
- N010. CNS_INT 0
- N012. EQ
- N014. JTRUE
- BB03 [???..???), preds={BB02} succs={BB04}
- =====
- N018. CALL help
- BB04 [???..???), preds={BB02,BB03} succs={BB05}
- =====
- BB05 [000..00D) -> BB06 (always), preds={BB04} succs={BB06}
- =====
- N024. IL_OFFSET IL offset: 0x0
- N026. NO_OP
- N028. IL_OFFSET IL offset: 0x1
- N030. CNS_INT 0
- N032. mm0 = SIMD
- N034. V00 MEM; mm0
- N036. IL_OFFSET IL offset: 0x9
- N038. mm0 = V00 MEM
- N040. V01 MEM; mm0
- N042. IL_OFFSET IL offset: 0xb
- N044. NOP
- BB06 [00D..00F) (return), preds={BB05} succs={}
- =====
- N048. IL_OFFSET IL offset: 0xd
- N050. mm0 = V01 MEM
- N052. RETURN ; mm0
- *************** In genGenerateCode()
- -----------------------------------------------------------------------------------------------------------------------------------------
- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
- -----------------------------------------------------------------------------------------------------------------------------------------
- BB01 [0000] 1 1 [???..???) i internal label target LIR
- BB02 [0004] 1 BB01 1 [???..???)-> BB04 ( cond ) internal LIR
- BB03 [0005] 1 BB02 0.50 [???..???) internal LIR
- BB04 [0003] 2 BB02,BB03 1 [???..???) i internal label target LIR
- BB05 [0001] 1 BB04 1 [000..00D)-> BB06 (always) i LIR
- BB06 [0002] 1 BB05 1 [00D..00F) (return) i label target LIR
- -----------------------------------------------------------------------------------------------------------------------------------------
- *************** In fgDebugCheckBBlist
- Finalizing stack frame
- Modified regs: [rax rcx rdx r8-r11 mm0-mm5]
- Callee-saved registers pushed: 0 []
- *************** In lvaAssignFrameOffsets(FINAL_FRAME_LAYOUT)
- Pad V00 loc0, size=16, stkOffs=-0x10, pad=0
- Assign V00 loc0, size=16, stkOffs=-0x20
- Pad V01 loc1, size=16, stkOffs=-0x20, pad=0
- Assign V01 loc1, size=16, stkOffs=-0x30
- Assign V02 OutArgs, size=32, stkOffs=-0x50
- ; Final local variable assignments
- ;
- ; V00 loc0 [V00 ] ( 1, 1 ) simd16 -> [rbp-0x10] must-init ld-addr-op
- ; V01 loc1 [V01 ] ( 1, 1 ) simd16 -> [rbp-0x20] must-init
- ; V02 OutArgs [V02 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace"
- ;
- ; Lcl frame size = 64
- Setting stack level from -572662307 to 0
- =============== Generating BB01 [???..???), preds={} succs={BB02} flags=0x00000004.40030060: i internal label target LIR
- BB01 IN (0)={} + ByrefExposed + GcHeap
- OUT(0)={} + ByrefExposed + GcHeap
- Liveness not changing: 0000000000000000 {}
- Live regs: (unchanged) 00000000 {}
- GC regs: (unchanged) 00000000 {}
- Byref regs: (unchanged) 00000000 {}
- L_M60652_BB01:
- Label: IG02, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
- Scope info: begin block BB01, IL range [???..???)
- Scope info: ignoring block beginning
- Generating: N002 ( 0, 0) [000000] ------------ NOP void REG NA
- Scope info: end block BB01, IL range [???..???)
- Scope info: ignoring block end
- =============== Generating BB02 [???..???) -> BB04 (cond), preds={BB01} succs={BB03,BB04} flags=0x00000000.40000040: internal LIR
- BB02 IN (0)={} + ByrefExposed + GcHeap
- OUT(0)={} + ByrefExposed + GcHeap
- Liveness not changing: 0000000000000000 {}
- Live regs: (unchanged) 00000000 {}
- GC regs: (unchanged) 00000000 {}
- Byref regs: (unchanged) 00000000 {}
- L_M60652_BB02:
- Scope info: begin block BB02, IL range [???..???)
- Scope info: ignoring block beginning
- Added IP mapping: NO_MAP STACK_EMPTY (G_M60652_IG02,ins#0,ofs#0) label
- Generating: N006 ( 3, 10) [000013] -c---------- t13 = CNS_INT(h) long 0x7fff4561eaf0 token REG NA
- /--* t13 long
- Generating: N008 ( 5, 12) [000014] nc---------- t14 = * IND int REG NA
- Generating: N010 ( 1, 1) [000015] -c---------- t15 = CNS_INT int 0 REG NA
- /--* t14 int
- +--* t15 int
- Generating: N012 ( 7, 14) [000016] J------N---- * EQ void REG NA
- IN0001: cmp dword ptr [(reloc 0x7fff4561eaf0)], 0
- Generating: N014 ( 9, 16) [000022] ------------ * JTRUE void REG NA
- IN0002: je L_M60652_BB04
- Scope info: end block BB02, IL range [???..???)
- Scope info: ignoring block end
- =============== Generating BB03 [???..???), preds={BB02} succs={BB04} flags=0x00000000.40000040: internal LIR
- BB03 IN (0)={} + ByrefExposed + GcHeap
- OUT(0)={} + ByrefExposed + GcHeap
- Liveness not changing: 0000000000000000 {}
- Live regs: (unchanged) 00000000 {}
- GC regs: (unchanged) 00000000 {}
- Byref regs: (unchanged) 00000000 {}
- L_M60652_BB03:
- G_M60652_IG02: ; offs=000000H, funclet=00, bbWeight=1
- Label: IG03, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
- Scope info: begin block BB03, IL range [???..???)
- Scope info: ignoring block beginning
- genIPmappingAdd: ignoring duplicate IL offset 0xffffffff
- Generating: N018 ( 14, 5) [000017] --C-G-?----- CALL help void HELPER.CORINFO_HELP_DBG_IS_JUST_MY_CODE REG NA
- Call: GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
- IN0003: call CORINFO_HELP_DBG_IS_JUST_MY_CODE
- Scope info: end block BB03, IL range [???..???)
- Scope info: ignoring block end
- =============== Generating BB04 [???..???), preds={BB02,BB03} succs={BB05} flags=0x00000000.40030060: i internal label target LIR
- BB04 IN (0)={} + ByrefExposed + GcHeap
- OUT(0)={} + ByrefExposed + GcHeap
- Liveness not changing: 0000000000000000 {}
- Live regs: (unchanged) 00000000 {}
- GC regs: (unchanged) 00000000 {}
- Byref regs: (unchanged) 00000000 {}
- L_M60652_BB04:
- G_M60652_IG03: ; offs=00000DH, funclet=00, bbWeight=0.50
- Label: IG04, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
- Scope info: begin block BB04, IL range [???..???)
- Scope info: ignoring block beginning
- genIPmappingAdd: ignoring duplicate IL offset 0xffffffff
- Scope info: end block BB04, IL range [???..???)
- Scope info: ignoring block end
- =============== Generating BB05 [000..00D) -> BB06 (always), preds={BB04} succs={BB06} flags=0x00000000.40000020: i LIR
- BB05 IN (0)={} + ByrefExposed + GcHeap
- OUT(0)={} + ByrefExposed + GcHeap
- Liveness not changing: 0000000000000000 {}
- Live regs: (unchanged) 00000000 {}
- GC regs: (unchanged) 00000000 {}
- Byref regs: (unchanged) 00000000 {}
- L_M60652_BB05:
- Scope info: begin block BB05, IL range [000..00D)
- Scope info: opening scope, LVnum=1 [000..00F)
- Scope info: >> new scope, VarNum=1, tracked? no, VarIndex=0, bbLiveIn=0000000000000000 {}
- Scope info: opening scope, LVnum=0 [000..00F)
- Scope info: >> new scope, VarNum=0, tracked? no, VarIndex=0, bbLiveIn=0000000000000000 {}
- Scope info: open scopes =
- 1 (V01 loc1) [000..00F)
- 0 (V00 loc0) [000..00F)
- Added IP mapping: 0x0000 STACK_EMPTY (G_M60652_IG04,ins#0,ofs#0) label
- Generating: N024 (???,???) [000023] ------------ IL_OFFSET void IL offset: 0x0 REG NA
- Generating: N026 ( 1, 1) [000001] ------------ NO_OP void REG NA
- IN0004: nop
- Added IP mapping: 0x0001 STACK_EMPTY (G_M60652_IG04,ins#1,ofs#1)
- Generating: N028 (???,???) [000024] ------------ IL_OFFSET void IL offset: 0x1 REG NA
- Generating: N030 ( 1, 1) [000004] -c---------- t4 = CNS_INT int 0 REG NA
- /--* t4 int
- Generating: N032 ( 2, 2) [000021] ------------ t21 = * SIMD simd16 double init REG mm0
- IN0005: vxorps xmm0, xmm0
- /--* t21 simd16
- Generating: N034 ( 6, 5) [000005] DA---------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0 NA REG NA
- IN0006: vmovapd xmmword ptr [V00 rbp-10H], xmm0
- Added IP mapping: 0x0009 STACK_EMPTY (G_M60652_IG04,ins#3,ofs#12)
- Generating: N036 (???,???) [000025] ------------ IL_OFFSET void IL offset: 0x9 REG NA
- Generating: N038 ( 3, 2) [000006] ------------ t6 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V00 loc0 mm0 REG mm0
- IN0007: vmovapd xmm0, xmmword ptr [V00 rbp-10H]
- /--* t6 simd16
- Generating: N040 ( 7, 5) [000009] DA---------- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1 NA REG NA
- IN0008: vmovapd xmmword ptr [V01 rbp-20H], xmm0
- Added IP mapping: 0x000B STACK_EMPTY (G_M60652_IG04,ins#5,ofs#24)
- Generating: N042 (???,???) [000026] ------------ IL_OFFSET void IL offset: 0xb REG NA
- Generating: N044 ( 0, 0) [000010] ------------ NOP void REG NA
- IN0009: nop
- Scope info: end block BB05, IL range [000..00D)
- Scope info: open scopes =
- 1 (V01 loc1) [000..00F)
- 0 (V00 loc0) [000..00F)
- IN000a: jmp L_M60652_BB06
- =============== Generating BB06 [00D..00F) (return), preds={BB05} succs={} flags=0x00000000.40030020: i label target LIR
- BB06 IN (0)={} + ByrefExposed + GcHeap
- OUT(0)={} + ByrefExposed + GcHeap
- Liveness not changing: 0000000000000000 {}
- Live regs: (unchanged) 00000000 {}
- GC regs: (unchanged) 00000000 {}
- Byref regs: (unchanged) 00000000 {}
- L_M60652_BB06:
- G_M60652_IG04: ; offs=000012H, funclet=00, bbWeight=1
- Label: IG05, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
- Scope info: begin block BB06, IL range [00D..00F)
- Scope info: open scopes =
- 1 (V01 loc1) [000..00F)
- 0 (V00 loc0) [000..00F)
- Added IP mapping: 0x000D STACK_EMPTY (G_M60652_IG05,ins#0,ofs#0) label
- Generating: N048 (???,???) [000027] ------------ IL_OFFSET void IL offset: 0xd REG NA
- Generating: N050 ( 3, 2) [000011] ------------ t11 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1[Double]> V01 loc1 mm0 REG mm0
- IN000b: vmovapd xmm0, xmmword ptr [V01 rbp-20H]
- /--* t11 simd16
- Generating: N052 ( 4, 3) [000012] ------------ * RETURN simd16 REG NA
- Scope info: end block BB06, IL range [00D..00F)
- Scope info: ending scope, LVnum=1 [000..00F)
- Scope info: ending scope, LVnum=0 [000..00F)
- Scope info: open scopes =
- <none>
- Added IP mapping: EPILOG STACK_EMPTY (G_M60652_IG05,ins#1,ofs#6) label
- Reserving epilog IG for block BB06
- G_M60652_IG05: ; offs=000030H, funclet=00, bbWeight=1
- *************** After placeholder IG creation
- G_M60652_IG01: ; func=00, offs=000000H, size=0000H, gcrefRegs=00000000 {} <-- Prolog IG
- G_M60652_IG02: ; offs=000000H, size=000DH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- G_M60652_IG03: ; offs=00000DH, size=0005H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- G_M60652_IG04: ; offs=000012H, size=001EH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- G_M60652_IG05: ; offs=000030H, size=0006H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- G_M60652_IG06: ; epilog placeholder, next placeholder=<END>, BB06 [0002], epilog, extend <-- First placeholder <-- Last placeholder
- ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=00000000 {}, PrevByrefRegs=00000000 {}
- ; InitGCVars=0000000000000000 {}, InitGCrefRegs=00000000 {}, InitByrefRegs=00000000 {}
- Liveness not changing: 0000000000000000 {}
- # compCycleEstimate = 41, compSizeEstimate = 35 CoreLab.Program:Callee():System.Runtime.Intrinsics.Vector128`1[Double]
- ; Final local variable assignments
- ;
- ; V00 loc0 [V00 ] ( 1, 1 ) simd16 -> [rbp-0x10] must-init ld-addr-op
- ; V01 loc1 [V01 ] ( 1, 1 ) simd16 -> [rbp-0x20] must-init
- ; V02 OutArgs [V02 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace"
- ;
- ; Lcl frame size = 64
- *************** Before prolog / epilog generation
- G_M60652_IG01: ; func=00, offs=000000H, size=0000H, gcrefRegs=00000000 {} <-- Prolog IG
- G_M60652_IG02: ; offs=000000H, size=000DH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- G_M60652_IG03: ; offs=00000DH, size=0005H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- G_M60652_IG04: ; offs=000012H, size=001EH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- G_M60652_IG05: ; offs=000030H, size=0006H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- G_M60652_IG06: ; epilog placeholder, next placeholder=<END>, BB06 [0002], epilog, extend <-- First placeholder <-- Last placeholder
- ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=00000000 {}, PrevByrefRegs=00000000 {}
- ; InitGCVars=0000000000000000 {}, InitGCrefRegs=00000000 {}, InitByrefRegs=00000000 {}
- *************** In genFnProlog()
- Added IP mapping to front: PROLOG STACK_EMPTY (G_M60652_IG01,ins#0,ofs#0) label
- __prolog:
- Found 8 lvMustInit int-sized stack slots, frame offsets 32 through 0
- IN000c: push rbp
- IN000d: sub rsp, 64
- IN000e: vzeroupper
- IN000f: lea rbp, [rsp+40H]
- IN0010: xor rax, rax
- IN0011: mov qword ptr [V00 rbp-10H], rax
- IN0012: mov qword ptr [V00+0x8 rbp-08H], rax
- IN0013: mov qword ptr [V01 rbp-20H], rax
- IN0014: mov qword ptr [V01+0x8 rbp-18H], rax
- *************** In genEnregisterIncomingStackArgs()
- G_M60652_IG01: ; offs=000000H, funclet=00, bbWeight=1
- *************** In genFnEpilog()
- __epilog:
- gcVarPtrSetCur=0000000000000000 {}, gcRegGCrefSetCur=00000000 {}, gcRegByrefSetCur=00000000 {}
- IN0015: lea rsp, [rbp]
- IN0016: pop rbp
- IN0017: ret
- G_M60652_IG06: ; offs=000036H, funclet=00, bbWeight=1
- 0 prologs, 1 epilogs, 0 funclet prologs, 0 funclet epilogs
- *************** After prolog / epilog generation
- G_M60652_IG01: ; func=00, offs=000000H, size=001FH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- G_M60652_IG02: ; offs=00001FH, size=000DH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- G_M60652_IG03: ; offs=00002CH, size=0005H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- G_M60652_IG04: ; offs=000031H, size=001EH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- G_M60652_IG05: ; offs=00004FH, size=0006H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- G_M60652_IG06: ; offs=000055H, size=0006H, epilog, nogc, extend
- *************** In emitJumpDistBind()
- Binding: IN0002: 000000 je L_M60652_BB04
- Binding L_M60652_BB04to G_M60652_IG04
- Estimate of fwd jump [647DD4B4/002]: 0026 -> 0031 = 0009
- Shrinking jump [647DD4B4/002]
- Adjusted offset of BB03 from 002C to 0028
- Adjusted offset of BB04 from 0031 to 002D
- Binding: IN000a: 000000 jmp L_M60652_BB06
- Binding L_M60652_BB06to G_M60652_IG05
- Estimate of fwd jump [647DD96C/010]: 0046 -> 004B = 0003
- Shrinking jump [647DD96C/010]
- Adjusted offset of BB05 from 004F to 0048
- Adjusted offset of BB06 from 0055 to 004E
- Total shrinkage = 7, min extra jump size = 4294967295
- Hot code size = 0x54 bytes
- Cold code size = 0x0 bytes
- reserveUnwindInfo(isFunclet=FALSE, isColdCode=FALSE, unwindSize=0x8)
- *************** In emitEndCodeGen()
- Converting emitMaxStackDepth from bytes (0) to elements (0)
- ***************************************************************************
- Instructions as they come out of the scheduler
- G_M60652_IG01: ; func=00, offs=000000H, size=001FH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- IN000c: 000000 55 push rbp
- IN000d: 000001 4883EC40 sub rsp, 64
- IN000e: 000005 C5F877 vzeroupper
- IN000f: 000008 488D6C2440 lea rbp, [rsp+40H]
- IN0010: 00000D 33C0 xor rax, rax
- IN0011: 00000F 488945F0 mov qword ptr [rbp-10H], rax
- IN0012: 000013 488945F8 mov qword ptr [rbp-08H], rax
- IN0013: 000017 488945E0 mov qword ptr [rbp-20H], rax
- IN0014: 00001B 488945E8 mov qword ptr [rbp-18H], rax
- ;; bbWeight=1 PerfScore 7.00
- G_M60652_IG02: ; func=00, offs=00001FH, size=0009H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- IN0001: 00001F 833D7A6D1F0000 cmp dword ptr [(reloc 0x7fff4561eaf0)], 0
- IN0002: 000026 7405 je SHORT G_M60652_IG04
- ;; bbWeight=1 PerfScore 3.00
- G_M60652_IG03: ; func=00, offs=000028H, size=0005H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- [647DDF10] ptr arg pop 0
- IN0003: 000028 E8C3B2A15E call CORINFO_HELP_DBG_IS_JUST_MY_CODE
- ;; bbWeight=0.50 PerfScore 0.50
- G_M60652_IG04: ; func=00, offs=00002DH, size=001BH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- IN0004: 00002D 90 nop
- IN0005: 00002E C5F857C0 vxorps xmm0, xmm0 (ECS:5, ACS:4)
- Instruction predicted size = 5, actual = 4
- IN0006: 000032 C5F92945F0 vmovapd xmmword ptr [rbp-10H], xmm0 (ECS:6, ACS:5)
- Instruction predicted size = 6, actual = 5
- IN0007: 000037 C5F92845F0 vmovapd xmm0, xmmword ptr [rbp-10H] (ECS:6, ACS:5)
- Instruction predicted size = 6, actual = 5
- IN0008: 00003C C5F92945E0 vmovapd xmmword ptr [rbp-20H], xmm0 (ECS:6, ACS:5)
- Instruction predicted size = 6, actual = 5
- IN0009: 000041 90 nop
- IN000a: 000042 EB04 jmp SHORT G_M60652_IG05
- ;; bbWeight=1 PerfScore 9.83
- G_M60652_IG05: ; func=00, offs=000048H, size=0006H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- Block predicted offs = 00000048, actual = 00000044 -> size adj = 4
- IN000b: 000044 C5F92845E0 vmovapd xmm0, xmmword ptr [rbp-20H] (ECS:6, ACS:5)
- Instruction predicted size = 6, actual = 5
- ;; bbWeight=1 PerfScore 3.00
- G_M60652_IG06: ; func=00, offs=00004EH, size=0006H, epilog, nogc, extend
- Block predicted offs = 0000004E, actual = 00000049 -> size adj = 5
- IN0015: 000049 488D6500 lea rsp, [rbp]
- IN0016: 00004D 5D pop rbp
- IN0017: 00004E C3 ret
- ;; bbWeight=1 PerfScore 2.00Allocated method code size = 84 , actual size = 79
- ; Total bytes of code 79, prolog size 31, PerfScore 33.73, (MethodHash=f5b01313) for method CoreLab.Program:Callee():System.Runtime.Intrinsics.Vector128`1[Double]
- ; ============================================================
- *************** After end code gen, before unwindEmit()
- G_M60652_IG01: ; func=00, offs=000000H, size=001FH, bbWeight=1 PerfScore 7.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- IN000c: 000000 push rbp
- IN000d: 000001 sub rsp, 64
- IN000e: 000005 vzeroupper
- IN000f: 000008 lea rbp, [rsp+40H]
- IN0010: 00000D xor rax, rax
- IN0011: 00000F mov qword ptr [V00 rbp-10H], rax
- IN0012: 000013 mov qword ptr [V00+0x8 rbp-08H], rax
- IN0013: 000017 mov qword ptr [V01 rbp-20H], rax
- IN0014: 00001B mov qword ptr [V01+0x8 rbp-18H], rax
- G_M60652_IG02: ; offs=00001FH, size=0009H, bbWeight=1 PerfScore 3.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- IN0001: 00001F cmp dword ptr [(reloc 0x7fff4561eaf0)], 0
- IN0002: 000026 je SHORT G_M60652_IG04
- G_M60652_IG03: ; offs=000028H, size=0005H, bbWeight=0.50 PerfScore 0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- IN0003: 000028 call CORINFO_HELP_DBG_IS_JUST_MY_CODE
- G_M60652_IG04: ; offs=00002DH, size=0017H, bbWeight=1 PerfScore 9.83, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- IN0004: 00002D nop
- IN0005: 00002E vxorps xmm0, xmm0
- IN0006: 000032 vmovapd xmmword ptr [V00 rbp-10H], xmm0
- IN0007: 000037 vmovapd xmm0, xmmword ptr [V00 rbp-10H]
- IN0008: 00003C vmovapd xmmword ptr [V01 rbp-20H], xmm0
- IN0009: 000041 nop
- IN000a: 000042 jmp SHORT G_M60652_IG05
- G_M60652_IG05: ; offs=000044H, size=0005H, bbWeight=1 PerfScore 3.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- IN000b: 000044 vmovapd xmm0, xmmword ptr [V01 rbp-20H]
- G_M60652_IG06: ; offs=000049H, size=0006H, bbWeight=1 PerfScore 2.00, epilog, nogc, extend
- IN0015: 000049 lea rsp, [rbp]
- IN0016: 00004D pop rbp
- IN0017: 00004E ret
- Unwind Info:
- >> Start offset : 0x000000 (not in unwind data)
- >> End offset : 0x00004f (not in unwind data)
- Version : 1
- Flags : 0x00
- SizeOfProlog : 0x05
- CountOfUnwindCodes: 2
- FrameRegister : none (0)
- FrameOffset : N/A (no FrameRegister) (Value=0)
- UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 7 * 8 + 8 = 64 = 0x40
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
- allocUnwindInfo(pHotCode=0x00007FFF45427D50, pColdCode=0x0000000000000000, startOffset=0x0, endOffset=0x4f, unwindSize=0x8, pUnwindBlock=0x000001A2647DACD0, funKind=0 (main function))
- *************** In genIPmappingGen()
- IP mapping count : 8
- IL offs PROLOG : 0x00000000 ( STACK_EMPTY )
- IL offs NO_MAP : 0x0000001F ( STACK_EMPTY )
- IL offs 0x0000 : 0x0000002D ( STACK_EMPTY )
- IL offs 0x0001 : 0x0000002E ( STACK_EMPTY )
- IL offs 0x0009 : 0x00000037 ( STACK_EMPTY )
- IL offs 0x000B : 0x00000041 ( STACK_EMPTY )
- IL offs 0x000D : 0x00000044 ( STACK_EMPTY )
- IL offs EPILOG : 0x00000049 ( STACK_EMPTY )
- *************** In genSetScopeInfo()
- VarLocInfo count is 2
- *************** Variable debug info
- 2 live ranges
- 1( UNKNOWN) : From 0000002Dh to 00000049h, in rbp[-32] (1 slot)
- 0( UNKNOWN) : From 0000002Dh to 00000049h, in rbp[-16] (1 slot)
- *************** In gcInfoBlockHdrSave()
- Set code length to 79.
- Set ReturnKind to Scalar.
- Set stack base register to rbp.
- Set Outgoing stack arg area size to 32.
- Defining interruptible range: [0x1f, 0x49).
- Method code size: 79
- Allocations for CoreLab.Program:Callee():System.Runtime.Intrinsics.Vector128`1[Double] (MethodHash=f5b01313)
- count: 284, size: 27929, max = 2640
- allocateMemory: 65536, nraUsed: 30360
- Alloc'd bytes by kind:
- kind | size | pct
- ---------------------+------------+--------
- AssertionProp | 0 | 0.00%
- ASTNode | 3784 | 13.55%
- InstDesc | 3620 | 12.96%
- ImpStack | 384 | 1.37%
- BasicBlock | 2224 | 7.96%
- fgArgInfo | 0 | 0.00%
- fgArgInfoPtrArr | 0 | 0.00%
- FlowList | 192 | 0.69%
- TreeStatementList | 0 | 0.00%
- SiScope | 128 | 0.46%
- DominatorMemory | 0 | 0.00%
- LSRA | 3260 | 11.67%
- LSRA_Interval | 264 | 0.95%
- LSRA_RefPosition | 1664 | 5.96%
- Reachability | 0 | 0.00%
- SSA | 0 | 0.00%
- ValueNumber | 0 | 0.00%
- LvaTable | 1920 | 6.87%
- UnwindInfo | 0 | 0.00%
- hashBv | 120 | 0.43%
- bitset | 56 | 0.20%
- FixedBitVect | 8 | 0.03%
- Generic | 1218 | 4.36%
- LocalAddressVisitor | 0 | 0.00%
- FieldSeqStore | 0 | 0.00%
- ZeroOffsetFieldMap | 40 | 0.14%
- ArrayInfoMap | 0 | 0.00%
- MemoryPhiArg | 0 | 0.00%
- CSE | 0 | 0.00%
- GC | 1360 | 4.87%
- CorSig | 0 | 0.00%
- Inlining | 120 | 0.43%
- ArrayStack | 0 | 0.00%
- DebugInfo | 336 | 1.20%
- DebugOnly | 5925 | 21.21%
- Codegen | 1128 | 4.04%
- LoopOpt | 0 | 0.00%
- LoopHoist | 0 | 0.00%
- Unknown | 106 | 0.38%
- RangeCheck | 0 | 0.00%
- CopyProp | 0 | 0.00%
- SideEffects | 0 | 0.00%
- ObjectAllocator | 0 | 0.00%
- VariableLiveRanges | 0 | 0.00%
- ClassLayout | 72 | 0.26%
- TailMergeThrows | 0 | 0.00%
- ****** DONE compiling CoreLab.Program:Callee():System.Runtime.Intrinsics.Vector128`1[Double]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement