Reorder to keep data and routines separate and to keep a couple of
[oota-llvm.git] / include / llvm / Target / TargetMachine.h
index d3f3e58da7e1d915e3932255ca0fd72d6db4a898..dcd454e894911361a66e6f73f1c221a5f7eb6567 100644 (file)
@@ -86,6 +86,8 @@ protected: // Can only create subclasses.
   unsigned RequireStructuredCFG : 1;
 
 public:
+  mutable TargetOptions Options;
+
   virtual ~TargetMachine();
 
   const Target &getTarget() const { return TheTarget; }
@@ -104,7 +106,12 @@ public:
     return const_cast<TargetSubtargetInfo *>(TM->getSubtargetImpl());
   }
 
-  mutable TargetOptions Options;
+  /// getSubtarget - This method returns a pointer to the specified type of
+  /// TargetSubtargetInfo.  In debug builds, it verifies that the object being
+  /// returned is of the correct type.
+  template<typename STC> const STC &getSubtarget() const {
+    return *static_cast<const STC*>(getSubtargetImpl());
+  }
 
   /// \brief Reset the target options based on the function's attributes.
   void resetTargetOptions(const MachineFunction *MF) const;
@@ -113,13 +120,6 @@ public:
   ///
   const MCAsmInfo *getMCAsmInfo() const { return AsmInfo; }
 
-  /// getSubtarget - This method returns a pointer to the specified type of
-  /// TargetSubtargetInfo.  In debug builds, it verifies that the object being
-  /// returned is of the correct type.
-  template<typename STC> const STC &getSubtarget() const {
-    return *static_cast<const STC*>(getSubtargetImpl());
-  }
-
   /// getIntrinsicInfo - If intrinsic information is available, return it.  If
   /// not, return null.
   ///