diff --git a/llvm/lib/Support/StringRef.cpp b/llvm/lib/Support/StringRef.cpp
index e577b95..ae2640b 100644
--- a/llvm/lib/Support/StringRef.cpp
+++ b/llvm/lib/Support/StringRef.cpp
@@ -8,7 +8,6 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm/ADT/StringRef.h"
-#include <cstring>
 
 using namespace llvm;
 
@@ -52,21 +51,18 @@
   size_type m = size();
   size_type n = Other.size();
 
-  unsigned SmallPrevious[32];
-  unsigned SmallCurrent[32];
-  
-  unsigned *previous = SmallPrevious;
-  unsigned *current = SmallCurrent;
-  if (n + 1 > 32) {
-    previous = new unsigned [n+1];
-    current = new unsigned [n+1];
-  }
+  const unsigned SmallBufferSize = 64;
+  unsigned SmallBuffer[SmallBufferSize];
+  unsigned *Allocated = 0;
+  unsigned *previous = SmallBuffer;
+  if (2*(n + 1) > SmallBufferSize)
+    Allocated = previous = new unsigned [2*(n+1)];
+  unsigned *current = previous + (n + 1);
   
   for (unsigned i = 0; i <= n; ++i) 
     previous[i] = i;
 
   for (size_type y = 1; y <= m; ++y) {
-    std::memset(current, 0, (n + 1) * sizeof(unsigned));
     current[0] = y;
     for (size_type x = 1; x <= n; ++x) {
       if (AllowReplacements) {
@@ -85,10 +81,7 @@
   }
 
   unsigned Result = previous[n];
-  if (n + 1 > 32) {
-    delete [] previous;
-    delete [] current;
-  }
+  delete [] Allocated;
   
   return Result;
 }
