Move DataTypes.h to include/llvm/System, update all users. This breaks the last
[oota-llvm.git] / include / llvm / Target / SubtargetFeature.h
index 89e6efef37664228de13e6de0a68d51f471a2259..a709f523897c23972aed2c5a3a91780b1ac093b5 100644 (file)
@@ -2,8 +2,8 @@
 //
 //                     The LLVM Compiler Infrastructure
 //
-// This file was developed by James M. Laskey and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
 //
 
 #include <string>
 #include <vector>
-#include <iosfwd>
-#include "llvm/Support/DataTypes.h"
+#include <cstring>
+#include "llvm/System/DataTypes.h"
 
 namespace llvm {
-
+  class raw_ostream;
+  
 //===----------------------------------------------------------------------===//
 ///
 /// SubtargetFeatureKV - Used to provide key value pairs for feature and
@@ -34,6 +35,7 @@ struct SubtargetFeatureKV {
   const char *Key;                      // K-V key string
   const char *Desc;                     // Help descriptor
   uint32_t Value;                       // K-V integer value
+  uint32_t Implies;                     // K-V bit mask
   
   // Compare routine for std binary search
   bool operator<(const SubtargetFeatureKV &S) const {
@@ -72,7 +74,7 @@ struct SubtargetInfoKV {
 class SubtargetFeatures {
   std::vector<std::string> Features;    // Subtarget features as a vector
 public:
-  SubtargetFeatures(const std::string &Initial = std::string());
+  explicit SubtargetFeatures(const std::string &Initial = std::string());
 
   /// Features string accessors.
   std::string getString() const;
@@ -80,10 +82,13 @@ public:
 
   /// Set the CPU string.  Replaces previous setting.  Setting to "" clears CPU.
   void setCPU(const std::string &String);
-  
+
   /// Setting CPU string only if no string is set.
   void setCPUIfNone(const std::string &String);
-  
+
+  /// Returns current CPU string.
+  const std::string & getCPU() const;
+
   /// Adding Features.
   void AddFeature(const std::string &String, bool IsEnabled = true);
            
@@ -97,7 +102,7 @@ public:
   void *getInfo(const SubtargetInfoKV *Table, size_t TableSize);
   
   /// Print feature string.
-  void print(std::ostream &OS) const;
+  void print(raw_ostream &OS) const;
   
   // Dump feature info.
   void dump() const;