Fixed to address code review. No functional changes.
authorDavid Goodwin <david_goodwin@apple.com>
Tue, 10 Nov 2009 00:48:55 +0000 (00:48 +0000)
committerDavid Goodwin <david_goodwin@apple.com>
Tue, 10 Nov 2009 00:48:55 +0000 (00:48 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86634 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Target/TargetSubtarget.h
lib/CodeGen/PostRASchedulerList.cpp
lib/Target/ARM/ARMSubtarget.cpp
lib/Target/ARM/ARMSubtarget.h
lib/Target/TargetSubtarget.cpp
lib/Target/X86/X86Subtarget.cpp
lib/Target/X86/X86Subtarget.h

index 64c36d5f765e81e85afe3542dccc166b50f873b5..f16c9e4ae6d1414d1b38cee86fedb7b07582f586 100644 (file)
 #define LLVM_TARGET_TARGETSUBTARGET_H
 
 #include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetRegisterInfo.h"
-#include "llvm/ADT/SmallVector.h"
 
 namespace llvm {
 
 class SDep;
 class SUnit;
+class TargetRegisterClass;
+template <typename T> class SmallVectorImpl;
 
 //===----------------------------------------------------------------------===//
 ///
@@ -38,7 +38,7 @@ public:
   // AntiDepBreakMode - Type of anti-dependence breaking that should
   // be performed before post-RA scheduling.
   typedef enum { ANTIDEP_NONE, ANTIDEP_CRITICAL, ANTIDEP_ALL } AntiDepBreakMode;
-  typedef SmallVector<TargetRegisterClass*, 4> ExcludedRCVector;
+  typedef SmallVectorImpl<TargetRegisterClass*> ExcludedRCVector;
 
   virtual ~TargetSubtarget();
 
@@ -53,12 +53,7 @@ public:
   // return true to enable post-register-allocation scheduling. 
   virtual bool enablePostRAScheduler(CodeGenOpt::Level OptLevel,
                                      AntiDepBreakMode& Mode,
-                                     ExcludedRCVector& ExcludedRCs) const {
-    Mode = ANTIDEP_NONE;
-    ExcludedRCs.clear();
-    return false;
-  }
-
+                                     ExcludedRCVector& ExcludedRCs) const;
   // adjustSchedDependency - Perform target specific adjustments to
   // the latency of a schedule dependency.
   virtual void adjustSchedDependency(SUnit *def, SUnit *use, 
index 5917e76004ab1bebe21baeb4cae06c2e079cb90b..b5729bbed550797d55cb815ef01d8d9dce70bdb4 100644 (file)
@@ -216,7 +216,7 @@ bool PostRAScheduler::runOnMachineFunction(MachineFunction &Fn) {
 
   // Check for explicit enable/disable of post-ra scheduling.
   TargetSubtarget::AntiDepBreakMode AntiDepMode = TargetSubtarget::ANTIDEP_NONE;
-  TargetSubtarget::ExcludedRCVector ExcludedRCs;
+  SmallVector<TargetRegisterClass*, 4> ExcludedRCs;
   if (EnablePostRAScheduler.getPosition() > 0) {
     if (!EnablePostRAScheduler)
       return false;
index 5af95c33b930c4402529feda94884a7eab7a491b..dc813289e73bf623a0811d0eac34a9fb2d4ede32 100644 (file)
@@ -16,6 +16,7 @@
 #include "llvm/GlobalValue.h"
 #include "llvm/Target/TargetOptions.h"
 #include "llvm/Support/CommandLine.h"
+#include "llvm/ADT/SmallVector.h"
 using namespace llvm;
 
 static cl::opt<bool>
@@ -159,3 +160,13 @@ ARMSubtarget::GVIsIndirectSymbol(GlobalValue *GV, Reloc::Model RelocM) const {
 
   return false;
 }
+
+bool ARMSubtarget::enablePostRAScheduler(
+           CodeGenOpt::Level OptLevel,
+           TargetSubtarget::AntiDepBreakMode& Mode,
+           ExcludedRCVector& ExcludedRCs) const {
+  Mode = TargetSubtarget::ANTIDEP_CRITICAL;
+  ExcludedRCs.clear();
+  ExcludedRCs.push_back(&ARM::GPRRegClass);
+  return PostRAScheduler && OptLevel >= CodeGenOpt::Default;
+}
index c94f9febc506d555ec0bba57d7b0555ff1e8bc86..fd66693675a65fdf1a1ecaa5bc174a3d5852bfe8 100644 (file)
@@ -127,16 +127,10 @@ protected:
 
   const std::string & getCPUString() const { return CPUString; }
   
-  /// enablePostRAScheduler - True at 'More' optimization except
-  /// for Thumb1.
+  /// enablePostRAScheduler - True at 'More' optimization.
   bool enablePostRAScheduler(CodeGenOpt::Level OptLevel,
                              TargetSubtarget::AntiDepBreakMode& Mode,
-                             ExcludedRCVector& ExcludedRCs) const {
-    Mode = TargetSubtarget::ANTIDEP_CRITICAL;
-    ExcludedRCs.clear();
-    ExcludedRCs.push_back(&ARM::GPRRegClass);
-    return PostRAScheduler && OptLevel >= CodeGenOpt::Default;
-  }
+                             ExcludedRCVector& ExcludedRCs) const;
 
   /// getInstrItins - Return the instruction itineraies based on subtarget
   /// selection.
index 95c92cabaf70fce3db6b9dac2e52870646c2465b..696c09b52f86dda6173d62ba5866f5a14a238bb6 100644 (file)
@@ -12,6 +12,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm/Target/TargetSubtarget.h"
+#include "llvm/ADT/SmallVector.h"
 using namespace llvm;
 
 //---------------------------------------------------------------------------
@@ -20,3 +21,13 @@ using namespace llvm;
 TargetSubtarget::TargetSubtarget() {}
 
 TargetSubtarget::~TargetSubtarget() {}
+
+bool TargetSubtarget::enablePostRAScheduler(
+          CodeGenOpt::Level OptLevel,
+          AntiDepBreakMode& Mode,
+          ExcludedRCVector& ExcludedRCs) const {
+  Mode = ANTIDEP_NONE;
+  ExcludedRCs.clear();
+  return false;
+}
+
index 9525f0474d57587cf5d27ccac0cd5ec9ff094a5e..a7233b52b244a60c11d686369bfa5f2b8fec8589 100644 (file)
@@ -20,6 +20,7 @@
 #include "llvm/Support/raw_ostream.h"
 #include "llvm/Target/TargetMachine.h"
 #include "llvm/Target/TargetOptions.h"
+#include "llvm/ADT/SmallVector.h"
 using namespace llvm;
 
 #if defined(_MSC_VER)
@@ -455,3 +456,12 @@ X86Subtarget::X86Subtarget(const std::string &TT, const std::string &FS,
   if (StackAlignment)
     stackAlignment = StackAlignment;
 }
+
+bool X86Subtarget::enablePostRAScheduler(
+            CodeGenOpt::Level OptLevel,
+            TargetSubtarget::AntiDepBreakMode& Mode,
+            ExcludedRCVector& ExcludedRCs) const {
+  Mode = TargetSubtarget::ANTIDEP_CRITICAL;
+  ExcludedRCs.clear();
+  return OptLevel >= CodeGenOpt::Default;
+}
index f18def1f6a9db5ac37009550cbcbd045d2c55fc7..a0eef0551e5648c37e85305a930f5286a362c63e 100644 (file)
@@ -220,11 +220,7 @@ public:
   /// at 'More' optimization level.
   bool enablePostRAScheduler(CodeGenOpt::Level OptLevel,
                              TargetSubtarget::AntiDepBreakMode& Mode,
-                             ExcludedRCVector& ExcludedRCs) const {
-    Mode = TargetSubtarget::ANTIDEP_CRITICAL;
-    ExcludedRCs.clear();
-    return OptLevel >= CodeGenOpt::Default;
-  }
+                             ExcludedRCVector& ExcludedRCs) const;
 };
 
 } // End llvm namespace