//===- HexagonSchedule.td - Hexagon Scheduling Definitions -*- tablegen -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // Functional Units def LSUNIT : FuncUnit; // SLOT0 def LUNIT : FuncUnit; // SLOT1 def MUNIT : FuncUnit; // SLOT2 def SUNIT : FuncUnit; // SLOT3 def LOOPUNIT : FuncUnit; // Itinerary classes def ALU32 : InstrItinClass; def ALU64 : InstrItinClass; def CR : InstrItinClass; def J : InstrItinClass; def JR : InstrItinClass; def LD : InstrItinClass; def LD0 : InstrItinClass; def M : InstrItinClass; def ST : InstrItinClass; def ST0 : InstrItinClass; def S : InstrItinClass; def SYS : InstrItinClass; def ENDLOOP : InstrItinClass; def PSEUDO : InstrItinClass; def PSEUDOM : InstrItinClass; def HexagonItineraries : ProcessorItineraries<[LSUNIT, LUNIT, MUNIT, SUNIT, LOOPUNIT], [], [ InstrItinData]>, InstrItinData]>, InstrItinData]>, InstrItinData]>, InstrItinData]>, InstrItinData]>, InstrItinData]>, InstrItinData]>, InstrItinData]>, InstrItinData]>, InstrItinData]>, InstrItinData]>, InstrItinData]>, InstrItinData]>, InstrItinData, InstrStage<1, [MUNIT, SUNIT]>]> ]>; def HexagonModel : SchedMachineModel { // Max issue per cycle == bundle width. let IssueWidth = 4; let Itineraries = HexagonItineraries; let LoadLatency = 1; } //===----------------------------------------------------------------------===// // V4 Machine Info + //===----------------------------------------------------------------------===// include "HexagonScheduleV4.td" //===----------------------------------------------------------------------===// // V4 Machine Info - //===----------------------------------------------------------------------===//