various timer fixes: move operator= out of line,
eliminate the per-timer lock (timers should be 
externally locked if needed), the info-output-stream
can never be dbgs(), so drop the check.  Make some
stuff private.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99839 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Support/Timer.cpp b/lib/Support/Timer.cpp
index 4dbb34c..16ab55f 100644
--- a/lib/Support/Timer.cpp
+++ b/lib/Support/Timer.cpp
@@ -147,7 +147,6 @@
 static ManagedStatic<std::vector<Timer*> > ActiveTimers;
 
 void Timer::startTimer() {
-  sys::SmartScopedLock<true> L(*TimerLock);
   Started = true;
   ActiveTimers->push_back(this);
   TimeRecord TR = getTimeRecord(true);
@@ -159,7 +158,6 @@
 }
 
 void Timer::stopTimer() {
-  sys::SmartScopedLock<true> L(*TimerLock);
   TimeRecord TR = getTimeRecord(false);
   Elapsed    += TR.Elapsed;
   UserTime   += TR.UserTime;
@@ -184,14 +182,26 @@
   PeakMem    += T.PeakMem;
 }
 
+const Timer &Timer::operator=(const Timer &T) {
+  Elapsed = T.Elapsed;
+  UserTime = T.UserTime;
+  SystemTime = T.SystemTime;
+  MemUsed = T.MemUsed;
+  PeakMem = T.PeakMem;
+  PeakMemBase = T.PeakMemBase;
+  Name = T.Name;
+  Started = T.Started;
+  assert(TG == T.TG && "Can only assign timers in the same TimerGroup!");
+  return *this;
+}
+
+
 /// addPeakMemoryMeasurement - This method should be called whenever memory
 /// usage needs to be checked.  It adds a peak memory measurement to the
 /// currently active timers, which will be printed when the timer group prints
 ///
 void Timer::addPeakMemoryMeasurement() {
-  sys::SmartScopedLock<true> L(*TimerLock);
   size_t MemUsed = getMemUsage();
-
   for (std::vector<Timer*>::iterator I = ActiveTimers->begin(),
          E = ActiveTimers->end(); I != E; ++I)
     (*I)->PeakMem = std::max((*I)->PeakMem, MemUsed-(*I)->PeakMemBase);
@@ -208,7 +218,6 @@
 }
 
 void Timer::print(const Timer &Total, raw_ostream &OS) {
-  sys::SmartScopedLock<true> L(*TimerLock);
   if (Total.UserTime)
     printVal(UserTime, Total.UserTime, OS);
   if (Total.SystemTime)
@@ -219,13 +228,13 @@
   
   OS << "  ";
   
-  if (Total.MemUsed) {
+  if (Total.MemUsed)
     OS << format("%9lld", (long long)MemUsed) << "  ";
-  }
+
   if (Total.PeakMem) {
-    if (PeakMem) {
+    if (PeakMem)
       OS << format("%9lld", (long long)PeakMem) << "  ";
-    } else
+    else
       OS << "           ";
   }
   OS << Name << "\n";
@@ -286,15 +295,13 @@
 //===----------------------------------------------------------------------===//
 
 // GetLibSupportInfoOutputFile - Return a file stream to print our output on.
-raw_ostream *
-llvm::GetLibSupportInfoOutputFile() {
+raw_ostream *llvm::GetLibSupportInfoOutputFile() {
   std::string &LibSupportInfoOutputFilename = getLibSupportInfoOutputFilename();
   if (LibSupportInfoOutputFilename.empty())
     return &errs();
   if (LibSupportInfoOutputFilename == "-")
     return &outs();
 
-
   std::string Error;
   raw_ostream *Result = new raw_fd_ostream(LibSupportInfoOutputFilename.c_str(),
                                            Error, raw_fd_ostream::F_Append);
@@ -373,7 +380,7 @@
 
   TimersToPrint.clear();
 
-  if (OutStream != &errs() && OutStream != &outs() && OutStream != &dbgs())
+  if (OutStream != &errs() && OutStream != &outs())
     delete OutStream;   // Close the file.
 }