aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/ARM/ARMScheduleA9.td
diff options
context:
space:
mode:
authorArnold Schwaighofer <aschwaighofer@apple.com>2013-03-26 15:14:04 +0000
committerArnold Schwaighofer <aschwaighofer@apple.com>2013-03-26 15:14:04 +0000
commitafaeb8152c79a9f3c157a614331d6919a0a0fa6a (patch)
tree5962a3a26693d4d02744b16c9e809094b6234d56 /lib/Target/ARM/ARMScheduleA9.td
parentd6f5a581ab968a2618b0c5a8472ea2ab37797916 (diff)
Revert ARM Scheduler Model: Add resources instructions, map resources
This reverts commit r177968. It is causing failures in a local build bot. "fatal error: error in backend: Expected a variant SchedClass" Original commit message: Move the CortexA9 resources into the CortexA9 SchedModel namespace. Define resource mappings under the CortexA9 SchedModel. Define resources and mappings for the SwiftModel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178028 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMScheduleA9.td')
-rw-r--r--lib/Target/ARM/ARMScheduleA9.td19
1 files changed, 8 insertions, 11 deletions
diff --git a/lib/Target/ARM/ARMScheduleA9.td b/lib/Target/ARM/ARMScheduleA9.td
index cec20b1462..4191931a5a 100644
--- a/lib/Target/ARM/ARMScheduleA9.td
+++ b/lib/Target/ARM/ARMScheduleA9.td
@@ -1898,8 +1898,6 @@ def CortexA9Model : SchedMachineModel {
//===----------------------------------------------------------------------===//
// Define each kind of processor resource and number available.
-let SchedModel = CortexA9Model in {
-
def A9UnitALU : ProcResource<2>;
def A9UnitMul : ProcResource<1> { let Super = A9UnitALU; }
def A9UnitAGU : ProcResource<1>;
@@ -2005,6 +2003,13 @@ foreach NumCycles = 2-8 in {
def A9WriteCycle#NumCycles : WriteSequence<[A9WriteCycle1], NumCycles>;
} // foreach NumCycles
+// Define TII for use in SchedVariant Predicates.
+def : PredicateProlog<[{
+ const ARMBaseInstrInfo *TII =
+ static_cast<const ARMBaseInstrInfo*>(SchedModel->getInstrInfo());
+ (void)TII;
+}]>;
+
// Define address generation sequences and predicates for 8 flavors of LDMs.
foreach NumAddr = 1-8 in {
@@ -2274,6 +2279,7 @@ def A9Read4 : SchedReadAdvance<3>;
// This table follows the ARM Cortex-A9 Technical Reference Manuals,
// mostly in order.
+let SchedModel = CortexA9Model in {
def :ItinRW<[A9WriteI], [IIC_iMOVi,IIC_iMOVr,IIC_iMOVsi,
IIC_iMVNi,IIC_iMVNsi,
@@ -2480,13 +2486,4 @@ def :ItinRW<[A9WriteV9, A9Read3, A9Read2], [IIC_VMACD, IIC_VFMACD]>;
def :ItinRW<[A9WriteV10, A9Read3, A9Read2], [IIC_VMACQ, IIC_VFMACQ]>;
def :ItinRW<[A9WriteV9, A9Read2, A9Read2], [IIC_VRECSD]>;
def :ItinRW<[A9WriteV10, A9Read2, A9Read2], [IIC_VRECSQ]>;
-
-// New (incomplete) model mappings that don't rely on itinerary mappings.
-def : SchedAlias<WriteALU, A9WriteA>;
-def : SchedAlias<WriteALUsi, A9WriteAsi>;
-def : SchedAlias<WriteALUsr, A9WriteAsr>;
-def : SchedAlias<WriteALUSsr, A9WriteAsr>;
-def : SchedAlias<ReadAdvanceALU, A9ReadA>;
-def : SchedAlias<ReadAdvanceALUsr, A9ReadA>;
-
} // SchedModel = CortexA9Model