From: Evandro Menezes Date: Tue, 18 Dec 2018 23:19:57 +0000 (+0000) Subject: [AArch64] Simplify the Exynos M3 pipeline model X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=174382c70456e2e499c55b395d4523f886498e5b;p=llvm [AArch64] Simplify the Exynos M3 pipeline model git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@349569 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/AArch64/AArch64SchedExynosM3.td b/lib/Target/AArch64/AArch64SchedExynosM3.td index 39f448e4852..fd19ff84f1e 100644 --- a/lib/Target/AArch64/AArch64SchedExynosM3.td +++ b/lib/Target/AArch64/AArch64SchedExynosM3.td @@ -162,8 +162,8 @@ def M3WriteLE : SchedWriteRes<[M3UnitA, let NumMicroOps = 2; } def M3WriteLH : SchedWriteRes<[]> { let Latency = 5; let NumMicroOps = 0; } -def M3WriteLX : SchedWriteVariant<[SchedVar, - SchedVar]>; +def M3WriteLX : SchedWriteVariant<[SchedVar, + SchedVar]>; def M3WriteS1 : SchedWriteRes<[M3UnitS]> { let Latency = 1; } def M3WriteSA : SchedWriteRes<[M3UnitA, @@ -173,8 +173,6 @@ def M3WriteSA : SchedWriteRes<[M3UnitA, def M3WriteSB : SchedWriteRes<[M3UnitA, M3UnitS]> { let Latency = 2; let NumMicroOps = 2; } -def M3WriteSX : SchedWriteVariant<[SchedVar, - SchedVar]>; def M3ReadAdrBase : SchedReadVariant<[SchedVar, SchedVar]>; @@ -215,13 +213,13 @@ def : SchedAlias; def : SchedAlias; def : WriteRes { let Latency = 4; let NumMicroOps = 0; } -def : SchedAlias; +def : SchedAlias; // Store instructions. def : SchedAlias; def : SchedAlias; def : SchedAlias; -def : SchedAlias; +def : SchedAlias; // FP data instructions. def : WriteRes { let Latency = 2; } @@ -231,7 +229,6 @@ def : WriteRes { let Latency = 12; 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 = 1; } @@ -503,16 +500,16 @@ def : InstRW<[M3WriteZ0], (instregex "^MOV[NZ][WX]i")>; // Miscellaneous instructions. // Load instructions. -def : InstRW<[M3WriteLB, - ReadAdrBase], (instregex "^LDR(BB|HH|SBW|SBX|SHW|SWX|SW|W|X)roW")>; -def : InstRW<[M3WriteL5, - ReadAdrBase], (instregex "^LDR(BB|HH|SBW|SBX|SHW|SWX|SW|W|X)roX")>; def : InstRW<[M3WriteLD, WriteLDHi, WriteAdr], (instregex "^LDP(SW|W|X)(post|pre)")>; +def : InstRW<[M3WriteLB, + ReadAdrBase], (instregex "^LDR(BB|SBW|SBX|HH|SHW|SHX|SW|W|X)roW")>; +def : InstRW<[M3WriteLX, + ReadAdrBase], (instregex "^LDR(BB|SBW|SBX|HH|SHW|SHX|SW|W|X)roX")>; def : InstRW<[M3WriteLB, ReadAdrBase], (instrs PRFMroW)>; -def : InstRW<[M3WriteL5, +def : InstRW<[M3WriteLX, ReadAdrBase], (instrs PRFMroX)>; // Store instructions.