Revert r77397, it causes significant regressions in llc performance.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77425 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Support/FormattedStream.cpp b/lib/Support/FormattedStream.cpp
index 1198ebf..1796f9f 100644
--- a/lib/Support/FormattedStream.cpp
+++ b/lib/Support/FormattedStream.cpp
@@ -19,11 +19,11 @@
 /// ComputeColumn - Examine the current output and figure out which
 /// column we end up in after output.
 ///
-void formatted_raw_ostream::ComputeColumn(unsigned &Column) {
+void formatted_raw_ostream::ComputeColumn(const char *Ptr, size_t Size) {
   // Keep track of the current column by scanning the string for
   // special characters
 
-  for (const char *Ptr = begin(); Ptr != end(); ++Ptr) {
+  for (const char *epos = Ptr + Size; Ptr != epos; ++Ptr) {
     ++Column;
     if (*Ptr == '\n' || *Ptr == '\r')
       Column = 0;
@@ -38,13 +38,8 @@
 /// \param MinPad - The minimum space to give after the most recent
 /// I/O, even if the current column + minpad > newcol.
 ///
-void formatted_raw_ostream::PadToColumn(unsigned NewCol, unsigned MinPad) { 
-  // Start out from the last flush position.
-  unsigned Column = ColumnFlushed;
-
-  // Now figure out what's in the buffer and add it to the column
-  // count.
-  ComputeColumn(Column);
+void formatted_raw_ostream::PadToColumn(unsigned NewCol, unsigned MinPad) {
+  flush();
 
   // Output spaces until we reach the desired column.
   unsigned num = NewCol - Column;