Add some comments explaining what MVT and EVT are, and how they differ.
[oota-llvm.git] / include / llvm / System / Host.h
index 22e36e7ba7b552c8fc4a075995fa4cce7cfc159f..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 {
@@ -32,13 +33,33 @@ namespace sys {
     return !isLittleEndianHost();
   }
 
-  /// getOSName() - Return the name of the host operating system or "" if
-  /// unknown.
-  std::string getOSName();
+  /// getHostTriple() - Return the target triple of the running
+  /// system.
+  ///
+  /// The target triple is a string in the format of:
+  ///   CPU_TYPE-VENDOR-OPERATING_SYSTEM
+  /// or
+  ///   CPU_TYPE-VENDOR-KERNEL-OPERATING_SYSTEM
+  std::string getHostTriple();
 
-  /// getOSVersion() - Return the operating system version as a string or
-  /// "" if unknown.
-  std::string getOSVersion();
+  /// getHostCPUName - Get the LLVM name for the host CPU. The particular format
+  /// of the name is target dependent, and suitable for passing as -mcpu to the
+  /// target which matches the host.
+  ///
+  /// \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);
 }
 }