From ed0e2adc7076365596ee3d26d5ba5240ce13f23d Mon Sep 17 00:00:00 2001 From: David Greene Date: Thu, 23 Jul 2009 23:21:10 +0000 Subject: 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 --- lib/Support/FormattedStream.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'lib/Support/FormattedStream.cpp') 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 + 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 -- cgit v1.2.3