From: Evandro Menezes Date: Mon, 24 Jul 2017 18:06:16 +0000 (+0000) Subject: [AArch64] Adjust the cost model for Exynos M1 and M2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a0d8266d36429cd6feb3b01306d6778b9d13539c;p=llvm [AArch64] Adjust the cost model for Exynos M1 and M2 Fine tune the resources in a couple of ASIMD loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@308904 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/AArch64/AArch64SchedM1.td b/lib/Target/AArch64/AArch64SchedM1.td index 1cb15b9573f..739fbcf4472 100644 --- a/lib/Target/AArch64/AArch64SchedM1.td +++ b/lib/Target/AArch64/AArch64SchedM1.td @@ -135,24 +135,20 @@ def : SchedAlias; // FP data instructions. def : WriteRes { let Latency = 3; } -// TODO: FCCMP is much different. def : WriteRes { let Latency = 4; } def : WriteRes { let Latency = 15; let ResourceCycles = [15]; } def : WriteRes { let Latency = 4; } // FP miscellaneous instructions. -// TODO: Conversion between register files is much different. def : WriteRes { let Latency = 3; } def : WriteRes { let Latency = 1; } def : WriteRes { let Latency = 4; } // FP load instructions. -// TODO: ASIMD loads are much different. def : WriteRes { let Latency = 5; } // FP store instructions. -// TODO: ASIMD stores are much different. def : WriteRes { let Latency = 1; } // ASIMD FP instructions. @@ -216,6 +212,7 @@ def M1WriteFCVT3 : SchedWriteRes<[M1UnitFCVT]> { let Latency = 3; } def M1WriteFCVT4 : SchedWriteRes<[M1UnitFCVT]> { let Latency = 4; } def M1WriteFMAC4 : SchedWriteRes<[M1UnitFMAC]> { let Latency = 4; } def M1WriteFMAC5 : SchedWriteRes<[M1UnitFMAC]> { let Latency = 5; } +// TODO def M1WriteFVAR15 : SchedWriteRes<[M1UnitFVAR]> { let Latency = 15; let ResourceCycles = [15]; } def M1WriteFVAR23 : SchedWriteRes<[M1UnitFVAR]> { let Latency = 23; @@ -275,11 +272,13 @@ def M1WriteVLDK : SchedWriteRes<[M1UnitL, def M1WriteVLDL : SchedWriteRes<[M1UnitL, M1UnitNALU, M1UnitNALU, + M1UnitL, M1UnitNALU]> { let Latency = 7; let ResourceCycles = [2]; } def M1WriteVLDM : SchedWriteRes<[M1UnitL, M1UnitNALU, M1UnitNALU, + M1UnitL, M1UnitNALU, M1UnitNALU]> { let Latency = 7; let ResourceCycles = [2]; }