From e5fdff1cf822e8687ddb5568d14b8a609a5831d0 Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Fri, 2 Jul 2021 14:50:24 +0100 Subject: [PATCH] [X86][SLM] Keep similar scheduler costs types together. NFCI. The SLM model is inconsistent about where it kept its 'unsupported' schedule classes - better to keep them close to similar classes. I'm not sure why some ymm classes are defined and others are unsupported though (but I haven't altered them) - the only SLM-like CPU supporting any ymm is KNL and that currently uses the HSW model. --- llvm/lib/Target/X86/X86ScheduleSLM.td | 67 +++++++++++++++++------------------ 1 file changed, 33 insertions(+), 34 deletions(-) diff --git a/llvm/lib/Target/X86/X86ScheduleSLM.td b/llvm/lib/Target/X86/X86ScheduleSLM.td index 1f47d1a..9adc302 100644 --- a/llvm/lib/Target/X86/X86ScheduleSLM.td +++ b/llvm/lib/Target/X86/X86ScheduleSLM.td @@ -111,6 +111,7 @@ defm : SLMWriteResPair; defm : SLMWriteResPair; defm : SLMWriteResPair; defm : SLMWriteResPair; +def : WriteRes; defm : X86WriteRes; defm : X86WriteRes; @@ -224,6 +225,10 @@ defm : SLMWriteResPair defm : SLMWriteResPair; defm : SLMWriteResPair; defm : X86WriteResPairUnsupported; +defm : X86WriteResPairUnsupported; +defm : X86WriteResPairUnsupported; +defm : X86WriteResPairUnsupported; +defm : X86WriteResPairUnsupported; defm : SLMWriteResPair; defm : SLMWriteResPair; defm : SLMWriteResPair; @@ -270,6 +275,13 @@ defm : SLMWriteResPair; defm : SLMWriteResPair; defm : X86WriteResPairUnsupported; defm : SLMWriteResPair; +defm : X86WriteResPairUnsupported; +defm : X86WriteResPairUnsupported; +defm : SLMWriteResPair; +defm : X86WriteResPairUnsupported; +defm : X86WriteResPairUnsupported; +defm : X86WriteResPairUnsupported; +defm : X86WriteResPairUnsupported; // Conversion between integer and float. defm : SLMWriteResPair; @@ -299,6 +311,17 @@ defm : SLMWriteResPair; defm : SLMWriteResPair; defm : X86WriteResPairUnsupported; +defm : X86WriteResPairUnsupported; +defm : X86WriteResPairUnsupported; +defm : X86WriteResPairUnsupported; + +defm : X86WriteResUnsupported; +defm : X86WriteResUnsupported; +defm : X86WriteResUnsupported; +defm : X86WriteResUnsupported; +defm : X86WriteResUnsupported; +defm : X86WriteResUnsupported; + // Vector integer operations. def : WriteRes { let Latency = 3; } def : WriteRes { let Latency = 3; } @@ -330,6 +353,10 @@ defm : SLMWriteResPair; defm : SLMWriteResPair; defm : SLMWriteResPair; defm : X86WriteResPairUnsupported; +defm : SLMWriteResPair; +defm : X86WriteResPairUnsupported; +defm : X86WriteResPairUnsupported; + defm : SLMWriteResPair; defm : SLMWriteResPair; defm : SLMWriteResPair; @@ -361,6 +388,9 @@ defm : X86WriteResPairUnsupported; defm : SLMWriteResPair; defm : SLMWriteResPair; defm : X86WriteResPairUnsupported; +defm : SLMWriteResPair; +defm : X86WriteResPairUnsupported; +defm : X86WriteResPairUnsupported; defm : SLMWriteResPair; defm : SLMWriteResPair; defm : X86WriteResPairUnsupported; @@ -369,6 +399,9 @@ defm : SLMWriteResPair; defm : SLMWriteResPair; defm : X86WriteResPairUnsupported; defm : SLMWriteResPair; +defm : X86WriteResPairUnsupported; +defm : X86WriteResPairUnsupported; +defm : X86WriteResPairUnsupported; // Vector insert/extract operations. defm : SLMWriteResPair; @@ -424,40 +457,6 @@ def : WriteRes { let Latency = 100; } def : WriteRes; def : WriteRes; -// AVX/FMA is not supported on that architecture, but we should define the basic -// scheduling resources anyway. -def : WriteRes; -defm : X86WriteResPairUnsupported; -defm : X86WriteResPairUnsupported; -defm : SLMWriteResPair; -defm : X86WriteResPairUnsupported; -defm : X86WriteResPairUnsupported; -defm : SLMWriteResPair; -defm : X86WriteResPairUnsupported; -defm : X86WriteResPairUnsupported; -defm : X86WriteResPairUnsupported; -defm : X86WriteResPairUnsupported; -defm : X86WriteResPairUnsupported; -defm : X86WriteResPairUnsupported; -defm : X86WriteResPairUnsupported; -defm : SLMWriteResPair; -defm : X86WriteResPairUnsupported; -defm : X86WriteResPairUnsupported; -defm : X86WriteResPairUnsupported; -defm : X86WriteResPairUnsupported; -defm : X86WriteResPairUnsupported; -defm : X86WriteResPairUnsupported; - -defm : X86WriteResPairUnsupported; -defm : X86WriteResPairUnsupported; -defm : X86WriteResPairUnsupported; -defm : X86WriteResUnsupported; -defm : X86WriteResUnsupported; -defm : X86WriteResUnsupported; -defm : X86WriteResUnsupported; -defm : X86WriteResUnsupported; -defm : X86WriteResUnsupported; - // Remaining SLM instrs. def SLMWriteResGroup1rr : SchedWriteRes<[SLM_FPC_RSV01]> { -- 2.7.4