Set the default PPC node scheduling preference to ILP (for the embedded cores).
authorHal Finkel <hfinkel@anl.gov>
Sun, 1 Apr 2012 19:23:08 +0000 (19:23 +0000)
committerHal Finkel <hfinkel@anl.gov>
Sun, 1 Apr 2012 19:23:08 +0000 (19:23 +0000)
The 440 and A2 cores have detailed itineraries, and this allows them to be
fully used to maximize throughput.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153845 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCISelLowering.cpp
lib/Target/PowerPC/PPCISelLowering.h

index 8357e8bbdb3ac95266448b9859dfaed9418827bc..00f2dcc8dbf11c14495440a979bc8a2babd33661 100644 (file)
@@ -5837,3 +5837,12 @@ EVT PPCTargetLowering::getOptimalMemOpType(uint64_t Size,
     return MVT::i32;
   }
 }
+
+Sched::Preference PPCTargetLowering::getSchedulingPreference(SDNode *N) const {
+  unsigned Directive = PPCSubTarget.getDarwinDirective();
+  if (Directive == PPC::DIR_440 || Directive == PPC::DIR_A2)
+    return Sched::ILP;
+
+  return TargetLowering::getSchedulingPreference(N);
+}
+
index e79229f49b666d1b633923481cbbd18faa56ce9f..6a0098961135d295edf837b10b22b55adf526fda 100644 (file)
@@ -281,6 +281,7 @@ namespace llvm {
     bool SelectAddressRegImmShift(SDValue N, SDValue &Disp, SDValue &Base,
                                   SelectionDAG &DAG) const;
 
+    Sched::Preference getSchedulingPreference(SDNode *N) const;
 
     /// LowerOperation - Provide custom lowering hooks for some operations.
     ///