From efe67ede2a4f3e2db47e2fe6eb44ca869a3be08f Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Tue, 31 Jul 2018 18:24:24 +0000 Subject: [PATCH] [X86] WriteBSWAP sched classes are reg-reg only. Don't declare them as X86SchedWritePair when the folded class will never be used. Note: MOVBE (load/store endian conversion) instructions tend to have a very different behaviour to BSWAP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@338412 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86SchedBroadwell.td | 4 ++-- lib/Target/X86/X86SchedHaswell.td | 4 ++-- lib/Target/X86/X86SchedSandyBridge.td | 4 ++-- lib/Target/X86/X86SchedSkylakeClient.td | 4 ++-- lib/Target/X86/X86SchedSkylakeServer.td | 4 ++-- lib/Target/X86/X86Schedule.td | 4 ++-- lib/Target/X86/X86ScheduleAtom.td | 4 ++-- lib/Target/X86/X86ScheduleBtVer2.td | 4 ++-- lib/Target/X86/X86ScheduleSLM.td | 4 ++-- lib/Target/X86/X86ScheduleZnver1.td | 4 ++-- 10 files changed, 20 insertions(+), 20 deletions(-) diff --git a/lib/Target/X86/X86SchedBroadwell.td b/lib/Target/X86/X86SchedBroadwell.td index 3aeb2da2448..e05a7fcfce3 100755 --- a/lib/Target/X86/X86SchedBroadwell.td +++ b/lib/Target/X86/X86SchedBroadwell.td @@ -119,8 +119,8 @@ defm : BWWriteResPair; defm : BWWriteResPair; defm : BWWriteResPair; -defm : BWWriteResPair; // -defm : BWWriteResPair; // +defm : X86WriteRes; +defm : X86WriteRes; defm : BWWriteResPair; def : WriteRes { let Latency = 3; } // Integer multiplication, high part. diff --git a/lib/Target/X86/X86SchedHaswell.td b/lib/Target/X86/X86SchedHaswell.td index 824e9e28a61..9a89f11cc91 100644 --- a/lib/Target/X86/X86SchedHaswell.td +++ b/lib/Target/X86/X86SchedHaswell.td @@ -124,8 +124,8 @@ defm : HWWriteResPair; defm : HWWriteResPair; defm : HWWriteResPair; -defm : HWWriteResPair; -defm : HWWriteResPair; +defm : X86WriteRes; +defm : X86WriteRes; def : WriteRes { let Latency = 3; } diff --git a/lib/Target/X86/X86SchedSandyBridge.td b/lib/Target/X86/X86SchedSandyBridge.td index d43c4e3cb0f..79497460ae4 100644 --- a/lib/Target/X86/X86SchedSandyBridge.td +++ b/lib/Target/X86/X86SchedSandyBridge.td @@ -112,8 +112,8 @@ defm : SBWriteResPair; defm : SBWriteResPair; defm : SBWriteResPair; -defm : SBWriteResPair; -defm : SBWriteResPair; +defm : X86WriteRes; +defm : X86WriteRes; defm : SBWriteResPair; defm : SBWriteResPair; diff --git a/lib/Target/X86/X86SchedSkylakeClient.td b/lib/Target/X86/X86SchedSkylakeClient.td index 53d8e63152a..4055337cd3f 100644 --- a/lib/Target/X86/X86SchedSkylakeClient.td +++ b/lib/Target/X86/X86SchedSkylakeClient.td @@ -110,8 +110,8 @@ defm : SKLWriteResPair; // Integer ALU + flags op defm : SKLWriteResPair; // Integer multiplication. defm : SKLWriteResPair; // Integer 64-bit multiplication. -defm : SKLWriteResPair; // -defm : SKLWriteResPair; // +defm : X86WriteRes; +defm : X86WriteRes; defm : SKLWriteResPair; defm : SKLWriteResPair; diff --git a/lib/Target/X86/X86SchedSkylakeServer.td b/lib/Target/X86/X86SchedSkylakeServer.td index 129fc2e7f46..c3324461581 100755 --- a/lib/Target/X86/X86SchedSkylakeServer.td +++ b/lib/Target/X86/X86SchedSkylakeServer.td @@ -110,8 +110,8 @@ defm : SKXWriteResPair; // Integer ALU + flags op defm : SKXWriteResPair; // Integer multiplication. defm : SKXWriteResPair; // Integer 64-bit multiplication. -defm : SKXWriteResPair; // -defm : SKXWriteResPair; // +defm : X86WriteRes; +defm : X86WriteRes; defm : SKXWriteResPair; defm : SKXWriteResPair; diff --git a/lib/Target/X86/X86Schedule.td b/lib/Target/X86/X86Schedule.td index 44079bf566d..23539fc5e3b 100644 --- a/lib/Target/X86/X86Schedule.td +++ b/lib/Target/X86/X86Schedule.td @@ -118,8 +118,8 @@ defm WriteIMul64 : X86SchedWritePair; // Integer 64-bit multiplication. def WriteIMulH : SchedWrite; // Integer multiplication, high part. def WriteLEA : SchedWrite; // LEA instructions can't fold loads. -defm WriteBSWAP32: X86SchedWritePair; // Byte Order (Endiannes) Swap -defm WriteBSWAP64: X86SchedWritePair; // Byte Order (Endiannes) Swap +def WriteBSWAP32 : SchedWrite; // Byte Order (Endianness) 32-bit Swap. +def WriteBSWAP64 : SchedWrite; // Byte Order (Endianness) 64-bit Swap. // Integer division. defm WriteDiv8 : X86SchedWritePair; diff --git a/lib/Target/X86/X86ScheduleAtom.td b/lib/Target/X86/X86ScheduleAtom.td index 2880d47ce2d..de0d712436c 100644 --- a/lib/Target/X86/X86ScheduleAtom.td +++ b/lib/Target/X86/X86ScheduleAtom.td @@ -81,8 +81,8 @@ defm : AtomWriteResPair; defm : AtomWriteResPair; defm : AtomWriteResPair; -defm : AtomWriteResPair; -defm : AtomWriteResPair; +defm : X86WriteRes; +defm : X86WriteRes; defm : AtomWriteResPair; defm : AtomWriteResPair; diff --git a/lib/Target/X86/X86ScheduleBtVer2.td b/lib/Target/X86/X86ScheduleBtVer2.td index 44687e31984..cf98e75f2f8 100644 --- a/lib/Target/X86/X86ScheduleBtVer2.td +++ b/lib/Target/X86/X86ScheduleBtVer2.td @@ -168,8 +168,8 @@ defm : JWriteResIntPair; // i8/i16/i32 defm : JWriteResIntPair; // i64 multiplication defm : X86WriteRes; -defm : JWriteResIntPair; -defm : JWriteResIntPair; +defm : X86WriteRes; +defm : X86WriteRes; defm : JWriteResIntPair; defm : JWriteResIntPair; diff --git a/lib/Target/X86/X86ScheduleSLM.td b/lib/Target/X86/X86ScheduleSLM.td index 9107e9fdba2..8e03f57b9ec 100644 --- a/lib/Target/X86/X86ScheduleSLM.td +++ b/lib/Target/X86/X86ScheduleSLM.td @@ -98,8 +98,8 @@ defm : SLMWriteResPair; defm : SLMWriteResPair; defm : SLMWriteResPair; -defm : SLMWriteResPair; -defm : SLMWriteResPair; +defm : X86WriteRes; +defm : X86WriteRes; defm : SLMWriteResPair; diff --git a/lib/Target/X86/X86ScheduleZnver1.td b/lib/Target/X86/X86ScheduleZnver1.td index 5c8ed43b2a5..5081f2ade1e 100644 --- a/lib/Target/X86/X86ScheduleZnver1.td +++ b/lib/Target/X86/X86ScheduleZnver1.td @@ -180,8 +180,8 @@ defm : ZnWriteResPair; defm : ZnWriteResPair; defm : ZnWriteResPair; -defm : ZnWriteResPair; -defm : ZnWriteResPair; +defm : X86WriteRes; +defm : X86WriteRes; defm : ZnWriteResPair; -- 2.40.0