[llvm-commits] [llvm] r169039 - /llvm/trunk/lib/VMCore/PassManager.cpp

Jakob Stoklund Olesen stoklund at 2pi.dk
Fri Nov 30 13:42:45 PST 2012


Author: stoklund
Date: Fri Nov 30 15:42:45 2012
New Revision: 169039

URL: http://llvm.org/viewvc/llvm-project?rev=169039&view=rev
Log:
Aggregate pass execution time report by pass ID instead of pass instance.

This avoids unidentified duplicates in the pass execution time report
when a pass runs more than once in the pass manager pipeline.

Modified:
    llvm/trunk/lib/VMCore/PassManager.cpp

Modified: llvm/trunk/lib/VMCore/PassManager.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/PassManager.cpp?rev=169039&r1=169038&r2=169039&view=diff
==============================================================================
--- llvm/trunk/lib/VMCore/PassManager.cpp (original)
+++ llvm/trunk/lib/VMCore/PassManager.cpp Fri Nov 30 15:42:45 2012
@@ -444,7 +444,7 @@
 static ManagedStatic<sys::SmartMutex<true> > TimingInfoMutex;
 
 class TimingInfo {
-  DenseMap<Pass*, Timer*> TimingData;
+  DenseMap<AnalysisID, Timer*> TimingData;
   TimerGroup TG;
 public:
   // Use 'create' member to get this.
@@ -454,7 +454,7 @@
   ~TimingInfo() {
     // Delete all of the timers, which accumulate their info into the
     // TimerGroup.
-    for (DenseMap<Pass*, Timer*>::iterator I = TimingData.begin(),
+    for (DenseMap<AnalysisID, Timer*>::iterator I = TimingData.begin(),
          E = TimingData.end(); I != E; ++I)
       delete I->second;
     // TimerGroup is deleted next, printing the report.
@@ -471,7 +471,7 @@
       return 0;
 
     sys::SmartScopedLock<true> Lock(*TimingInfoMutex);
-    Timer *&T = TimingData[P];
+    Timer *&T = TimingData[P->getPassID()];
     if (T == 0)
       T = new Timer(P->getPassName(), TG);
     return T;





More information about the llvm-commits mailing list