Add some comments explaining what MVT and EVT are, and how they differ.
[oota-llvm.git] / include / llvm / System / Host.h
index 6de1a4a9befc6814021712abb0d02b6f74f419b5..4fbf5c177c6e1ee2edb579a8a8bc068b7fbc70b8 100644 (file)
@@ -14,6 +14,7 @@
 #ifndef LLVM_SYSTEM_HOST_H
 #define LLVM_SYSTEM_HOST_H
 
+#include "llvm/ADT/StringMap.h"
 #include <string>
 
 namespace llvm {
@@ -47,6 +48,18 @@ namespace sys {
   ///
   /// \return - The host CPU name, or empty if the CPU could not be determined.
   std::string getHostCPUName();
+
+  /// getHostCPUFeatures - Get the LLVM names for the host CPU features.
+  /// The particular format of the names are target dependent, and suitable for
+  /// passing as -mattr to the target which matches the host.
+  ///
+  /// \param Features - A string mapping feature names to either
+  /// true (if enabled) or false (if disabled). This routine makes no guarantees
+  /// about exactly which features may appear in this map, except that they are
+  /// all valid LLVM feature names.
+  ///
+  /// \return - True on success.
+  bool getHostCPUFeatures(StringMap<bool> &Features);
 }
 }