Be a bit more efficient when processing the active and inactive
[oota-llvm.git] / include / Support / StringExtras.h
index 6b6472954eefc0a4b38d06507922c3fbdad738d4..fcfa65f232f48dfaa9d5775212b3e1981ae35d42 100644 (file)
@@ -15,8 +15,9 @@
 #define SUPPORT_STRINGEXTRAS_H
 
 #include "Support/DataTypes.h"
+#include <cctype>
+#include <cstdio>
 #include <string>
-#include <stdio.h>
 
 namespace llvm {
 
@@ -51,18 +52,9 @@ static inline std::string utostr(unsigned long long X, bool isNeg = false) {
   }
 
   if (isNeg) *--BufPtr = '-';   // Add negative sign...
-
   return std::string(BufPtr);
 }
 
-static inline std::string itostr(int64_t X) {
-  if (X < 0) 
-    return utostr(static_cast<uint64_t>(-X), true);
-  else
-    return utostr(static_cast<uint64_t>(X));
-}
-
-
 static inline std::string utostr(unsigned long X, bool isNeg = false) {
   return utostr(static_cast<unsigned long long>(X), isNeg);
 }
@@ -84,6 +76,20 @@ static inline std::string utostr(unsigned X, bool isNeg = false) {
   return std::string(BufPtr);
 }
 
+static inline std::string itostr(long long X) {
+  if (X < 0) 
+    return utostr(static_cast<uint64_t>(-X), true);
+  else
+    return utostr(static_cast<uint64_t>(X));
+}
+  
+static inline std::string itostr(long X) {
+  if (X < 0) 
+    return utostr(static_cast<uint64_t>(-X), true);
+  else
+    return utostr(static_cast<uint64_t>(X));
+}
+
 static inline std::string itostr(int X) {
   if (X < 0) 
     return utostr(static_cast<unsigned>(-X), true);
@@ -97,6 +103,13 @@ static inline std::string ftostr(double V) {
   return Buffer;
 }
 
+static inline std::string LowercaseString(const std::string &S) { 
+  std::string result(S);
+  for (unsigned i = 0; i < S.length(); ++i)
+    if (isupper(result[i]))
+      result[i] = (char)tolower(result[i]);
+  return result;
+}
 
 /// getToken - This function extracts one token from source, ignoring any
 /// leading characters that appear in the Delimiters string, and ending the