Created
September 23, 2024 13:36
-
-
Save a74nh/9eb0d793ca726a81cc53547fc74e68a2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
================ Logging to /home/alahay01/dotnet/runtime_sve_api/artifacts/spmi/superpmi.10.log | |
Using JIT/EE Version from jiteeversionguid.h: b75a5475-ff22-4078-9551-2024ce03d383 | |
SuperPMI replay | |
------------------------------------------------------------ | |
Start time: 12:41:49 | |
JIT Path: /home/alahay01/dotnet/runtime_sve_api/artifacts/spmi/basejit/f1bcbeb5fa2fe84698b62d88dd35199f0d7fbedb.linux.arm64.Checked/libclrjit.so | |
Using MCH files: | |
/home/alahay01/dotnet/runtime_sve_api/artifacts/spmi/mch/b75a5475-ff22-4078-9551-2024ce03d383.linux.arm64/benchmarks.run.linux.arm64.checked.mch | |
Using superpmi from Core_Root: /home/alahay01/dotnet/runtime_sve_api/artifacts/tests/coreclr/linux.arm64.Checked/Tests/Core_Root/superpmi | |
Temp Location: /tmp/tmpnugpojop | |
Running SuperPMI replay of /home/alahay01/dotnet/runtime_sve_api/artifacts/spmi/mch/b75a5475-ff22-4078-9551-2024ce03d383.linux.arm64/benchmarks.run.linux.arm64.checked.mch | |
Invoking: /home/alahay01/dotnet/runtime_sve_api/artifacts/tests/coreclr/linux.arm64.Checked/Tests/Core_Root/superpmi -v ewi -c 11416 -f /tmp/tmpnugpojop/benchmarks.run.linux.arm64.checked.mch_fail.mcl -details /tmp/tmpnugpojop/benchmarks.run.linux.arm64.checked.mch_details.csv /home/alahay01/dotnet/runtime_sve_api/artifacts/spmi/basejit/f1bcbeb5fa2fe84698b62d88dd35199f0d7fbedb.linux.arm64.Checked/libclrjit.so /home/alahay01/dotnet/runtime_sve_api/artifacts/spmi/mch/b75a5475-ff22-4078-9551-2024ce03d383.linux.arm64/benchmarks.run.linux.arm64.checked.mch | |
****** START compiling System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this (MethodHash=aff7d2df) | |
Generating code for Unix arm64 | |
OPTIONS: compCodeOpt = BLENDED_CODE | |
OPTIONS: compDbgCode = false | |
OPTIONS: compDbgInfo = true | |
OPTIONS: compDbgEnC = false | |
OPTIONS: compProcedureSplitting = false | |
OPTIONS: compProcedureSplittingEH = false | |
OPTIONS: optimizer should use profile data | |
IL to import: | |
IL_0000 7e 55 05 00 0a ldsfld 0xA000555 | |
IL_0005 7e 56 05 00 0a ldsfld 0xA000556 | |
IL_000a 28 68 01 00 2b call 0x2B000168 | |
IL_000f 2a ret | |
Notify VM instruction set (AdvSimd) must be supported. | |
Found Vector128<ulong> | |
lvaSetClass: setting class for V00 to (0xffff41308cd8) System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
'this' passed in register x0 | |
Parameter V00 ABI info: [00..08) reg x0 | |
lvaGrabTemp returning 1 (V01 tmp0) (a long lifetime temp) called for OutgoingArgSpace. | |
Local V01 should not be enregistered because: it is address exposed | |
; Initial local variable assignments | |
; | |
; V00 this ref this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]> | |
; V01 OutArgs struct <0> do-not-enreg[XS] addr-exposed "OutgoingArgSpace" | |
*************** In compInitDebuggingInfo() for System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this | |
getVars() returned cVars = 0, extendOthers = true | |
info.compVarScopesCount = 1 | |
VarNum LVNum Name Beg End | |
0: 00h 00h V00 this 000h 010h | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this | |
Jump targets: | |
none | |
New Basic Block BB01 [0000] created. | |
BB01 [0000] [000..010) | |
IL Code Size,Instr 16, 4, Basic Block count 1, Local Variable Num,Ref count 2, 0 for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this | |
OPTIONS: opts.MinOpts() == false | |
Basic block list for 'System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..010) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Starting PHASE Pre-import | |
*************** Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..010) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [000..010) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Starting PHASE Profile incorporation | |
BBOPT set, but no profile data available (hr=80004001) | |
*************** Finishing PHASE Profile incorporation [no changes] | |
*************** Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this' | |
[ 0] 0 (0x000) ldsfld 0A000555 | |
Checking if we can import 'static readonly' as a jit-time constant... checking if we can do anything for a large struct ...getStaticFieldContent returned false - bail out. Found Vector128<ulong> | |
[ 1] 5 (0x005) ldsfld 0A000556 | |
Checking if we can import 'static readonly' as a jit-time constant... checking if we can do anything for a large struct ...getStaticFieldContent returned false - bail out. | |
[ 2] 10 (0x00a) call 2B000168 | |
(Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT) | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 16 | |
Named Intrinsic System.Runtime.Intrinsics.Vector128.Multiply: Notify VM instruction set (Vector128) must be supported. | |
Recognized | |
Calling impNormStructVal on: | |
[000011] --CXG------ * COMMA simd16 | |
[000010] H-CXG------ +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000009] H---------- arg0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000007] I---G------ \--* IND simd16 | |
[000006] H---------- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] | |
resulting tree: | |
[000011] --CXG------ * COMMA simd16 | |
[000010] H-CXG------ +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000009] H---------- arg0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000007] I---G------ \--* IND simd16 | |
[000006] H---------- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] | |
Calling impNormStructVal on: | |
[000005] --CXG------ * COMMA simd16 | |
[000004] H-CXG------ +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000003] H---------- arg0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000001] I---G------ \--* IND simd16 | |
[000000] H---------- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] | |
resulting tree: | |
[000005] --CXG------ * COMMA simd16 | |
[000004] H-CXG------ +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000003] H---------- arg0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000001] I---G------ \--* IND simd16 | |
[000000] H---------- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] | |
GTF_CALL_M_IMPLICIT_TAILCALL set for call [000012] | |
CheckCanInline: fetching method info for inline candidate Multiply -- context 0xffff41cd6308 | |
Method context: System.Runtime.Intrinsics.Vector128:Multiply[ulong](System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this' calling 'System.Runtime.Intrinsics.Vector128:Multiply[ulong](System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong]' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
Found Vector128<ulong> | |
changing the type of a call [000012] from struct to simd16 | |
STMT00000 ( 0x000[E-] ... ??? ) | |
[000012] I-CXG------ * CALL simd16 System.Runtime.Intrinsics.Vector128:Multiply[ulong](System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (exactContextHnd=0x0xffff41cd6308) | |
[000005] --CXG------ arg0 +--* COMMA simd16 | |
[000004] H-CXG------ | +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000003] H---------- arg0 | | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000001] I---G------ | \--* IND simd16 | |
[000000] H---------- | \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] | |
[000011] --CXG------ arg1 \--* COMMA simd16 | |
[000010] H-CXG------ +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000009] H---------- arg0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000007] I---G------ \--* IND simd16 | |
[000006] H---------- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] | |
[ 1] 15 (0x00f) ret | |
impFixupStructReturnType: retyping | |
[000013] --C-------- * RET_EXPR simd16(for [000012]) | |
STMT00001 ( 0x000[E-] ... ??? ) | |
[000014] --C-------- * RETURN simd16 | |
[000013] --C-------- \--* RET_EXPR simd16(for [000012]) | |
*************** Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..010) (return) i | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [000..010) (return), preds={} succs={} | |
***** BB01 [0000] | |
STMT00000 ( 0x000[E-] ... 0x00F ) | |
[000012] I-CXG------ * CALL simd16 System.Runtime.Intrinsics.Vector128:Multiply[ulong](System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (exactContextHnd=0x0xffff41cd6308) | |
[000005] --CXG------ arg0 +--* COMMA simd16 | |
[000004] H-CXG------ | +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000003] H---------- arg0 | | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000001] I---G------ | \--* IND simd16 | |
[000000] H---------- | \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] | |
[000011] --CXG------ arg1 \--* COMMA simd16 | |
[000010] H-CXG------ +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000009] H---------- arg0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000007] I---G------ \--* IND simd16 | |
[000006] H---------- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] | |
***** BB01 [0000] | |
STMT00001 ( 0x000[E-] ... ??? ) | |
[000014] --C-------- * RETURN simd16 | |
[000013] --C-------- \--* RET_EXPR simd16(for [000012]) | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Finishing PHASE Expand patchpoints [no changes] | |
*************** Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Finishing PHASE Indirect call transform [no changes] | |
*************** Starting PHASE Post-import | |
*************** Finishing PHASE Post-import [no changes] | |
*************** Starting PHASE Morph - Init | |
New BlockSet epoch 1, # of blocks (including unused BB00): 2, bitset array size: 1 (short) | |
*************** Finishing PHASE Morph - Init [no changes] | |
*************** Starting PHASE Morph - Inlining | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
Expanding INLINE_CANDIDATE in statement STMT00000 in BB01: | |
STMT00000 ( 0x000[E-] ... 0x00F ) | |
[000012] I-CXG------ * CALL simd16 System.Runtime.Intrinsics.Vector128:Multiply[ulong](System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (exactContextHnd=0x0xffff41cd6308) | |
[000005] --CXG------ arg0 +--* COMMA simd16 | |
[000004] H-CXG------ | +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000003] H---------- arg0 | | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000001] I---G------ | \--* IND simd16 | |
[000000] H---------- | \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] | |
[000011] --CXG------ arg1 \--* COMMA simd16 | |
[000010] H-CXG------ +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000009] H---------- arg0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000007] I---G------ \--* IND simd16 | |
[000006] H---------- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] | |
Note: candidate is implicit tail call | |
Argument #0: has global refs has side effects | |
[000005] --CXG------ * COMMA simd16 | |
[000004] H-CXG------ +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000003] H---------- arg0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000001] I---G------ \--* IND simd16 | |
[000000] H---------- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] | |
Argument #1: has global refs has side effects | |
[000011] --CXG------ * COMMA simd16 | |
[000010] H-CXG------ +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000009] H---------- arg0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000007] I---G------ \--* IND simd16 | |
[000006] H---------- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Runtime.Intrinsics.Vector128:Multiply[ulong](System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] set to 0x0xffff41cd6308: | |
Invoking compiler for the inlinee method System.Runtime.Intrinsics.Vector128:Multiply[ulong](System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 03 ldarg.1 | |
IL_0002 28 d2 14 00 0a call 0xA0014D2 | |
IL_0007 2a ret | |
INLINER impTokenLookupContextHandle for System.Runtime.Intrinsics.Vector128:Multiply[ulong](System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] is 0x0xffff41cd6308. | |
Notify VM instruction set (AdvSimd) must be supported. | |
Found Vector128<ulong> | |
*************** In compInitDebuggingInfo() for System.Runtime.Intrinsics.Vector128:Multiply[ulong](System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Runtime.Intrinsics.Vector128:Multiply[ulong](System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] | |
Named Intrinsic System.Runtime.Intrinsics.Vector128`1.op_Multiply: Notify VM instruction set (Vector128) must be supported. | |
Recognized | |
Jump targets: | |
none | |
New Basic Block BB01 [0001] created. | |
BB01 [0001] [000..008) | |
Basic block list for 'System.Runtime.Intrinsics.Vector128:Multiply[ulong](System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong]' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0001] 1 1 [000..008) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000012] Starting PHASE Pre-import | |
*************** Inline @[000012] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0001] 1 1 [000..008) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0001] [000..008) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000012] Starting PHASE Profile incorporation | |
BBOPT set, but no profile data available (hr=80004001) | |
Computing inlinee profile scale: | |
... no callee profile data, will use non-pgo weight to scale | |
... call site not profiled, will use non-pgo weight to scale | |
call site count 100 callee entry count 100 scale 1 | |
Scaling inlinee blocks | |
*************** Inline @[000012] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0001] 1 1 [000..008) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0001] [000..008) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000012] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Runtime.Intrinsics.Vector128:Multiply[ulong](System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong]' | |
[ 0] 0 (0x000) ldarg.0 | |
lvaGrabTemp returning 2 (V02 tmp1) called for Inlining Arg. | |
Marked V02 as a single def temp | |
[ 1] 1 (0x001) ldarg.1 | |
lvaGrabTemp returning 3 (V03 tmp2) called for Inlining Arg. | |
Marked V03 as a single def temp | |
[ 2] 2 (0x002) call 0A0014D2 | |
(Inline Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT) | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 16 | |
Named Intrinsic System.Runtime.Intrinsics.Vector128`1.op_Multiply: Recognized | |
Found Vector128<ulong> | |
Found Vector128<ulong> | |
Found Vector128<ulong> | |
[ 1] 7 (0x007) ret | |
Inlinee Return expression (before normalization) => | |
[000029] ----------- * HWINTRINSIC simd16 ulong Insert | |
[000020] ----------- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe | |
[000019] ----------- | \--* MUL long | |
[000017] ----------- | +--* HWINTRINSIC long ulong ToScalar | |
[000015] ----------- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000018] ----------- | \--* HWINTRINSIC long ulong ToScalar | |
[000016] ----------- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000028] ----------- +--* CNS_INT int 1 | |
[000027] ----------- \--* MUL long | |
[000024] ----------- +--* HWINTRINSIC long ulong GetElement | |
[000021] ----------- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000023] ----------- | \--* CNS_INT int 1 | |
[000026] ----------- \--* HWINTRINSIC long ulong GetElement | |
[000022] ----------- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000025] ----------- \--* CNS_INT int 1 | |
Found Vector128<ulong> | |
impFixupStructReturnType: retyping | |
[000029] ----------- * HWINTRINSIC simd16 ulong Insert | |
[000020] ----------- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe | |
[000019] ----------- | \--* MUL long | |
[000017] ----------- | +--* HWINTRINSIC long ulong ToScalar | |
[000015] ----------- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000018] ----------- | \--* HWINTRINSIC long ulong ToScalar | |
[000016] ----------- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000028] ----------- +--* CNS_INT int 1 | |
[000027] ----------- \--* MUL long | |
[000024] ----------- +--* HWINTRINSIC long ulong GetElement | |
[000021] ----------- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000023] ----------- | \--* CNS_INT int 1 | |
[000026] ----------- \--* HWINTRINSIC long ulong GetElement | |
[000022] ----------- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000025] ----------- \--* CNS_INT int 1 | |
Inlinee Return expression (after normalization) => | |
[000029] ----------- * HWINTRINSIC simd16 ulong Insert | |
[000020] ----------- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe | |
[000019] ----------- | \--* MUL long | |
[000017] ----------- | +--* HWINTRINSIC long ulong ToScalar | |
[000015] ----------- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000018] ----------- | \--* HWINTRINSIC long ulong ToScalar | |
[000016] ----------- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000028] ----------- +--* CNS_INT int 1 | |
[000027] ----------- \--* MUL long | |
[000024] ----------- +--* HWINTRINSIC long ulong GetElement | |
[000021] ----------- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000023] ----------- | \--* CNS_INT int 1 | |
[000026] ----------- \--* HWINTRINSIC long ulong GetElement | |
[000022] ----------- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000025] ----------- \--* CNS_INT int 1 | |
** Note: inlinee IL was partially imported -- imported 0 of 8 bytes of method IL | |
*************** Inline @[000012] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0001] 1 1 [000..008) (return) i | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0001] [000..008) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000012] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000012] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000012] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000012] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000012] Starting PHASE Post-import | |
*************** Inline @[000012] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000012] ----------- | |
Arguments setup: | |
STMT00002 ( 0x000[E-] ... ??? ) | |
[000005] -ACXG------ * COMMA simd16 | |
[000004] H-CXG------ +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000003] H---------- arg0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000030] DA--G------ \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000001] I---G------ \--* IND simd16 | |
[000000] H---------- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] | |
STMT00003 ( 0x000[E-] ... ??? ) | |
[000011] -ACXG------ * COMMA simd16 | |
[000010] H-CXG------ +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000009] H---------- arg0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000031] DA--G------ \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000007] I---G------ \--* IND simd16 | |
[000006] H---------- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] | |
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined System.Runtime.Intrinsics.Vector128:Multiply[ulong](System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (8 IL bytes) (depth 1) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this' calling 'System.Runtime.Intrinsics.Vector128:Multiply[ulong](System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong]' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
Replacing the return expression placeholder [000013] with [000029] | |
[000013] --C-------- * RET_EXPR simd16(for [000012]) -> [000029] | |
Inserting the inline return expression | |
[000029] ----------- * HWINTRINSIC simd16 ulong Insert | |
[000020] ----------- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe | |
[000019] ----------- | \--* MUL long | |
[000017] ----------- | +--* HWINTRINSIC long ulong ToScalar | |
[000015] ----------- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000018] ----------- | \--* HWINTRINSIC long ulong ToScalar | |
[000016] ----------- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000028] ----------- +--* CNS_INT int 1 | |
[000027] ----------- \--* MUL long | |
[000024] ----------- +--* HWINTRINSIC long ulong GetElement | |
[000021] ----------- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000023] ----------- | \--* CNS_INT int 1 | |
[000026] ----------- \--* HWINTRINSIC long ulong GetElement | |
[000022] ----------- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000025] ----------- \--* CNS_INT int 1 | |
**************** Inline Tree | |
Inlines into 06000000 [via ExtendedDefaultPolicy] System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this: | |
[INL01 IL=0010 TR=000012 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Runtime.Intrinsics.Vector128:Multiply[ulong](System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] | |
Budget: initialTime=108, finalTime=94, initialBudget=1080, currentBudget=1080 | |
Budget: initialSize=496, finalSize=496 | |
*************** Before renumbering the basic blocks | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..010) (return) i | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table is empty | |
=============== No blocks renumbered! | |
*************** Finishing PHASE Morph - Inlining | |
Trees after Morph - Inlining | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..010) (return) i | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [000..010) (return), preds={} succs={} | |
***** BB01 [0000] | |
STMT00002 ( 0x000[E-] ... ??? ) | |
[000005] -ACXG------ * COMMA simd16 | |
[000004] H-CXG------ +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000003] H---------- arg0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000030] DA--G------ \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000001] I---G------ \--* IND simd16 | |
[000000] H---------- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] | |
***** BB01 [0000] | |
STMT00003 ( 0x000[E-] ... ??? ) | |
[000011] -ACXG------ * COMMA simd16 | |
[000010] H-CXG------ +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000009] H---------- arg0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000031] DA--G------ \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000007] I---G------ \--* IND simd16 | |
[000006] H---------- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] | |
***** BB01 [0000] | |
STMT00001 ( 0x000[E-] ... ??? ) | |
[000014] --C-------- * RETURN simd16 | |
[000029] ----------- \--* HWINTRINSIC simd16 ulong Insert | |
[000020] ----------- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe | |
[000019] ----------- | \--* MUL long | |
[000017] ----------- | +--* HWINTRINSIC long ulong ToScalar | |
[000015] ----------- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000018] ----------- | \--* HWINTRINSIC long ulong ToScalar | |
[000016] ----------- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000028] ----------- +--* CNS_INT int 1 | |
[000027] ----------- \--* MUL long | |
[000024] ----------- +--* HWINTRINSIC long ulong GetElement | |
[000021] ----------- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000023] ----------- | \--* CNS_INT int 1 | |
[000026] ----------- \--* HWINTRINSIC long ulong GetElement | |
[000022] ----------- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000025] ----------- \--* CNS_INT int 1 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Starting PHASE Allocate Objects | |
no newobjs in this method; punting | |
*************** Finishing PHASE Allocate Objects [no changes] | |
*************** Starting PHASE Morph - Add internal blocks | |
*************** After fgAddInternal() | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..010) (return) i | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table is empty | |
*************** Finishing PHASE Morph - Add internal blocks [no changes] | |
*************** Starting PHASE Add Swift error returns | |
*************** Finishing PHASE Add Swift error returns [no changes] | |
*************** Starting PHASE Remove empty try | |
*************** In fgRemoveEmptyTry() | |
No EH in this method, nothing to remove. | |
*************** Finishing PHASE Remove empty try [no changes] | |
*************** Starting PHASE Remove empty finally | |
No EH in this method, nothing to remove. | |
*************** Finishing PHASE Remove empty finally [no changes] | |
*************** Starting PHASE Merge callfinally chains | |
No EH in this method, nothing to merge. | |
*************** Finishing PHASE Merge callfinally chains [no changes] | |
*************** Starting PHASE Clone finally | |
No EH in this method, no cloning. | |
*************** Finishing PHASE Clone finally [no changes] | |
*************** Starting PHASE Head and tail merge | |
*************** Finishing PHASE Head and tail merge | |
Trees after Head and tail merge | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..010) (return) i | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [000..010) (return), preds={} succs={} | |
***** BB01 [0000] | |
STMT00002 ( 0x000[E-] ... ??? ) | |
[000005] -ACXG------ * COMMA simd16 | |
[000004] H-CXG------ +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000003] H---------- arg0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000030] DA--G------ \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000001] I---G------ \--* IND simd16 | |
[000000] H---------- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] | |
***** BB01 [0000] | |
STMT00003 ( 0x000[E-] ... ??? ) | |
[000011] -ACXG------ * COMMA simd16 | |
[000010] H-CXG------ +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000009] H---------- arg0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000031] DA--G------ \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000007] I---G------ \--* IND simd16 | |
[000006] H---------- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] | |
***** BB01 [0000] | |
STMT00001 ( 0x000[E-] ... ??? ) | |
[000014] --C-------- * RETURN simd16 | |
[000029] ----------- \--* HWINTRINSIC simd16 ulong Insert | |
[000020] ----------- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe | |
[000019] ----------- | \--* MUL long | |
[000017] ----------- | +--* HWINTRINSIC long ulong ToScalar | |
[000015] ----------- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000018] ----------- | \--* HWINTRINSIC long ulong ToScalar | |
[000016] ----------- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000028] ----------- +--* CNS_INT int 1 | |
[000027] ----------- \--* MUL long | |
[000024] ----------- +--* HWINTRINSIC long ulong GetElement | |
[000021] ----------- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000023] ----------- | \--* CNS_INT int 1 | |
[000026] ----------- \--* HWINTRINSIC long ulong GetElement | |
[000022] ----------- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000025] ----------- \--* CNS_INT int 1 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Starting PHASE Merge throw blocks | |
*************** In fgTailMergeThrows | |
Method does not have multiple noreturn calls. | |
*************** Finishing PHASE Merge throw blocks [no changes] | |
*************** Starting PHASE Update flow graph early pass | |
*************** Finishing PHASE Update flow graph early pass [no changes] | |
*************** Starting PHASE Morph - Promote Structs | |
lvaTable before fgPromoteStructs | |
; Initial local variable assignments | |
; | |
; V00 this ref this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]> | |
; V01 OutArgs struct <0> do-not-enreg[XS] addr-exposed "OutgoingArgSpace" | |
; V02 tmp1 simd16 HFA(simd16) "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ulong]> | |
; V03 tmp2 simd16 HFA(simd16) "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ulong]> | |
struct promotion of V01 is disabled because it has already been marked DNER | |
*************** Finishing PHASE Morph - Promote Structs [no changes] | |
*************** Starting PHASE Canonicalize entry | |
*************** Finishing PHASE Canonicalize entry [no changes] | |
*************** Starting PHASE DFS blocks and remove dead code | |
*************** Finishing PHASE DFS blocks and remove dead code [no changes] | |
*************** Starting PHASE Morph - Structs/AddrExp | |
LocalAddressVisitor visiting statement: | |
STMT00002 ( 0x000[E-] ... ??? ) | |
[000005] -ACXG------ * COMMA simd16 | |
[000004] H-CXG------ +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000003] H---------- arg0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000030] DA--G------ \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000001] I---G------ \--* IND simd16 | |
[000000] H---------- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] | |
LocalAddressVisitor visiting statement: | |
STMT00003 ( 0x000[E-] ... ??? ) | |
[000011] -ACXG------ * COMMA simd16 | |
[000010] H-CXG------ +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000009] H---------- arg0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000031] DA--G------ \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000007] I---G------ \--* IND simd16 | |
[000006] H---------- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] | |
LocalAddressVisitor visiting statement: | |
STMT00001 ( 0x000[E-] ... ??? ) | |
[000014] --C-------- * RETURN simd16 | |
[000029] ----------- \--* HWINTRINSIC simd16 ulong Insert | |
[000020] ----------- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe | |
[000019] ----------- | \--* MUL long | |
[000017] ----------- | +--* HWINTRINSIC long ulong ToScalar | |
[000015] ----------- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000018] ----------- | \--* HWINTRINSIC long ulong ToScalar | |
[000016] ----------- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000028] ----------- +--* CNS_INT int 1 | |
[000027] ----------- \--* MUL long | |
[000024] ----------- +--* HWINTRINSIC long ulong GetElement | |
[000021] ----------- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000023] ----------- | \--* CNS_INT int 1 | |
[000026] ----------- \--* HWINTRINSIC long ulong GetElement | |
[000022] ----------- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000025] ----------- \--* CNS_INT int 1 | |
*************** Finishing PHASE Morph - Structs/AddrExp [no changes] | |
*************** Starting PHASE Early liveness | |
Local V01 should not be enregistered because: struct size does not match reg size | |
Tracked variable (2 out of 4) table: | |
V02 tmp1 [simd16]: refCnt = 3, refCntWtd = 0 | |
V03 tmp2 [simd16]: refCnt = 3, refCntWtd = 0 | |
*************** In fgPerBlockLocalVarLiveness() | |
BB01 USE(0)={ } | |
DEF(2)={V02 V03} | |
** Memory liveness computed, GcHeap states and ByrefExposed states match | |
*************** In fgInterBlockLocalVarLiveness() | |
BB liveness after fgLiveVarAnalysis(): | |
BB01 IN (0)={} | |
OUT(0)={} | |
*************** Finishing PHASE Early liveness | |
Trees after Early liveness | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..010) (return) i | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [000..010) (return), preds={} succs={} | |
***** BB01 [0000] | |
STMT00002 ( 0x000[E-] ... ??? ) | |
[000005] -ACXG------ * COMMA simd16 | |
[000004] H-CXG------ +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000003] H---------- arg0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000030] DA--G------ \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000001] I---G------ \--* IND simd16 | |
[000000] H---------- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] | |
***** BB01 [0000] | |
STMT00003 ( 0x000[E-] ... ??? ) | |
[000011] -ACXG------ * COMMA simd16 | |
[000010] H-CXG------ +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000009] H---------- arg0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000031] DA--G------ \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000007] I---G------ \--* IND simd16 | |
[000006] H---------- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] | |
***** BB01 [0000] | |
STMT00001 ( 0x000[E-] ... ??? ) | |
[000014] --C-------- * RETURN simd16 | |
[000029] ----------- \--* HWINTRINSIC simd16 ulong Insert | |
[000020] ----------- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe | |
[000019] ----------- | \--* MUL long | |
[000017] ----------- | +--* HWINTRINSIC long ulong ToScalar | |
[000015] ----------- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000018] ----------- | \--* HWINTRINSIC long ulong ToScalar | |
[000016] ----------- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000028] ----------- +--* CNS_INT int 1 | |
[000027] ----------- \--* MUL long | |
[000024] ----------- +--* HWINTRINSIC long ulong GetElement | |
[000021] ----------- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 (last use) | |
[000023] ----------- | \--* CNS_INT int 1 | |
[000026] ----------- \--* HWINTRINSIC long ulong GetElement | |
[000022] ----------- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 (last use) | |
[000025] ----------- \--* CNS_INT int 1 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Starting PHASE Forward Substitution | |
===> BB01 | |
*************** Finishing PHASE Forward Substitution [no changes] | |
*************** Starting PHASE Physical promotion | |
*************** Finishing PHASE Physical promotion [no changes] | |
*************** Starting PHASE Identify candidates for implicit byref copy omission | |
*************** Finishing PHASE Identify candidates for implicit byref copy omission [no changes] | |
*************** Starting PHASE Morph - ByRefs | |
*************** Finishing PHASE Morph - ByRefs [no changes] | |
*************** Starting PHASE Morph - Global | |
Morphing BB01 | |
Assertions in: #NA | |
fgMorphTree BB01, STMT00002 (before) | |
[000005] -ACXG------ * COMMA simd16 | |
[000004] H-CXG------ +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000003] H---------- arg0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000030] DA--G------ \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000001] I---G------ \--* IND simd16 | |
[000000] H---------- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] | |
Initializing arg info for 4.CALL: | |
Argument 0 ABI info: [00..08) reg x0 | |
Args for call [000004] CALL after AddFinalArgsAndDetermineABIInfo: | |
CallArg[[000003].CNS_INT long (By value), 1 reg: x0] | |
Morphing args for 4.CALL: | |
Sorting the arguments: | |
Deferred argument ('x0'): | |
[000003] H----+----- * CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
Moved to late list | |
Register placement order: x0 | |
Args for [000004].CALL after fgMorphArgs: | |
CallArg[[000003].CNS_INT long (By value), 1 reg: x0, isLate, processed] | |
OutgoingArgsStackSize is 0 | |
MorphCopyBlock: | |
PrepareDst for [000030] have found a local var V02. | |
block store to morph: | |
[000030] DA--G------ * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000001] I---G+----- \--* IND simd16 | |
[000000] H----+----- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] | |
this requires a CopyBlock. | |
MorphCopyBlock (after): | |
[000030] DA--G------ * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000001] I---G+----- \--* IND simd16 | |
[000000] H----+----- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] | |
fgMorphTree BB01, STMT00003 (before) | |
[000011] -ACXG------ * COMMA simd16 | |
[000010] H-CXG------ +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000009] H---------- arg0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000031] DA--G------ \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000007] I---G------ \--* IND simd16 | |
[000006] H---------- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] | |
Initializing arg info for 10.CALL: | |
Argument 0 ABI info: [00..08) reg x0 | |
Args for call [000010] CALL after AddFinalArgsAndDetermineABIInfo: | |
CallArg[[000009].CNS_INT long (By value), 1 reg: x0] | |
Morphing args for 10.CALL: | |
Sorting the arguments: | |
Deferred argument ('x0'): | |
[000009] H----+----- * CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
Moved to late list | |
Register placement order: x0 | |
Args for [000010].CALL after fgMorphArgs: | |
CallArg[[000009].CNS_INT long (By value), 1 reg: x0, isLate, processed] | |
OutgoingArgsStackSize is 0 | |
MorphCopyBlock: | |
PrepareDst for [000031] have found a local var V03. | |
block store to morph: | |
[000031] DA--G------ * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000007] I---G+----- \--* IND simd16 | |
[000006] H----+----- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] | |
this requires a CopyBlock. | |
MorphCopyBlock (after): | |
[000031] DA--G------ * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000007] I---G+----- \--* IND simd16 | |
[000006] H----+----- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] | |
fgMorphTree BB01, STMT00001 (before) | |
[000014] --C-------- * RETURN simd16 | |
[000029] ----------- \--* HWINTRINSIC simd16 ulong Insert | |
[000020] ----------- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe | |
[000019] ----------- | \--* MUL long | |
[000017] ----------- | +--* HWINTRINSIC long ulong ToScalar | |
[000015] ----------- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000018] ----------- | \--* HWINTRINSIC long ulong ToScalar | |
[000016] ----------- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000028] ----------- +--* CNS_INT int 1 | |
[000027] ----------- \--* MUL long | |
[000024] ----------- +--* HWINTRINSIC long ulong GetElement | |
[000021] ----------- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 (last use) | |
[000023] ----------- | \--* CNS_INT int 1 | |
[000026] ----------- \--* HWINTRINSIC long ulong GetElement | |
[000022] ----------- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 (last use) | |
[000025] ----------- \--* CNS_INT int 1 | |
morph assertion stats: 64 table size, 0 assertions, 0 dropped | |
*************** Finishing PHASE Morph - Global | |
Trees after Morph - Global | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..010) (return) i hascall | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [000..010) (return), preds={} succs={} | |
***** BB01 [0000] | |
STMT00002 ( 0x000[E-] ... ??? ) | |
[000005] -ACXG+----- * COMMA void | |
[000004] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000003] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000030] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000001] I---G+----- \--* IND simd16 | |
[000000] H----+----- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] | |
***** BB01 [0000] | |
STMT00003 ( 0x000[E-] ... ??? ) | |
[000011] -ACXG+----- * COMMA void | |
[000010] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000009] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000031] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000007] I---G+----- \--* IND simd16 | |
[000006] H----+----- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] | |
***** BB01 [0000] | |
STMT00001 ( 0x000[E-] ... ??? ) | |
[000014] -----+----- * RETURN simd16 | |
[000029] -----+----- \--* HWINTRINSIC simd16 ulong Insert | |
[000020] -----+----- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe | |
[000019] -----+----- | \--* MUL long | |
[000017] -----+----- | +--* HWINTRINSIC long ulong ToScalar | |
[000015] -----+----- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000018] -----+----- | \--* HWINTRINSIC long ulong ToScalar | |
[000016] -----+----- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000028] -----+-N--- +--* CNS_INT int 1 | |
[000027] -----+----- \--* MUL long | |
[000024] -----+----- +--* HWINTRINSIC long ulong GetElement | |
[000021] -----+----- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 (last use) | |
[000023] -----+----- | \--* CNS_INT int 1 | |
[000026] -----+----- \--* HWINTRINSIC long ulong GetElement | |
[000022] -----+----- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 (last use) | |
[000025] -----+----- \--* CNS_INT int 1 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Starting PHASE Post-Morph | |
*************** In fgMarkDemotedImplicitByRefArgs() | |
*************** Finishing PHASE Post-Morph | |
Trees after Post-Morph | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..010) (return) i hascall | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [000..010) (return), preds={} succs={} | |
***** BB01 [0000] | |
STMT00002 ( 0x000[E-] ... ??? ) | |
[000005] -ACXG+----- * COMMA void | |
[000004] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000003] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000030] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000001] I---G+----- \--* IND simd16 | |
[000000] H----+----- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] | |
***** BB01 [0000] | |
STMT00003 ( 0x000[E-] ... ??? ) | |
[000011] -ACXG+----- * COMMA void | |
[000010] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000009] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000031] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000007] I---G+----- \--* IND simd16 | |
[000006] H----+----- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] | |
***** BB01 [0000] | |
STMT00001 ( 0x000[E-] ... ??? ) | |
[000014] -----+----- * RETURN simd16 | |
[000029] -----+----- \--* HWINTRINSIC simd16 ulong Insert | |
[000020] -----+----- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe | |
[000019] -----+----- | \--* MUL long | |
[000017] -----+----- | +--* HWINTRINSIC long ulong ToScalar | |
[000015] -----+----- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000018] -----+----- | \--* HWINTRINSIC long ulong ToScalar | |
[000016] -----+----- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000028] -----+-N--- +--* CNS_INT int 1 | |
[000027] -----+----- \--* MUL long | |
[000024] -----+----- +--* HWINTRINSIC long ulong GetElement | |
[000021] -----+----- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000023] -----+----- | \--* CNS_INT int 1 | |
[000026] -----+----- \--* HWINTRINSIC long ulong GetElement | |
[000022] -----+----- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000025] -----+----- \--* CNS_INT int 1 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Starting PHASE GS Cookie | |
No GS security needed | |
*************** Finishing PHASE GS Cookie [no changes] | |
*************** Starting PHASE Compute block weights | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..010) (return) i hascall | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
-- no profile data, so using default called count | |
*************** Finishing PHASE Compute block weights [no changes] | |
*************** Starting PHASE Create EH funclets | |
*************** Finishing PHASE Create EH funclets [no changes] | |
*************** Starting PHASE Invert loops | |
*************** Before renumbering the basic blocks | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..010) (return) i hascall | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table is empty | |
=============== No blocks renumbered! | |
*************** Finishing PHASE Invert loops [no changes] | |
*************** Starting PHASE Optimize control flow | |
*************** In fgUpdateFlowGraph() | |
Before updating the flow graph: | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..010) (return) i hascall | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Finishing PHASE Optimize control flow | |
Trees after Optimize control flow | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..010) (return) i hascall | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [000..010) (return), preds={} succs={} | |
***** BB01 [0000] | |
STMT00002 ( 0x000[E-] ... ??? ) | |
[000005] -ACXG+----- * COMMA void | |
[000004] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000003] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000030] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000001] I---G+----- \--* IND simd16 | |
[000000] H----+----- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] | |
***** BB01 [0000] | |
STMT00003 ( 0x000[E-] ... ??? ) | |
[000011] -ACXG+----- * COMMA void | |
[000010] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000009] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000031] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000007] I---G+----- \--* IND simd16 | |
[000006] H----+----- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] | |
***** BB01 [0000] | |
STMT00001 ( 0x000[E-] ... ??? ) | |
[000014] -----+----- * RETURN simd16 | |
[000029] -----+----- \--* HWINTRINSIC simd16 ulong Insert | |
[000020] -----+----- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe | |
[000019] -----+----- | \--* MUL long | |
[000017] -----+----- | +--* HWINTRINSIC long ulong ToScalar | |
[000015] -----+----- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000018] -----+----- | \--* HWINTRINSIC long ulong ToScalar | |
[000016] -----+----- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000028] -----+-N--- +--* CNS_INT int 1 | |
[000027] -----+----- \--* MUL long | |
[000024] -----+----- +--* HWINTRINSIC long ulong GetElement | |
[000021] -----+----- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000023] -----+----- | \--* CNS_INT int 1 | |
[000026] -----+----- \--* HWINTRINSIC long ulong GetElement | |
[000022] -----+----- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000025] -----+----- \--* CNS_INT int 1 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Starting PHASE Post-morph head and tail merge | |
*************** Finishing PHASE Post-morph head and tail merge | |
Trees after Post-morph head and tail merge | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..010) (return) i hascall | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [000..010) (return), preds={} succs={} | |
***** BB01 [0000] | |
STMT00002 ( 0x000[E-] ... ??? ) | |
[000005] -ACXG+----- * COMMA void | |
[000004] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000003] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000030] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000001] I---G+----- \--* IND simd16 | |
[000000] H----+----- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] | |
***** BB01 [0000] | |
STMT00003 ( 0x000[E-] ... ??? ) | |
[000011] -ACXG+----- * COMMA void | |
[000010] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000009] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000031] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000007] I---G+----- \--* IND simd16 | |
[000006] H----+----- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] | |
***** BB01 [0000] | |
STMT00001 ( 0x000[E-] ... ??? ) | |
[000014] -----+----- * RETURN simd16 | |
[000029] -----+----- \--* HWINTRINSIC simd16 ulong Insert | |
[000020] -----+----- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe | |
[000019] -----+----- | \--* MUL long | |
[000017] -----+----- | +--* HWINTRINSIC long ulong ToScalar | |
[000015] -----+----- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000018] -----+----- | \--* HWINTRINSIC long ulong ToScalar | |
[000016] -----+----- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000028] -----+-N--- +--* CNS_INT int 1 | |
[000027] -----+----- \--* MUL long | |
[000024] -----+----- +--* HWINTRINSIC long ulong GetElement | |
[000021] -----+----- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000023] -----+----- | \--* CNS_INT int 1 | |
[000026] -----+----- \--* HWINTRINSIC long ulong GetElement | |
[000022] -----+----- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000025] -----+----- \--* CNS_INT int 1 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Starting PHASE Canonicalize entry | |
*************** Finishing PHASE Canonicalize entry [no changes] | |
*************** Starting PHASE DFS blocks and remove dead code 2 | |
*************** Finishing PHASE DFS blocks and remove dead code 2 [no changes] | |
*************** Starting PHASE Find loops | |
*************** In optFindLoopsPhase() | |
*************** Before renumbering the basic blocks | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..010) (return) i hascall | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table is empty | |
=============== No blocks renumbered! | |
Identifying loops in DFS tree with following reverse post order: | |
RPO -> BB [pre, post] | |
00 -> BB01[0, 0] | |
Flow graph has no cycles; skipping identification of natural loops | |
*************** Before renumbering the basic blocks | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..010) (return) i hascall | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table is empty | |
=============== No blocks renumbered! | |
*************** Finishing PHASE Find loops | |
Trees after Find loops | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..010) (return) i hascall | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [000..010) (return), preds={} succs={} | |
***** BB01 [0000] | |
STMT00002 ( 0x000[E-] ... ??? ) | |
[000005] -ACXG+----- * COMMA void | |
[000004] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000003] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000030] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000001] I---G+----- \--* IND simd16 | |
[000000] H----+----- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] | |
***** BB01 [0000] | |
STMT00003 ( 0x000[E-] ... ??? ) | |
[000011] -ACXG+----- * COMMA void | |
[000010] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000009] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000031] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000007] I---G+----- \--* IND simd16 | |
[000006] H----+----- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] | |
***** BB01 [0000] | |
STMT00001 ( 0x000[E-] ... ??? ) | |
[000014] -----+----- * RETURN simd16 | |
[000029] -----+----- \--* HWINTRINSIC simd16 ulong Insert | |
[000020] -----+----- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe | |
[000019] -----+----- | \--* MUL long | |
[000017] -----+----- | +--* HWINTRINSIC long ulong ToScalar | |
[000015] -----+----- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000018] -----+----- | \--* HWINTRINSIC long ulong ToScalar | |
[000016] -----+----- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000028] -----+-N--- +--* CNS_INT int 1 | |
[000027] -----+----- \--* MUL long | |
[000024] -----+----- +--* HWINTRINSIC long ulong GetElement | |
[000021] -----+----- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000023] -----+----- | \--* CNS_INT int 1 | |
[000026] -----+----- \--* HWINTRINSIC long ulong GetElement | |
[000022] -----+----- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000025] -----+----- \--* CNS_INT int 1 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Starting PHASE Set block weights | |
After computing the dominance tree: | |
After computing reachability sets: | |
------------------------------------------------ | |
BBnum Reachable by | |
------------------------------------------------ | |
BB01 : BB01 | |
Return blocks: BB01 | |
*************** Finishing PHASE Set block weights [no changes] | |
*************** Starting PHASE Clone loops | |
*************** In optCloneLoops() | |
No loops to clone | |
*************** Finishing PHASE Clone loops [no changes] | |
*************** Starting PHASE Unroll loops | |
*************** Finishing PHASE Unroll loops [no changes] | |
*************** Starting PHASE Compute dominators | |
*************** Finishing PHASE Compute dominators [no changes] | |
*************** Starting PHASE Morph array ops | |
No multi-dimensional array references in the function | |
*************** Finishing PHASE Morph array ops [no changes] | |
*************** Starting PHASE Mark local vars | |
*************** In lvaMarkLocalVars() | |
*** lvaComputeRefCounts *** | |
*** lvaComputeRefCounts -- explicit counts *** | |
*** marking local variables in block BB01 (weight=1) | |
STMT00002 ( 0x000[E-] ... ??? ) | |
[000005] -ACXG+----- * COMMA void | |
[000004] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000003] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000030] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000001] I---G+----- \--* IND simd16 | |
[000000] H----+----- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] | |
New refCnts for V02: refCnt = 1, refCntWtd = 2 | |
V02 needs explicit zero init. Disqualified as a single-def register candidate. | |
STMT00003 ( 0x000[E-] ... ??? ) | |
[000011] -ACXG+----- * COMMA void | |
[000010] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
[000009] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
[000031] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000007] I---G+----- \--* IND simd16 | |
[000006] H----+----- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] | |
New refCnts for V03: refCnt = 1, refCntWtd = 2 | |
V03 needs explicit zero init. Disqualified as a single-def register candidate. | |
STMT00001 ( 0x000[E-] ... ??? ) | |
[000014] -----+----- * RETURN simd16 | |
[000029] -----+----- \--* HWINTRINSIC simd16 ulong Insert | |
[000020] -----+----- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe | |
[000019] -----+----- | \--* MUL long | |
[000017] -----+----- | +--* HWINTRINSIC long ulong ToScalar | |
[000015] -----+----- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000018] -----+----- | \--* HWINTRINSIC long ulong ToScalar | |
[000016] -----+----- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000028] -----+-N--- +--* CNS_INT int 1 | |
[000027] -----+----- \--* MUL long | |
[000024] -----+----- +--* HWINTRINSIC long ulong GetElement | |
[000021] -----+----- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
[000023] -----+----- | \--* CNS_INT int 1 | |
[000026] -----+----- \--* HWINTRINSIC long ulong GetElement | |
[000022] -----+----- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
[000025] -----+----- \--* CNS_INT int 1 | |
New refCnts for V02: refCnt = 2, refCntWtd = 4 | |
New refCnts for V03: refCnt = 2, refCntWtd = 4 | |
New refCnts for V02: refCnt = 3, refCntWtd = 6 | |
New refCnts for V03: refCnt = 3, refCntWtd = 6 | |
*** lvaComputeRefCounts -- implicit counts *** | |
*************** Finishing PHASE Mark local vars [no changes] | |
*************** Starting PHASE Find oper order | |
*************** In fgFindOperOrder() | |
*************** Finishing PHASE Find oper order | |
Trees after Find oper order | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..010) (return) i hascall | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [000..010) (return), preds={} succs={} | |
***** BB01 [0000] | |
STMT00002 ( 0x000[E-] ... ??? ) | |
( 23, 29) [000005] -ACXG+----- * COMMA void | |
( 17, 15) [000004] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
( 3, 12) [000003] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
( 6, 14) [000030] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
( 6, 14) [000001] I---G+----- \--* IND simd16 | |
( 3, 12) [000000] H----+----- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] | |
***** BB01 [0000] | |
STMT00003 ( 0x000[E-] ... ??? ) | |
( 23, 29) [000011] -ACXG+----- * COMMA void | |
( 17, 15) [000010] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
( 3, 12) [000009] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
( 6, 14) [000031] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
( 6, 14) [000007] I---G+----- \--* IND simd16 | |
( 3, 12) [000006] H----+----- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] | |
***** BB01 [0000] | |
STMT00001 ( 0x000[E-] ... ??? ) | |
( 22, 23) [000014] -----+----- * RETURN simd16 | |
( 21, 22) [000029] -----+----- \--* HWINTRINSIC simd16 ulong Insert | |
( 9, 8) [000020] -----+----- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe | |
( 8, 7) [000019] -----+----- | \--* MUL long | |
( 2, 2) [000017] -----+----- | +--* HWINTRINSIC long ulong ToScalar | |
( 1, 1) [000015] -----+----- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
( 2, 2) [000018] -----+----- | \--* HWINTRINSIC long ulong ToScalar | |
( 1, 1) [000016] -----+----- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
( 1, 2) [000028] -----+-N--- +--* CNS_INT int 1 | |
( 10, 11) [000027] -----+----- \--* MUL long | |
( 3, 4) [000024] -----+----- +--* HWINTRINSIC long ulong GetElement | |
( 1, 1) [000021] -----+----- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
( 1, 2) [000023] -----+----- | \--* CNS_INT int 1 | |
( 3, 4) [000026] -----+----- \--* HWINTRINSIC long ulong GetElement | |
( 1, 1) [000022] -----+----- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
( 1, 2) [000025] -----+----- \--* CNS_INT int 1 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Starting PHASE Set block order | |
*************** In fgSetBlockOrder() | |
The biggest BB has 16 tree nodes | |
*************** Finishing PHASE Set block order | |
Trees after Set block order | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..010) (return) i hascall | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [000..010) (return), preds={} succs={} | |
***** BB01 [0000] | |
STMT00002 ( 0x000[E-] ... ??? ) | |
N006 ( 23, 29) [000005] -ACXG+----- * COMMA void | |
N002 ( 17, 15) [000004] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
N001 ( 3, 12) [000003] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
N005 ( 6, 14) [000030] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
N004 ( 6, 14) [000001] I---G+----- \--* IND simd16 | |
N003 ( 3, 12) [000000] H----+----- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] | |
***** BB01 [0000] | |
STMT00003 ( 0x000[E-] ... ??? ) | |
N006 ( 23, 29) [000011] -ACXG+----- * COMMA void | |
N002 ( 17, 15) [000010] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
N001 ( 3, 12) [000009] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
N005 ( 6, 14) [000031] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
N004 ( 6, 14) [000007] I---G+----- \--* IND simd16 | |
N003 ( 3, 12) [000006] H----+----- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] | |
***** BB01 [0000] | |
STMT00001 ( 0x000[E-] ... ??? ) | |
N016 ( 22, 23) [000014] -----+----- * RETURN simd16 | |
N015 ( 21, 22) [000029] -----+----- \--* HWINTRINSIC simd16 ulong Insert | |
N006 ( 9, 8) [000020] -----+----- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe | |
N005 ( 8, 7) [000019] -----+----- | \--* MUL long | |
N002 ( 2, 2) [000017] -----+----- | +--* HWINTRINSIC long ulong ToScalar | |
N001 ( 1, 1) [000015] -----+----- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
N004 ( 2, 2) [000018] -----+----- | \--* HWINTRINSIC long ulong ToScalar | |
N003 ( 1, 1) [000016] -----+----- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
N007 ( 1, 2) [000028] -----+-N--- +--* CNS_INT int 1 | |
N014 ( 10, 11) [000027] -----+----- \--* MUL long | |
N010 ( 3, 4) [000024] -----+----- +--* HWINTRINSIC long ulong GetElement | |
N008 ( 1, 1) [000021] -----+----- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 | |
N009 ( 1, 2) [000023] -----+----- | \--* CNS_INT int 1 | |
N013 ( 3, 4) [000026] -----+----- \--* HWINTRINSIC long ulong GetElement | |
N011 ( 1, 1) [000022] -----+----- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 | |
N012 ( 1, 2) [000025] -----+----- \--* CNS_INT int 1 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Starting PHASE Build SSA representation | |
*************** In SsaBuilder::Build() | |
*************** In fgLocalVarLiveness() | |
In fgLocalVarLivenessInit | |
Local V01 should not be enregistered because: struct size does not match reg size | |
Tracked variable (2 out of 4) table: | |
V02 tmp1 [simd16]: refCnt = 3, refCntWtd = 6 | |
V03 tmp2 [simd16]: refCnt = 3, refCntWtd = 6 | |
*************** In fgPerBlockLocalVarLiveness() | |
BB01 USE(0)={ } + ByrefExposed + GcHeap | |
DEF(2)={V02 V03} + ByrefExposed* + GcHeap* | |
** Memory liveness computed, GcHeap states and ByrefExposed states match | |
*************** In fgInterBlockLocalVarLiveness() | |
BB liveness after fgLiveVarAnalysis(): | |
BB01 IN (0)={} + ByrefExposed + GcHeap | |
OUT(0)={} | |
*************** In optRemoveRedundantZeroInits() | |
Analyzing BB01 | |
Marking V02 as having an explicit init | |
Marking V03 as having an explicit init | |
*************** In SsaBuilder::InsertPhiFunctions() | |
Inserting phi functions: | |
*************** In SsaBuilder::RenameVariables() | |
V02.1: defined in BB01 2 uses (local) | |
V03.1: defined in BB01 2 uses (local) | |
*************** Finishing PHASE Build SSA representation | |
Trees after Build SSA representation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..010) (return) i hascall | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [000..010) (return), preds={} succs={} | |
SSA MEM: ByrefExposed, GcHeap = m:1 | |
***** BB01 [0000] | |
STMT00002 ( 0x000[E-] ... ??? ) | |
N006 ( 23, 29) [000005] -ACXG+----- * COMMA void | |
N002 ( 17, 15) [000004] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
N001 ( 3, 12) [000003] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
N005 ( 6, 14) [000030] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 d:1 | |
N004 ( 6, 14) [000001] I---G+----- \--* IND simd16 | |
N003 ( 3, 12) [000000] H----+----- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] | |
***** BB01 [0000] | |
STMT00003 ( 0x000[E-] ... ??? ) | |
N006 ( 23, 29) [000011] -ACXG+----- * COMMA void | |
N002 ( 17, 15) [000010] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
N001 ( 3, 12) [000009] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
N005 ( 6, 14) [000031] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 d:1 | |
N004 ( 6, 14) [000007] I---G+----- \--* IND simd16 | |
N003 ( 3, 12) [000006] H----+----- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] | |
***** BB01 [0000] | |
STMT00001 ( 0x000[E-] ... ??? ) | |
N016 ( 22, 23) [000014] -----+----- * RETURN simd16 | |
N015 ( 21, 22) [000029] -----+----- \--* HWINTRINSIC simd16 ulong Insert | |
N006 ( 9, 8) [000020] -----+----- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe | |
N005 ( 8, 7) [000019] -----+----- | \--* MUL long | |
N002 ( 2, 2) [000017] -----+----- | +--* HWINTRINSIC long ulong ToScalar | |
N001 ( 1, 1) [000015] -----+----- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 | |
N004 ( 2, 2) [000018] -----+----- | \--* HWINTRINSIC long ulong ToScalar | |
N003 ( 1, 1) [000016] -----+----- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 | |
N007 ( 1, 2) [000028] -----+-N--- +--* CNS_INT int 1 | |
N014 ( 10, 11) [000027] -----+----- \--* MUL long | |
N010 ( 3, 4) [000024] -----+----- +--* HWINTRINSIC long ulong GetElement | |
N008 ( 1, 1) [000021] -----+----- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 (last use) | |
N009 ( 1, 2) [000023] -----+----- | \--* CNS_INT int 1 | |
N013 ( 3, 4) [000026] -----+----- \--* HWINTRINSIC long ulong GetElement | |
N011 ( 1, 1) [000022] -----+----- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 (last use) | |
N012 ( 1, 2) [000025] -----+----- \--* CNS_INT int 1 | |
SSA MEM: ByrefExposed, GcHeap = m:2 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
SSA checks completed successfully | |
*************** Starting PHASE Early Value Propagation | |
no arrays or null checks in the method | |
*************** Finishing PHASE Early Value Propagation [no changes] | |
*************** Starting PHASE Do value numbering | |
*************** In fgValueNumber() | |
Memory Initial Value in BB01 is: $80 | |
Visiting BB01 | |
The SSA definition for ByrefExposed (#1) at start of BB01 is $80 {InitVal($40)} | |
The SSA definition for GcHeap (#1) at start of BB01 is $80 {InitVal($40)} | |
***** BB01, STMT00002(before) | |
N006 ( 23, 29) [000005] -ACXG+----- * COMMA void | |
N002 ( 17, 15) [000004] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
N001 ( 3, 12) [000003] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
N005 ( 6, 14) [000030] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 d:1 | |
N004 ( 6, 14) [000001] I---G+----- \--* IND simd16 | |
N003 ( 3, 12) [000000] H----+----- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] | |
N001 [000003] CNS_INT(h) 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] => $c0 {Hnd const: 0x0xffff41308cd8 GTF_ICON_CLASS_HDL System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]} | |
N002 [000004] CALL help => $1c0 {norm=$180 {GetGcstaticBase($c0)}, exc=$140 {ClassInitGenericExc($c0)}} | |
N003 [000000] CNS_INT(h) 0xffbe99a53888 static Fseq[<unknown field>] => $c1 {Hnd const: 0x0xffbe99a53888 GTF_ICON_STATIC_HDL} | |
Found Vector128<ulong> | |
VNForHandle(<unknown field>) is $c2, fieldType is simd16, size = 16 | |
VNForMapSelect($80, $c2):simd16 returns $200 {$80[$c2]} | |
N004 [000001] IND => <l:$200 {$80[$c2]}, c:$240 {MemOpaque:NotInLoop}> | |
Tree [000030] assigned VN to local var V02/1: <l:$200 {$80[$c2]}, c:$240 {MemOpaque:NotInLoop}> | |
N005 [000030] STORE_LCL_VAR V02 tmp1 d:1 => $VN.Void | |
N006 [000005] COMMA => $141 {norm=$VN.Void, exc=$140 {ClassInitGenericExc($c0)}} | |
***** BB01, STMT00002(after) | |
N006 ( 23, 29) [000005] -ACXG+----- * COMMA void $141 | |
N002 ( 17, 15) [000004] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE $1c0 | |
N001 ( 3, 12) [000003] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] $c0 | |
N005 ( 6, 14) [000030] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 d:1 $VN.Void | |
N004 ( 6, 14) [000001] I---G+----- \--* IND simd16 <l:$200, c:$240> | |
N003 ( 3, 12) [000000] H----+----- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] $c1 | |
--------- | |
***** BB01, STMT00003(before) | |
N006 ( 23, 29) [000011] -ACXG+----- * COMMA void | |
N002 ( 17, 15) [000010] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE | |
N001 ( 3, 12) [000009] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
N005 ( 6, 14) [000031] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 d:1 | |
N004 ( 6, 14) [000007] I---G+----- \--* IND simd16 | |
N003 ( 3, 12) [000006] H----+----- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] | |
N001 [000009] CNS_INT(h) 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] => $c0 {Hnd const: 0x0xffff41308cd8 GTF_ICON_CLASS_HDL System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]} | |
N002 [000010] CALL help => $1c0 {norm=$180 {GetGcstaticBase($c0)}, exc=$140 {ClassInitGenericExc($c0)}} | |
N003 [000006] CNS_INT(h) 0xffbe99a538a8 static Fseq[<unknown field>] => $c3 {Hnd const: 0x0xffbe99a538a8 GTF_ICON_STATIC_HDL} | |
Found Vector128<ulong> | |
VNForHandle(<unknown field>) is $c4, fieldType is simd16, size = 16 | |
VNForMapSelect($80, $c4):simd16 returns $201 {$80[$c4]} | |
N004 [000007] IND => <l:$201 {$80[$c4]}, c:$241 {MemOpaque:NotInLoop}> | |
Tree [000031] assigned VN to local var V03/1: <l:$201 {$80[$c4]}, c:$241 {MemOpaque:NotInLoop}> | |
N005 [000031] STORE_LCL_VAR V03 tmp2 d:1 => $VN.Void | |
N006 [000011] COMMA => $141 {norm=$VN.Void, exc=$140 {ClassInitGenericExc($c0)}} | |
***** BB01, STMT00003(after) | |
N006 ( 23, 29) [000011] -ACXG+----- * COMMA void $141 | |
N002 ( 17, 15) [000010] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE $1c0 | |
N001 ( 3, 12) [000009] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] $c0 | |
N005 ( 6, 14) [000031] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 d:1 $VN.Void | |
N004 ( 6, 14) [000007] I---G+----- \--* IND simd16 <l:$201, c:$241> | |
N003 ( 3, 12) [000006] H----+----- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] $c3 | |
--------- | |
***** BB01, STMT00001(before) | |
N016 ( 22, 23) [000014] -----+----- * RETURN simd16 | |
N015 ( 21, 22) [000029] -----+----- \--* HWINTRINSIC simd16 ulong Insert | |
N006 ( 9, 8) [000020] -----+----- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe | |
N005 ( 8, 7) [000019] -----+----- | \--* MUL long | |
N002 ( 2, 2) [000017] -----+----- | +--* HWINTRINSIC long ulong ToScalar | |
N001 ( 1, 1) [000015] -----+----- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 | |
N004 ( 2, 2) [000018] -----+----- | \--* HWINTRINSIC long ulong ToScalar | |
N003 ( 1, 1) [000016] -----+----- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 | |
N007 ( 1, 2) [000028] -----+-N--- +--* CNS_INT int 1 | |
N014 ( 10, 11) [000027] -----+----- \--* MUL long | |
N010 ( 3, 4) [000024] -----+----- +--* HWINTRINSIC long ulong GetElement | |
N008 ( 1, 1) [000021] -----+----- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 (last use) | |
N009 ( 1, 2) [000023] -----+----- | \--* CNS_INT int 1 | |
N013 ( 3, 4) [000026] -----+----- \--* HWINTRINSIC long ulong GetElement | |
N011 ( 1, 1) [000022] -----+----- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 (last use) | |
N012 ( 1, 2) [000025] -----+----- \--* CNS_INT int 1 | |
N001 [000015] LCL_VAR V02 tmp1 u:1 => <l:$200 {$80[$c2]}, c:$240 {MemOpaque:NotInLoop}> | |
simdTypeVN is $142 {SimdType(simd16, ulong)} | |
N002 [000017] HWINTRINSIC => <l:$280 {HWI_Vector128_ToScalar($200, $142)}, c:$281 {HWI_Vector128_ToScalar($240, $142)}> | |
N003 [000016] LCL_VAR V03 tmp2 u:1 => <l:$201 {$80[$c4]}, c:$241 {MemOpaque:NotInLoop}> | |
simdTypeVN is $142 {SimdType(simd16, ulong)} | |
N004 [000018] HWINTRINSIC => <l:$282 {HWI_Vector128_ToScalar($201, $142)}, c:$283 {HWI_Vector128_ToScalar($241, $142)}> | |
N005 [000019] MUL => <l:$284 {MUL($280, $282)}, c:$285 {MUL($281, $283)}> | |
simdTypeVN is $142 {SimdType(simd16, ulong)} | |
N006 [000020] HWINTRINSIC => <l:$202 {HWI_Vector128_CreateScalarUnsafe($284, $142)}, c:$203 {HWI_Vector128_CreateScalarUnsafe($285, $142)}> | |
N007 [000028] CNS_INT 1 => $43 {IntCns 1} | |
N008 [000021] LCL_VAR V02 tmp1 u:1 (last use) => <l:$200 {$80[$c2]}, c:$240 {MemOpaque:NotInLoop}> | |
N009 [000023] CNS_INT 1 => $43 {IntCns 1} | |
simdTypeVN is $142 {SimdType(simd16, ulong)} | |
N010 [000024] HWINTRINSIC => <l:$300 {HWI_Vector128_GetElement($200, $43, $142)}, c:$301 {HWI_Vector128_GetElement($240, $43, $142)}> | |
N011 [000022] LCL_VAR V03 tmp2 u:1 (last use) => <l:$201 {$80[$c4]}, c:$241 {MemOpaque:NotInLoop}> | |
N012 [000025] CNS_INT 1 => $43 {IntCns 1} | |
simdTypeVN is $142 {SimdType(simd16, ulong)} | |
N013 [000026] HWINTRINSIC => <l:$302 {HWI_Vector128_GetElement($201, $43, $142)}, c:$303 {HWI_Vector128_GetElement($241, $43, $142)}> | |
N014 [000027] MUL => <l:$286 {MUL($300, $302)}, c:$287 {MUL($301, $303)}> | |
simdTypeVN is $142 {SimdType(simd16, ulong)} | |
N015 [000029] HWINTRINSIC => <l:$340 {HWI_AdvSimd_Insert($202, $43, $286, $142)}, c:$341 {HWI_AdvSimd_Insert($203, $43, $287, $142)}> | |
N016 [000014] RETURN => $VN.Void | |
***** BB01, STMT00001(after) | |
N016 ( 22, 23) [000014] -----+----- * RETURN simd16 $VN.Void | |
N015 ( 21, 22) [000029] -----+----- \--* HWINTRINSIC simd16 ulong Insert <l:$340, c:$341> | |
N006 ( 9, 8) [000020] -----+----- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe <l:$202, c:$203> | |
N005 ( 8, 7) [000019] -----+----- | \--* MUL long <l:$284, c:$285> | |
N002 ( 2, 2) [000017] -----+----- | +--* HWINTRINSIC long ulong ToScalar <l:$280, c:$281> | |
N001 ( 1, 1) [000015] -----+----- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 <l:$200, c:$240> | |
N004 ( 2, 2) [000018] -----+----- | \--* HWINTRINSIC long ulong ToScalar <l:$282, c:$283> | |
N003 ( 1, 1) [000016] -----+----- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 <l:$201, c:$241> | |
N007 ( 1, 2) [000028] -----+-N--- +--* CNS_INT int 1 $43 | |
N014 ( 10, 11) [000027] -----+----- \--* MUL long <l:$286, c:$287> | |
N010 ( 3, 4) [000024] -----+----- +--* HWINTRINSIC long ulong GetElement <l:$300, c:$301> | |
N008 ( 1, 1) [000021] -----+----- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 (last use) <l:$200, c:$240> | |
N009 ( 1, 2) [000023] -----+----- | \--* CNS_INT int 1 $43 | |
N013 ( 3, 4) [000026] -----+----- \--* HWINTRINSIC long ulong GetElement <l:$302, c:$303> | |
N011 ( 1, 1) [000022] -----+----- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 (last use) <l:$201, c:$241> | |
N012 ( 1, 2) [000025] -----+----- \--* CNS_INT int 1 $43 | |
*************** Finishing PHASE Do value numbering | |
Trees after Do value numbering | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..010) (return) i hascall | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [000..010) (return), preds={} succs={} | |
SSA MEM: ByrefExposed, GcHeap = m:1 | |
***** BB01 [0000] | |
STMT00002 ( 0x000[E-] ... ??? ) | |
N006 ( 23, 29) [000005] -ACXG+----- * COMMA void $141 | |
N002 ( 17, 15) [000004] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE $1c0 | |
N001 ( 3, 12) [000003] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] $c0 | |
N005 ( 6, 14) [000030] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 d:1 $VN.Void | |
N004 ( 6, 14) [000001] I---G+----- \--* IND simd16 <l:$200, c:$240> | |
N003 ( 3, 12) [000000] H----+----- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] $c1 | |
***** BB01 [0000] | |
STMT00003 ( 0x000[E-] ... ??? ) | |
N006 ( 23, 29) [000011] -ACXG+----- * COMMA void $141 | |
N002 ( 17, 15) [000010] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE $1c0 | |
N001 ( 3, 12) [000009] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] $c0 | |
N005 ( 6, 14) [000031] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 d:1 $VN.Void | |
N004 ( 6, 14) [000007] I---G+----- \--* IND simd16 <l:$201, c:$241> | |
N003 ( 3, 12) [000006] H----+----- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] $c3 | |
***** BB01 [0000] | |
STMT00001 ( 0x000[E-] ... ??? ) | |
N016 ( 22, 23) [000014] -----+----- * RETURN simd16 $VN.Void | |
N015 ( 21, 22) [000029] -----+----- \--* HWINTRINSIC simd16 ulong Insert <l:$340, c:$341> | |
N006 ( 9, 8) [000020] -----+----- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe <l:$202, c:$203> | |
N005 ( 8, 7) [000019] -----+----- | \--* MUL long <l:$284, c:$285> | |
N002 ( 2, 2) [000017] -----+----- | +--* HWINTRINSIC long ulong ToScalar <l:$280, c:$281> | |
N001 ( 1, 1) [000015] -----+----- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 <l:$200, c:$240> | |
N004 ( 2, 2) [000018] -----+----- | \--* HWINTRINSIC long ulong ToScalar <l:$282, c:$283> | |
N003 ( 1, 1) [000016] -----+----- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 <l:$201, c:$241> | |
N007 ( 1, 2) [000028] -----+-N--- +--* CNS_INT int 1 $43 | |
N014 ( 10, 11) [000027] -----+----- \--* MUL long <l:$286, c:$287> | |
N010 ( 3, 4) [000024] -----+----- +--* HWINTRINSIC long ulong GetElement <l:$300, c:$301> | |
N008 ( 1, 1) [000021] -----+----- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 (last use) <l:$200, c:$240> | |
N009 ( 1, 2) [000023] -----+----- | \--* CNS_INT int 1 $43 | |
N013 ( 3, 4) [000026] -----+----- \--* HWINTRINSIC long ulong GetElement <l:$302, c:$303> | |
N011 ( 1, 1) [000022] -----+----- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 (last use) <l:$201, c:$241> | |
N012 ( 1, 2) [000025] -----+----- \--* CNS_INT int 1 $43 | |
SSA MEM: ByrefExposed, GcHeap = m:2 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
SSA checks completed successfully | |
*************** Starting PHASE Hoist loop code | |
No loops; no hoisting | |
*************** Finishing PHASE Hoist loop code [no changes] | |
*************** Starting PHASE VN based copy prop | |
Copy Assertion for BB01 | |
curSsaName stack: { } | |
Live vars after [000030]: {} +{V02} => {V02} | |
Live vars after [000031]: {V02} +{V03} => {V02 V03} | |
Live vars after [000021]: {V02 V03} -{V02} => {V03} | |
Live vars after [000022]: {V03} -{V03} => {} | |
*************** Finishing PHASE VN based copy prop [no changes] | |
*************** Starting PHASE Redundant branch opts | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..010) (return) i hascall | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Finishing PHASE Redundant branch opts [no changes] | |
*************** Starting PHASE Optimize Valnum CSEs | |
CONST CSE is enabled | |
Standard CSE Heuristic | |
Standard CSE Heuristic | |
Candidate CSE #01, key=K_0xffff41308000 in BB01, [cost= 3, size=12]: | |
N001 ( 3, 12) CSE #01 (use)[000009] H----+----- * CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] $c0 | |
Candidate CSE #02, key=$180 in BB01, [cost=17, size=15]: | |
N002 ( 17, 15) CSE #02 (use)[000010] H-CXG+----- * CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE $1c0 | |
N001 ( 3, 12) CSE #01 (use)[000009] H----+----- arg0 in x0 \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] $c0 | |
Candidate CSE #03, key=K_0xffbe99a53000 in BB01, [cost= 3, size=12]: | |
N003 ( 3, 12) CSE #03 (use)[000006] H----+----- * CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] $c3 | |
Blocks that generate CSE def/uses | |
BB01 cseGen = 000000000000003D CSE #01, CSE #02.c, CSE #03.c | |
Performing DataFlow for ValnumCSE's | |
After performing DataFlow for ValnumCSE's | |
BB01 | |
in: 0000000000000000 | |
gen: 000000000000003D CSE #01, CSE #02.c, CSE #03.c | |
out: 000000000000003D CSE #01, CSE #02.c, CSE #03.c | |
Labeling the CSEs with Use/Def information | |
BB01 [000003] Def of CSE #01 [weight=1] | |
BB01 [000004] Def of CSE #02 [weight=1] | |
BB01 [000000] Def of CSE #03 [weight=1] | |
BB01 [000009] Use of CSE #01 [weight=1] *** Now Live Across Call *** | |
BB01 [000010] Use of CSE #02 [weight=1] | |
BB01 [000006] Use of CSE #03 [weight=1] | |
************ Trees at start of optValnumCSE_Heuristic() | |
------------ BB01 [0000] [000..010) (return), preds={} succs={} | |
***** BB01 [0000] | |
STMT00002 ( 0x000[E-] ... ??? ) | |
N006 ( 23, 29) [000005] -ACXG+----- * COMMA void $141 | |
N002 ( 17, 15) CSE #02 (def)[000004] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE $1c0 | |
N001 ( 3, 12) CSE #01 (def)[000003] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] $c0 | |
N005 ( 6, 14) [000030] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 d:1 $VN.Void | |
N004 ( 6, 14) [000001] I---G+----- \--* IND simd16 <l:$200, c:$240> | |
N003 ( 3, 12) CSE #03 (def)[000000] H----+----- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] $c1 | |
***** BB01 [0000] | |
STMT00003 ( 0x000[E-] ... ??? ) | |
N006 ( 23, 29) [000011] -ACXG+----- * COMMA void $141 | |
N002 ( 17, 15) CSE #02 (use)[000010] H-CXG+----- +--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE $1c0 | |
N001 ( 3, 12) CSE #01 (use)[000009] H----+----- arg0 in x0 | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] $c0 | |
N005 ( 6, 14) [000031] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 d:1 $VN.Void | |
N004 ( 6, 14) [000007] I---G+----- \--* IND simd16 <l:$201, c:$241> | |
N003 ( 3, 12) CSE #03 (use)[000006] H----+----- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] $c3 | |
***** BB01 [0000] | |
STMT00001 ( 0x000[E-] ... ??? ) | |
N016 ( 22, 23) [000014] -----+----- * RETURN simd16 $VN.Void | |
N015 ( 21, 22) [000029] -----+----- \--* HWINTRINSIC simd16 ulong Insert <l:$340, c:$341> | |
N006 ( 9, 8) [000020] -----+----- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe <l:$202, c:$203> | |
N005 ( 8, 7) [000019] -----+----- | \--* MUL long <l:$284, c:$285> | |
N002 ( 2, 2) [000017] -----+----- | +--* HWINTRINSIC long ulong ToScalar <l:$280, c:$281> | |
N001 ( 1, 1) [000015] -----+----- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 <l:$200, c:$240> | |
N004 ( 2, 2) [000018] -----+----- | \--* HWINTRINSIC long ulong ToScalar <l:$282, c:$283> | |
N003 ( 1, 1) [000016] -----+----- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 <l:$201, c:$241> | |
N007 ( 1, 2) [000028] -----+-N--- +--* CNS_INT int 1 $43 | |
N014 ( 10, 11) [000027] -----+----- \--* MUL long <l:$286, c:$287> | |
N010 ( 3, 4) [000024] -----+----- +--* HWINTRINSIC long ulong GetElement <l:$300, c:$301> | |
N008 ( 1, 1) [000021] -----+----- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 (last use) <l:$200, c:$240> | |
N009 ( 1, 2) [000023] -----+----- | \--* CNS_INT int 1 $43 | |
N013 ( 3, 4) [000026] -----+----- \--* HWINTRINSIC long ulong GetElement <l:$302, c:$303> | |
N011 ( 1, 1) [000022] -----+----- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 (last use) <l:$201, c:$241> | |
N012 ( 1, 2) [000025] -----+----- \--* CNS_INT int 1 $43 | |
------------------------------------------------------------------------------------------------------------------- | |
Standard CSE Heuristic | |
Aggressive CSE Promotion cutoff is 200.000000 | |
Moderate CSE Promotion cutoff is 100.000000 | |
enregCount is 2 | |
Framesize estimate is 0x0000 | |
We have a small frame | |
Sorted CSE candidates: | |
CSE #02, {$180, $140} useCnt=1: [def=100.000000, use=100.000000, cost= 17 ] | |
:: N002 ( 17, 15) CSE #02 (def)[000004] H-CXG+----- * CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE $1c0 | |
CSE #01, {K_0xffff41308000} useCnt=1: [def=100.000000, use=100.000000, cost= 3, call] | |
:: N001 ( 3, 12) CSE #01 (def)[000003] H----+----- * CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] $c0 | |
CSE #03, {K_0xffbe99a53000} useCnt=1: [def=100.000000, use=100.000000, cost= 3 ] | |
:: N003 ( 3, 12) CSE #03 (def)[000000] H----+----- * CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] $c1 | |
Considering CSE #02 {$180, $140} [def=100.000000, use=100.000000, cost= 17 ] | |
CSE Expression : | |
N002 ( 17, 15) CSE #02 (def)[000004] H-CXG+----- * CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE $1c0 | |
N001 ( 3, 12) CSE #01 (def)[000003] H----+----- arg0 in x0 \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] $c0 | |
Aggressive CSE Promotion (300.000000 >= 200.000000) | |
cseRefCnt=300.000000, aggressiveRefCnt=200.000000, moderateRefCnt=100.000000 | |
defCnt=100.000000, useCnt=100.000000, cost=17, size=15 | |
def_cost=1, use_cost=1, extra_no_cost=28, extra_yes_cost=0 | |
CSE cost savings check (1728.000000 >= 200.000000) passes | |
Promoting CSE: | |
lvaGrabTemp returning 4 (V04 rat0) (a long lifetime temp) called for CSE #02: aggressive. | |
CSE #02 is single-def, so associated CSE temp V04 will be in SSA | |
New refCnts for V04: refCnt = 2, refCntWtd = 2 | |
New refCnts for V04: refCnt = 3, refCntWtd = 3 | |
CSE #02 def at [000004] replaced in BB01 with def of V04 | |
ReMorphing args for 4.CALL: | |
Args for [000004].CALL after fgMorphArgs: | |
CallArg[[000003].CNS_INT long (By value), 1 reg: x0, isLate, processed] | |
OutgoingArgsStackSize is 0 | |
optValnumCSE morphed tree: | |
N009 ( 24, 30) [000005] -ACXG+----- * COMMA void $141 | |
N005 ( 18, 16) [000035] -ACXG------ +--* COMMA byref $1c0 | |
N003 ( 17, 15) CSE #02 (def)[000033] DACXG------ | +--* STORE_LCL_VAR byref V04 cse0 d:1 $VN.Void | |
N002 ( 17, 15) [000004] H-CXG+----- | | \--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE $1c0 | |
N001 ( 3, 12) CSE #01 (def)[000003] H----+----- arg0 in x0 | | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] $c0 | |
N004 ( 1, 1) [000034] ----------- | \--* LCL_VAR byref V04 cse0 u:1 $1c0 | |
N008 ( 6, 14) [000030] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 d:1 $VN.Void | |
N007 ( 6, 14) [000001] I---G+----- \--* IND simd16 <l:$200, c:$240> | |
N006 ( 3, 12) CSE #03 (def)[000000] H----+----- \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] $c1 | |
Working on the replacement of the CSE #02 use at [000010] in BB01 | |
Unmark CSE use #01 at [000009]: 1 -> 0 | |
optValnumCSE morphed tree: | |
N005 ( 7, 15) [000011] -A--G+----- * COMMA void $141 | |
N001 ( 1, 1) [000036] ----------- +--* LCL_VAR byref V04 cse0 u:1 $180 | |
N004 ( 6, 14) [000031] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 d:1 $VN.Void | |
N003 ( 6, 14) [000007] I---G+----- \--* IND simd16 <l:$201, c:$241> | |
N002 ( 3, 12) CSE #03 (use)[000006] H----+----- \--* CNS_INT(h) long 0xffbe99a538a8 static Fseq[<unknown field>] $c3 | |
Considering CSE #03 {K_0xffbe99a53000} [def=100.000000, use=100.000000, cost= 3 ] | |
CSE Expression : | |
N006 ( 3, 12) CSE #03 (def)[000000] H----+----- * CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] $c1 | |
Aggressive CSE Promotion (300.000000 >= 200.000000) | |
cseRefCnt=300.000000, aggressiveRefCnt=200.000000, moderateRefCnt=100.000000 | |
defCnt=100.000000, useCnt=100.000000, cost=3, size=12 | |
def_cost=1, use_cost=1, extra_no_cost=22, extra_yes_cost=0 | |
CSE cost savings check (322.000000 >= 200.000000) passes | |
Promoting CSE: | |
lvaGrabTemp returning 5 (V05 rat0) (a long lifetime temp) called for CSE #03: aggressive. | |
CSE #03 is single-def, so associated CSE temp V05 will be in SSA | |
New refCnts for V05: refCnt = 2, refCntWtd = 2 | |
New refCnts for V05: refCnt = 3, refCntWtd = 3 | |
We have shared Const CSE's and selected $c1 with a value of 0x0xffbe99a53888 as the base. | |
CSE #03 def at [000000] replaced in BB01 with def of V05 | |
ReMorphing args for 4.CALL: | |
Args for [000004].CALL after fgMorphArgs: | |
CallArg[[000003].CNS_INT long (By value), 1 reg: x0, isLate, processed] | |
OutgoingArgsStackSize is 0 | |
optValnumCSE morphed tree: | |
N012 ( 25, 31) [000005] -ACXG+----- * COMMA void $141 | |
N005 ( 18, 16) [000035] -ACXG------ +--* COMMA byref $1c0 | |
N003 ( 17, 15) CSE #02 (def)[000033] DACXG------ | +--* STORE_LCL_VAR byref V04 cse0 d:1 $VN.Void | |
N002 ( 17, 15) [000004] H-CXG+----- | | \--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE $1c0 | |
N001 ( 3, 12) CSE #01 (def)[000003] H----+----- arg0 in x0 | | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] $c0 | |
N004 ( 1, 1) [000034] ----------- | \--* LCL_VAR byref V04 cse0 u:1 $1c0 | |
N011 ( 7, 15) [000030] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 d:1 $VN.Void | |
N010 ( 7, 15) [000001] IA--G+----- \--* IND simd16 <l:$200, c:$240> | |
N009 ( 4, 13) [000039] -A--------- \--* COMMA long $c1 | |
N007 ( 3, 12) CSE #03 (def)[000037] DA--------- +--* STORE_LCL_VAR long V05 cse1 d:1 $VN.Void | |
N006 ( 3, 12) [000000] H----+----- | \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] $c1 | |
N008 ( 1, 1) [000038] ----------- \--* LCL_VAR long V05 cse1 u:1 $c1 | |
Working on the replacement of the CSE #03 use at [000006] in BB01 | |
optValnumCSE morphed tree: | |
N007 ( 5, 4) [000011] -A--G+----- * COMMA void $141 | |
N001 ( 1, 1) [000036] ----------- +--* LCL_VAR byref V04 cse0 u:1 $180 | |
N006 ( 4, 3) [000031] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 d:1 $VN.Void | |
N005 ( 4, 3) [000007] I---G+----- \--* IND simd16 <l:$201, c:$241> | |
N004 ( 3, 4) [000042] -------N--- \--* ADD long $c3 | |
N002 ( 1, 1) [000040] ----------- +--* LCL_VAR long V05 cse1 u:1 $c1 | |
N003 ( 1, 2) [000041] ----------- \--* CNS_INT long 32 | |
*************** Finishing PHASE Optimize Valnum CSEs | |
Trees after Optimize Valnum CSEs | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..010) (return) i hascall | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [000..010) (return), preds={} succs={} | |
***** BB01 [0000] | |
STMT00002 ( 0x000[E-] ... ??? ) | |
N012 ( 25, 31) [000005] -ACXG+----- * COMMA void $141 | |
N005 ( 18, 16) [000035] -ACXG------ +--* COMMA byref $1c0 | |
N003 ( 17, 15) [000033] DACXG------ | +--* STORE_LCL_VAR byref V04 cse0 d:1 $VN.Void | |
N002 ( 17, 15) [000004] H-CXG+----- | | \--* CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE $1c0 | |
N001 ( 3, 12) [000003] H----+----- arg0 in x0 | | \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] $c0 | |
N004 ( 1, 1) [000034] ----------- | \--* LCL_VAR byref V04 cse0 u:1 $1c0 | |
N011 ( 7, 15) [000030] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 d:1 $VN.Void | |
N010 ( 7, 15) [000001] IA--G+----- \--* IND simd16 <l:$200, c:$240> | |
N009 ( 4, 13) [000039] -A--------- \--* COMMA long $c1 | |
N007 ( 3, 12) [000037] DA--------- +--* STORE_LCL_VAR long V05 cse1 d:1 $VN.Void | |
N006 ( 3, 12) [000000] H----+----- | \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] $c1 | |
N008 ( 1, 1) [000038] ----------- \--* LCL_VAR long V05 cse1 u:1 $c1 | |
***** BB01 [0000] | |
STMT00003 ( 0x000[E-] ... ??? ) | |
N007 ( 5, 4) [000011] -A--G+----- * COMMA void $141 | |
N001 ( 1, 1) [000036] ----------- +--* LCL_VAR byref V04 cse0 u:1 $180 | |
N006 ( 4, 3) [000031] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 d:1 $VN.Void | |
N005 ( 4, 3) [000007] I---G+----- \--* IND simd16 <l:$201, c:$241> | |
N004 ( 3, 4) [000042] -------N--- \--* ADD long $c3 | |
N002 ( 1, 1) [000040] ----------- +--* LCL_VAR long V05 cse1 u:1 $c1 | |
N003 ( 1, 2) [000041] ----------- \--* CNS_INT long 32 | |
***** BB01 [0000] | |
STMT00001 ( 0x000[E-] ... ??? ) | |
N016 ( 22, 23) [000014] -----+----- * RETURN simd16 $VN.Void | |
N015 ( 21, 22) [000029] -----+----- \--* HWINTRINSIC simd16 ulong Insert <l:$340, c:$341> | |
N006 ( 9, 8) [000020] -----+----- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe <l:$202, c:$203> | |
N005 ( 8, 7) [000019] -----+----- | \--* MUL long <l:$284, c:$285> | |
N002 ( 2, 2) [000017] -----+----- | +--* HWINTRINSIC long ulong ToScalar <l:$280, c:$281> | |
N001 ( 1, 1) [000015] -----+----- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 <l:$200, c:$240> | |
N004 ( 2, 2) [000018] -----+----- | \--* HWINTRINSIC long ulong ToScalar <l:$282, c:$283> | |
N003 ( 1, 1) [000016] -----+----- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 <l:$201, c:$241> | |
N007 ( 1, 2) [000028] -----+-N--- +--* CNS_INT int 1 $43 | |
N014 ( 10, 11) [000027] -----+----- \--* MUL long <l:$286, c:$287> | |
N010 ( 3, 4) [000024] -----+----- +--* HWINTRINSIC long ulong GetElement <l:$300, c:$301> | |
N008 ( 1, 1) [000021] -----+----- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 (last use) <l:$200, c:$240> | |
N009 ( 1, 2) [000023] -----+----- | \--* CNS_INT int 1 $43 | |
N013 ( 3, 4) [000026] -----+----- \--* HWINTRINSIC long ulong GetElement <l:$302, c:$303> | |
N011 ( 1, 1) [000022] -----+----- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 (last use) <l:$201, c:$241> | |
N012 ( 1, 2) [000025] -----+----- \--* CNS_INT int 1 $43 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Starting PHASE Assertion prop | |
*************** Finishing PHASE Assertion prop [no changes] | |
*************** Starting PHASE Optimize index checks | |
*************** Finishing PHASE Optimize index checks [no changes] | |
*************** Starting PHASE Optimize Induction Variables | |
*************** In optInductionVariables() | |
Skipping since this method has no natural loops | |
*************** Finishing PHASE Optimize Induction Variables [no changes] | |
*************** Starting PHASE VN-based dead store removal | |
*************** Finishing PHASE VN-based dead store removal [no changes] | |
*************** Starting PHASE VN based intrinsic expansion | |
*************** Finishing PHASE VN based intrinsic expansion [no changes] | |
*************** Starting PHASE Stress gtSplitTree | |
*************** Finishing PHASE Stress gtSplitTree [no changes] | |
*************** Starting PHASE Expand casts | |
*************** Finishing PHASE Expand casts [no changes] | |
*************** Starting PHASE Expand runtime lookups | |
*************** Finishing PHASE Expand runtime lookups [no changes] | |
*************** Starting PHASE Expand static init | |
Expanding static initialization for 'System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]', call: [000004] in BB01 | |
New Basic Block BB02 [0002] created. | |
setting likelihood of BB01 -> BB02 to 1 | |
New Basic Block BB03 [0003] created. | |
New Basic Block BB04 [0004] created. | |
MorphCopyBlock: | |
PrepareDst for [000030] have found a local var V02. | |
block store to morph: | |
N011 ( 7, 15) [000030] DA--G+----- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 d:1 $VN.Void | |
N010 ( 7, 15) [000001] IA--G+----- \--* IND simd16 <l:$200, c:$240> | |
N009 ( 4, 13) [000039] -A--------- \--* COMMA long $c1 | |
N007 ( 3, 12) [000037] DA--------- +--* STORE_LCL_VAR long V05 cse1 d:1 $VN.Void | |
N006 ( 3, 12) [000000] H----+----- | \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] $c1 | |
N008 ( 1, 1) [000038] ----------- \--* LCL_VAR long V05 cse1 u:1 $c1 | |
this requires a CopyBlock. | |
MorphCopyBlock (after): | |
N011 ( 7, 15) [000030] DA--G+----- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 d:1 $VN.Void | |
N010 ( 7, 15) [000001] IA--G+----- \--* IND simd16 <l:$200, c:$240> | |
N009 ( 4, 13) [000039] -A--------- \--* COMMA long $c1 | |
N007 ( 3, 12) [000037] DA--------- +--* STORE_LCL_VAR long V05 cse1 d:1 $VN.Void | |
N006 ( 3, 12) [000000] H----+----- | \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] $c1 | |
N008 ( 1, 1) [000038] ----------- \--* LCL_VAR long V05 cse1 u:1 $c1 | |
setting likelihood of BB04 -> BB02 to 1 | |
setting likelihood of BB03 -> BB02 to 1 | |
setting likelihood of BB03 -> BB04 to 0 | |
Compacting BB03 into BB01: | |
*************** In fgDebugCheckBBlist | |
*************** Before renumbering the basic blocks | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [???..???)-> BB02(1),BB04(0) ( cond ) i hascall | |
BB04 [0004] 1 BB01 0 [???..???)-> BB02(1) (always) rare internal | |
BB02 [0002] 2 BB01,BB04 1 [000..???) (return) i hascall | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table is empty | |
Renumber BB04 to BB02 | |
Renumber BB02 to BB03 | |
*************** After renumbering the basic blocks | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [???..???)-> BB03(1),BB02(0) ( cond ) i hascall | |
BB02 [0004] 1 BB01 0 [???..???)-> BB03(1) (always) rare internal | |
BB03 [0002] 2 BB01,BB02 1 [000..???) (return) i hascall | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table is empty | |
New BlockSet epoch 2, # of blocks (including unused BB00): 4, bitset array size: 1 (short) | |
*************** Finishing PHASE Expand static init | |
Trees after Expand static init | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [???..???)-> BB03(1),BB02(0) ( cond ) i hascall | |
BB02 [0004] 1 BB01 0 [???..???)-> BB03(1) (always) rare internal | |
BB03 [0002] 2 BB01,BB02 1 [000..???) (return) i hascall | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [???..???) -> BB03(1),BB02(0) (cond), preds={} succs={BB02,BB03} | |
***** BB01 [0000] | |
STMT00004 ( 0x000[E-] ... ??? ) | |
N007 ( 12, 22) [000049] ----GO----- * JTRUE void | |
N006 ( 10, 20) [000048] J---GO----- \--* EQ int | |
N004 ( 8, 17) [000046] ----GO----- +--* AND int | |
N002 ( 6, 14) [000044] V---GO----- | +--* IND int | |
N001 ( 3, 12) [000043] H---------- | | \--* CNS_INT(h) long 0xffff41308f10 global ptr | |
N003 ( 1, 2) [000045] ----------- | \--* CNS_INT int 1 | |
N005 ( 1, 2) [000047] ----------- \--* CNS_INT int 1 | |
------------ BB02 [0004] [???..???) -> BB03(1) (always), preds={BB01} succs={BB03} | |
***** BB02 [0004] | |
STMT00005 ( 0x000[E-] ... ??? ) | |
N002 ( 17, 15) [000004] H-CXG+----- * CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE $1c0 | |
N001 ( 3, 12) [000003] H----+----- arg0 in x0 \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] $c0 | |
------------ BB03 [0002] [000..???) (return), preds={BB01,BB02} succs={} | |
***** BB03 [0002] | |
STMT00002 ( 0x000[E-] ... ??? ) | |
N011 ( 11, 28) [000005] -A--G+----- * COMMA void $141 | |
N004 ( 4, 13) [000035] -A--G------ +--* COMMA byref $1c0 | |
N002 ( 3, 12) [000033] DA--G------ | +--* STORE_LCL_VAR byref V04 cse0 d:1 $VN.Void | |
N001 ( 3, 12) [000050] H---------- | | \--* CNS_INT(h) long 0xffbf30000748 static | |
N003 ( 1, 1) [000034] ----------- | \--* LCL_VAR byref V04 cse0 u:1 $1c0 | |
N010 ( 7, 15) [000030] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 d:1 $VN.Void | |
N009 ( 7, 15) [000001] IA--G+----- \--* IND simd16 <l:$200, c:$240> | |
N008 ( 4, 13) [000039] -A--------- \--* COMMA long $c1 | |
N006 ( 3, 12) [000037] DA--------- +--* STORE_LCL_VAR long V05 cse1 d:1 $VN.Void | |
N005 ( 3, 12) [000000] H----+----- | \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] $c1 | |
N007 ( 1, 1) [000038] ----------- \--* LCL_VAR long V05 cse1 u:1 $c1 | |
***** BB03 [0002] | |
STMT00003 ( 0x000[E-] ... ??? ) | |
N007 ( 5, 4) [000011] -A--G+----- * COMMA void $141 | |
N001 ( 1, 1) [000036] ----------- +--* LCL_VAR byref V04 cse0 u:1 $180 | |
N006 ( 4, 3) [000031] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 d:1 $VN.Void | |
N005 ( 4, 3) [000007] I---G+----- \--* IND simd16 <l:$201, c:$241> | |
N004 ( 3, 4) [000042] -------N--- \--* ADD long $c3 | |
N002 ( 1, 1) [000040] ----------- +--* LCL_VAR long V05 cse1 u:1 $c1 | |
N003 ( 1, 2) [000041] ----------- \--* CNS_INT long 32 | |
***** BB03 [0002] | |
STMT00001 ( 0x000[E-] ... ??? ) | |
N016 ( 22, 23) [000014] -----+----- * RETURN simd16 $VN.Void | |
N015 ( 21, 22) [000029] -----+----- \--* HWINTRINSIC simd16 ulong Insert <l:$340, c:$341> | |
N006 ( 9, 8) [000020] -----+----- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe <l:$202, c:$203> | |
N005 ( 8, 7) [000019] -----+----- | \--* MUL long <l:$284, c:$285> | |
N002 ( 2, 2) [000017] -----+----- | +--* HWINTRINSIC long ulong ToScalar <l:$280, c:$281> | |
N001 ( 1, 1) [000015] -----+----- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 <l:$200, c:$240> | |
N004 ( 2, 2) [000018] -----+----- | \--* HWINTRINSIC long ulong ToScalar <l:$282, c:$283> | |
N003 ( 1, 1) [000016] -----+----- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 <l:$201, c:$241> | |
N007 ( 1, 2) [000028] -----+-N--- +--* CNS_INT int 1 $43 | |
N014 ( 10, 11) [000027] -----+----- \--* MUL long <l:$286, c:$287> | |
N010 ( 3, 4) [000024] -----+----- +--* HWINTRINSIC long ulong GetElement <l:$300, c:$301> | |
N008 ( 1, 1) [000021] -----+----- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 (last use) <l:$200, c:$240> | |
N009 ( 1, 2) [000023] -----+----- | \--* CNS_INT int 1 $43 | |
N013 ( 3, 4) [000026] -----+----- \--* HWINTRINSIC long ulong GetElement <l:$302, c:$303> | |
N011 ( 1, 1) [000022] -----+----- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 (last use) <l:$201, c:$241> | |
N012 ( 1, 2) [000025] -----+----- \--* CNS_INT int 1 $43 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Starting PHASE Expand TLS access | |
Nothing to expand. | |
*************** Finishing PHASE Expand TLS access [no changes] | |
*************** Starting PHASE Insert GC Polls | |
*************** Finishing PHASE Insert GC Polls [no changes] | |
*************** Starting PHASE Create throw helper blocks | |
*************** Finishing PHASE Create throw helper blocks [no changes] | |
*************** Starting PHASE Optimize bools | |
*************** In optOptimizeBools() | |
optimized 0 BBJ_COND cases, 0 BBJ_RETURN cases in 1 passes | |
*************** Finishing PHASE Optimize bools | |
Trees after Optimize bools | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [???..???)-> BB03(1),BB02(0) ( cond ) i hascall | |
BB02 [0004] 1 BB01 0 [???..???)-> BB03(1) (always) rare internal | |
BB03 [0002] 2 BB01,BB02 1 [000..???) (return) i hascall | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [???..???) -> BB03(1),BB02(0) (cond), preds={} succs={BB02,BB03} | |
***** BB01 [0000] | |
STMT00004 ( 0x000[E-] ... ??? ) | |
N007 ( 12, 22) [000049] ----GO----- * JTRUE void | |
N006 ( 10, 20) [000048] J---GO----- \--* EQ int | |
N004 ( 8, 17) [000046] ----GO----- +--* AND int | |
N002 ( 6, 14) [000044] V---GO----- | +--* IND int | |
N001 ( 3, 12) [000043] H---------- | | \--* CNS_INT(h) long 0xffff41308f10 global ptr | |
N003 ( 1, 2) [000045] ----------- | \--* CNS_INT int 1 | |
N005 ( 1, 2) [000047] ----------- \--* CNS_INT int 1 | |
------------ BB02 [0004] [???..???) -> BB03(1) (always), preds={BB01} succs={BB03} | |
***** BB02 [0004] | |
STMT00005 ( 0x000[E-] ... ??? ) | |
N002 ( 17, 15) [000004] H-CXG+----- * CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE $1c0 | |
N001 ( 3, 12) [000003] H----+----- arg0 in x0 \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] $c0 | |
------------ BB03 [0002] [000..???) (return), preds={BB01,BB02} succs={} | |
***** BB03 [0002] | |
STMT00002 ( 0x000[E-] ... ??? ) | |
N011 ( 11, 28) [000005] -A--G+----- * COMMA void $141 | |
N004 ( 4, 13) [000035] -A--G------ +--* COMMA byref $1c0 | |
N002 ( 3, 12) [000033] DA--G------ | +--* STORE_LCL_VAR byref V04 cse0 d:1 $VN.Void | |
N001 ( 3, 12) [000050] H---------- | | \--* CNS_INT(h) long 0xffbf30000748 static | |
N003 ( 1, 1) [000034] ----------- | \--* LCL_VAR byref V04 cse0 u:1 $1c0 | |
N010 ( 7, 15) [000030] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 d:1 $VN.Void | |
N009 ( 7, 15) [000001] IA--G+----- \--* IND simd16 <l:$200, c:$240> | |
N008 ( 4, 13) [000039] -A--------- \--* COMMA long $c1 | |
N006 ( 3, 12) [000037] DA--------- +--* STORE_LCL_VAR long V05 cse1 d:1 $VN.Void | |
N005 ( 3, 12) [000000] H----+----- | \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] $c1 | |
N007 ( 1, 1) [000038] ----------- \--* LCL_VAR long V05 cse1 u:1 $c1 | |
***** BB03 [0002] | |
STMT00003 ( 0x000[E-] ... ??? ) | |
N007 ( 5, 4) [000011] -A--G+----- * COMMA void $141 | |
N001 ( 1, 1) [000036] ----------- +--* LCL_VAR byref V04 cse0 u:1 $180 | |
N006 ( 4, 3) [000031] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 d:1 $VN.Void | |
N005 ( 4, 3) [000007] I---G+----- \--* IND simd16 <l:$201, c:$241> | |
N004 ( 3, 4) [000042] -------N--- \--* ADD long $c3 | |
N002 ( 1, 1) [000040] ----------- +--* LCL_VAR long V05 cse1 u:1 $c1 | |
N003 ( 1, 2) [000041] ----------- \--* CNS_INT long 32 | |
***** BB03 [0002] | |
STMT00001 ( 0x000[E-] ... ??? ) | |
N016 ( 22, 23) [000014] -----+----- * RETURN simd16 $VN.Void | |
N015 ( 21, 22) [000029] -----+----- \--* HWINTRINSIC simd16 ulong Insert <l:$340, c:$341> | |
N006 ( 9, 8) [000020] -----+----- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe <l:$202, c:$203> | |
N005 ( 8, 7) [000019] -----+----- | \--* MUL long <l:$284, c:$285> | |
N002 ( 2, 2) [000017] -----+----- | +--* HWINTRINSIC long ulong ToScalar <l:$280, c:$281> | |
N001 ( 1, 1) [000015] -----+----- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 <l:$200, c:$240> | |
N004 ( 2, 2) [000018] -----+----- | \--* HWINTRINSIC long ulong ToScalar <l:$282, c:$283> | |
N003 ( 1, 1) [000016] -----+----- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 <l:$201, c:$241> | |
N007 ( 1, 2) [000028] -----+-N--- +--* CNS_INT int 1 $43 | |
N014 ( 10, 11) [000027] -----+----- \--* MUL long <l:$286, c:$287> | |
N010 ( 3, 4) [000024] -----+----- +--* HWINTRINSIC long ulong GetElement <l:$300, c:$301> | |
N008 ( 1, 1) [000021] -----+----- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 (last use) <l:$200, c:$240> | |
N009 ( 1, 2) [000023] -----+----- | \--* CNS_INT int 1 $43 | |
N013 ( 3, 4) [000026] -----+----- \--* HWINTRINSIC long ulong GetElement <l:$302, c:$303> | |
N011 ( 1, 1) [000022] -----+----- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 (last use) <l:$201, c:$241> | |
N012 ( 1, 2) [000025] -----+----- \--* CNS_INT int 1 $43 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Starting PHASE If conversion | |
*************** Finishing PHASE If conversion [no changes] | |
*************** Starting PHASE Optimize layout | |
*************** In fgUpdateFlowGraph() | |
Before updating the flow graph: | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [???..???)-> BB03(1),BB02(0) ( cond ) i hascall | |
BB02 [0004] 1 BB01 0 [???..???)-> BB03(1) (always) rare internal | |
BB03 [0002] 2 BB01,BB02 1 [000..???) (return) i hascall | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** In fgExpandRarelyRunBlocks() | |
*************** In fgDoReversePostOrderLayout() | |
Initial BasicBlocks | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [???..???)-> BB03(1),BB02(0) ( cond ) i hascall | |
BB02 [0004] 1 BB01 0 [???..???)-> BB03(1) (always) rare internal | |
BB03 [0002] 2 BB01,BB02 1 [000..???) (return) i hascall | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In fgMoveHotJumps() | |
Initial BasicBlocks | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [???..???)-> BB03(1),BB02(0) ( cond ) i hascall | |
BB02 [0004] 1 BB01 0 [???..???)-> BB03(1) (always) rare internal | |
BB03 [0002] 2 BB01,BB02 1 [000..???) (return) i hascall | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In fgMoveColdBlocks() | |
Initial BasicBlocks | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [???..???)-> BB03(1),BB02(0) ( cond ) i hascall | |
BB03 [0002] 2 BB01,BB02 1 [000..???) (return) i hascall | |
BB02 [0004] 1 BB01 0 [???..???)-> BB03(1) (always) rare internal | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Before renumbering the basic blocks | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [???..???)-> BB03(1),BB02(0) ( cond ) i hascall | |
BB03 [0002] 2 BB01,BB02 1 [000..???) (return) i hascall | |
BB02 [0004] 1 BB01 0 [???..???)-> BB03(1) (always) rare internal | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table is empty | |
Renumber BB03 to BB02 | |
Renumber BB02 to BB03 | |
*************** After renumbering the basic blocks | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [???..???)-> BB02(1),BB03(0) ( cond ) i hascall | |
BB02 [0002] 2 BB01,BB03 1 [000..???) (return) i hascall | |
BB03 [0004] 1 BB01 0 [???..???)-> BB02(1) (always) rare internal | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table is empty | |
New BlockSet epoch 3, # of blocks (including unused BB00): 4, bitset array size: 1 (short) | |
*************** In fgUpdateFlowGraph() | |
Before updating the flow graph: | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [???..???)-> BB02(1),BB03(0) ( cond ) i hascall | |
BB02 [0002] 2 BB01,BB03 1 [000..???) (return) i hascall | |
BB03 [0004] 1 BB01 0 [???..???)-> BB02(1) (always) rare internal | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Finishing PHASE Optimize layout | |
Trees after Optimize layout | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [???..???)-> BB02(1),BB03(0) ( cond ) i hascall | |
BB02 [0002] 2 BB01,BB03 1 [000..???) (return) i hascall | |
BB03 [0004] 1 BB01 0 [???..???)-> BB02(1) (always) rare internal | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [???..???) -> BB02(1),BB03(0) (cond), preds={} succs={BB03,BB02} | |
***** BB01 [0000] | |
STMT00004 ( 0x000[E-] ... ??? ) | |
N007 ( 12, 22) [000049] ----GO----- * JTRUE void | |
N006 ( 10, 20) [000048] J---GO----- \--* EQ int | |
N004 ( 8, 17) [000046] ----GO----- +--* AND int | |
N002 ( 6, 14) [000044] V---GO----- | +--* IND int | |
N001 ( 3, 12) [000043] H---------- | | \--* CNS_INT(h) long 0xffff41308f10 global ptr | |
N003 ( 1, 2) [000045] ----------- | \--* CNS_INT int 1 | |
N005 ( 1, 2) [000047] ----------- \--* CNS_INT int 1 | |
------------ BB02 [0002] [000..???) (return), preds={BB01,BB03} succs={} | |
***** BB02 [0002] | |
STMT00002 ( 0x000[E-] ... ??? ) | |
N011 ( 11, 28) [000005] -A--G+----- * COMMA void $141 | |
N004 ( 4, 13) [000035] -A--G------ +--* COMMA byref $1c0 | |
N002 ( 3, 12) [000033] DA--G------ | +--* STORE_LCL_VAR byref V04 cse0 d:1 $VN.Void | |
N001 ( 3, 12) [000050] H---------- | | \--* CNS_INT(h) long 0xffbf30000748 static | |
N003 ( 1, 1) [000034] ----------- | \--* LCL_VAR byref V04 cse0 u:1 $1c0 | |
N010 ( 7, 15) [000030] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 d:1 $VN.Void | |
N009 ( 7, 15) [000001] IA--G+----- \--* IND simd16 <l:$200, c:$240> | |
N008 ( 4, 13) [000039] -A--------- \--* COMMA long $c1 | |
N006 ( 3, 12) [000037] DA--------- +--* STORE_LCL_VAR long V05 cse1 d:1 $VN.Void | |
N005 ( 3, 12) [000000] H----+----- | \--* CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] $c1 | |
N007 ( 1, 1) [000038] ----------- \--* LCL_VAR long V05 cse1 u:1 $c1 | |
***** BB02 [0002] | |
STMT00003 ( 0x000[E-] ... ??? ) | |
N007 ( 5, 4) [000011] -A--G+----- * COMMA void $141 | |
N001 ( 1, 1) [000036] ----------- +--* LCL_VAR byref V04 cse0 u:1 $180 | |
N006 ( 4, 3) [000031] DA--G+----- \--* STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 d:1 $VN.Void | |
N005 ( 4, 3) [000007] I---G+----- \--* IND simd16 <l:$201, c:$241> | |
N004 ( 3, 4) [000042] -------N--- \--* ADD long $c3 | |
N002 ( 1, 1) [000040] ----------- +--* LCL_VAR long V05 cse1 u:1 $c1 | |
N003 ( 1, 2) [000041] ----------- \--* CNS_INT long 32 | |
***** BB02 [0002] | |
STMT00001 ( 0x000[E-] ... ??? ) | |
N016 ( 22, 23) [000014] -----+----- * RETURN simd16 $VN.Void | |
N015 ( 21, 22) [000029] -----+----- \--* HWINTRINSIC simd16 ulong Insert <l:$340, c:$341> | |
N006 ( 9, 8) [000020] -----+----- +--* HWINTRINSIC simd16 ulong CreateScalarUnsafe <l:$202, c:$203> | |
N005 ( 8, 7) [000019] -----+----- | \--* MUL long <l:$284, c:$285> | |
N002 ( 2, 2) [000017] -----+----- | +--* HWINTRINSIC long ulong ToScalar <l:$280, c:$281> | |
N001 ( 1, 1) [000015] -----+----- | | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 <l:$200, c:$240> | |
N004 ( 2, 2) [000018] -----+----- | \--* HWINTRINSIC long ulong ToScalar <l:$282, c:$283> | |
N003 ( 1, 1) [000016] -----+----- | \--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 <l:$201, c:$241> | |
N007 ( 1, 2) [000028] -----+-N--- +--* CNS_INT int 1 $43 | |
N014 ( 10, 11) [000027] -----+----- \--* MUL long <l:$286, c:$287> | |
N010 ( 3, 4) [000024] -----+----- +--* HWINTRINSIC long ulong GetElement <l:$300, c:$301> | |
N008 ( 1, 1) [000021] -----+----- | +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 (last use) <l:$200, c:$240> | |
N009 ( 1, 2) [000023] -----+----- | \--* CNS_INT int 1 $43 | |
N013 ( 3, 4) [000026] -----+----- \--* HWINTRINSIC long ulong GetElement <l:$302, c:$303> | |
N011 ( 1, 1) [000022] -----+----- +--* LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 (last use) <l:$201, c:$241> | |
N012 ( 1, 2) [000025] -----+----- \--* CNS_INT int 1 $43 | |
------------ BB03 [0004] [???..???) -> BB02(1) (always), preds={BB01} succs={BB02} | |
***** BB03 [0004] | |
STMT00005 ( 0x000[E-] ... ??? ) | |
N002 ( 17, 15) [000004] H-CXG+----- * CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE $1c0 | |
N001 ( 3, 12) [000003] H----+----- arg0 in x0 \--* CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] $c0 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Starting PHASE Recognize Switch | |
*************** Finishing PHASE Recognize Switch [no changes] | |
*************** Starting PHASE Determine first cold block | |
No procedure splitting will be done for this method | |
*************** Finishing PHASE Determine first cold block [no changes] | |
*************** Starting PHASE Rationalize IR | |
*************** Finishing PHASE Rationalize IR | |
Trees after Rationalize IR | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [???..???)-> BB02(1),BB03(0) ( cond ) i LIR hascall | |
BB02 [0002] 2 BB01,BB03 1 [000..???) (return) i LIR hascall | |
BB03 [0004] 1 BB01 0 [???..???)-> BB02(1) (always) LIR rare internal | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [???..???) -> BB02(1),BB03(0) (cond), preds={} succs={BB03,BB02} | |
[000051] ----------- IL_OFFSET void INLRT @ 0x000[E-] | |
N001 ( 3, 12) [000043] H---------- t43 = CNS_INT(h) long 0xffff41308f10 global ptr | |
/--* t43 long | |
N002 ( 6, 14) [000044] V---GO----- t44 = * IND int | |
N003 ( 1, 2) [000045] ----------- t45 = CNS_INT int 1 | |
/--* t44 int | |
+--* t45 int | |
N004 ( 8, 17) [000046] ----GO----- t46 = * AND int | |
N005 ( 1, 2) [000047] ----------- t47 = CNS_INT int 1 | |
/--* t46 int | |
+--* t47 int | |
N006 ( 10, 20) [000048] J---GO----- t48 = * EQ int | |
/--* t48 int | |
N007 ( 12, 22) [000049] ----GO----- * JTRUE void | |
------------ BB02 [0002] [000..???) (return), preds={BB01,BB03} succs={} | |
[000052] ----------- IL_OFFSET void INLRT @ 0x000[E-] | |
N001 ( 3, 12) [000050] H---------- t50 = CNS_INT(h) long 0xffbf30000748 static | |
/--* t50 long | |
N002 ( 3, 12) [000033] DA--G------ * STORE_LCL_VAR byref V04 cse0 d:1 $VN.Void | |
N005 ( 3, 12) [000000] H----+----- t0 = CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] $c1 | |
/--* t0 long | |
N006 ( 3, 12) [000037] DA--------- * STORE_LCL_VAR long V05 cse1 d:1 $VN.Void | |
N007 ( 1, 1) [000038] ----------- t38 = LCL_VAR long V05 cse1 u:1 $c1 | |
/--* t38 long | |
N009 ( 7, 15) [000001] IA--G+----- t1 = * IND simd16 <l:$200, c:$240> | |
/--* t1 simd16 | |
N010 ( 7, 15) [000030] DA--G+----- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 d:1 $VN.Void | |
[000053] ----------- IL_OFFSET void INLRT @ 0x000[E-] | |
N002 ( 1, 1) [000040] ----------- t40 = LCL_VAR long V05 cse1 u:1 $c1 | |
N003 ( 1, 2) [000041] ----------- t41 = CNS_INT long 32 | |
/--* t40 long | |
+--* t41 long | |
N004 ( 3, 4) [000042] -------N--- t42 = * ADD long $c3 | |
/--* t42 long | |
N005 ( 4, 3) [000007] I---G+----- t7 = * IND simd16 <l:$201, c:$241> | |
/--* t7 simd16 | |
N006 ( 4, 3) [000031] DA--G+----- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 d:1 $VN.Void | |
[000054] ----------- IL_OFFSET void INLRT @ 0x000[E-] | |
N001 ( 1, 1) [000015] -----+----- t15 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 <l:$200, c:$240> | |
/--* t15 simd16 | |
N002 ( 2, 2) [000017] -----+----- t17 = * HWINTRINSIC long ulong ToScalar <l:$280, c:$281> | |
N003 ( 1, 1) [000016] -----+----- t16 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 <l:$201, c:$241> | |
/--* t16 simd16 | |
N004 ( 2, 2) [000018] -----+----- t18 = * HWINTRINSIC long ulong ToScalar <l:$282, c:$283> | |
/--* t17 long | |
+--* t18 long | |
N005 ( 8, 7) [000019] -----+----- t19 = * MUL long <l:$284, c:$285> | |
/--* t19 long | |
N006 ( 9, 8) [000020] -----+----- t20 = * HWINTRINSIC simd16 ulong CreateScalarUnsafe <l:$202, c:$203> | |
N007 ( 1, 2) [000028] -----+-N--- t28 = CNS_INT int 1 $43 | |
N008 ( 1, 1) [000021] -----+----- t21 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 (last use) <l:$200, c:$240> | |
N009 ( 1, 2) [000023] -----+----- t23 = CNS_INT int 1 $43 | |
/--* t21 simd16 | |
+--* t23 int | |
N010 ( 3, 4) [000024] -----+----- t24 = * HWINTRINSIC long ulong GetElement <l:$300, c:$301> | |
N011 ( 1, 1) [000022] -----+----- t22 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 (last use) <l:$201, c:$241> | |
N012 ( 1, 2) [000025] -----+----- t25 = CNS_INT int 1 $43 | |
/--* t22 simd16 | |
+--* t25 int | |
N013 ( 3, 4) [000026] -----+----- t26 = * HWINTRINSIC long ulong GetElement <l:$302, c:$303> | |
/--* t24 long | |
+--* t26 long | |
N014 ( 10, 11) [000027] -----+----- t27 = * MUL long <l:$286, c:$287> | |
/--* t20 simd16 | |
+--* t28 int | |
+--* t27 long | |
N015 ( 21, 22) [000029] -----+----- t29 = * HWINTRINSIC simd16 ulong Insert <l:$340, c:$341> | |
/--* t29 simd16 | |
N016 ( 22, 23) [000014] -----+----- * RETURN simd16 $VN.Void | |
------------ BB03 [0004] [???..???) -> BB02(1) (always), preds={BB01} succs={BB02} | |
[000055] ----------- IL_OFFSET void INLRT @ 0x000[E-] | |
N001 ( 3, 12) [000003] H----+----- t3 = CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] $c0 | |
/--* t3 long arg0 in x0 | |
N002 ( 17, 15) [000004] H-CXG+----- u4 = * CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE $1c0 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Starting PHASE Lowering nodeinfo | |
..could not turn [000044] or [000045] into a def of flags, bailing | |
Lowering JTRUE: | |
N001 ( 3, 12) [000043] H---------- t43 = CNS_INT(h) long 0xffff41308f10 global ptr | |
/--* t43 long | |
N002 ( 6, 14) [000044] V---GO----- t44 = * IND int | |
N003 ( 1, 2) [000045] -c--------- t45 = CNS_INT int 1 | |
/--* t44 int | |
+--* t45 int | |
N006 ( 10, 20) [000048] J---GO----- t48 = * TEST_NE int | |
/--* t48 int | |
N007 ( 12, 22) [000049] ----GO----- * JTRUE void | |
Lowered to JTEST | |
lowering store lcl var/field (before): | |
N001 ( 3, 12) [000050] H---------- t50 = CNS_INT(h) long 0xffbf30000748 static | |
/--* t50 long | |
N002 ( 3, 12) [000033] DA--G------ * STORE_LCL_VAR byref V04 cse0 d:1 $VN.Void | |
lowering store lcl var/field (after): | |
N001 ( 3, 12) [000050] H---------- t50 = CNS_INT(h) long 0xffbf30000748 static | |
/--* t50 long | |
N002 ( 3, 12) [000033] DA--G------ * STORE_LCL_VAR byref V04 cse0 d:1 $VN.Void | |
lowering store lcl var/field (before): | |
N005 ( 3, 12) [000000] H----+----- t0 = CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] $c1 | |
/--* t0 long | |
N006 ( 3, 12) [000037] DA--------- * STORE_LCL_VAR long V05 cse1 d:1 $VN.Void | |
lowering store lcl var/field (after): | |
N005 ( 3, 12) [000000] H----+----- t0 = CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] $c1 | |
/--* t0 long | |
N006 ( 3, 12) [000037] DA--------- * STORE_LCL_VAR long V05 cse1 d:1 $VN.Void | |
lowering store lcl var/field (before): | |
N007 ( 1, 1) [000038] ----------- t38 = LCL_VAR long V05 cse1 u:1 $c1 | |
/--* t38 long | |
N009 ( 7, 15) [000001] IA--G+----- t1 = * IND simd16 <l:$200, c:$240> | |
/--* t1 simd16 | |
N010 ( 7, 15) [000030] DA--G+----- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 d:1 $VN.Void | |
lowering store lcl var/field (after): | |
N007 ( 1, 1) [000038] ----------- t38 = LCL_VAR long V05 cse1 u:1 $c1 | |
/--* t38 long | |
N009 ( 7, 15) [000001] IA--G+----- t1 = * IND simd16 <l:$200, c:$240> | |
/--* t1 simd16 | |
N010 ( 7, 15) [000030] DA--G+----- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 d:1 $VN.Void | |
Notify VM instruction set (ArmBase_Arm64) must be supported. | |
Addressing mode: | |
Base | |
N002 ( 1, 1) [000040] ----------- * LCL_VAR long V05 cse1 u:1 $c1 | |
+ 32 | |
Removing unused node: | |
N003 ( 1, 2) [000041] -c--------- * CNS_INT long 32 | |
New addressing mode node: | |
N004 ( 3, 4) [000042] -------N--- * LEA(b+32) long | |
[000007] and [000001] are indirs off the same base with offsets +032 and +000 | |
..but at non-adjacent offset | |
lowering store lcl var/field (before): | |
N002 ( 1, 1) [000040] ----------- t40 = LCL_VAR long V05 cse1 u:1 $c1 | |
/--* t40 long | |
N004 ( 3, 4) [000042] -c-----N--- t42 = * LEA(b+32) long | |
/--* t42 long | |
N005 ( 4, 3) [000007] I---G+----- t7 = * IND simd16 <l:$201, c:$241> | |
/--* t7 simd16 | |
N006 ( 4, 3) [000031] DA--G+----- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 d:1 $VN.Void | |
lowering store lcl var/field (after): | |
N002 ( 1, 1) [000040] ----------- t40 = LCL_VAR long V05 cse1 u:1 $c1 | |
/--* t40 long | |
N004 ( 3, 4) [000042] -c-----N--- t42 = * LEA(b+32) long | |
/--* t42 long | |
N005 ( 4, 3) [000007] I---G+----- t7 = * IND simd16 <l:$201, c:$241> | |
/--* t7 simd16 | |
N006 ( 4, 3) [000031] DA--G+----- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 d:1 $VN.Void | |
lowering return node | |
N016 ( 22, 23) [000014] -----+----- * RETURN simd16 $VN.Void | |
============ | |
lowering call (before): | |
N001 ( 3, 12) [000003] H----+----- t3 = CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] $c0 | |
/--* t3 long arg0 in x0 | |
N002 ( 17, 15) [000004] H-CXG+----- u4 = * CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE $1c0 | |
args: | |
====== | |
late: | |
====== | |
lowering arg : N001 ( 3, 12) [000003] H----+----- * CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] $c0 | |
new node is : [000058] ----------- * PUTARG_REG long REG x0 | |
lowering call (after): | |
N001 ( 3, 12) [000003] H----+----- t3 = CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] $c0 | |
/--* t3 long | |
[000058] ----------- t58 = * PUTARG_REG long REG x0 | |
/--* t58 long arg0 in x0 | |
N002 ( 17, 15) [000004] H-CXG+----- u4 = * CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE $1c0 | |
Lower has completed modifying nodes. | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [???..???)-> BB02(1),BB03(0) ( cond ) i LIR hascall | |
BB02 [0002] 2 BB01,BB03 1 [000..???) (return) i LIR hascall | |
BB03 [0004] 1 BB01 0 [???..???)-> BB02(1) (always) LIR rare internal | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [???..???) -> BB02(1),BB03(0) (cond), preds={} succs={BB03,BB02} | |
[000051] ----------- IL_OFFSET void INLRT @ 0x000[E-] | |
N001 ( 3, 12) [000043] H---------- t43 = CNS_INT(h) long 0xffff41308f10 global ptr | |
/--* t43 long | |
N002 ( 6, 14) [000044] V---GO----- t44 = * IND int | |
N003 ( 1, 2) [000045] -c--------- t45 = CNS_INT int 1 | |
/--* t44 int | |
+--* t45 int | |
N007 ( 12, 22) [000049] ----GO----- * JTEST void | |
------------ BB02 [0002] [000..???) (return), preds={BB01,BB03} succs={} | |
[000052] ----------- IL_OFFSET void INLRT @ 0x000[E-] | |
N001 ( 3, 12) [000050] H---------- t50 = CNS_INT(h) long 0xffbf30000748 static | |
/--* t50 long | |
N002 ( 3, 12) [000033] DA--G------ * STORE_LCL_VAR byref V04 cse0 d:1 $VN.Void | |
N005 ( 3, 12) [000000] H----+----- t0 = CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] $c1 | |
/--* t0 long | |
N006 ( 3, 12) [000037] DA--------- * STORE_LCL_VAR long V05 cse1 d:1 $VN.Void | |
N007 ( 1, 1) [000038] ----------- t38 = LCL_VAR long V05 cse1 u:1 $c1 | |
/--* t38 long | |
N009 ( 7, 15) [000001] IA--G+----- t1 = * IND simd16 <l:$200, c:$240> | |
/--* t1 simd16 | |
N010 ( 7, 15) [000030] DA--G+----- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 d:1 $VN.Void | |
[000053] ----------- IL_OFFSET void INLRT @ 0x000[E-] | |
N002 ( 1, 1) [000040] ----------- t40 = LCL_VAR long V05 cse1 u:1 $c1 | |
/--* t40 long | |
N004 ( 3, 4) [000042] -c-----N--- t42 = * LEA(b+32) long | |
/--* t42 long | |
N005 ( 4, 3) [000007] I---G+----- t7 = * IND simd16 <l:$201, c:$241> | |
/--* t7 simd16 | |
N006 ( 4, 3) [000031] DA--G+----- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 d:1 $VN.Void | |
[000054] ----------- IL_OFFSET void INLRT @ 0x000[E-] | |
N001 ( 1, 1) [000015] -----+----- t15 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 <l:$200, c:$240> | |
/--* t15 simd16 | |
N002 ( 2, 2) [000017] -----+----- t17 = * HWINTRINSIC long ulong ToScalar <l:$280, c:$281> | |
N003 ( 1, 1) [000016] -----+----- t16 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 <l:$201, c:$241> | |
/--* t16 simd16 | |
N004 ( 2, 2) [000018] -----+----- t18 = * HWINTRINSIC long ulong ToScalar <l:$282, c:$283> | |
/--* t17 long | |
+--* t18 long | |
N005 ( 8, 7) [000019] -----+----- t19 = * MUL long <l:$284, c:$285> | |
/--* t19 long | |
N006 ( 9, 8) [000020] -----+----- t20 = * HWINTRINSIC simd16 ulong CreateScalarUnsafe <l:$202, c:$203> | |
N007 ( 1, 2) [000028] -c---+-N--- t28 = CNS_INT int 1 $43 | |
N008 ( 1, 1) [000021] -----+----- t21 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 (last use) <l:$200, c:$240> | |
N009 ( 1, 2) [000023] -c---+----- t23 = CNS_INT int 1 $43 | |
/--* t21 simd16 | |
+--* t23 int | |
N010 ( 3, 4) [000024] -----+----- t24 = * HWINTRINSIC long ulong GetElement <l:$300, c:$301> | |
N011 ( 1, 1) [000022] -----+----- t22 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 (last use) <l:$201, c:$241> | |
N012 ( 1, 2) [000025] -c---+----- t25 = CNS_INT int 1 $43 | |
/--* t22 simd16 | |
+--* t25 int | |
N013 ( 3, 4) [000026] -----+----- t26 = * HWINTRINSIC long ulong GetElement <l:$302, c:$303> | |
/--* t24 long | |
+--* t26 long | |
N014 ( 10, 11) [000027] -----+----- t27 = * MUL long <l:$286, c:$287> | |
/--* t20 simd16 | |
+--* t28 int | |
+--* t27 long | |
N015 ( 21, 22) [000029] -----+----- t29 = * HWINTRINSIC simd16 ulong Insert <l:$340, c:$341> | |
/--* t29 simd16 | |
N016 ( 22, 23) [000014] -----+----- * RETURN simd16 $VN.Void | |
------------ BB03 [0004] [???..???) -> BB02(1) (always), preds={BB01} succs={BB02} | |
[000055] ----------- IL_OFFSET void INLRT @ 0x000[E-] | |
N001 ( 3, 12) [000003] H----+----- t3 = CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] $c0 | |
/--* t3 long | |
[000058] ----------- t58 = * PUTARG_REG long REG x0 | |
/--* t58 long arg0 in x0 | |
N002 ( 17, 15) [000004] H-CXG+----- u4 = * CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE $1c0 | |
------------------------------------------------------------------------------------------------------------------- | |
*** lvaComputeRefCounts *** | |
*** lvaComputeRefCounts -- explicit counts *** | |
New refCnts for V04: refCnt = 1, refCntWtd = 1 | |
New refCnts for V05: refCnt = 1, refCntWtd = 1 | |
New refCnts for V05: refCnt = 2, refCntWtd = 2 | |
New refCnts for V02: refCnt = 1, refCntWtd = 2 | |
New refCnts for V05: refCnt = 3, refCntWtd = 3 | |
New refCnts for V03: refCnt = 1, refCntWtd = 2 | |
New refCnts for V02: refCnt = 2, refCntWtd = 4 | |
New refCnts for V03: refCnt = 2, refCntWtd = 4 | |
New refCnts for V02: refCnt = 3, refCntWtd = 6 | |
New refCnts for V03: refCnt = 3, refCntWtd = 6 | |
*** lvaComputeRefCounts -- implicit counts *** | |
*************** In fgLocalVarLiveness() | |
; Initial local variable assignments | |
; | |
; V00 this ref this class-hnd single-def <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]> | |
; V01 OutArgs struct <0> do-not-enreg[XS] addr-exposed "OutgoingArgSpace" | |
; V02 tmp1 simd16 HFA(simd16) "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ulong]> | |
; V03 tmp2 simd16 HFA(simd16) "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ulong]> | |
; V04 cse0 byref "CSE #02: aggressive" | |
; V05 cse1 long "CSE #03: aggressive" | |
In fgLocalVarLivenessInit | |
Local V01 should not be enregistered because: struct size does not match reg size | |
Tracked variable (4 out of 6) table: | |
V05 cse1 [ long]: refCnt = 3, refCntWtd = 3 | |
V04 cse0 [ byref]: refCnt = 1, refCntWtd = 1 | |
V02 tmp1 [simd16]: refCnt = 3, refCntWtd = 6 | |
V03 tmp2 [simd16]: refCnt = 3, refCntWtd = 6 | |
*************** In fgPerBlockLocalVarLiveness() | |
BB01 USE(0)={} + ByrefExposed + GcHeap | |
DEF(0)={} + ByrefExposed + GcHeap | |
BB02 USE(0)={ } + ByrefExposed + GcHeap | |
DEF(4)={V05 V04 V02 V03} | |
BB03 USE(0)={} + ByrefExposed + GcHeap | |
DEF(0)={} + ByrefExposed* + GcHeap* | |
** Memory liveness computed, GcHeap states and ByrefExposed states match | |
*************** In fgInterBlockLocalVarLiveness() | |
BB liveness after fgLiveVarAnalysis(): | |
BB01 IN (0)={} + ByrefExposed + GcHeap | |
OUT(0)={} + ByrefExposed + GcHeap | |
BB02 IN (0)={} + ByrefExposed + GcHeap | |
OUT(0)={} | |
BB03 IN (0)={} + ByrefExposed + GcHeap | |
OUT(0)={} + ByrefExposed + GcHeap | |
Removing dead local store: | |
N002 ( 3, 12) [000033] DA--G------ * STORE_LCL_VAR byref V04 cse0 d:1 (last use) $VN.Void | |
Removing dead node: | |
N001 ( 3, 12) [000050] H---------- * CNS_INT(h) long 0xffbf30000748 static | |
*************** In fgUpdateFlowGraph() | |
Before updating the flow graph: | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [???..???)-> BB02(1),BB03(0) ( cond ) i LIR hascall | |
BB02 [0002] 2 BB01,BB03 1 [000..???) (return) i LIR hascall | |
BB03 [0004] 1 BB01 0 [???..???)-> BB02(1) (always) LIR rare internal | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*** lvaComputeRefCounts *** | |
*** lvaComputeRefCounts -- explicit counts *** | |
New refCnts for V05: refCnt = 1, refCntWtd = 1 | |
New refCnts for V05: refCnt = 2, refCntWtd = 2 | |
New refCnts for V02: refCnt = 1, refCntWtd = 2 | |
New refCnts for V05: refCnt = 3, refCntWtd = 3 | |
New refCnts for V03: refCnt = 1, refCntWtd = 2 | |
New refCnts for V02: refCnt = 2, refCntWtd = 4 | |
New refCnts for V03: refCnt = 2, refCntWtd = 4 | |
New refCnts for V02: refCnt = 3, refCntWtd = 6 | |
New refCnts for V03: refCnt = 3, refCntWtd = 6 | |
*** lvaComputeRefCounts -- implicit counts *** | |
*************** Finishing PHASE Lowering nodeinfo | |
Trees after Lowering nodeinfo | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [???..???)-> BB02(1),BB03(0) ( cond ) i LIR hascall | |
BB02 [0002] 2 BB01,BB03 1 [000..???) (return) i LIR hascall | |
BB03 [0004] 1 BB01 0 [???..???)-> BB02(1) (always) LIR rare internal | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [???..???) -> BB02(1),BB03(0) (cond), preds={} succs={BB03,BB02} | |
[000051] ----------- IL_OFFSET void INLRT @ 0x000[E-] | |
N001 ( 3, 12) [000043] H---------- t43 = CNS_INT(h) long 0xffff41308f10 global ptr | |
/--* t43 long | |
N002 ( 6, 14) [000044] V---GO----- t44 = * IND int | |
N003 ( 1, 2) [000045] -c--------- t45 = CNS_INT int 1 | |
/--* t44 int | |
+--* t45 int | |
N007 ( 12, 22) [000049] ----GO----- * JTEST void | |
------------ BB02 [0002] [000..???) (return), preds={BB01,BB03} succs={} | |
[000052] ----------- IL_OFFSET void INLRT @ 0x000[E-] | |
N005 ( 3, 12) [000000] H----+----- t0 = CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] $c1 | |
/--* t0 long | |
N006 ( 3, 12) [000037] DA--------- * STORE_LCL_VAR long V05 cse1 d:1 $VN.Void | |
N007 ( 1, 1) [000038] ----------- t38 = LCL_VAR long V05 cse1 u:1 $c1 | |
/--* t38 long | |
N009 ( 7, 15) [000001] IA--G+----- t1 = * IND simd16 <l:$200, c:$240> | |
/--* t1 simd16 | |
N010 ( 7, 15) [000030] DA--G+----- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 d:1 $VN.Void | |
[000053] ----------- IL_OFFSET void INLRT @ 0x000[E-] | |
N002 ( 1, 1) [000040] ----------- t40 = LCL_VAR long V05 cse1 u:1 (last use) $c1 | |
/--* t40 long | |
N004 ( 3, 4) [000042] -c-----N--- t42 = * LEA(b+32) long | |
/--* t42 long | |
N005 ( 4, 3) [000007] I---G+----- t7 = * IND simd16 <l:$201, c:$241> | |
/--* t7 simd16 | |
N006 ( 4, 3) [000031] DA--G+----- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 d:1 $VN.Void | |
[000054] ----------- IL_OFFSET void INLRT @ 0x000[E-] | |
N001 ( 1, 1) [000015] -----+----- t15 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 <l:$200, c:$240> | |
/--* t15 simd16 | |
N002 ( 2, 2) [000017] -----+----- t17 = * HWINTRINSIC long ulong ToScalar <l:$280, c:$281> | |
N003 ( 1, 1) [000016] -----+----- t16 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 <l:$201, c:$241> | |
/--* t16 simd16 | |
N004 ( 2, 2) [000018] -----+----- t18 = * HWINTRINSIC long ulong ToScalar <l:$282, c:$283> | |
/--* t17 long | |
+--* t18 long | |
N005 ( 8, 7) [000019] -----+----- t19 = * MUL long <l:$284, c:$285> | |
/--* t19 long | |
N006 ( 9, 8) [000020] -----+----- t20 = * HWINTRINSIC simd16 ulong CreateScalarUnsafe <l:$202, c:$203> | |
N007 ( 1, 2) [000028] -c---+-N--- t28 = CNS_INT int 1 $43 | |
N008 ( 1, 1) [000021] -----+----- t21 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 (last use) <l:$200, c:$240> | |
N009 ( 1, 2) [000023] -c---+----- t23 = CNS_INT int 1 $43 | |
/--* t21 simd16 | |
+--* t23 int | |
N010 ( 3, 4) [000024] -----+----- t24 = * HWINTRINSIC long ulong GetElement <l:$300, c:$301> | |
N011 ( 1, 1) [000022] -----+----- t22 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 (last use) <l:$201, c:$241> | |
N012 ( 1, 2) [000025] -c---+----- t25 = CNS_INT int 1 $43 | |
/--* t22 simd16 | |
+--* t25 int | |
N013 ( 3, 4) [000026] -----+----- t26 = * HWINTRINSIC long ulong GetElement <l:$302, c:$303> | |
/--* t24 long | |
+--* t26 long | |
N014 ( 10, 11) [000027] -----+----- t27 = * MUL long <l:$286, c:$287> | |
/--* t20 simd16 | |
+--* t28 int | |
+--* t27 long | |
N015 ( 21, 22) [000029] -----+----- t29 = * HWINTRINSIC simd16 ulong Insert <l:$340, c:$341> | |
/--* t29 simd16 | |
N016 ( 22, 23) [000014] -----+----- * RETURN simd16 $VN.Void | |
------------ BB03 [0004] [???..???) -> BB02(1) (always), preds={BB01} succs={BB02} | |
[000055] ----------- IL_OFFSET void INLRT @ 0x000[E-] | |
N001 ( 3, 12) [000003] H----+----- t3 = CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] $c0 | |
/--* t3 long | |
[000058] ----------- t58 = * PUTARG_REG long REG x0 | |
/--* t58 long arg0 in x0 | |
N002 ( 17, 15) [000004] H-CXG+----- u4 = * CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE $1c0 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Starting PHASE Calculate stack level slots | |
*************** Finishing PHASE Calculate stack level slots [no changes] | |
*************** Starting PHASE Linear scan register alloc | |
Clearing modified regs. | |
buildIntervals ======== | |
----------------- | |
LIVENESS: | |
----------------- | |
BB01 | |
use: {} | |
def: {} | |
in: {} | |
out: {} | |
BB02 | |
use: {} | |
def: {V02 V03 V04 V05} | |
in: {} | |
out: {} | |
BB03 | |
use: {} | |
def: {} | |
in: {} | |
out: {} | |
Interval 0: simd16 RefPositions {} physReg:NA Preferences=[allFloat] Aversions=[] | |
Interval 0: (V02) simd16 RefPositions {} physReg:NA Preferences=[allFloat] Aversions=[] | |
Interval 1: simd16 RefPositions {} physReg:NA Preferences=[allFloat] Aversions=[] | |
Interval 1: (V03) simd16 RefPositions {} physReg:NA Preferences=[allFloat] Aversions=[] | |
Interval 2: long RefPositions {} physReg:NA Preferences=[x0-xip1 x19-x28] Aversions=[] | |
Interval 2: (V05) long RefPositions {} physReg:NA Preferences=[x0-xip1 x19-x28] Aversions=[] | |
Interval 3: double RefPositions {} physReg:NA Preferences=[allFloat] Aversions=[] | |
Interval 4: double RefPositions {} physReg:NA Preferences=[allFloat] Aversions=[] | |
FP callee save candidate vars: None | |
floatVarCount = 0; hasLoops = false, singleExit = true | |
; Decided to create an EBP based frame for ETW stackwalking (Temporary ARM64 force frame pointer) | |
*************** In lvaAssignFrameOffsets(REGALLOC_FRAME_LAYOUT) | |
Setting genSaveFpLrWithAllCalleeSavedRegisters to false | |
Pad V00 this, size=8, stkOffs=-0x97, pad=7 | |
Assign V00 this, size=8, stkOffs=-0x9f | |
Pad V02 tmp1, size=16, stkOffs=-0xae, pad=15 | |
Assign V02 tmp1, size=16, stkOffs=-0xbe | |
Pad V03 tmp2, size=16, stkOffs=-0xcd, pad=15 | |
Assign V03 tmp2, size=16, stkOffs=-0xdd | |
Pad V05 cse1, size=8, stkOffs=-0xe4, pad=7 | |
Assign V05 cse1, size=8, stkOffs=-0xec | |
Pad V04 cse0, size=8, stkOffs=-0xf3, pad=7 | |
Assign V04 cse0, size=8, stkOffs=-0xfb | |
--- delta bump 304 for FP frame | |
--- virtual stack offset to actual stack offset delta is 304 | |
-- V00 was -159, now 145 | |
-- V01 was 0, now 304 | |
-- V02 was -190, now 114 | |
-- V03 was -221, now 83 | |
-- V04 was -251, now 53 | |
-- V05 was -236, now 68 | |
compRsvdRegCheck | |
frame size = 304 | |
compArgSize = 8 | |
Returning true (ARM64) | |
Reserved REG_OPT_RSVD (xip1) due to large frame | |
TUPLE STYLE DUMP BEFORE LSRA | |
Start LSRA Block Sequence: | |
Current block: BB01 | |
Succ block: BB03, Criteria: weight, Worklist: [BB03 ] | |
Succ block: BB02, Criteria: weight, Worklist: [BB02 BB03 ] | |
Current block: BB02 | |
Current block: BB03 | |
Final LSRA Block Sequence: | |
BB01 ( 1 ) critical-out | |
BB02 ( 1 ) critical-in | |
BB03 ( 0 ) | |
BB01 [0000] [???..???) -> BB02(1),BB03(0) (cond), preds={} succs={BB03,BB02} | |
===== | |
N000. IL_OFFSET INLRT @ 0x000[E-] | |
N001. t43 = CNS_INT(h) 0xffff41308f10 global ptr | |
N002. t44 = IND ; t43 | |
N003. CNS_INT 1 | |
N007. JTEST ; t44 | |
BB02 [0002] [000..???) (return), preds={BB01,BB03} succs={} | |
===== | |
N000. IL_OFFSET INLRT @ 0x000[E-] | |
N005. t0 = CNS_INT(h) 0xffbe99a53888 static Fseq[<unknown field>] | |
N006. V05(t37); t0 | |
N007. V05(t38) | |
N009. t1 = IND ; t38 | |
N010. V02(t30); t1 | |
N000. IL_OFFSET INLRT @ 0x000[E-] | |
N002. V05(t40*) | |
N004. t42 = LEA(b+32); t40* | |
N005. t7 = IND ; t42 | |
N006. V03(t31); t7 | |
N000. IL_OFFSET INLRT @ 0x000[E-] | |
N001. V02(t15) | |
N002. t17 = HWINTRINSIC; t15 | |
N003. V03(t16) | |
N004. t18 = HWINTRINSIC; t16 | |
N005. t19 = MUL ; t17,t18 | |
N006. t20 = HWINTRINSIC; t19 | |
N007. CNS_INT 1 | |
N008. V02(t21*) | |
N009. CNS_INT 1 | |
N010. t24 = HWINTRINSIC; t21* | |
N011. V03(t22*) | |
N012. CNS_INT 1 | |
N013. t26 = HWINTRINSIC; t22* | |
N014. t27 = MUL ; t24,t26 | |
N015. t29 = HWINTRINSIC; t20,t27 | |
N016. RETURN ; t29 | |
BB03 [0004] [???..???) -> BB02(1) (always), preds={BB01} succs={BB02} | |
===== | |
N000. IL_OFFSET INLRT @ 0x000[E-] | |
N001. t3 = CNS_INT(h) 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
N000. t58 = PUTARG_REG; t3 | |
N002. CALL help; t58 | |
buildIntervals second part ======== | |
Int arg V00 in reg x0 | |
NEW BLOCK BB01 | |
<RefPosition #0 @1 RefTypeBB BB01 regmask=[] minReg=1 wt=100.00> | |
DefList: { } | |
N003 (???,???) [000051] ----------- * IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
DefList: { } | |
N005 ( 3, 12) [000043] H---------- * CNS_INT(h) long 0xffff41308f10 global ptr REG NA | |
Interval 5: long RefPositions {} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
<RefPosition #1 @6 RefTypeDef <Ivl:5> CNS_INT BB01 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
DefList: { N005.t43. CNS_INT } | |
N007 ( 6, 14) [000044] V---GO----- * IND int REG NA | |
<RefPosition #2 @7 RefTypeUse <Ivl:5> BB01 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
Interval 6: int RefPositions {} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
<RefPosition #3 @8 RefTypeDef <Ivl:6> IND BB01 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
DefList: { N007.t44. IND } | |
N009 ( 1, 2) [000045] -c--------- * CNS_INT int 1 REG NA | |
Contained | |
DefList: { N007.t44. IND } | |
N011 ( 12, 22) [000049] ----GO----- * JTEST void REG NA | |
<RefPosition #4 @11 RefTypeUse <Ivl:6> BB01 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
CHECKING LAST USES for BB01, liveout={} | |
============================== | |
use: {} | |
def: {} | |
NEW BLOCK BB02 | |
Setting BB01 as the predecessor for determining incoming variable registers of BB02 | |
<RefPosition #5 @13 RefTypeBB BB02 regmask=[] minReg=1 wt=100.00> | |
DefList: { } | |
N015 (???,???) [000052] ----------- * IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
DefList: { } | |
N017 ( 3, 12) [000000] H----+----- * CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] REG NA $c1 | |
Interval 7: long RefPositions {} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
<RefPosition #6 @18 RefTypeDef <Ivl:7> CNS_INT BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
DefList: { N017.t0. CNS_INT } | |
N019 ( 3, 12) [000037] DA--------- * STORE_LCL_VAR long V05 cse1 d:1 NA REG NA $VN.Void | |
<RefPosition #7 @19 RefTypeUse <Ivl:7> BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
Assigning related <V05/L2> to <I7> | |
<RefPosition #8 @20 RefTypeDef <Ivl:2 V05> STORE_LCL_VAR BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=300.00> | |
DefList: { } | |
N021 ( 1, 1) [000038] ----------- * LCL_VAR long V05 cse1 u:1 NA REG NA $c1 | |
DefList: { } | |
N023 ( 7, 15) [000001] IA--G+----- * IND simd16 REG NA <l:$200, c:$240> | |
<RefPosition #9 @23 RefTypeUse <Ivl:2 V05> LCL_VAR BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=300.00> | |
Interval 8: simd16 RefPositions {} physReg:NA Preferences=[allFloat] Aversions=[] | |
<RefPosition #10 @24 RefTypeDef <Ivl:8> IND BB02 regmask=[allFloat] minReg=1 wt=400.00> | |
DefList: { N023.t1. IND } | |
N025 ( 7, 15) [000030] DA--G+----- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 d:1 NA REG NA $VN.Void | |
<RefPosition #11 @25 RefTypeUse <Ivl:8> BB02 regmask=[allFloat] minReg=1 last wt=100.00> | |
Assigning related <V02/L0> to <I8> | |
<RefPosition #12 @26 RefTypeDef <Ivl:0 V02> STORE_LCL_VAR BB02 regmask=[allFloat] minReg=1 last wt=600.00> | |
DefList: { } | |
N027 (???,???) [000053] ----------- * IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
DefList: { } | |
N029 ( 1, 1) [000040] ----------- * LCL_VAR long V05 cse1 u:1 NA (last use) REG NA $c1 | |
DefList: { } | |
N031 ( 3, 4) [000042] -c-----N--- * LEA(b+32) long REG NA | |
Contained | |
DefList: { } | |
N033 ( 4, 3) [000007] I---G+----- * IND simd16 REG NA <l:$201, c:$241> | |
<RefPosition #13 @33 RefTypeUse <Ivl:2 V05> LCL_VAR BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=300.00> | |
Interval 9: simd16 RefPositions {} physReg:NA Preferences=[allFloat] Aversions=[] | |
<RefPosition #14 @34 RefTypeDef <Ivl:9> IND BB02 regmask=[allFloat] minReg=1 wt=400.00> | |
DefList: { N033.t7. IND } | |
N035 ( 4, 3) [000031] DA--G+----- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 d:1 NA REG NA $VN.Void | |
<RefPosition #15 @35 RefTypeUse <Ivl:9> BB02 regmask=[allFloat] minReg=1 last wt=100.00> | |
Assigning related <V03/L1> to <I9> | |
<RefPosition #16 @36 RefTypeDef <Ivl:1 V03> STORE_LCL_VAR BB02 regmask=[allFloat] minReg=1 last wt=600.00> | |
DefList: { } | |
N037 (???,???) [000054] ----------- * IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
DefList: { } | |
N039 ( 1, 1) [000015] -----+----- * LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 NA REG NA <l:$200, c:$240> | |
DefList: { } | |
N041 ( 2, 2) [000017] -----+----- * HWINTRINSIC long ulong ToScalar REG NA <l:$280, c:$281> | |
<RefPosition #17 @41 RefTypeUse <Ivl:0 V02> LCL_VAR BB02 regmask=[allFloat] minReg=1 last wt=600.00> | |
Interval 10: long RefPositions {} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
<RefPosition #18 @42 RefTypeDef <Ivl:10> HWINTRINSIC BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
DefList: { N041.t17. HWINTRINSIC } | |
N043 ( 1, 1) [000016] -----+----- * LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 NA REG NA <l:$201, c:$241> | |
DefList: { N041.t17. HWINTRINSIC } | |
N045 ( 2, 2) [000018] -----+----- * HWINTRINSIC long ulong ToScalar REG NA <l:$282, c:$283> | |
<RefPosition #19 @45 RefTypeUse <Ivl:1 V03> LCL_VAR BB02 regmask=[allFloat] minReg=1 last wt=600.00> | |
Interval 11: long RefPositions {} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
<RefPosition #20 @46 RefTypeDef <Ivl:11> HWINTRINSIC BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
DefList: { N041.t17. HWINTRINSIC; N045.t18. HWINTRINSIC } | |
N047 ( 8, 7) [000019] -----+----- * MUL long REG NA <l:$284, c:$285> | |
<RefPosition #21 @47 RefTypeUse <Ivl:10> BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
<RefPosition #22 @47 RefTypeUse <Ivl:11> BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
Interval 12: long RefPositions {} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
<RefPosition #23 @48 RefTypeDef <Ivl:12> MUL BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
DefList: { N047.t19. MUL } | |
N049 ( 9, 8) [000020] -----+----- * HWINTRINSIC simd16 ulong CreateScalarUnsafe REG NA <l:$202, c:$203> | |
<RefPosition #24 @49 RefTypeUse <Ivl:12> BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
Interval 13: simd16 RefPositions {} physReg:NA Preferences=[allFloat] Aversions=[] | |
<RefPosition #25 @50 RefTypeDef <Ivl:13> HWINTRINSIC BB02 regmask=[allFloat] minReg=1 wt=400.00> | |
DefList: { N049.t20. HWINTRINSIC } | |
N051 ( 1, 2) [000028] -c---+-N--- * CNS_INT int 1 REG NA $43 | |
Contained | |
DefList: { N049.t20. HWINTRINSIC } | |
N053 ( 1, 1) [000021] -----+----- * LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 NA (last use) REG NA <l:$200, c:$240> | |
DefList: { N049.t20. HWINTRINSIC } | |
N055 ( 1, 2) [000023] -c---+----- * CNS_INT int 1 REG NA $43 | |
Contained | |
DefList: { N049.t20. HWINTRINSIC } | |
N057 ( 3, 4) [000024] -----+----- * HWINTRINSIC long ulong GetElement REG NA <l:$300, c:$301> | |
<RefPosition #26 @57 RefTypeUse <Ivl:0 V02> LCL_VAR BB02 regmask=[allFloat] minReg=1 last wt=600.00> | |
Interval 14: long RefPositions {} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
<RefPosition #27 @58 RefTypeDef <Ivl:14> HWINTRINSIC BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
DefList: { N049.t20. HWINTRINSIC; N057.t24. HWINTRINSIC } | |
N059 ( 1, 1) [000022] -----+----- * LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 NA (last use) REG NA <l:$201, c:$241> | |
DefList: { N049.t20. HWINTRINSIC; N057.t24. HWINTRINSIC } | |
N061 ( 1, 2) [000025] -c---+----- * CNS_INT int 1 REG NA $43 | |
Contained | |
DefList: { N049.t20. HWINTRINSIC; N057.t24. HWINTRINSIC } | |
N063 ( 3, 4) [000026] -----+----- * HWINTRINSIC long ulong GetElement REG NA <l:$302, c:$303> | |
<RefPosition #28 @63 RefTypeUse <Ivl:1 V03> LCL_VAR BB02 regmask=[allFloat] minReg=1 last wt=600.00> | |
Interval 15: long RefPositions {} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
<RefPosition #29 @64 RefTypeDef <Ivl:15> HWINTRINSIC BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
DefList: { N049.t20. HWINTRINSIC; N057.t24. HWINTRINSIC; N063.t26. HWINTRINSIC } | |
N065 ( 10, 11) [000027] -----+----- * MUL long REG NA <l:$286, c:$287> | |
<RefPosition #30 @65 RefTypeUse <Ivl:14> BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
<RefPosition #31 @65 RefTypeUse <Ivl:15> BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
Interval 16: long RefPositions {} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
<RefPosition #32 @66 RefTypeDef <Ivl:16> MUL BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
DefList: { N049.t20. HWINTRINSIC; N065.t27. MUL } | |
N067 ( 21, 22) [000029] -----+----- * HWINTRINSIC simd16 ulong Insert REG NA <l:$340, c:$341> | |
<RefPosition #33 @67 RefTypeUse <Ivl:13> BB02 regmask=[allFloat] minReg=1 last wt=100.00> | |
<RefPosition #34 @67 RefTypeUse <Ivl:16> BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
Interval 17: simd16 RefPositions {} physReg:NA Preferences=[allFloat] Aversions=[] | |
<RefPosition #35 @68 RefTypeDef <Ivl:17> HWINTRINSIC BB02 regmask=[allFloat] minReg=1 wt=400.00> | |
Assigning related <I17> to <I13> | |
DefList: { N067.t29. HWINTRINSIC } | |
N069 ( 22, 23) [000014] -----+----- * RETURN simd16 REG NA $VN.Void | |
<RefPosition #36 @69 RefTypeFixedReg <Reg:d0 > BB02 regmask=[d0] minReg=1 wt=100.00> | |
<RefPosition #37 @69 RefTypeUse <Ivl:17> BB02 regmask=[d0] minReg=1 last fixed wt=100.00> | |
CHECKING LAST USES for BB02, liveout={} | |
============================== | |
use: {} | |
def: {V02 V03 V04 V05} | |
NEW BLOCK BB03 | |
Setting BB01 as the predecessor for determining incoming variable registers of BB03 | |
<RefPosition #38 @71 RefTypeBB BB03 regmask=[] minReg=1 wt=0.00> | |
firstColdLoc = 73 | |
DefList: { } | |
N073 (???,???) [000055] ----------- * IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
DefList: { } | |
N075 ( 3, 12) [000003] H----+----- * CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] REG NA $c0 | |
Interval 18: long RefPositions {} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
<RefPosition #39 @76 RefTypeDef <Ivl:18> CNS_INT BB03 regmask=[x0-xip0 x19-x28] minReg=1 wt=0.00> | |
DefList: { N075.t3. CNS_INT } | |
N077 (???,???) [000058] ----------- * PUTARG_REG long REG x0 | |
<RefPosition #40 @77 RefTypeFixedReg <Reg:x0 > BB03 regmask=[x0] minReg=1 wt=0.00> | |
<RefPosition #41 @77 RefTypeUse <Ivl:18> BB03 regmask=[x0] minReg=1 last fixed wt=0.00> | |
Interval 19: long RefPositions {} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
<RefPosition #42 @78 RefTypeFixedReg <Reg:x0 > BB03 regmask=[x0] minReg=1 wt=0.00> | |
<RefPosition #43 @78 RefTypeDef <Ivl:19> PUTARG_REG BB03 regmask=[x0] minReg=1 fixed wt=0.00> | |
DefList: { N077.t58. PUTARG_REG } | |
N079 ( 17, 15) [000004] H-CXG+----- * CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE REG NA $1c0 | |
<RefPosition #44 @79 RefTypeFixedReg <Reg:x0 > BB03 regmask=[x0] minReg=1 wt=0.00> | |
<RefPosition #45 @79 RefTypeUse <Ivl:19> BB03 regmask=[x0] minReg=1 last fixed wt=0.00> | |
<RefPosition #46 @80 RefTypeKill BB03 regmask=[x0-xip1 lr d0-d7 d16-d31] minReg=1> | |
Interval 20: byref RefPositions {} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
<RefPosition #47 @80 RefTypeFixedReg <Reg:x0 > BB03 regmask=[x0] minReg=1 wt=0.00> | |
<RefPosition #48 @80 RefTypeDef <Ivl:20> CALL BB03 regmask=[x0] minReg=1 fixed wt=0.00> | |
CHECKING LAST USES for BB03, liveout={} | |
============================== | |
use: {} | |
def: {} | |
<RefPosition #49 @81 RefTypeBB BB03 regmask=[] minReg=1 wt=0.00> | |
Linear scan intervals BEFORE VALIDATING INTERVALS: | |
Interval 0: (V02) simd16 RefPositions {#12@26 #17@41 #26@57} physReg:NA Preferences=[allFloat] Aversions=[] | |
Interval 1: (V03) simd16 RefPositions {#16@36 #19@45 #28@63} physReg:NA Preferences=[allFloat] Aversions=[] | |
Interval 2: (V05) long RefPositions {#8@20 #9@23 #13@33} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 3: (U02) double RefPositions {} physReg:NA Preferences=[allFloat] Aversions=[] RelatedInterval <V02/L0> | |
Interval 4: (U03) double RefPositions {} physReg:NA Preferences=[allFloat] Aversions=[] RelatedInterval <V03/L1> | |
Interval 5: long (constant) RefPositions {#1@6 #2@7} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 6: int RefPositions {#3@8 #4@11} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 7: long (constant) RefPositions {#6@18 #7@19} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] RelatedInterval <V05/L2> | |
Interval 8: simd16 RefPositions {#10@24 #11@25} physReg:NA Preferences=[allFloat] Aversions=[] RelatedInterval <V02/L0> | |
Interval 9: simd16 RefPositions {#14@34 #15@35} physReg:NA Preferences=[allFloat] Aversions=[] RelatedInterval <V03/L1> | |
Interval 10: long RefPositions {#18@42 #21@47} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 11: long RefPositions {#20@46 #22@47} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 12: long RefPositions {#23@48 #24@49} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 13: simd16 RefPositions {#25@50 #33@67} physReg:NA Preferences=[allFloat] Aversions=[] RelatedInterval <I17> | |
Interval 14: long RefPositions {#27@58 #30@65} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 15: long RefPositions {#29@64 #31@65} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 16: long RefPositions {#32@66 #34@67} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 17: simd16 (interfering uses) RefPositions {#35@68 #37@69} physReg:NA Preferences=[d0] Aversions=[] | |
Interval 18: long (constant) RefPositions {#39@76 #41@77} physReg:NA Preferences=[x0] Aversions=[] | |
Interval 19: long RefPositions {#43@78 #45@79} physReg:NA Preferences=[x0] Aversions=[] | |
Interval 20: byref RefPositions {#48@80} physReg:NA Preferences=[x0] Aversions=[] | |
------------ | |
REFPOSITIONS BEFORE VALIDATING INTERVALS: | |
------------ | |
<RefPosition #0 @1 RefTypeBB BB01 regmask=[] minReg=1 wt=100.00> | |
<RefPosition #1 @6 RefTypeDef <Ivl:5> CNS_INT BB01 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
<RefPosition #2 @7 RefTypeUse <Ivl:5> BB01 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
<RefPosition #3 @8 RefTypeDef <Ivl:6> IND BB01 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
<RefPosition #4 @11 RefTypeUse <Ivl:6> BB01 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
<RefPosition #5 @13 RefTypeBB BB02 regmask=[] minReg=1 wt=100.00> | |
<RefPosition #6 @18 RefTypeDef <Ivl:7> CNS_INT BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
<RefPosition #7 @19 RefTypeUse <Ivl:7> BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
<RefPosition #8 @20 RefTypeDef <Ivl:2 V05> STORE_LCL_VAR BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=300.00> | |
<RefPosition #9 @23 RefTypeUse <Ivl:2 V05> LCL_VAR BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=300.00> | |
<RefPosition #10 @24 RefTypeDef <Ivl:8> IND BB02 regmask=[allFloat] minReg=1 wt=400.00> | |
<RefPosition #11 @25 RefTypeUse <Ivl:8> BB02 regmask=[allFloat] minReg=1 last wt=100.00> | |
<RefPosition #12 @26 RefTypeDef <Ivl:0 V02> STORE_LCL_VAR BB02 regmask=[allFloat] minReg=1 wt=600.00> | |
<RefPosition #13 @33 RefTypeUse <Ivl:2 V05> LCL_VAR BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=300.00> | |
<RefPosition #14 @34 RefTypeDef <Ivl:9> IND BB02 regmask=[allFloat] minReg=1 wt=400.00> | |
<RefPosition #15 @35 RefTypeUse <Ivl:9> BB02 regmask=[allFloat] minReg=1 last wt=100.00> | |
<RefPosition #16 @36 RefTypeDef <Ivl:1 V03> STORE_LCL_VAR BB02 regmask=[allFloat] minReg=1 wt=600.00> | |
<RefPosition #17 @41 RefTypeUse <Ivl:0 V02> LCL_VAR BB02 regmask=[allFloat] minReg=1 wt=600.00> | |
<RefPosition #18 @42 RefTypeDef <Ivl:10> HWINTRINSIC BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
<RefPosition #19 @45 RefTypeUse <Ivl:1 V03> LCL_VAR BB02 regmask=[allFloat] minReg=1 wt=600.00> | |
<RefPosition #20 @46 RefTypeDef <Ivl:11> HWINTRINSIC BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
<RefPosition #21 @47 RefTypeUse <Ivl:10> BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
<RefPosition #22 @47 RefTypeUse <Ivl:11> BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
<RefPosition #23 @48 RefTypeDef <Ivl:12> MUL BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
<RefPosition #24 @49 RefTypeUse <Ivl:12> BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
<RefPosition #25 @50 RefTypeDef <Ivl:13> HWINTRINSIC BB02 regmask=[allFloat] minReg=1 wt=400.00> | |
<RefPosition #26 @57 RefTypeUse <Ivl:0 V02> LCL_VAR BB02 regmask=[allFloat] minReg=1 last wt=600.00> | |
<RefPosition #27 @58 RefTypeDef <Ivl:14> HWINTRINSIC BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
<RefPosition #28 @63 RefTypeUse <Ivl:1 V03> LCL_VAR BB02 regmask=[allFloat] minReg=1 last wt=600.00> | |
<RefPosition #29 @64 RefTypeDef <Ivl:15> HWINTRINSIC BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
<RefPosition #30 @65 RefTypeUse <Ivl:14> BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
<RefPosition #31 @65 RefTypeUse <Ivl:15> BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
<RefPosition #32 @66 RefTypeDef <Ivl:16> MUL BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
<RefPosition #33 @67 RefTypeUse <Ivl:13> BB02 regmask=[allFloat] minReg=1 last wt=100.00> | |
<RefPosition #34 @67 RefTypeUse <Ivl:16> BB02 regmask=[x0-xip0 x19-x28] minReg=1 last delay wt=100.00> | |
<RefPosition #35 @68 RefTypeDef <Ivl:17> HWINTRINSIC BB02 regmask=[allFloat] minReg=1 wt=400.00> | |
<RefPosition #36 @69 RefTypeFixedReg <Reg:d0 > BB02 regmask=[d0] minReg=1 wt=100.00> | |
<RefPosition #37 @69 RefTypeUse <Ivl:17> BB02 regmask=[d0] minReg=1 last fixed wt=100.00> | |
<RefPosition #38 @71 RefTypeBB BB03 regmask=[] minReg=1 wt=0.00> | |
<RefPosition #39 @76 RefTypeDef <Ivl:18> CNS_INT BB03 regmask=[x0] minReg=1 wt=0.00> | |
<RefPosition #40 @77 RefTypeFixedReg <Reg:x0 > BB03 regmask=[x0] minReg=1 wt=0.00> | |
<RefPosition #41 @77 RefTypeUse <Ivl:18> BB03 regmask=[x0] minReg=1 last fixed wt=0.00> | |
<RefPosition #42 @78 RefTypeFixedReg <Reg:x0 > BB03 regmask=[x0] minReg=1 wt=0.00> | |
<RefPosition #43 @78 RefTypeDef <Ivl:19> PUTARG_REG BB03 regmask=[x0] minReg=1 fixed wt=0.00> | |
<RefPosition #44 @79 RefTypeFixedReg <Reg:x0 > BB03 regmask=[x0] minReg=1 wt=0.00> | |
<RefPosition #45 @79 RefTypeUse <Ivl:19> BB03 regmask=[x0] minReg=1 last fixed wt=0.00> | |
<RefPosition #46 @80 RefTypeKill BB03 regmask=[x0-xip1 lr d0-d7 d16-d31 p0-p15] minReg=1> | |
<RefPosition #47 @80 RefTypeFixedReg <Reg:x0 > BB03 regmask=[x0] minReg=1 wt=0.00> | |
<RefPosition #48 @80 RefTypeDef <Ivl:20> CALL BB03 regmask=[x0] minReg=1 last fixed local wt=0.00> | |
<RefPosition #49 @81 RefTypeBB BB03 regmask=[] minReg=1 wt=0.00> | |
------------ | |
REFPOSITIONS DURING VALIDATE INTERVALS (RefPositions per interval) | |
------------ | |
----------------- | |
<RefPosition #8 @20 RefTypeDef <Ivl:2 V05> STORE_LCL_VAR BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=300.00> | |
<RefPosition #9 @23 RefTypeUse <Ivl:2 V05> LCL_VAR BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=300.00> | |
<RefPosition #13 @33 RefTypeUse <Ivl:2 V05> LCL_VAR BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=300.00> | |
----------------- | |
<RefPosition #12 @26 RefTypeDef <Ivl:0 V02> STORE_LCL_VAR BB02 regmask=[allFloat] minReg=1 wt=600.00> | |
<RefPosition #17 @41 RefTypeUse <Ivl:0 V02> LCL_VAR BB02 regmask=[allFloat] minReg=1 wt=600.00> | |
<RefPosition #26 @57 RefTypeUse <Ivl:0 V02> LCL_VAR BB02 regmask=[allFloat] minReg=1 last wt=600.00> | |
----------------- | |
<RefPosition #16 @36 RefTypeDef <Ivl:1 V03> STORE_LCL_VAR BB02 regmask=[allFloat] minReg=1 wt=600.00> | |
<RefPosition #19 @45 RefTypeUse <Ivl:1 V03> LCL_VAR BB02 regmask=[allFloat] minReg=1 wt=600.00> | |
<RefPosition #28 @63 RefTypeUse <Ivl:1 V03> LCL_VAR BB02 regmask=[allFloat] minReg=1 last wt=600.00> | |
TUPLE STYLE DUMP WITH REF POSITIONS | |
Incoming Parameters: | |
BB01 [0000] [???..???) -> BB02(1),BB03(0) (cond), preds={} succs={BB03,BB02} | |
===== | |
N003. IL_OFFSET INLRT @ 0x000[E-] | |
N005. CNS_INT(h) 0xffff41308f10 global ptr | |
Def:<I5>(#1) | |
N007. IND | |
Use:<I5>(#2) * | |
Def:<I6>(#3) | |
N009. CNS_INT 1 | |
N011. JTEST | |
Use:<I6>(#4) * | |
BB02 [0002] [000..???) (return), preds={BB01,BB03} succs={} | |
===== | |
N015. IL_OFFSET INLRT @ 0x000[E-] | |
N017. CNS_INT(h) 0xffbe99a53888 static Fseq[<unknown field>] | |
Def:<I7>(#6) Pref:<V05/L2> | |
N019. V05(L2) | |
Use:<I7>(#7) * | |
Def:<V05/L2>(#8) | |
N021. V05(L2) | |
N023. IND | |
Use:<V05/L2>(#9) | |
Def:<I8>(#10) Pref:<V02/L0> | |
N025. V02(L0) | |
Use:<I8>(#11) * | |
Def:<V02/L0>(#12) | |
N027. IL_OFFSET INLRT @ 0x000[E-] | |
N029. V05(L2) | |
N031. LEA(b+32) | |
N033. IND | |
Use:<V05/L2>(#13) * | |
Def:<I9>(#14) Pref:<V03/L1> | |
N035. V03(L1) | |
Use:<I9>(#15) * | |
Def:<V03/L1>(#16) | |
N037. IL_OFFSET INLRT @ 0x000[E-] | |
N039. V02(L0) | |
N041. HWINTRINSIC | |
Use:<V02/L0>(#17) | |
Def:<I10>(#18) | |
N043. V03(L1) | |
N045. HWINTRINSIC | |
Use:<V03/L1>(#19) | |
Def:<I11>(#20) | |
N047. MUL | |
Use:<I10>(#21) * | |
Use:<I11>(#22) * | |
Def:<I12>(#23) | |
N049. HWINTRINSIC | |
Use:<I12>(#24) * | |
Def:<I13>(#25) Pref:<I17> | |
N051. CNS_INT 1 | |
N053. V02(L0) | |
N055. CNS_INT 1 | |
N057. HWINTRINSIC | |
Use:<V02/L0>(#26) * | |
Def:<I14>(#27) | |
N059. V03(L1) | |
N061. CNS_INT 1 | |
N063. HWINTRINSIC | |
Use:<V03/L1>(#28) * | |
Def:<I15>(#29) | |
N065. MUL | |
Use:<I14>(#30) * | |
Use:<I15>(#31) * | |
Def:<I16>(#32) | |
N067. HWINTRINSIC | |
Use:<I13>(#33) * | |
Use:<I16>(#34) * | |
Def:<I17>(#35) | |
N069. RETURN | |
Use:<I17>(#37) Fixed:d0(#36) * | |
BB03 [0004] [???..???) -> BB02(1) (always), preds={BB01} succs={BB02} | |
===== | |
N073. IL_OFFSET INLRT @ 0x000[E-] | |
N075. CNS_INT(h) 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
Def:<I18>(#39) | |
N077. PUTARG_REG | |
Use:<I18>(#41) Fixed:x0(#40) * | |
Def:<I19>(#43) x0 | |
N079. CALL help | |
Use:<I19>(#45) Fixed:x0(#44) * | |
Kill: [x0-xip1 lr d0-d7 d16-d31 p0-p15] | |
Def:<I20>(#48) x0 LocalDefUse * | |
Linear scan intervals after buildIntervals: | |
Interval 0: (V02) simd16 RefPositions {#12@26 #17@41 #26@57} physReg:NA Preferences=[allFloat] Aversions=[] | |
Interval 1: (V03) simd16 RefPositions {#16@36 #19@45 #28@63} physReg:NA Preferences=[allFloat] Aversions=[] | |
Interval 2: (V05) long RefPositions {#8@20 #9@23 #13@33} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 3: (U02) double RefPositions {} physReg:NA Preferences=[allFloat] Aversions=[] RelatedInterval <V02/L0> | |
Interval 4: (U03) double RefPositions {} physReg:NA Preferences=[allFloat] Aversions=[] RelatedInterval <V03/L1> | |
Interval 5: long (constant) RefPositions {#1@6 #2@7} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 6: int RefPositions {#3@8 #4@11} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 7: long (constant) RefPositions {#6@18 #7@19} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] RelatedInterval <V05/L2> | |
Interval 8: simd16 RefPositions {#10@24 #11@25} physReg:NA Preferences=[allFloat] Aversions=[] RelatedInterval <V02/L0> | |
Interval 9: simd16 RefPositions {#14@34 #15@35} physReg:NA Preferences=[allFloat] Aversions=[] RelatedInterval <V03/L1> | |
Interval 10: long RefPositions {#18@42 #21@47} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 11: long RefPositions {#20@46 #22@47} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 12: long RefPositions {#23@48 #24@49} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 13: simd16 RefPositions {#25@50 #33@67} physReg:NA Preferences=[allFloat] Aversions=[] RelatedInterval <I17> | |
Interval 14: long RefPositions {#27@58 #30@65} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 15: long RefPositions {#29@64 #31@65} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 16: long RefPositions {#32@66 #34@67} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 17: simd16 (interfering uses) RefPositions {#35@68 #37@69} physReg:NA Preferences=[d0] Aversions=[] | |
Interval 18: long (constant) RefPositions {#39@76 #41@77} physReg:NA Preferences=[x0] Aversions=[] | |
Interval 19: long RefPositions {#43@78 #45@79} physReg:NA Preferences=[x0] Aversions=[] | |
Interval 20: byref RefPositions {#48@80} physReg:NA Preferences=[x0] Aversions=[] | |
*************** In LinearScan::allocateRegisters() | |
Linear scan intervals before allocateRegisters: | |
Interval 0: (V02) simd16 RefPositions {#12@26 #17@41 #26@57} physReg:NA Preferences=[allFloat] Aversions=[] | |
Interval 1: (V03) simd16 RefPositions {#16@36 #19@45 #28@63} physReg:NA Preferences=[allFloat] Aversions=[] | |
Interval 2: (V05) long RefPositions {#8@20 #9@23 #13@33} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 3: (U02) double RefPositions {} physReg:NA Preferences=[allFloat] Aversions=[] RelatedInterval <V02/L0> | |
Interval 4: (U03) double RefPositions {} physReg:NA Preferences=[allFloat] Aversions=[] RelatedInterval <V03/L1> | |
Interval 5: long (constant) RefPositions {#1@6 #2@7} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 6: int RefPositions {#3@8 #4@11} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 7: long (constant) RefPositions {#6@18 #7@19} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] RelatedInterval <V05/L2> | |
Interval 8: simd16 RefPositions {#10@24 #11@25} physReg:NA Preferences=[allFloat] Aversions=[] RelatedInterval <V02/L0> | |
Interval 9: simd16 RefPositions {#14@34 #15@35} physReg:NA Preferences=[allFloat] Aversions=[] RelatedInterval <V03/L1> | |
Interval 10: long RefPositions {#18@42 #21@47} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 11: long RefPositions {#20@46 #22@47} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 12: long RefPositions {#23@48 #24@49} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 13: simd16 RefPositions {#25@50 #33@67} physReg:NA Preferences=[allFloat] Aversions=[] RelatedInterval <I17> | |
Interval 14: long RefPositions {#27@58 #30@65} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 15: long RefPositions {#29@64 #31@65} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 16: long RefPositions {#32@66 #34@67} physReg:NA Preferences=[x0-xip0 x19-x28] Aversions=[] | |
Interval 17: simd16 (interfering uses) RefPositions {#35@68 #37@69} physReg:NA Preferences=[d0] Aversions=[] | |
Interval 18: long (constant) RefPositions {#39@76 #41@77} physReg:NA Preferences=[x0] Aversions=[] | |
Interval 19: long RefPositions {#43@78 #45@79} physReg:NA Preferences=[x0] Aversions=[] | |
Interval 20: byref RefPositions {#48@80} physReg:NA Preferences=[x0] Aversions=[] | |
------------ | |
REFPOSITIONS BEFORE ALLOCATION: | |
------------ | |
<RefPosition #0 @1 RefTypeBB BB01 regmask=[] minReg=1 wt=100.00> | |
<RefPosition #1 @6 RefTypeDef <Ivl:5> CNS_INT BB01 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
<RefPosition #2 @7 RefTypeUse <Ivl:5> BB01 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
<RefPosition #3 @8 RefTypeDef <Ivl:6> IND BB01 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
<RefPosition #4 @11 RefTypeUse <Ivl:6> BB01 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
<RefPosition #5 @13 RefTypeBB BB02 regmask=[] minReg=1 wt=100.00> | |
<RefPosition #6 @18 RefTypeDef <Ivl:7> CNS_INT BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
<RefPosition #7 @19 RefTypeUse <Ivl:7> BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
<RefPosition #8 @20 RefTypeDef <Ivl:2 V05> STORE_LCL_VAR BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=300.00> | |
<RefPosition #9 @23 RefTypeUse <Ivl:2 V05> LCL_VAR BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=300.00> | |
<RefPosition #10 @24 RefTypeDef <Ivl:8> IND BB02 regmask=[allFloat] minReg=1 wt=400.00> | |
<RefPosition #11 @25 RefTypeUse <Ivl:8> BB02 regmask=[allFloat] minReg=1 last wt=100.00> | |
<RefPosition #12 @26 RefTypeDef <Ivl:0 V02> STORE_LCL_VAR BB02 regmask=[allFloat] minReg=1 wt=600.00> | |
<RefPosition #13 @33 RefTypeUse <Ivl:2 V05> LCL_VAR BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=300.00> | |
<RefPosition #14 @34 RefTypeDef <Ivl:9> IND BB02 regmask=[allFloat] minReg=1 wt=400.00> | |
<RefPosition #15 @35 RefTypeUse <Ivl:9> BB02 regmask=[allFloat] minReg=1 last wt=100.00> | |
<RefPosition #16 @36 RefTypeDef <Ivl:1 V03> STORE_LCL_VAR BB02 regmask=[allFloat] minReg=1 wt=600.00> | |
<RefPosition #17 @41 RefTypeUse <Ivl:0 V02> LCL_VAR BB02 regmask=[allFloat] minReg=1 wt=600.00> | |
<RefPosition #18 @42 RefTypeDef <Ivl:10> HWINTRINSIC BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
<RefPosition #19 @45 RefTypeUse <Ivl:1 V03> LCL_VAR BB02 regmask=[allFloat] minReg=1 wt=600.00> | |
<RefPosition #20 @46 RefTypeDef <Ivl:11> HWINTRINSIC BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
<RefPosition #21 @47 RefTypeUse <Ivl:10> BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
<RefPosition #22 @47 RefTypeUse <Ivl:11> BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
<RefPosition #23 @48 RefTypeDef <Ivl:12> MUL BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
<RefPosition #24 @49 RefTypeUse <Ivl:12> BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
<RefPosition #25 @50 RefTypeDef <Ivl:13> HWINTRINSIC BB02 regmask=[allFloat] minReg=1 wt=400.00> | |
<RefPosition #26 @57 RefTypeUse <Ivl:0 V02> LCL_VAR BB02 regmask=[allFloat] minReg=1 last wt=600.00> | |
<RefPosition #27 @58 RefTypeDef <Ivl:14> HWINTRINSIC BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
<RefPosition #28 @63 RefTypeUse <Ivl:1 V03> LCL_VAR BB02 regmask=[allFloat] minReg=1 last wt=600.00> | |
<RefPosition #29 @64 RefTypeDef <Ivl:15> HWINTRINSIC BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
<RefPosition #30 @65 RefTypeUse <Ivl:14> BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
<RefPosition #31 @65 RefTypeUse <Ivl:15> BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=100.00> | |
<RefPosition #32 @66 RefTypeDef <Ivl:16> MUL BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=400.00> | |
<RefPosition #33 @67 RefTypeUse <Ivl:13> BB02 regmask=[allFloat] minReg=1 last wt=100.00> | |
<RefPosition #34 @67 RefTypeUse <Ivl:16> BB02 regmask=[x0-xip0 x19-x28] minReg=1 last delay wt=100.00> | |
<RefPosition #35 @68 RefTypeDef <Ivl:17> HWINTRINSIC BB02 regmask=[allFloat] minReg=1 wt=400.00> | |
<RefPosition #36 @69 RefTypeFixedReg <Reg:d0 > BB02 regmask=[d0] minReg=1 wt=100.00> | |
<RefPosition #37 @69 RefTypeUse <Ivl:17> BB02 regmask=[d0] minReg=1 last fixed wt=100.00> | |
<RefPosition #38 @71 RefTypeBB BB03 regmask=[] minReg=1 wt=0.00> | |
<RefPosition #39 @76 RefTypeDef <Ivl:18> CNS_INT BB03 regmask=[x0] minReg=1 wt=0.00> | |
<RefPosition #40 @77 RefTypeFixedReg <Reg:x0 > BB03 regmask=[x0] minReg=1 wt=0.00> | |
<RefPosition #41 @77 RefTypeUse <Ivl:18> BB03 regmask=[x0] minReg=1 last fixed wt=0.00> | |
<RefPosition #42 @78 RefTypeFixedReg <Reg:x0 > BB03 regmask=[x0] minReg=1 wt=0.00> | |
<RefPosition #43 @78 RefTypeDef <Ivl:19> PUTARG_REG BB03 regmask=[x0] minReg=1 fixed wt=0.00> | |
<RefPosition #44 @79 RefTypeFixedReg <Reg:x0 > BB03 regmask=[x0] minReg=1 wt=0.00> | |
<RefPosition #45 @79 RefTypeUse <Ivl:19> BB03 regmask=[x0] minReg=1 last fixed wt=0.00> | |
<RefPosition #46 @80 RefTypeKill BB03 regmask=[x0-xip1 lr d0-d7 d16-d31 p0-p15] minReg=1> | |
<RefPosition #47 @80 RefTypeFixedReg <Reg:x0 > BB03 regmask=[x0] minReg=1 wt=0.00> | |
<RefPosition #48 @80 RefTypeDef <Ivl:20> CALL BB03 regmask=[x0] minReg=1 last fixed local wt=0.00> | |
<RefPosition #49 @81 RefTypeBB BB03 regmask=[] minReg=1 wt=0.00> | |
VAR REFPOSITIONS BEFORE ALLOCATION | |
--- V00 | |
--- V01 | |
--- V02 (Interval 0) | |
<RefPosition #12 @26 RefTypeDef <Ivl:0 V02> STORE_LCL_VAR BB02 regmask=[allFloat] minReg=1 wt=600.00> | |
<RefPosition #17 @41 RefTypeUse <Ivl:0 V02> LCL_VAR BB02 regmask=[allFloat] minReg=1 wt=600.00> | |
<RefPosition #26 @57 RefTypeUse <Ivl:0 V02> LCL_VAR BB02 regmask=[allFloat] minReg=1 last wt=600.00> | |
--- V03 (Interval 1) | |
<RefPosition #16 @36 RefTypeDef <Ivl:1 V03> STORE_LCL_VAR BB02 regmask=[allFloat] minReg=1 wt=600.00> | |
<RefPosition #19 @45 RefTypeUse <Ivl:1 V03> LCL_VAR BB02 regmask=[allFloat] minReg=1 wt=600.00> | |
<RefPosition #28 @63 RefTypeUse <Ivl:1 V03> LCL_VAR BB02 regmask=[allFloat] minReg=1 last wt=600.00> | |
--- V04 | |
--- V05 (Interval 2) | |
<RefPosition #8 @20 RefTypeDef <Ivl:2 V05> STORE_LCL_VAR BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=300.00> | |
<RefPosition #9 @23 RefTypeUse <Ivl:2 V05> LCL_VAR BB02 regmask=[x0-xip0 x19-x28] minReg=1 wt=300.00> | |
<RefPosition #13 @33 RefTypeUse <Ivl:2 V05> LCL_VAR BB02 regmask=[x0-xip0 x19-x28] minReg=1 last wt=300.00> | |
Allocating Registers | |
-------------------- | |
The following table has one or more rows for each RefPosition that is handled during allocation. | |
The columns are: (1) Loc: LSRA location, (2) RP#: RefPosition number, (3) Name, (4) Type (e.g. Def, Use, | |
Fixd, Parm, DDef (Dummy Def), ExpU (Exposed Use), Kill) followed by a '*' if it is a last use, and a 'D' | |
if it is delayRegFree, (5) Action taken during allocation. Some actions include (a) Alloc a new register, | |
(b) Keep an existing register, (c) Spill a register, (d) ReLod (Reload) a register. If an ALL-CAPS name | |
such as COVRS is displayed, it is a score name from lsra_score.h, with a trailing '(A)' indicating alloc, | |
'(C)' indicating copy, and '(R)' indicating re-use. See dumpLsraAllocationEvent() for details. | |
The subsequent columns show the Interval occupying each register, if any, followed by 'a' if it is | |
active, '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 modified register, which may increase during allocation, | |
in which case additional columns will appear. Registers which are not marked modified have ---- in | |
their column. | |
------------------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ | |
TreeID LocRP# Name Type Action Reg |x0 |x1 |x2 |x3 |x4 |x5 |x6 |x7 |x19 |x20 |d0 |d1 |d2 |d8 |d9 | | |
------------------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ | |
| | | | | | | | | | | | | | | | | |
1.#0 BB1 PredBB0 | | | | | | | | | | | | | | | | | |
[000043] 6.#1 C5 Def BSFIT(A) x0 |C5 a| | | | | | | | | | | | | | | | |
[000044] 7.#2 C5 Use * Keep x0 |C5 a| | | | | | | | | | | | | | | | |
8.#3 I6 Def BSFIT(A) x0 |I6 a| | | | | | | | | | | | | | | | |
[000049] 11.#4 I6 Use * Keep x0 |I6 a| | | | | | | | | | | | | | | | |
------------------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ | |
TreeID LocRP# Name Type Action Reg |x0 |x1 |x2 |x3 |x4 |x5 |x6 |x7 |x19 |x20 |d0 |d1 |d2 |d8 |d9 | | |
------------------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ | |
13.#5 BB2 PredBB1 | | | | | | | | | | | | | | | | | |
[000000] 18.#6 C7 Def BSFIT(A) x0 |C7 a| | | | | | | | | | | | | | | | |
[000037] 19.#7 C7 Use * Keep x0 |C7 a| | | | | | | | | | | | | | | | |
20.#8 V05 Def COVRS(A) x0 |V05a| | | | | | | | | | | | | | | | |
[000001] 23.#9 V05 Use Keep x0 |V05a| | | | | | | | | | | | | | | | |
24.#10 I8 Def BSFIT(A) d0 |V05a| | | | | | | | | |I8 a| | | | | | |
[000030] 25.#11 I8 Use * Keep d0 |V05a| | | | | | | | | |I8 a| | | | | | |
26.#12 V02 Def COVRS(A) d0 |V05a| | | | | | | | | |V02a| | | | | | |
[000007] 33.#13 V05 Use * Keep x0 |V05a| | | | | | | | | |V02a| | | | | | |
------------------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ | |
TreeID LocRP# Name Type Action Reg |x0 |x1 |x2 |x3 |x4 |x5 |x6 |x7 |x19 |x20 |d0 |d1 |d2 |d8 |d9 |d16 | | |
------------------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ | |
34.#14 I9 Def ORDER(A) d16 | | | | | | | | | | |V02a| | | | |I9 a| | |
[000031] 35.#15 I9 Use * Keep d16 | | | | | | | | | | |V02a| | | | |I9 a| | |
36.#16 V03 Def COVRS(A) d16 | | | | | | | | | | |V02a| | | | |V03a| | |
[000017] 41.#17 V02 Use Keep d0 | | | | | | | | | | |V02a| | | | |V03a| | |
42.#18 I10 Def BSFIT(A) x0 |I10a| | | | | | | | | |V02a| | | | |V03a| | |
[000018] 45.#19 V03 Use Keep d16 |I10a| | | | | | | | | |V02a| | | | |V03a| | |
46.#20 I11 Def ORDER(A) x1 |I10a|I11a| | | | | | | | |V02a| | | | |V03a| | |
[000019] 47.#21 I10 Use * Keep x0 |I10a|I11a| | | | | | | | |V02a| | | | |V03a| | |
47.#22 I11 Use * Keep x1 |I10a|I11a| | | | | | | | |V02a| | | | |V03a| | |
48.#23 I12 Def BSFIT(A) x0 |I12a| | | | | | | | | |V02a| | | | |V03a| | |
[000020] 49.#24 I12 Use * Keep x0 |I12a| | | | | | | | | |V02a| | | | |V03a| | |
------------------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ | |
TreeID LocRP# Name Type Action Reg |x0 |x1 |x2 |x3 |x4 |x5 |x6 |x7 |x19 |x20 |d0 |d1 |d2 |d8 |d9 |d16 |d17 | | |
------------------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ | |
50.#25 I13 Def ORDER(A) d17 | | | | | | | | | | |V02a| | | | |V03a|I13a| | |
[000024] 57.#26 V02 Use * Keep d0 | | | | | | | | | | |V02a| | | | |V03a|I13a| | |
58.#27 I14 Def BSFIT(A) x0 |I14a| | | | | | | | | | | | | | |V03a|I13a| | |
[000026] 63.#28 V03 Use * Keep d16 |I14a| | | | | | | | | | | | | | |V03a|I13a| | |
64.#29 I15 Def ORDER(A) x1 |I14a|I15a| | | | | | | | | | | | | | |I13a| | |
[000027] 65.#30 I14 Use * Keep x0 |I14a|I15a| | | | | | | | | | | | | | |I13a| | |
65.#31 I15 Use * Keep x1 |I14a|I15a| | | | | | | | | | | | | | |I13a| | |
66.#32 I16 Def BSFIT(A) x0 |I16a| | | | | | | | | | | | | | | |I13a| | |
[000029] 67.#33 I13 Use * Keep d17 |I16a| | | | | | | | | | | | | | | |I13a| | |
67.#34 I16 Use *D Keep x0 |I16a| | | | | | | | | | | | | | | |I13a| | |
68.#35 I17 Def COFUL(A) d17 |I16a| | | | | | | | | | | | | | | |I17a| | |
[000014] 69.#36 d0 Fixd Keep d0 | | | | | | | | | | | | | | | | |I17a| | |
69.#37 I17 Use * Copy d0 | | | | | | | | | | |I17a| | | | | |I17a| | |
------------------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ | |
TreeID LocRP# Name Type Action Reg |x0 |x1 |x2 |x3 |x4 |x5 |x6 |x7 |x19 |x20 |d0 |d1 |d2 |d8 |d9 |d16 |d17 | | |
------------------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ | |
71.#38 BB3 PredBB1 | | | | | | | | | | | | | | | | | | | |
[000003] 76.#39 C18 Def Alloc x0 |C18a| | | | | | | | | | | | | | | | | | |
[000058] 77.#40 x0 Fixd Keep x0 |C18a| | | | | | | | | | | | | | | | | | |
77.#41 C18 Use * Keep x0 |C18a| | | | | | | | | | | | | | | | | | |
78.#42 x0 Fixd Keep x0 | | | | | | | | | | | | | | | | | | | |
78.#43 I19 Def Alloc x0 |I19a| | | | | | | | | | | | | | | | | | |
[000004] 79.#44 x0 Fixd Keep x0 |I19a| | | | | | | | | | | | | | | | | | |
79.#45 I19 Use * Keep x0 |I19a| | | | | | | | | | | | | | | | | | |
80.#46 Kill None [x0-xip1 lr d0-d7 d16-d31 p0-p15] | |
| | | | | | | | | | | | | | | | | | | |
80.#47 x0 Fixd Keep x0 | | | | | | | | | | | | | | | | | | | |
80.#48 I20 Def * Alloc x0 |I20a| | | | | | | | | | | | | | | | | | |
81.#49 END | | | | | | | | | | | | | | | | | | | |
------------ | |
REFPOSITIONS AFTER ALLOCATION: | |
------------ | |
<RefPosition #0 @1 RefTypeBB BB01 regmask=[] minReg=1 wt=100.00> | |
<RefPosition #1 @6 RefTypeDef <Ivl:5> CNS_INT BB01 regmask=[x0] minReg=1 wt=400.00> | |
<RefPosition #2 @7 RefTypeUse <Ivl:5> BB01 regmask=[x0] minReg=1 last wt=100.00> | |
<RefPosition #3 @8 RefTypeDef <Ivl:6> IND BB01 regmask=[x0] minReg=1 wt=400.00> | |
<RefPosition #4 @11 RefTypeUse <Ivl:6> BB01 regmask=[x0] minReg=1 last wt=100.00> | |
<RefPosition #5 @13 RefTypeBB BB02 regmask=[] minReg=1 wt=100.00> | |
<RefPosition #6 @18 RefTypeDef <Ivl:7> CNS_INT BB02 regmask=[x0] minReg=1 wt=400.00> | |
<RefPosition #7 @19 RefTypeUse <Ivl:7> BB02 regmask=[x0] minReg=1 last wt=100.00> | |
<RefPosition #8 @20 RefTypeDef <Ivl:2 V05> STORE_LCL_VAR BB02 regmask=[x0] minReg=1 wt=300.00> | |
<RefPosition #9 @23 RefTypeUse <Ivl:2 V05> LCL_VAR BB02 regmask=[x0] minReg=1 wt=300.00> | |
<RefPosition #10 @24 RefTypeDef <Ivl:8> IND BB02 regmask=[d0] minReg=1 wt=400.00> | |
<RefPosition #11 @25 RefTypeUse <Ivl:8> BB02 regmask=[d0] minReg=1 last wt=100.00> | |
<RefPosition #12 @26 RefTypeDef <Ivl:0 V02> STORE_LCL_VAR BB02 regmask=[d0] minReg=1 wt=600.00> | |
<RefPosition #13 @33 RefTypeUse <Ivl:2 V05> LCL_VAR BB02 regmask=[x0] minReg=1 last wt=300.00> | |
<RefPosition #14 @34 RefTypeDef <Ivl:9> IND BB02 regmask=[d16] minReg=1 wt=400.00> | |
<RefPosition #15 @35 RefTypeUse <Ivl:9> BB02 regmask=[d16] minReg=1 last wt=100.00> | |
<RefPosition #16 @36 RefTypeDef <Ivl:1 V03> STORE_LCL_VAR BB02 regmask=[d16] minReg=1 wt=600.00> | |
<RefPosition #17 @41 RefTypeUse <Ivl:0 V02> LCL_VAR BB02 regmask=[d0] minReg=1 wt=600.00> | |
<RefPosition #18 @42 RefTypeDef <Ivl:10> HWINTRINSIC BB02 regmask=[x0] minReg=1 wt=400.00> | |
<RefPosition #19 @45 RefTypeUse <Ivl:1 V03> LCL_VAR BB02 regmask=[d16] minReg=1 wt=600.00> | |
<RefPosition #20 @46 RefTypeDef <Ivl:11> HWINTRINSIC BB02 regmask=[x1] minReg=1 wt=400.00> | |
<RefPosition #21 @47 RefTypeUse <Ivl:10> BB02 regmask=[x0] minReg=1 last wt=100.00> | |
<RefPosition #22 @47 RefTypeUse <Ivl:11> BB02 regmask=[x1] minReg=1 last wt=100.00> | |
<RefPosition #23 @48 RefTypeDef <Ivl:12> MUL BB02 regmask=[x0] minReg=1 wt=400.00> | |
<RefPosition #24 @49 RefTypeUse <Ivl:12> BB02 regmask=[x0] minReg=1 last wt=100.00> | |
<RefPosition #25 @50 RefTypeDef <Ivl:13> HWINTRINSIC BB02 regmask=[d17] minReg=1 wt=400.00> | |
<RefPosition #26 @57 RefTypeUse <Ivl:0 V02> LCL_VAR BB02 regmask=[d0] minReg=1 last wt=600.00> | |
<RefPosition #27 @58 RefTypeDef <Ivl:14> HWINTRINSIC BB02 regmask=[x0] minReg=1 wt=400.00> | |
<RefPosition #28 @63 RefTypeUse <Ivl:1 V03> LCL_VAR BB02 regmask=[d16] minReg=1 last wt=600.00> | |
<RefPosition #29 @64 RefTypeDef <Ivl:15> HWINTRINSIC BB02 regmask=[x1] minReg=1 wt=400.00> | |
<RefPosition #30 @65 RefTypeUse <Ivl:14> BB02 regmask=[x0] minReg=1 last wt=100.00> | |
<RefPosition #31 @65 RefTypeUse <Ivl:15> BB02 regmask=[x1] minReg=1 last wt=100.00> | |
<RefPosition #32 @66 RefTypeDef <Ivl:16> MUL BB02 regmask=[x0] minReg=1 wt=400.00> | |
<RefPosition #33 @67 RefTypeUse <Ivl:13> BB02 regmask=[d17] minReg=1 last wt=100.00> | |
<RefPosition #34 @67 RefTypeUse <Ivl:16> BB02 regmask=[x0] minReg=1 last delay wt=100.00> | |
<RefPosition #35 @68 RefTypeDef <Ivl:17> HWINTRINSIC BB02 regmask=[d17] minReg=1 wt=400.00> | |
<RefPosition #36 @69 RefTypeFixedReg <Reg:d0 > BB02 regmask=[d0] minReg=1 wt=100.00> | |
<RefPosition #37 @69 RefTypeUse <Ivl:17> BB02 regmask=[d0] minReg=1 last move fixed wt=100.00> | |
<RefPosition #38 @71 RefTypeBB BB03 regmask=[] minReg=1 wt=0.00> | |
<RefPosition #39 @76 RefTypeDef <Ivl:18> CNS_INT BB03 regmask=[x0] minReg=1 wt=0.00> | |
<RefPosition #40 @77 RefTypeFixedReg <Reg:x0 > BB03 regmask=[x0] minReg=1 wt=0.00> | |
<RefPosition #41 @77 RefTypeUse <Ivl:18> BB03 regmask=[x0] minReg=1 last fixed wt=0.00> | |
<RefPosition #42 @78 RefTypeFixedReg <Reg:x0 > BB03 regmask=[x0] minReg=1 wt=0.00> | |
<RefPosition #43 @78 RefTypeDef <Ivl:19> PUTARG_REG BB03 regmask=[x0] minReg=1 fixed wt=0.00> | |
<RefPosition #44 @79 RefTypeFixedReg <Reg:x0 > BB03 regmask=[x0] minReg=1 wt=0.00> | |
<RefPosition #45 @79 RefTypeUse <Ivl:19> BB03 regmask=[x0] minReg=1 last fixed wt=0.00> | |
<RefPosition #46 @80 RefTypeKill BB03 regmask=[x0-xip1 lr d0-d7 d16-d31 p0-p15] minReg=1> | |
<RefPosition #47 @80 RefTypeFixedReg <Reg:x0 > BB03 regmask=[x0] minReg=1 wt=0.00> | |
<RefPosition #48 @80 RefTypeDef <Ivl:20> CALL BB03 regmask=[x0] minReg=1 last fixed local wt=0.00> | |
<RefPosition #49 @81 RefTypeBB BB03 regmask=[] minReg=1 wt=0.00> | |
VAR REFPOSITIONS AFTER ALLOCATION | |
--- V00 | |
--- V01 | |
--- V02 (Interval 0) | |
<RefPosition #12 @26 RefTypeDef <Ivl:0 V02> STORE_LCL_VAR BB02 regmask=[d0] minReg=1 wt=600.00> | |
<RefPosition #17 @41 RefTypeUse <Ivl:0 V02> LCL_VAR BB02 regmask=[d0] minReg=1 wt=600.00> | |
<RefPosition #26 @57 RefTypeUse <Ivl:0 V02> LCL_VAR BB02 regmask=[d0] minReg=1 last wt=600.00> | |
--- V03 (Interval 1) | |
<RefPosition #16 @36 RefTypeDef <Ivl:1 V03> STORE_LCL_VAR BB02 regmask=[d16] minReg=1 wt=600.00> | |
<RefPosition #19 @45 RefTypeUse <Ivl:1 V03> LCL_VAR BB02 regmask=[d16] minReg=1 wt=600.00> | |
<RefPosition #28 @63 RefTypeUse <Ivl:1 V03> LCL_VAR BB02 regmask=[d16] minReg=1 last wt=600.00> | |
--- V04 | |
--- V05 (Interval 2) | |
<RefPosition #8 @20 RefTypeDef <Ivl:2 V05> STORE_LCL_VAR BB02 regmask=[x0] minReg=1 wt=300.00> | |
<RefPosition #9 @23 RefTypeUse <Ivl:2 V05> LCL_VAR BB02 regmask=[x0] minReg=1 wt=300.00> | |
<RefPosition #13 @33 RefTypeUse <Ivl:2 V05> LCL_VAR BB02 regmask=[x0] minReg=1 last wt=300.00> | |
Active intervals at end of allocation: | |
----------------------- | |
RESOLVING BB BOUNDARIES | |
----------------------- | |
Resolution Candidates: {} | |
Has Critical Edges | |
Prior to Resolution | |
BB01 | |
use: {} | |
def: {} | |
in: {} | |
out: {} | |
Var=Reg beg of BB01: none | |
Var=Reg end of BB01: none | |
BB02 | |
use: {} | |
def: {V02 V03 V04 V05} | |
in: {} | |
out: {} | |
Var=Reg beg of BB02: none | |
Var=Reg end of BB02: none | |
BB03 | |
use: {} | |
def: {} | |
in: {} | |
out: {} | |
Var=Reg beg of BB03: none | |
Var=Reg end of BB03: none | |
RESOLVING EDGES | |
Trees after linear scan register allocator (LSRA) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [???..???)-> BB02(1),BB03(0) ( cond ) i LIR hascall | |
BB02 [0002] 2 BB01,BB03 1 [000..???) (return) i LIR hascall | |
BB03 [0004] 1 BB01 0 [???..???)-> BB02(1) (always) LIR rare internal | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [???..???) -> BB02(1),BB03(0) (cond), preds={} succs={BB03,BB02} | |
N003 (???,???) [000051] ----------- IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
N005 ( 3, 12) [000043] H---------- t43 = CNS_INT(h) long 0xffff41308f10 global ptr REG x0 | |
/--* t43 long | |
N007 ( 6, 14) [000044] V---GO----- t44 = * IND int REG x0 | |
N009 ( 1, 2) [000045] -c--------- t45 = CNS_INT int 1 REG NA | |
/--* t44 int | |
+--* t45 int | |
N011 ( 12, 22) [000049] ----GO----- * JTEST void REG NA | |
------------ BB02 [0002] [000..???) (return), preds={BB01,BB03} succs={} | |
N015 (???,???) [000052] ----------- IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
N017 ( 3, 12) [000000] H----+----- t0 = CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] REG x0 $c1 | |
/--* t0 long | |
N019 ( 3, 12) [000037] DA--------- * STORE_LCL_VAR long V05 cse1 d:1 x0 REG x0 $VN.Void | |
N021 ( 1, 1) [000038] ----------- t38 = LCL_VAR long V05 cse1 u:1 x0 REG x0 $c1 | |
/--* t38 long | |
N023 ( 7, 15) [000001] IA--G+----- t1 = * IND simd16 REG d0 <l:$200, c:$240> | |
/--* t1 simd16 | |
N025 ( 7, 15) [000030] DA--G+----- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 d:1 d0 REG d0 $VN.Void | |
N027 (???,???) [000053] ----------- IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
N029 ( 1, 1) [000040] ----------- t40 = LCL_VAR long V05 cse1 u:1 x0 (last use) REG x0 $c1 | |
/--* t40 long | |
N031 ( 3, 4) [000042] -c-----N--- t42 = * LEA(b+32) long REG NA | |
/--* t42 long | |
N033 ( 4, 3) [000007] I---G+----- t7 = * IND simd16 REG d16 <l:$201, c:$241> | |
/--* t7 simd16 | |
N035 ( 4, 3) [000031] DA--G+----- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 d:1 d16 REG d16 $VN.Void | |
N037 (???,???) [000054] ----------- IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
N039 ( 1, 1) [000015] -----+----- t15 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 d0 REG d0 <l:$200, c:$240> | |
/--* t15 simd16 | |
N041 ( 2, 2) [000017] -----+----- t17 = * HWINTRINSIC long ulong ToScalar REG x0 <l:$280, c:$281> | |
N043 ( 1, 1) [000016] -----+----- t16 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 d16 REG d16 <l:$201, c:$241> | |
/--* t16 simd16 | |
N045 ( 2, 2) [000018] -----+----- t18 = * HWINTRINSIC long ulong ToScalar REG x1 <l:$282, c:$283> | |
/--* t17 long | |
+--* t18 long | |
N047 ( 8, 7) [000019] -----+----- t19 = * MUL long REG x0 <l:$284, c:$285> | |
/--* t19 long | |
N049 ( 9, 8) [000020] -----+----- t20 = * HWINTRINSIC simd16 ulong CreateScalarUnsafe REG d17 <l:$202, c:$203> | |
N051 ( 1, 2) [000028] -c---+-N--- t28 = CNS_INT int 1 REG NA $43 | |
N053 ( 1, 1) [000021] -----+----- t21 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 d0 (last use) REG d0 <l:$200, c:$240> | |
N055 ( 1, 2) [000023] -c---+----- t23 = CNS_INT int 1 REG NA $43 | |
/--* t21 simd16 | |
+--* t23 int | |
N057 ( 3, 4) [000024] -----+----- t24 = * HWINTRINSIC long ulong GetElement REG x0 <l:$300, c:$301> | |
N059 ( 1, 1) [000022] -----+----- t22 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 d16 (last use) REG d16 <l:$201, c:$241> | |
N061 ( 1, 2) [000025] -c---+----- t25 = CNS_INT int 1 REG NA $43 | |
/--* t22 simd16 | |
+--* t25 int | |
N063 ( 3, 4) [000026] -----+----- t26 = * HWINTRINSIC long ulong GetElement REG x1 <l:$302, c:$303> | |
/--* t24 long | |
+--* t26 long | |
N065 ( 10, 11) [000027] -----+----- t27 = * MUL long REG x0 <l:$286, c:$287> | |
/--* t20 simd16 | |
+--* t28 int | |
+--* t27 long | |
N067 ( 21, 22) [000029] -----+----- t29 = * HWINTRINSIC simd16 ulong Insert REG d17 <l:$340, c:$341> | |
/--* t29 simd16 | |
[000059] ----------- t59 = * COPY simd16 REG d0 | |
/--* t59 simd16 | |
N069 ( 22, 23) [000014] -----+----- * RETURN simd16 REG NA $VN.Void | |
------------ BB03 [0004] [???..???) -> BB02(1) (always), preds={BB01} succs={BB02} | |
N073 (???,???) [000055] ----------- IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
N075 ( 3, 12) [000003] H----+----- t3 = CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] REG x0 $c0 | |
/--* t3 long | |
N077 (???,???) [000058] ----------- t58 = * PUTARG_REG long REG x0 | |
/--* t58 long arg0 in x0 | |
N079 ( 17, 15) [000004] H-CXG+----- u4 = * CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE REG x0 $1c0 | |
------------------------------------------------------------------------------------------------------------------- | |
Final allocation | |
------------------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ | |
TreeID LocRP# Name Type Action Reg |x0 |x1 |x2 |x3 |x4 |x5 |x6 |x7 |x19 |x20 |d0 |d1 |d2 |d8 |d9 |d16 |d17 | | |
------------------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ | |
1.#0 BB1 PredBB0 | | | | | | | | | | | | | | | | | | | |
[000043] 6.#1 C5 Def Alloc x0 |C5 a| | | | | | | | | | | | | | | | | | |
[000044] 7.#2 C5 Use * Keep x0 |C5 i| | | | | | | | | | | | | | | | | | |
8.#3 I6 Def Alloc x0 |I6 a| | | | | | | | | | | | | | | | | | |
[000049] 11.#4 I6 Use * Keep x0 |I6 i| | | | | | | | | | | | | | | | | | |
------------------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ | |
TreeID LocRP# Name Type Action Reg |x0 |x1 |x2 |x3 |x4 |x5 |x6 |x7 |x19 |x20 |d0 |d1 |d2 |d8 |d9 |d16 |d17 | | |
------------------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ | |
13.#5 BB2 PredBB1 | | | | | | | | | | | | | | | | | | | |
[000000] 18.#6 C7 Def Alloc x0 |C7 a| | | | | | | | | | | | | | | | | | |
[000037] 19.#7 C7 Use * Keep x0 |C7 i| | | | | | | | | | | | | | | | | | |
20.#8 V05 Def Alloc x0 |V05a| | | | | | | | | | | | | | | | | | |
[000001] 23.#9 V05 Use Keep x0 |V05a| | | | | | | | | | | | | | | | | | |
24.#10 I8 Def Alloc d0 |V05a| | | | | | | | | |I8 a| | | | | | | | |
[000030] 25.#11 I8 Use * Keep d0 |V05a| | | | | | | | | |I8 i| | | | | | | | |
26.#12 V02 Def Alloc d0 |V05a| | | | | | | | | |V02a| | | | | | | | |
[000007] 33.#13 V05 Use * Keep x0 |V05i| | | | | | | | | |V02a| | | | | | | | |
34.#14 I9 Def Alloc d16 | | | | | | | | | | |V02a| | | | |I9 a| | | |
[000031] 35.#15 I9 Use * Keep d16 | | | | | | | | | | |V02a| | | | |I9 i| | | |
36.#16 V03 Def Alloc d16 | | | | | | | | | | |V02a| | | | |V03a| | | |
[000017] 41.#17 V02 Use Keep d0 | | | | | | | | | | |V02a| | | | |V03a| | | |
42.#18 I10 Def Alloc x0 |I10a| | | | | | | | | |V02a| | | | |V03a| | | |
[000018] 45.#19 V03 Use Keep d16 |I10a| | | | | | | | | |V02a| | | | |V03a| | | |
46.#20 I11 Def Alloc x1 |I10a|I11a| | | | | | | | |V02a| | | | |V03a| | | |
[000019] 47.#21 I10 Use * Keep x0 |I10i|I11a| | | | | | | | |V02a| | | | |V03a| | | |
47.#22 I11 Use * Keep x1 | |I11i| | | | | | | | |V02a| | | | |V03a| | | |
48.#23 I12 Def Alloc x0 |I12a| | | | | | | | | |V02a| | | | |V03a| | | |
[000020] 49.#24 I12 Use * Keep x0 |I12i| | | | | | | | | |V02a| | | | |V03a| | | |
50.#25 I13 Def Alloc d17 | | | | | | | | | | |V02a| | | | |V03a|I13a| | |
[000024] 57.#26 V02 Use * Keep d0 | | | | | | | | | | |V02i| | | | |V03a|I13a| | |
58.#27 I14 Def Alloc x0 |I14a| | | | | | | | | | | | | | |V03a|I13a| | |
[000026] 63.#28 V03 Use * Keep d16 |I14a| | | | | | | | | | | | | | |V03i|I13a| | |
64.#29 I15 Def Alloc x1 |I14a|I15a| | | | | | | | | | | | | | |I13a| | |
[000027] 65.#30 I14 Use * Keep x0 |I14i|I15a| | | | | | | | | | | | | | |I13a| | |
65.#31 I15 Use * Keep x1 | |I15i| | | | | | | | | | | | | | |I13a| | |
66.#32 I16 Def Alloc x0 |I16a| | | | | | | | | | | | | | | |I13a| | |
[000029] 67.#33 I13 Use * Keep d17 |I16a| | | | | | | | | | | | | | | |I13i| | |
67.#34 I16 Use *D Keep x0 |I16i| | | | | | | | | | | | | | | | | | |
68.#35 I17 Def Alloc d17 | | | | | | | | | | | | | | | | |I17a| | |
[000014] 69.#36 d0 Fixd Keep d0 | | | | | | | | | | | | | | | | |I17a| | |
Move d0 | | | | | | | | | | |I17i| | | | | | | | |
------------------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ | |
TreeID LocRP# Name Type Action Reg |x0 |x1 |x2 |x3 |x4 |x5 |x6 |x7 |x19 |x20 |d0 |d1 |d2 |d8 |d9 |d16 |d17 | | |
------------------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ | |
71.#38 BB3 PredBB1 | | | | | | | | | | | | | | | | | | | |
[000003] 76.#39 C18 Def Alloc x0 |C18a| | | | | | | | | | | | | | | | | | |
[000058] 77.#40 x0 Fixd Keep x0 |C18a| | | | | | | | | | | | | | | | | | |
77.#41 C18 Use * Keep x0 |C18i| | | | | | | | | | | | | | | | | | |
78.#42 x0 Fixd Keep x0 | | | | | | | | | | | | | | | | | | | |
78.#43 I19 Def Alloc x0 |I19a| | | | | | | | | | | | | | | | | | |
[000004] 79.#44 x0 Fixd Keep x0 |I19a| | | | | | | | | | | | | | | | | | |
79.#45 I19 Use * Keep x0 |I19i| | | | | | | | | | | | | | | | | | |
80.#46 Kill None [x0-xip1 lr d0-d7 d16-d31 p0-p15] | |
| | | | | | | | | | | | | | | | | | | |
80.#47 x0 Fixd Keep x0 | | | | | | | | | | | | | | | | | | | |
80.#48 I20 Def * Alloc x0 |I20i| | | | | | | | | | | | | | | | | | |
Recording the maximum number of concurrent spills: | |
---------- | |
LSRA Stats | |
---------- | |
Register selection order: ABCDEFGHIJKLMNOPQ | |
Total Tracked Vars: 4 | |
Total Reg Cand Vars: 3 | |
Total number of Intervals: 20 | |
Total number of RefPositions: 49 | |
Total Number of spill temps created: 0 | |
.......... | |
BB01 [ 100.00]: BEST_FIT = 2 | |
BB02 [ 100.00]: CopyReg = 1, COVERS = 3, COVERS_FULL = 1, BEST_FIT = 6, REG_ORDER = 4 | |
.......... | |
Total SpillCount : 0 Weighted: 0.000000 | |
Total CopyReg : 1 Weighted: 100.000000 | |
Total ResolutionMovs : 0 Weighted: 0.000000 | |
Total SplitEdges : 0 Weighted: 0.000000 | |
.......... | |
Total COVERS [# 4] : 3 Weighted: 300.000000 | |
Total COVERS_FULL [#10] : 1 Weighted: 100.000000 | |
Total BEST_FIT [#11] : 8 Weighted: 800.000000 | |
Total REG_ORDER [#13] : 4 Weighted: 400.000000 | |
TUPLE STYLE DUMP WITH REGISTER ASSIGNMENTS | |
Incoming Parameters: | |
BB01 [0000] [???..???) -> BB02(1),BB03(0) (cond), preds={} succs={BB03,BB02} | |
===== | |
N003. IL_OFFSET INLRT @ 0x000[E-] | |
N005. x0 = CNS_INT(h) 0xffff41308f10 global ptr | |
N007. x0 = IND ; x0 | |
N009. CNS_INT 1 | |
N011. JTEST ; x0 | |
Var=Reg end of BB01: none | |
BB02 [0002] [000..???) (return), preds={BB01,BB03} succs={} | |
===== | |
Predecessor for variable locations: BB01 | |
Var=Reg beg of BB02: none | |
N015. IL_OFFSET INLRT @ 0x000[E-] | |
N017. x0 = CNS_INT(h) 0xffbe99a53888 static Fseq[<unknown field>] | |
* N019. V05(x0); x0 | |
N021. V05(x0) | |
N023. d0 = IND ; x0 | |
* N025. V02(d0); d0 | |
N027. IL_OFFSET INLRT @ 0x000[E-] | |
N029. V05(x0*) | |
N031. STK = LEA(b+32); x0* | |
N033. d16 = IND ; STK | |
* N035. V03(d16); d16 | |
N037. IL_OFFSET INLRT @ 0x000[E-] | |
N039. V02(d0) | |
N041. x0 = HWINTRINSIC; d0 | |
N043. V03(d16) | |
N045. x1 = HWINTRINSIC; d16 | |
N047. x0 = MUL ; x0,x1 | |
N049. d17 = HWINTRINSIC; x0 | |
N051. CNS_INT 1 | |
N053. V02(d0*) | |
N055. CNS_INT 1 | |
N057. x0 = HWINTRINSIC; d0* | |
N059. V03(d16*) | |
N061. CNS_INT 1 | |
N063. x1 = HWINTRINSIC; d16* | |
N065. x0 = MUL ; x0,x1 | |
N067. d17 = HWINTRINSIC; d17,x0 | |
N000. d0 = COPY ; d17 | |
N069. RETURN ; d0 | |
Var=Reg end of BB02: none | |
BB03 [0004] [???..???) -> BB02(1) (always), preds={BB01} succs={BB02} | |
===== | |
Predecessor for variable locations: BB01 | |
Var=Reg beg of BB03: none | |
N073. IL_OFFSET INLRT @ 0x000[E-] | |
N075. x0 = CNS_INT(h) 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] | |
N077. x0 = PUTARG_REG; x0 | |
* N079. x0 = CALL help; x0 | |
Var=Reg end of BB03: none | |
*************** Finishing PHASE Linear scan register alloc | |
Trees after Linear scan register alloc | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [???..???)-> BB02(1),BB03(0) ( cond ) i LIR hascall | |
BB02 [0002] 2 BB01,BB03 1 [000..???) (return) i LIR hascall | |
BB03 [0004] 1 BB01 0 [???..???)-> BB02(1) (always) LIR rare internal | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [???..???) -> BB02(1),BB03(0) (cond), preds={} succs={BB03,BB02} | |
N003 (???,???) [000051] ----------- IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
N005 ( 3, 12) [000043] H---------- t43 = CNS_INT(h) long 0xffff41308f10 global ptr REG x0 | |
/--* t43 long | |
N007 ( 6, 14) [000044] V---GO----- t44 = * IND int REG x0 | |
N009 ( 1, 2) [000045] -c--------- t45 = CNS_INT int 1 REG NA | |
/--* t44 int | |
+--* t45 int | |
N011 ( 12, 22) [000049] ----GO----- * JTEST void REG NA | |
------------ BB02 [0002] [000..???) (return), preds={BB01,BB03} succs={} | |
N015 (???,???) [000052] ----------- IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
N017 ( 3, 12) [000000] H----+----- t0 = CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] REG x0 $c1 | |
/--* t0 long | |
N019 ( 3, 12) [000037] DA--------- * STORE_LCL_VAR long V05 cse1 d:1 x0 REG x0 $VN.Void | |
N021 ( 1, 1) [000038] ----------- t38 = LCL_VAR long V05 cse1 u:1 x0 REG x0 $c1 | |
/--* t38 long | |
N023 ( 7, 15) [000001] IA--G+----- t1 = * IND simd16 REG d0 <l:$200, c:$240> | |
/--* t1 simd16 | |
N025 ( 7, 15) [000030] DA--G+----- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 d:1 d0 REG d0 $VN.Void | |
N027 (???,???) [000053] ----------- IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
N029 ( 1, 1) [000040] ----------- t40 = LCL_VAR long V05 cse1 u:1 x0 (last use) REG x0 $c1 | |
/--* t40 long | |
N031 ( 3, 4) [000042] -c-----N--- t42 = * LEA(b+32) long REG NA | |
/--* t42 long | |
N033 ( 4, 3) [000007] I---G+----- t7 = * IND simd16 REG d16 <l:$201, c:$241> | |
/--* t7 simd16 | |
N035 ( 4, 3) [000031] DA--G+----- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 d:1 d16 REG d16 $VN.Void | |
N037 (???,???) [000054] ----------- IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
N039 ( 1, 1) [000015] -----+----- t15 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 d0 REG d0 <l:$200, c:$240> | |
/--* t15 simd16 | |
N041 ( 2, 2) [000017] -----+----- t17 = * HWINTRINSIC long ulong ToScalar REG x0 <l:$280, c:$281> | |
N043 ( 1, 1) [000016] -----+----- t16 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 d16 REG d16 <l:$201, c:$241> | |
/--* t16 simd16 | |
N045 ( 2, 2) [000018] -----+----- t18 = * HWINTRINSIC long ulong ToScalar REG x1 <l:$282, c:$283> | |
/--* t17 long | |
+--* t18 long | |
N047 ( 8, 7) [000019] -----+----- t19 = * MUL long REG x0 <l:$284, c:$285> | |
/--* t19 long | |
N049 ( 9, 8) [000020] -----+----- t20 = * HWINTRINSIC simd16 ulong CreateScalarUnsafe REG d17 <l:$202, c:$203> | |
N051 ( 1, 2) [000028] -c---+-N--- t28 = CNS_INT int 1 REG NA $43 | |
N053 ( 1, 1) [000021] -----+----- t21 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 d0 (last use) REG d0 <l:$200, c:$240> | |
N055 ( 1, 2) [000023] -c---+----- t23 = CNS_INT int 1 REG NA $43 | |
/--* t21 simd16 | |
+--* t23 int | |
N057 ( 3, 4) [000024] -----+----- t24 = * HWINTRINSIC long ulong GetElement REG x0 <l:$300, c:$301> | |
N059 ( 1, 1) [000022] -----+----- t22 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 d16 (last use) REG d16 <l:$201, c:$241> | |
N061 ( 1, 2) [000025] -c---+----- t25 = CNS_INT int 1 REG NA $43 | |
/--* t22 simd16 | |
+--* t25 int | |
N063 ( 3, 4) [000026] -----+----- t26 = * HWINTRINSIC long ulong GetElement REG x1 <l:$302, c:$303> | |
/--* t24 long | |
+--* t26 long | |
N065 ( 10, 11) [000027] -----+----- t27 = * MUL long REG x0 <l:$286, c:$287> | |
/--* t20 simd16 | |
+--* t28 int | |
+--* t27 long | |
N067 ( 21, 22) [000029] -----+----- t29 = * HWINTRINSIC simd16 ulong Insert REG d17 <l:$340, c:$341> | |
/--* t29 simd16 | |
[000059] ----------- t59 = * COPY simd16 REG d0 | |
/--* t59 simd16 | |
N069 ( 22, 23) [000014] -----+----- * RETURN simd16 REG NA $VN.Void | |
------------ BB03 [0004] [???..???) -> BB02(1) (always), preds={BB01} succs={BB02} | |
N073 (???,???) [000055] ----------- IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
N075 ( 3, 12) [000003] H----+----- t3 = CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] REG x0 $c0 | |
/--* t3 long | |
N077 (???,???) [000058] ----------- t58 = * PUTARG_REG long REG x0 | |
/--* t58 long arg0 in x0 | |
N079 ( 17, 15) [000004] H-CXG+----- u4 = * CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE REG x0 $1c0 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Starting PHASE Optimize post-layout | |
*************** Finishing PHASE Optimize post-layout | |
Trees after Optimize post-layout | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [???..???)-> BB03(0),BB02(1) ( cond ) i LIR hascall | |
BB02 [0002] 2 BB01,BB03 1 [000..???) (return) i LIR hascall | |
BB03 [0004] 1 BB01 0 [???..???)-> BB02(1) (always) LIR rare internal | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [???..???) -> BB03(0),BB02(1) (cond), preds={} succs={BB02,BB03} | |
N003 (???,???) [000051] ----------- IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
N005 ( 3, 12) [000043] H---------- t43 = CNS_INT(h) long 0xffff41308f10 global ptr REG x0 | |
/--* t43 long | |
N007 ( 6, 14) [000044] V---GO----- t44 = * IND int REG x0 | |
N009 ( 1, 2) [000045] -c--------- t45 = CNS_INT int 1 REG NA | |
/--* t44 int | |
+--* t45 int | |
N011 ( 12, 22) [000049] ----GO----- * JTEST void REG NA | |
------------ BB02 [0002] [000..???) (return), preds={BB01,BB03} succs={} | |
N015 (???,???) [000052] ----------- IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
N017 ( 3, 12) [000000] H----+----- t0 = CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] REG x0 $c1 | |
/--* t0 long | |
N019 ( 3, 12) [000037] DA--------- * STORE_LCL_VAR long V05 cse1 d:1 x0 REG x0 $VN.Void | |
N021 ( 1, 1) [000038] ----------- t38 = LCL_VAR long V05 cse1 u:1 x0 REG x0 $c1 | |
/--* t38 long | |
N023 ( 7, 15) [000001] IA--G+----- t1 = * IND simd16 REG d0 <l:$200, c:$240> | |
/--* t1 simd16 | |
N025 ( 7, 15) [000030] DA--G+----- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 d:1 d0 REG d0 $VN.Void | |
N027 (???,???) [000053] ----------- IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
N029 ( 1, 1) [000040] ----------- t40 = LCL_VAR long V05 cse1 u:1 x0 (last use) REG x0 $c1 | |
/--* t40 long | |
N031 ( 3, 4) [000042] -c-----N--- t42 = * LEA(b+32) long REG NA | |
/--* t42 long | |
N033 ( 4, 3) [000007] I---G+----- t7 = * IND simd16 REG d16 <l:$201, c:$241> | |
/--* t7 simd16 | |
N035 ( 4, 3) [000031] DA--G+----- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 d:1 d16 REG d16 $VN.Void | |
N037 (???,???) [000054] ----------- IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
N039 ( 1, 1) [000015] -----+----- t15 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 d0 REG d0 <l:$200, c:$240> | |
/--* t15 simd16 | |
N041 ( 2, 2) [000017] -----+----- t17 = * HWINTRINSIC long ulong ToScalar REG x0 <l:$280, c:$281> | |
N043 ( 1, 1) [000016] -----+----- t16 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 d16 REG d16 <l:$201, c:$241> | |
/--* t16 simd16 | |
N045 ( 2, 2) [000018] -----+----- t18 = * HWINTRINSIC long ulong ToScalar REG x1 <l:$282, c:$283> | |
/--* t17 long | |
+--* t18 long | |
N047 ( 8, 7) [000019] -----+----- t19 = * MUL long REG x0 <l:$284, c:$285> | |
/--* t19 long | |
N049 ( 9, 8) [000020] -----+----- t20 = * HWINTRINSIC simd16 ulong CreateScalarUnsafe REG d17 <l:$202, c:$203> | |
N051 ( 1, 2) [000028] -c---+-N--- t28 = CNS_INT int 1 REG NA $43 | |
N053 ( 1, 1) [000021] -----+----- t21 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 d0 (last use) REG d0 <l:$200, c:$240> | |
N055 ( 1, 2) [000023] -c---+----- t23 = CNS_INT int 1 REG NA $43 | |
/--* t21 simd16 | |
+--* t23 int | |
N057 ( 3, 4) [000024] -----+----- t24 = * HWINTRINSIC long ulong GetElement REG x0 <l:$300, c:$301> | |
N059 ( 1, 1) [000022] -----+----- t22 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 d16 (last use) REG d16 <l:$201, c:$241> | |
N061 ( 1, 2) [000025] -c---+----- t25 = CNS_INT int 1 REG NA $43 | |
/--* t22 simd16 | |
+--* t25 int | |
N063 ( 3, 4) [000026] -----+----- t26 = * HWINTRINSIC long ulong GetElement REG x1 <l:$302, c:$303> | |
/--* t24 long | |
+--* t26 long | |
N065 ( 10, 11) [000027] -----+----- t27 = * MUL long REG x0 <l:$286, c:$287> | |
/--* t20 simd16 | |
+--* t28 int | |
+--* t27 long | |
N067 ( 21, 22) [000029] -----+----- t29 = * HWINTRINSIC simd16 ulong Insert REG d17 <l:$340, c:$341> | |
/--* t29 simd16 | |
[000059] ----------- t59 = * COPY simd16 REG d0 | |
/--* t59 simd16 | |
N069 ( 22, 23) [000014] -----+----- * RETURN simd16 REG NA $VN.Void | |
------------ BB03 [0004] [???..???) -> BB02(1) (always), preds={BB01} succs={BB02} | |
N073 (???,???) [000055] ----------- IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
N075 ( 3, 12) [000003] H----+----- t3 = CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] REG x0 $c0 | |
/--* t3 long | |
N077 (???,???) [000058] ----------- t58 = * PUTARG_REG long REG x0 | |
/--* t58 long arg0 in x0 | |
N079 ( 17, 15) [000004] H-CXG+----- u4 = * CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE REG x0 $1c0 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Starting PHASE Place 'align' instructions | |
*************** In placeLoopAlignInstructions() | |
Identifying loops in DFS tree with following reverse post order: | |
RPO -> BB [pre, post] | |
00 -> BB01[0, 2] | |
01 -> BB03[2, 1] | |
02 -> BB02[1, 0] | |
Flow graph has no cycles; skipping identification of natural loops | |
Not checking for any loops as fgMightHaveNaturalLoops is false | |
*************** Finishing PHASE Place 'align' instructions [no changes] | |
*************** In genGenerateCode() | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [???..???)-> BB03(0),BB02(1) ( cond ) i LIR hascall | |
BB02 [0002] 2 BB01,BB03 1 [000..???) (return) i LIR hascall | |
BB03 [0004] 1 BB01 0 [???..???)-> BB02(1) (always) LIR rare internal | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Starting PHASE Generate code | |
*************** In fgDebugCheckBBlist | |
Finalizing stack frame | |
Recording Var Locations at start of BB01 | |
<none> | |
Modified regs: [x0-xip1 lr d0-d7 d16-d31 p0-p15] | |
Callee-saved registers pushed: 2 [fp lr] | |
*************** In lvaAssignFrameOffsets(FINAL_FRAME_LAYOUT) | |
Setting genSaveFpLrWithAllCalleeSavedRegisters to false | |
--- delta bump 16 for FP frame | |
--- virtual stack offset to actual stack offset delta is 16 | |
-- V01 was 0, now 16 | |
; Final local variable assignments | |
; | |
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]> | |
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" | |
; V02 tmp1 [V02,T02] ( 3, 6 ) simd16 -> d0 HFA(simd16) "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ulong]> | |
; V03 tmp2 [V03,T03] ( 3, 6 ) simd16 -> d16 HFA(simd16) "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ulong]> | |
;* V04 cse0 [V04,T01] ( 0, 0 ) byref -> zero-ref "CSE #02: aggressive" | |
; V05 cse1 [V05,T00] ( 3, 3 ) long -> x0 "CSE #03: aggressive" | |
; | |
; Lcl frame size = 0 | |
Created: | |
G_M11552_IG02: ; offs=0x000000, size=0x0000, bbWeight=1, gcrefRegs=0000 {} | |
Mark labels for codegen | |
BB01 : first block | |
BB03 : branch target | |
BB02 : branch target | |
*************** After genMarkLabelsForCodegen() | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [???..???)-> BB03(0),BB02(1) ( cond ) i LIR label hascall | |
BB02 [0002] 2 BB01,BB03 1 [000..???) (return) i LIR label hascall | |
BB03 [0004] 1 BB01 0 [???..???)-> BB02(1) (always) LIR rare internal label | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
Setting stack level from -572662307 to 0 | |
=============== Generating BB01 [0000] [???..???) -> BB03(0),BB02(1) (cond), preds={} succs={BB02,BB03} flags=0x00000000.10008011: i LIR label hascall | |
BB01 IN (0)={} + ByrefExposed + GcHeap | |
OUT(0)={} + ByrefExposed + GcHeap | |
Recording Var Locations at start of BB01 | |
<none> | |
Liveness not changing: 0000000000000000 {} | |
Live regs: (unchanged) 0000000000000000 {} | |
GC regs: (unchanged) 0000 {} | |
Byref regs: (unchanged) 0000 {} | |
L_M11552_BB01: | |
Label: G_M11552_IG02, GCvars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {} | |
Scope info: begin block BB01, IL range [???..???) | |
Scope info: ignoring block beginning | |
Added IP mapping: 0x0000 STACK_EMPTY (G_M11552_IG02,ins#0,ofs#0) label | |
Generating: N003 (???,???) [000051] ----------- IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
Generating: N005 ( 3, 12) [000043] H---------- t43 = CNS_INT(h) long 0xffff41308f10 global ptr REG x0 | |
Mapped BB01 to G_M11552_IG02 | |
IN0001: movz x0, #0x8F10 | |
IN0002: movk x0, #0x4130 LSL #16 | |
IN0003: movk x0, #0xFFFF LSL #32 | |
/--* t43 long | |
Generating: N007 ( 6, 14) [000044] V---GO----- t44 = * IND int REG x0 | |
Notify VM instruction set (Rcpc) must be supported. | |
IN0004: ldapr w0, [x0] | |
Generating: N009 ( 1, 2) [000045] -c--------- t45 = CNS_INT int 1 REG NA | |
/--* t44 int | |
+--* t45 int | |
Generating: N011 ( 12, 22) [000049] ----GO----- * JTEST void REG NA | |
IN0005: tbz (LARGEJMP)L_M11552_BB03 | |
Scope info: ignoring block end | |
Variable Live Range History Dump for BB01 | |
..None.. | |
=============== Generating BB02 [0002] [000..???) (return), preds={BB01,BB03} succs={} flags=0x00000000.10008011: i LIR label hascall | |
BB02 IN (0)={} + ByrefExposed + GcHeap | |
OUT(0)={} | |
Recording Var Locations at start of BB02 | |
<none> | |
Liveness not changing: 0000000000000000 {} | |
Live regs: (unchanged) 0000000000000000 {} | |
GC regs: (unchanged) 0000 {} | |
Byref regs: (unchanged) 0000 {} | |
L_M11552_BB02: | |
Saved: | |
G_M11552_IG02: ; offs=0x000000, size=0x0018, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB01 [0000], byref | |
Created: | |
G_M11552_IG03: ; offs=0x000018, size=0x0000, bbWeight=1, gcrefRegs=0000 {} | |
Label: G_M11552_IG03, GCvars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {} | |
Scope info: begin block BB02, IL range [000..???) | |
genIPmappingAdd: ignoring duplicate IL offset 0x0 | |
Generating: N015 (???,???) [000052] ----------- IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
Generating: N017 ( 3, 12) [000000] H----+----- t0 = CNS_INT(h) long 0xffbe99a53888 static Fseq[<unknown field>] REG x0 $c1 | |
Mapped BB02 to G_M11552_IG03 | |
IN0006: movz x0, #0x3888 // data for <unknown class>:<unknown field> | |
IN0007: movk x0, #0x99A5 LSL #16 | |
IN0008: movk x0, #0xFFBE LSL #32 | |
/--* t0 long | |
Generating: N019 ( 3, 12) [000037] DA--------- * STORE_LCL_VAR long V05 cse1 d:1 x0 REG x0 $VN.Void | |
V05 in reg x0 is becoming live [000037] | |
Live regs: 0000000000000000 {} + {x0} => 0000000000000001 {x0} | |
Live vars after [000037]: {} +{V05} => {V05} | |
Generating: N021 ( 1, 1) [000038] ----------- t38 = LCL_VAR long V05 cse1 u:1 x0 REG x0 $c1 | |
/--* t38 long | |
Generating: N023 ( 7, 15) [000001] IA--G+----- t1 = * IND simd16 REG d0 <l:$200, c:$240> | |
IN0009: ldr q0, [x0] | |
/--* t1 simd16 | |
Generating: N025 ( 7, 15) [000030] DA--G+----- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 d:1 d0 REG d0 $VN.Void | |
V02 in reg d0 is becoming live [000030] | |
Live regs: 0000000000000001 {x0} + {d0} => 0000000100000001 {x0 d0} | |
Live vars after [000030]: {V05} +{V02} => {V02 V05} | |
genIPmappingAdd: ignoring duplicate IL offset 0x0 | |
Generating: N027 (???,???) [000053] ----------- IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
Generating: N029 ( 1, 1) [000040] ----------- t40 = LCL_VAR long V05 cse1 u:1 x0 (last use) REG x0 $c1 | |
/--* t40 long | |
Generating: N031 ( 3, 4) [000042] -c-----N--- t42 = * LEA(b+32) long REG NA | |
/--* t42 long | |
Generating: N033 ( 4, 3) [000007] I---G+----- t7 = * IND simd16 REG d16 <l:$201, c:$241> | |
V05 in reg x0 is becoming dead [000040] | |
Live regs: 0000000100000001 {x0 d0} - {x0} => 0000000100000000 {d0} | |
Live vars after [000040]: {V02 V05} -{V05} => {V02} | |
IN000a: ldr q16, [x0, #0x20] | |
/--* t7 simd16 | |
Generating: N035 ( 4, 3) [000031] DA--G+----- * STORE_LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 d:1 d16 REG d16 $VN.Void | |
V03 in reg d16 is becoming live [000031] | |
Live regs: 0000000100000000 {d0} + {d16} => 0001000100000000 {d0 d16} | |
Live vars after [000031]: {V02} +{V03} => {V02 V03} | |
genIPmappingAdd: ignoring duplicate IL offset 0x0 | |
Generating: N037 (???,???) [000054] ----------- IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
Generating: N039 ( 1, 1) [000015] -----+----- t15 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 d0 REG d0 <l:$200, c:$240> | |
/--* t15 simd16 | |
Generating: N041 ( 2, 2) [000017] -----+----- t17 = * HWINTRINSIC long ulong ToScalar REG x0 <l:$280, c:$281> | |
IN000b: umov x0, v0.d[0] | |
Generating: N043 ( 1, 1) [000016] -----+----- t16 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 d16 REG d16 <l:$201, c:$241> | |
/--* t16 simd16 | |
Generating: N045 ( 2, 2) [000018] -----+----- t18 = * HWINTRINSIC long ulong ToScalar REG x1 <l:$282, c:$283> | |
IN000c: umov x1, v16.d[0] | |
/--* t17 long | |
+--* t18 long | |
Generating: N047 ( 8, 7) [000019] -----+----- t19 = * MUL long REG x0 <l:$284, c:$285> | |
IN000d: mul x0, x0, x1 | |
/--* t19 long | |
Generating: N049 ( 9, 8) [000020] -----+----- t20 = * HWINTRINSIC simd16 ulong CreateScalarUnsafe REG d17 <l:$202, c:$203> | |
IN000e: ins v17.d[0], x0 | |
Generating: N051 ( 1, 2) [000028] -c---+-N--- t28 = CNS_INT int 1 REG NA $43 | |
Generating: N053 ( 1, 1) [000021] -----+----- t21 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V02 tmp1 u:1 d0 (last use) REG d0 <l:$200, c:$240> | |
Generating: N055 ( 1, 2) [000023] -c---+----- t23 = CNS_INT int 1 REG NA $43 | |
/--* t21 simd16 | |
+--* t23 int | |
Generating: N057 ( 3, 4) [000024] -----+----- t24 = * HWINTRINSIC long ulong GetElement REG x0 <l:$300, c:$301> | |
V02 in reg d0 is becoming dead [000021] | |
Live regs: 0001000100000000 {d0 d16} - {d0} => 0001000000000000 {d16} | |
Live vars after [000021]: {V02 V03} -{V02} => {V03} | |
IN000f: umov x0, v0.d[1] | |
Generating: N059 ( 1, 1) [000022] -----+----- t22 = LCL_VAR simd16<System.Runtime.Intrinsics.Vector128`1> V03 tmp2 u:1 d16 (last use) REG d16 <l:$201, c:$241> | |
Generating: N061 ( 1, 2) [000025] -c---+----- t25 = CNS_INT int 1 REG NA $43 | |
/--* t22 simd16 | |
+--* t25 int | |
Generating: N063 ( 3, 4) [000026] -----+----- t26 = * HWINTRINSIC long ulong GetElement REG x1 <l:$302, c:$303> | |
V03 in reg d16 is becoming dead [000022] | |
Live regs: 0001000000000000 {d16} - {d16} => 0000000000000000 {} | |
Live vars after [000022]: {V03} -{V03} => {} | |
IN0010: umov x1, v16.d[1] | |
/--* t24 long | |
+--* t26 long | |
Generating: N065 ( 10, 11) [000027] -----+----- t27 = * MUL long REG x0 <l:$286, c:$287> | |
IN0011: mul x0, x0, x1 | |
/--* t20 simd16 | |
+--* t28 int | |
+--* t27 long | |
Generating: N067 ( 21, 22) [000029] -----+----- t29 = * HWINTRINSIC simd16 ulong Insert REG d17 <l:$340, c:$341> | |
IN0012: ins v17.d[1], x0 | |
/--* t29 simd16 | |
Generating: [000059] ----------- t59 = * COPY simd16 REG d0 | |
/--* t59 simd16 | |
Generating: N069 ( 22, 23) [000014] -----+----- * RETURN simd16 REG NA $VN.Void | |
IN0013: mov v0.16b, v17.16b | |
Scope info: ignoring block end | |
Added IP mapping: EPILOG (G_M11552_IG03,ins#14,ofs#56) label | |
Reserving epilog IG for block BB02 | |
Saved: | |
G_M11552_IG03: ; offs=0x000018, size=0x0038, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB02 [0002], byref | |
Created: | |
G_M11552_IG04: ; offs=0x000050, size=0x0000, bbWeight=1, gcrefRegs=0000 {} | |
Created: | |
G_M11552_IG05: ; offs=0x000150, size=0x0000, bbWeight=1, gcrefRegs=0000 {}, epilog | |
*************** After placeholder IG creation | |
G_M11552_IG01: ; func=00, offs=0x000000, size=0x0000, bbWeight=1, gcrefRegs=0000 {} <-- Prolog IG | |
G_M11552_IG02: ; offs=0x000000, size=0x0018, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB01 [0000], byref | |
G_M11552_IG03: ; offs=0x000018, size=0x0038, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB02 [0002], byref | |
G_M11552_IG04: ; epilog placeholder, next placeholder=<END>, BB02 [0002], epilog, extend <-- First placeholder <-- Last placeholder | |
; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=0000 {}, PrevByrefRegs=0000 {} | |
; InitGCVars=0000000000000000 {}, InitGCrefRegs=0000 {}, InitByrefRegs=0000 {} | |
G_M11552_IG05: ; offs=0x000150, size=0x0000, bbWeight=1, gcrefRegs=0000 {} <-- Current IG | |
Variable Live Range History Dump for BB02 | |
..None.. | |
=============== Generating BB03 [0004] [???..???) -> BB02(1) (always), preds={BB01} succs={BB02} flags=0x00000000.0000a021: LIR rare internal label | |
BB03 IN (0)={} + ByrefExposed + GcHeap | |
OUT(0)={} + ByrefExposed + GcHeap | |
Recording Var Locations at start of BB03 | |
<none> | |
Liveness not changing: 0000000000000000 {} | |
Live regs: (unchanged) 0000000000000000 {} | |
GC regs: (unchanged) 0000 {} | |
Byref regs: (unchanged) 0000 {} | |
L_M11552_BB03: | |
Label: G_M11552_IG05, GCvars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {} | |
Scope info: begin block BB03, IL range [???..???) | |
Scope info: ignoring block beginning | |
Added IP mapping: NO_MAP (G_M11552_IG05,ins#0,ofs#0) label | |
Added IP mapping: 0x0000 STACK_EMPTY (G_M11552_IG05,ins#0,ofs#0) label | |
Generating: N073 (???,???) [000055] ----------- IL_OFFSET void INLRT @ 0x000[E-] REG NA | |
Generating: N075 ( 3, 12) [000003] H----+----- t3 = CNS_INT(h) long 0xffff41308cd8 class System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong] REG x0 $c0 | |
Mapped BB03 to G_M11552_IG05 | |
IN0014: movz x0, #0x8CD8 | |
IN0015: movk x0, #0x4130 LSL #16 | |
IN0016: movk x0, #0xFFFF LSL #32 | |
/--* t3 long | |
Generating: N077 (???,???) [000058] ----------- t58 = * PUTARG_REG long REG x0 | |
/--* t58 long arg0 in x0 | |
Generating: N079 ( 17, 15) [000004] H-CXG+----- u4 = * CALL help byref CORINFO_HELP_GET_GCSTATIC_BASE REG x0 $1c0 | |
Call: GCvars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {} | |
IN0017: bl CORINFO_HELP_GET_GCSTATIC_BASE | |
Byref regs: 0000 {} => 0001 {x0} | |
Byref regs: 0001 {x0} => 0000 {} | |
Scope info: ignoring block end | |
IN0018: b L_M11552_BB02 | |
Variable Live Range History Dump for BB03 | |
..None.. | |
Liveness not changing: 0000000000000000 {} | |
# compCycleEstimate = 67, compSizeEstimate = 92 System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this | |
; Final local variable assignments | |
; | |
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]> | |
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" | |
; V02 tmp1 [V02,T02] ( 3, 6 ) simd16 -> d0 HFA(simd16) "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ulong]> | |
; V03 tmp2 [V03,T03] ( 3, 6 ) simd16 -> d16 HFA(simd16) "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ulong]> | |
;* V04 cse0 [V04,T01] ( 0, 0 ) byref -> zero-ref "CSE #02: aggressive" | |
; V05 cse1 [V05,T00] ( 3, 3 ) long -> x0 "CSE #03: aggressive" | |
; | |
; Lcl frame size = 0 | |
*************** Before prolog / epilog generation | |
G_M11552_IG01: ; func=00, offs=0x000000, size=0x0000, bbWeight=1, gcrefRegs=0000 {} <-- Prolog IG | |
G_M11552_IG02: ; offs=0x000000, size=0x0018, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB01 [0000], byref | |
G_M11552_IG03: ; offs=0x000018, size=0x0038, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB02 [0002], byref | |
G_M11552_IG04: ; epilog placeholder, next placeholder=<END>, BB02 [0002], epilog, extend <-- First placeholder <-- Last placeholder | |
; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=0000 {}, PrevByrefRegs=0000 {} | |
; InitGCVars=0000000000000000 {}, InitGCrefRegs=0000 {}, InitByrefRegs=0000 {} | |
G_M11552_IG05: ; offs=0x000150, size=0x0000, bbWeight=0, gcrefRegs=0000 {}, BB03 [0004] <-- Current IG | |
Recording Var Locations at start of BB01 | |
<none> | |
Saved: | |
G_M11552_IG05: ; offs=0x000150, size=0x0014, bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB03 [0004], gcvars, byref | |
*************** In genFnProlog() | |
Added IP mapping to front: PROLOG (G_M11552_IG01,ins#0,ofs#0) label | |
__prolog: | |
Debug: New V00 debug range: first | |
Save float regs: [] | |
Save int regs: [fp lr] | |
Frame type 1. #outsz=0; #framesz=16; LclFrameSize=0 | |
IN0019: stp fp, lr, [sp, #-0x10]! | |
offset=16, calleeSaveSpDelta=0 | |
offsetSpToSavedFp=0 | |
IN001a: mov fp, sp | |
*************** In genHomeRegisterParams() | |
0 registers in register parameter interference graph | |
*************** In genEnregisterIncomingStackArgs() | |
Debug: Closing V00 debug range. | |
Saved: | |
G_M11552_IG01: ; offs=0x000000, size=0x0008, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc | |
*************** In genFnEpilog() | |
__epilog: | |
gcVarPtrSetCur=0000000000000000 {}, gcRegGCrefSetCur=0000 {}, gcRegByrefSetCur=0000 {} | |
Frame type 1. #outsz=0; #framesz=16; localloc? false | |
calleeSaveSpOffset=16, calleeSaveSpDelta=0 | |
IN001b: ldp fp, lr, [sp], #0x10 | |
IN001c: ret lr | |
Saved: | |
G_M11552_IG04: ; offs=0x000050, size=0x0008, bbWeight=1, epilog, nogc, extend | |
0 prologs, 1 epilogs, 0 funclet prologs, 0 funclet epilogs | |
*************** After prolog / epilog generation | |
G_M11552_IG01: ; func=00, offs=0x000000, size=0x0008, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG | |
G_M11552_IG02: ; offs=0x000008, size=0x0018, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB01 [0000], byref | |
G_M11552_IG03: ; offs=0x000020, size=0x0038, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB02 [0002], byref | |
G_M11552_IG04: ; offs=0x000058, size=0x0008, bbWeight=1, epilog, nogc, extend | |
G_M11552_IG05: ; offs=0x000060, size=0x0014, bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB03 [0004], gcvars, byref | |
*************** In emitJumpDistBind() | |
Emitter Jump List: | |
IG02 IN0005 tbz[8] -> IG05 | |
IG05 IN0018 b[4] -> IG03 | |
total jump count: 2 | |
Binding: IN0005: tbz (LARGEJMP)L_M11552_BB03 | |
Binding L_M11552_BB03 to G_M11552_IG05 | |
Estimate of fwd jump [96F81A4C/005]: 0018 -> 0060 = 0048 | |
Shrinking jump [96F81A4C/005] | |
Adjusted offset of BB03 from 0020 to 001C | |
Adjusted offset of BB04 from 0058 to 0054 | |
Adjusted offset of BB05 from 0060 to 005C | |
Binding: IN0018: b L_M11552_BB02 | |
Binding L_M11552_BB02 to G_M11552_IG03 | |
Total shrinkage = 4, min extra jump size = 4294967295 | |
*************** Finishing PHASE Generate code | |
*************** Starting PHASE Emit code | |
Hot code size = 0x70 bytes | |
Cold code size = 0x0 bytes | |
reserveUnwindInfo(isFunclet=false, isColdCode=false, unwindSize=0xc) | |
*************** In emitEndCodeGen() | |
Converting emitMaxStackDepth from bytes (0) to elements (0) | |
*************************************************************************** | |
Instructions as they come out of the scheduler | |
G_M11552_IG01: ; offs=0x000000, size=0x0008, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG | |
IN0019: 000000 stp fp, lr, [sp, #-0x10]! | |
IN001a: 000004 mov fp, sp | |
;; size=8 bbWeight=1 PerfScore 1.50 | |
G_M11552_IG02: ; offs=0x000008, size=0x0014, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB01 [0000], byref, isz | |
IN0001: 000008 movz x0, #0x8F10 | |
IN0002: 00000C movk x0, #0x4130 LSL #16 | |
IN0003: 000010 movk x0, #0xFFFF LSL #32 | |
IN0004: 000014 ldapr w0, [x0] | |
IN0005: 000018 tbz w0, #0, G_M11552_IG05 | |
;; size=20 bbWeight=1 PerfScore 5.50 | |
G_M11552_IG03: ; offs=0x00001C, size=0x0038, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB02 [0002], byref | |
IN0006: 00001C movz x0, #0x3888 // data for <unknown class>:<unknown field> | |
IN0007: 000020 movk x0, #0x99A5 LSL #16 | |
IN0008: 000024 movk x0, #0xFFBE LSL #32 | |
IN0009: 000028 ldr q0, [x0] | |
IN000a: 00002C ldr q16, [x0, #0x20] | |
IN000b: 000030 umov x0, v0.d[0] | |
IN000c: 000034 umov x1, v16.d[0] | |
IN000d: 000038 mul x0, x0, x1 | |
IN000e: 00003C ins v17.d[0], x0 | |
IN000f: 000040 umov x0, v0.d[1] | |
IN0010: 000044 umov x1, v16.d[1] | |
IN0011: 000048 mul x0, x0, x1 | |
IN0012: 00004C ins v17.d[1], x0 | |
IN0013: 000050 mov v0.16b, v17.16b | |
;; size=56 bbWeight=1 PerfScore 18.00 | |
G_M11552_IG04: ; offs=0x000054, size=0x0008, bbWeight=1, epilog, nogc, extend | |
IN001b: 000054 ldp fp, lr, [sp], #0x10 | |
IN001c: 000058 ret lr | |
;; size=8 bbWeight=1 PerfScore 2.00 | |
G_M11552_IG05: ; offs=0x00005C, size=0x0014, bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB03 [0004], gcvars, byref | |
IN0014: 00005C movz x0, #0x8CD8 | |
IN0015: 000060 movk x0, #0x4130 LSL #16 | |
IN0016: 000064 movk x0, #0xFFFF LSL #32 | |
; Call at 0068 [stk=0], GCvars=none, gcrefRegs=0000 {}, byrefRegs=0000 {} | |
recordRelocation: 0xc5bb96fb0aa8 (rw: 0xc5bb96fb0aa8) => 0xffff7eeb9a10, type 3 (IMAGE_REL_ARM64_BRANCH26), delta 0 | |
IN0017: 000068 bl CORINFO_HELP_GET_GCSTATIC_BASE | |
IN0018: 00006C b G_M11552_IG03 | |
;; size=20 bbWeight=0 PerfScore 0.00 | |
Allocated method code size = 112 , actual size = 112, unused size = 0 | |
; Total bytes of code 112, prolog size 8, PerfScore 27.00, instruction count 28, allocated bytes for code 112 (MethodHash=aff7d2df) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this (FullOpts) | |
; ============================================================ | |
*************** After end code gen, before unwindEmit() | |
G_M11552_IG01: ; func=00, offs=0x000000, size=0x0008, bbWeight=1, PerfScore 1.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG | |
IN0019: 000000 stp fp, lr, [sp, #-0x10]! | |
IN001a: 000004 mov fp, sp | |
G_M11552_IG02: ; offs=0x000008, size=0x0014, bbWeight=1, PerfScore 5.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB01 [0000], byref, isz | |
IN0001: 000008 movz x0, #0x8F10 | |
IN0002: 00000C movk x0, #0x4130 LSL #16 | |
IN0003: 000010 movk x0, #0xFFFF LSL #32 | |
IN0004: 000014 ldapr w0, [x0] | |
IN0005: 000018 tbz w0, #0, G_M11552_IG05 | |
G_M11552_IG03: ; offs=0x00001C, size=0x0038, bbWeight=1, PerfScore 18.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB02 [0002], byref | |
IN0006: 00001C movz x0, #0x3888 // data for <unknown class>:<unknown field> | |
IN0007: 000020 movk x0, #0x99A5 LSL #16 | |
IN0008: 000024 movk x0, #0xFFBE LSL #32 | |
IN0009: 000028 ldr q0, [x0] | |
IN000a: 00002C ldr q16, [x0, #0x20] | |
IN000b: 000030 umov x0, v0.d[0] | |
IN000c: 000034 umov x1, v16.d[0] | |
IN000d: 000038 mul x0, x0, x1 | |
IN000e: 00003C ins v17.d[0], x0 | |
IN000f: 000040 umov x0, v0.d[1] | |
IN0010: 000044 umov x1, v16.d[1] | |
IN0011: 000048 mul x0, x0, x1 | |
IN0012: 00004C ins v17.d[1], x0 | |
IN0013: 000050 mov v0.16b, v17.16b | |
G_M11552_IG04: ; offs=0x000054, size=0x0008, bbWeight=1, PerfScore 2.00, epilog, nogc, extend | |
IN001b: 000054 ldp fp, lr, [sp], #0x10 | |
IN001c: 000058 ret lr | |
G_M11552_IG05: ; offs=0x00005C, size=0x0014, bbWeight=0, PerfScore 0.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB03 [0004], gcvars, byref | |
IN0014: 00005C movz x0, #0x8CD8 | |
IN0015: 000060 movk x0, #0x4130 LSL #16 | |
IN0016: 000064 movk x0, #0xFFFF LSL #32 | |
IN0017: 000068 bl CORINFO_HELP_GET_GCSTATIC_BASE | |
IN0018: 00006C b G_M11552_IG03 | |
*************** Finishing PHASE Emit code | |
*************** Starting PHASE Emit GC+EH tables | |
Unwind Info: | |
>> Start offset : 0x000000 (not in unwind data) | |
>> End offset : 0x000070 (not in unwind data) | |
Code Words : 1 | |
Epilog Count : 1 | |
E bit : 0 | |
X bit : 0 | |
Vers : 0 | |
Function Length : 28 (0x0001c) Actual length = 112 (0x000070) | |
---- Epilog scopes ---- | |
---- Scope 0 | |
Epilog Start Offset : 21 (0x00015) Actual offset = 84 (0x000054) Offset from main function begin = 84 (0x000054) | |
Epilog Start Index : 1 (0x01) | |
---- Unwind codes ---- | |
E1 set_fp; mov fp, sp | |
---- Epilog start at index 1 ---- | |
81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]! | |
E4 end | |
E4 end | |
allocUnwindInfo(pHotCode=0x0xc5bb96fb0a40, pColdCode=0x(nil), startOffset=0x0, endOffset=0x70, unwindSize=0xc, pUnwindBlock=0x0xc5bb96eedb02, funKind=0 (main function)) | |
*************** In genIPmappingGen() | |
IP mapping count : 4 | |
IL offs PROLOG : 0x00000000 ( STACK_EMPTY ) | |
IL offs 0x0000 : 0x00000008 ( STACK_EMPTY ) | |
IL offs EPILOG : 0x00000054 ( STACK_EMPTY ) | |
IL offs 0x0000 : 0x0000005C ( STACK_EMPTY ) | |
*************** In genSetScopeInfo() | |
VarLocInfo count is 1 | |
; Variable debug info: 1 live ranges, 1 vars for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this | |
(V00 this) : From 00000000h to 00000008h, in x0 | |
*************** In gcInfoBlockHdrSave() | |
Set code length to 112. | |
Set ReturnKind to Scalar. | |
Set stack base register to fp. | |
Set Outgoing stack arg area size to 0. | |
Defining 1 call sites: | |
Offset 0x68, size 4. | |
*************** Finishing PHASE Emit GC+EH tables | |
Method code size: 112 | |
Allocations for System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this (MethodHash=aff7d2df) | |
count: 794, size: 99809, max = 7888 | |
allocateMemory: 131072, nraUsed: 106360 | |
Alloc'd bytes by kind: | |
kind | size | pct | |
---------------------+------------+-------- | |
ABI | 0 | 0.00% | |
AssertionProp | 6500 | 6.51% | |
ASTNode | 8248 | 8.26% | |
InstDesc | 7672 | 7.69% | |
ImpStack | 384 | 0.38% | |
BasicBlock | 1776 | 1.78% | |
CallArgs | 352 | 0.35% | |
FlowEdge | 160 | 0.16% | |
DepthFirstSearch | 208 | 0.21% | |
Loops | 116 | 0.12% | |
TreeStatementList | 192 | 0.19% | |
SiScope | 0 | 0.00% | |
DominatorMemory | 56 | 0.06% | |
LSRA | 10092 | 10.11% | |
LSRA_Interval | 2016 | 2.02% | |
LSRA_RefPosition | 4000 | 4.01% | |
Reachability | 40 | 0.04% | |
SSA | 528 | 0.53% | |
ValueNumber | 13632 | 13.66% | |
LvaTable | 1600 | 1.60% | |
UnwindInfo | 32 | 0.03% | |
hashBv | 40 | 0.04% | |
bitset | 32 | 0.03% | |
FixedBitVect | 32 | 0.03% | |
Generic | 886 | 0.89% | |
LocalAddressVisitor | 424 | 0.42% | |
FieldSeqStore | 176 | 0.18% | |
MemorySsaMap | 40 | 0.04% | |
MemoryPhiArg | 0 | 0.00% | |
CSE | 2796 | 2.80% | |
GC | 1285 | 1.29% | |
CorTailCallInfo | 0 | 0.00% | |
Inlining | 2088 | 2.09% | |
ArrayStack | 0 | 0.00% | |
DebugInfo | 280 | 0.28% | |
DebugOnly | 30173 | 30.23% | |
Codegen | 2568 | 2.57% | |
LoopOpt | 0 | 0.00% | |
LoopClone | 0 | 0.00% | |
LoopUnroll | 0 | 0.00% | |
LoopHoist | 0 | 0.00% | |
LoopIVOpts | 0 | 0.00% | |
Unknown | 113 | 0.11% | |
RangeCheck | 0 | 0.00% | |
CopyProp | 424 | 0.42% | |
Promotion | 240 | 0.24% | |
SideEffects | 0 | 0.00% | |
ObjectAllocator | 0 | 0.00% | |
VariableLiveRanges | 272 | 0.27% | |
ClassLayout | 128 | 0.13% | |
TailMergeThrows | 0 | 0.00% | |
EarlyProp | 0 | 0.00% | |
ZeroInit | 208 | 0.21% | |
Pgo | 0 | 0.00% | |
Final metrics: | |
PhysicallyPromotedFields : 0 | |
LoopsFoundDuringOpts : 0 | |
LoopsCloned : 0 | |
LoopsUnrolled : 0 | |
LoopAlignmentCandidates : 0 | |
LoopsAligned : 0 | |
LoopsIVWidened : 0 | |
WidenedIVs : 0 | |
UnusedIVsRemoved : 0 | |
LoopsMadeDownwardsCounted : 0 | |
LoopsStrengthReduced : 0 | |
VarsInSsa : 2 | |
HoistedExpressions : 0 | |
RedundantBranchesEliminated : 0 | |
JumpThreadingsPerformed : 0 | |
CseCount : 2 | |
BasicBlocksAtCodegen : 3 | |
PerfScore : 27.000000 | |
BytesAllocated : 106360 | |
ImporterBranchFold : 0 | |
ImporterSwitchFold : 0 | |
DevirtualizedCall : 0 | |
DevirtualizedCallUnboxedEntry : 0 | |
DevirtualizedCallRemovedBox : 0 | |
GDV : 0 | |
ClassGDV : 0 | |
MethodGDV : 0 | |
MultiGuessGDV : 0 | |
ChainedGDV : 0 | |
InlinerBranchFold : 0 | |
InlineAttempt : 1 | |
InlineCount : 1 | |
ProfileConsistentBeforeInline : 0 | |
ProfileConsistentAfterInline : 0 | |
ProfileSynthesizedBlendedOrRepaired : 0 | |
ProfileInconsistentInitially : 0 | |
ProfileInconsistentResetLeave : 0 | |
ProfileInconsistentImporterBranchFold : 0 | |
ProfileInconsistentImporterSwitchFold : 0 | |
ProfileInconsistentChainedGDV : 0 | |
ProfileInconsistentScratchBB : 0 | |
ProfileInconsistentInlinerBranchFold : 0 | |
ProfileInconsistentInlineeScale : 0 | |
ProfileInconsistentInlinee : 0 | |
ProfileInconsistentNoReturnInlinee : 0 | |
ProfileInconsistentMayThrowInlinee : 0 | |
NewRefClassHelperCalls : 0 | |
StackAllocatedRefClasses : 0 | |
NewBoxedValueClassHelperCalls : 0 | |
StackAllocatedBoxedValueClasses : 0 | |
****** DONE compiling System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this | |
Clean SuperPMI replay (1 contexts processed) | |
Replay summary: | |
All replays clean | |
Finish time: 12:41:49 | |
Elapsed time: 0:00:00.083397 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment