//===- ARMScheduleV7.td - ARM v7 Scheduling Definitions ----*- tablegen -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file defines the itinerary class data for the ARM v7 processors. // //===----------------------------------------------------------------------===// // Dual issue pipeline so every itinerary starts with FU_Pipe0 | FU_Pipe1 def CortexA8Itineraries : ProcessorItineraries<[ // two fully-pipelined integer ALU pipelines InstrItinData]>, // one fully-pipelined integer Multiply pipeline // function units are reserved by the scheduler in reverse alpha order, // so use FU_Pipe0 for the Multiple pipeline InstrItinData]>, // loads have an extra cycle of latency, but are fully pipelined // use FU_Issue to enforce the 1 load/store per cycle limit InstrItinData, InstrStage<1, [FU_Pipe0, FU_Pipe1]>, InstrStage<1, [FU_LdSt0]>]>, // fully-pipelined stores // use FU_Issue to enforce the 1 load/store per cycle limit InstrItinData, InstrStage<1, [FU_Pipe0, FU_Pipe1]>]>, // no delay slots, so the latency of a branch is unimportant InstrItinData]>, // NFP ALU is not pipelined so stall all issues InstrItinData, InstrStage<7, [FU_Pipe1], 0>]>, // VFP MPY is not pipelined so stall all issues InstrItinData, InstrStage<7, [FU_Pipe1], 0>]>, // loads have an extra cycle of latency, but are fully pipelined // use FU_Issue to enforce the 1 load/store per cycle limit InstrItinData, InstrStage<1, [FU_Pipe0, FU_Pipe1]>, InstrStage<1, [FU_LdSt0]>]>, // use FU_Issue to enforce the 1 load/store per cycle limit InstrItinData, InstrStage<1, [FU_Pipe0, FU_Pipe1]>]> ]>; // FIXME def CortexA9Itineraries : ProcessorItineraries<[ InstrItinData]>, InstrItinData]>, InstrItinData, InstrStage<1, [FU_LdSt0]>]>, InstrItinData]>, InstrItinData]>, InstrItinData]>, InstrItinData]>, InstrItinData, InstrStage<1, [FU_LdSt0]>]>, InstrItinData]> ]>;