brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.2 KiB · cc03a71 Raw
70 lines · plain
1//==-- SystemZSchedule.td - SystemZ Scheduling Definitions ----*- tblgen -*-==//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9// Scheduler resources10 11// These resources are used to express decoder grouping rules.  The number of12// decoder slots needed by an instructions is normally one, but there are13// exceptions.14def NormalGr    : SchedWrite;15def Cracked     : SchedWrite;16def GroupAlone  : SchedWrite;17def GroupAlone2 : SchedWrite;18def GroupAlone3 : SchedWrite;19def BeginGroup  : SchedWrite;20def EndGroup    : SchedWrite;21 22// A SchedWrite added to other SchedWrites to make LSU latency parameterizable.23def LSULatency : SchedWrite;24 25// Operand WriteLatencies.26foreach L = 1 - 30 in def "WLat"#L : SchedWrite;27 28foreach L = 1 - 16 in29  def "WLat"#L#"LSU" : WriteSequence<[!cast<SchedWrite>("WLat"#L),30                                      LSULatency]>;31 32// ReadAdvances, used for the register operand next to a memory operand,33// modelling that the register operand is needed later than the address34// operands.35def RegReadAdv : SchedRead;36 37foreach Num = ["", "2", "3", "4", "5", "6"] in {38  // Fixed-point units39  def "FXa"#Num : SchedWrite;40  def "FXb"#Num : SchedWrite;41  def "FXU"#Num : SchedWrite;42  // Load/store unit43  def "LSU"#Num : SchedWrite;44  // Vector sub units (z13 and later)45  def "VecBF"#Num : SchedWrite;46  def "VecDF"#Num : SchedWrite;47  def "VecDFX"#Num : SchedWrite;48  def "VecMul"#Num : SchedWrite;49  def "VecStr"#Num : SchedWrite;50  def "VecXsPm"#Num : SchedWrite;51  // Floating point unit (zEC12 and earlier)52  def "FPU"#Num : SchedWrite;53  def "DFU"#Num : SchedWrite;54}55 56def VecFPd   : SchedWrite; // Blocking BFP div/sqrt unit (30 cycles).57def VecFPd20 : SchedWrite; // Blocking BFP div/sqrt unit, 20 cycles.58 59def VBU : SchedWrite; // Virtual branching unit60 61def MCD : SchedWrite; // Millicode62 63include "SystemZScheduleZ17.td"64include "SystemZScheduleZ16.td"65include "SystemZScheduleZ15.td"66include "SystemZScheduleZ14.td"67include "SystemZScheduleZ13.td"68include "SystemZScheduleZEC12.td"69include "SystemZScheduleZ196.td"70