diff options
author | David Greene <greened@obbligato.org> | 2009-07-23 23:21:10 +0000 |
---|---|---|
committer | David Greene <greened@obbligato.org> | 2009-07-23 23:21:10 +0000 |
commit | ed0e2adc7076365596ee3d26d5ba5240ce13f23d (patch) | |
tree | 9b3b55942b5524a2b3abcb296e98103ab3a6fa76 /lib/Support/FormattedStream.cpp | |
parent | eee839dd3c5cb87e51a522b4800674d7680fef70 (diff) |
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
Diffstat (limited to 'lib/Support/FormattedStream.cpp')
-rw-r--r-- | lib/Support/FormattedStream.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/Support/FormattedStream.cpp b/lib/Support/FormattedStream.cpp index 3523e2dee3..1796f9f956 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 @@ void formatted_raw_ostream::PadToColumn(unsigned NewCol, unsigned MinPad) { 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 |