mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-19 01:48:34 +00:00
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
This commit is contained in:
parent
eee839dd3c
commit
ed0e2adc70
@ -27,16 +27,23 @@ namespace llvm
|
||||
/// DELETE_STREAM - Tell the destructor to delete the held stream.
|
||||
///
|
||||
const static bool DELETE_STREAM = true;
|
||||
|
||||
/// PRESERVE_STREAM - Tell the destructor to not delete the held
|
||||
/// stream.
|
||||
///
|
||||
const static bool PRESERVE_STREAM = false;
|
||||
|
||||
|
||||
/// MAX_COLUMN_PAD - This is the maximum column padding we ever
|
||||
/// expect to see.
|
||||
///
|
||||
const static unsigned MAX_COLUMN_PAD = 100;
|
||||
|
||||
private:
|
||||
/// TheStream - The real stream we output to. We set it to be
|
||||
/// unbuffered, since we're already doing our own buffering.
|
||||
///
|
||||
raw_ostream *TheStream;
|
||||
|
||||
/// DeleteStream - Do we need to delete TheStream in the
|
||||
/// destructor?
|
||||
///
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user