convert a bunch of std::strings to use StringRef. This should eliminate
[oota-llvm.git] / include / llvm / Target / TargetSubtarget.h
index fde8f44669ad04704b680b5b02b9f4f4e9cb9b7e..14f612af979408d9a15b5df0a098907775087a6b 100644 (file)
@@ -16,6 +16,9 @@
 
 namespace llvm {
 
+class SDep;
+class SUnit;
+
 //===----------------------------------------------------------------------===//
 ///
 /// TargetSubtarget - Generic base class for all target subtargets.  All
@@ -29,6 +32,17 @@ protected: // Can only create subclasses...
   TargetSubtarget();
 public:
   virtual ~TargetSubtarget();
+
+  /// getSpecialAddressLatency - For targets where it is beneficial to
+  /// backschedule instructions that compute addresses, return a value
+  /// indicating the number of scheduling cycles of backscheduling that
+  /// should be attempted.
+  virtual unsigned getSpecialAddressLatency() const { return 0; }
+
+  // adjustSchedDependency - Perform target specific adjustments to
+  // the latency of a schedule dependency.
+  virtual void adjustSchedDependency(SUnit *def, SUnit *use, 
+                                     SDep& dep) const { };
 };
 
 } // End llvm namespace