brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · 9bcd4bf Raw
78 lines · plain
1//===- HexagonSchedule.td - Hexagon Scheduling Definitions -*- tablegen -*-===//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 9def Hex_FWD : Bypass;10def HVX_FWD : Bypass;11 12// Functional Units.13def SLOT0       : FuncUnit;14def SLOT1       : FuncUnit;15def SLOT2       : FuncUnit;16def SLOT3       : FuncUnit;17// Endloop is a pseudo instruction that is encoded with 2 bits in a packet18// rather than taking an execution slot. This special unit is needed19// to schedule an ENDLOOP with 4 other instructions.20def SLOT_ENDLOOP: FuncUnit;21 22// CVI pipes from the "Hexagon Multimedia Co-Processor Extensions Arch Spec".23def CVI_ST     : FuncUnit;24def CVI_XLANE  : FuncUnit;25def CVI_SHIFT  : FuncUnit;26def CVI_MPY0   : FuncUnit;27def CVI_MPY1   : FuncUnit;28def CVI_LD     : FuncUnit;29def CVI_ZW     : FuncUnit; // Z register write port30 31// Combined functional units.32def CVI_XLSHF  : FuncUnit;33def CVI_MPY01  : FuncUnit;34def CVI_ALL    : FuncUnit;35def CVI_ALL_NOMEM : FuncUnit;36 37// Combined functional unit data.38def HexagonComboFuncsV60 :39    ComboFuncUnits<[40      ComboFuncData<CVI_XLSHF    , [CVI_XLANE, CVI_SHIFT]>,41      ComboFuncData<CVI_MPY01    , [CVI_MPY0, CVI_MPY1]>,42      ComboFuncData<CVI_ALL      , [CVI_ST, CVI_XLANE, CVI_SHIFT,43                                    CVI_MPY0, CVI_MPY1, CVI_LD]>,44      ComboFuncData<CVI_ALL_NOMEM, [CVI_XLANE, CVI_SHIFT, CVI_MPY0, CVI_MPY1]>45    ]>;46 47// Itinerary classes.48def PSEUDO          : InstrItinClass;49def PSEUDOM         : InstrItinClass;50def DUPLEX          : InstrItinClass;51def tc_ENDLOOP      : InstrItinClass;52 53//===----------------------------------------------------------------------===//54// Auto-generated itinerary classes55//===----------------------------------------------------------------------===//56include "HexagonDepIICScalar.td"57include "HexagonDepIICHVX.td"58 59include "HexagonScheduleV5.td"60include "HexagonScheduleV55.td"61 62include "HexagonIICScalar.td"63include "HexagonIICHVX.td"64include "HexagonScheduleV60.td"65 66include "HexagonScheduleV62.td"67include "HexagonScheduleV65.td"68include "HexagonScheduleV66.td"69include "HexagonScheduleV67.td"70include "HexagonScheduleV67T.td"71include "HexagonScheduleV68.td"72include "HexagonScheduleV69.td"73include "HexagonScheduleV71.td"74include "HexagonScheduleV71T.td"75include "HexagonScheduleV73.td"76include "HexagonScheduleV75.td"77include "HexagonScheduleV79.td"78include "HexagonScheduleV81.td"