From: Evandro Menezes Date: Tue, 6 Sep 2016 19:22:19 +0000 (+0000) Subject: [AArch64] Adjust the scheduling model for Exynos M1. X-Git-Tag: llvmorg-4.0.0-rc1~10534 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=199cad4f1777e90cb4bf4097de40bf15602ce495;p=platform%2Fupstream%2Fllvm.git [AArch64] Adjust the scheduling model for Exynos M1. Further refine the model for loads. llvm-svn: 280734 --- diff --git a/llvm/lib/Target/AArch64/AArch64SchedM1.td b/llvm/lib/Target/AArch64/AArch64SchedM1.td index 2249d43..3cb7141 100644 --- a/llvm/lib/Target/AArch64/AArch64SchedM1.td +++ b/llvm/lib/Target/AArch64/AArch64SchedM1.td @@ -64,9 +64,16 @@ let SchedModel = ExynosM1Model in { //===----------------------------------------------------------------------===// // Coarse scheduling model for the Exynos-M1. -def M1WriteLDIdxA : SchedWriteRes<[M1UnitL]> { let Latency = 5; } -def M1WriteLDIdxB : SchedWriteRes<[M1UnitL, - M1UnitALU]> { let Latency = 5; } +def M1WriteA1 : SchedWriteRes<[M1UnitALU]> { let Latency = 1; } + +def M1WriteL5 : SchedWriteRes<[M1UnitL]> { let Latency = 5; } +def M1WriteLA : SchedWriteVariant<[SchedVar, + SchedVar]>; + +def M1ReadAdrBase : SchedReadVariant<[SchedVar, + SchedVar]>; +def : SchedAlias; // Branch instructions. // NOTE: Unconditional direct branches actually take neither cycles nor units. @@ -106,14 +113,7 @@ def : WriteRes { let Latency = 0; } // Load instructions. def : WriteRes { let Latency = 4; } def : WriteRes { let Latency = 4; } -def M1WriteLDIdx : SchedWriteVariant<[ - SchedVar, - SchedVar]>; -def : SchedAlias; -def M1ReadAdrBase : SchedReadVariant<[ - SchedVar, - SchedVar]>; -def : SchedAlias; +def : SchedAlias; // Store instructions. def : WriteRes { let Latency = 1; }