Write space padding as one string to speed up comment printing.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76910 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Support/FormattedStream.cpp b/lib/Support/FormattedStream.cpp
index 3523e2d..1796f9f 100644
--- a/lib/Support/FormattedStream.cpp
+++ b/lib/Support/FormattedStream.cpp
@@ -12,6 +12,8 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm/Support/FormattedStream.h"
+#include <algorithm>
+
 using namespace llvm;
 
 /// ComputeColumn - Examine the current output and figure out which
@@ -44,9 +46,17 @@
   if (NewCol < Column || num < MinPad)
     num = MinPad;
 
-  // TODO: Write a whole string at a time.
-  while (num-- > 0)
-    write(' ');
+  // Keep a buffer of spaces handy to speed up processing.
+  static char Spaces[MAX_COLUMN_PAD];
+  static bool Initialized = false;
+  if (!Initialized) {
+    std::fill_n(Spaces, MAX_COLUMN_PAD, ' '),
+    Initialized = true;
+  }
+
+  assert(num < MAX_COLUMN_PAD && "Unexpectedly large column padding");
+
+  write(Spaces, num);
 }
 
 /// fouts() - This returns a reference to a formatted_raw_ostream for