Add some comments explaining what MVT and EVT are, and how they differ.
[oota-llvm.git] / include / llvm / System / Host.h
index df46b25527bc1f3f0806a8a4b58277d6a98af877..4fbf5c177c6e1ee2edb579a8a8bc068b7fbc70b8 100644 (file)
@@ -2,8 +2,8 @@
 //
 //                     The LLVM Compiler Infrastructure
 //
-// This file was developed by Duncan Sands 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.
 //
 //===----------------------------------------------------------------------===//
 //
 #ifndef LLVM_SYSTEM_HOST_H
 #define LLVM_SYSTEM_HOST_H
 
+#include "llvm/ADT/StringMap.h"
+#include <string>
+
 namespace llvm {
 namespace sys {
 
-  inline bool littleEndianHost() {
+  inline bool isLittleEndianHost() {
     union {
       int i;
       char c;
@@ -26,10 +29,37 @@ namespace sys {
     return c;
   }
 
-  inline bool bigEndianHost() {
-    return !littleEndianHost();
+  inline bool isBigEndianHost() {
+    return !isLittleEndianHost();
   }
 
+  /// 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();
+
+  /// 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);
 }
 }