aboutsummaryrefslogtreecommitdiff
path: root/lib/VMCore/PassManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/VMCore/PassManager.cpp')
-rw-r--r--lib/VMCore/PassManager.cpp58
1 files changed, 5 insertions, 53 deletions
diff --git a/lib/VMCore/PassManager.cpp b/lib/VMCore/PassManager.cpp
index 5d391444ca..28bd4b5439 100644
--- a/lib/VMCore/PassManager.cpp
+++ b/lib/VMCore/PassManager.cpp
@@ -14,7 +14,6 @@
#include "llvm/PassManagers.h"
#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/Timer.h"
#include "llvm/Module.h"
#include "llvm/ModuleProvider.h"
#include "llvm/Support/Streams.h"
@@ -259,60 +258,13 @@ public:
};
-} // End of llvm namespace
-
-namespace {
-
-//===----------------------------------------------------------------------===//
-// TimingInfo Class - This class is used to calculate information about the
-// amount of time each pass takes to execute. This only happens when
-// -time-passes is enabled on the command line.
-//
-
-class VISIBILITY_HIDDEN TimingInfo {
- std::map<Pass*, Timer> TimingData;
- TimerGroup TG;
-
-public:
- // Use 'create' member to get this.
- TimingInfo() : TG("... Pass execution timing report ...") {}
-
- // TimingDtor - Print out information about timing information
- ~TimingInfo() {
- // Delete all of the timers...
- TimingData.clear();
- // TimerGroup is deleted next, printing the report.
- }
-
- // createTheTimeInfo - This method either initializes the TheTimeInfo pointer
- // to a non null value (if the -time-passes option is enabled) or it leaves it
- // null. It may be called multiple times.
- static void createTheTimeInfo();
-
- void passStarted(Pass *P) {
-
- if (dynamic_cast<PMDataManager *>(P))
- return;
-
- std::map<Pass*, Timer>::iterator I = TimingData.find(P);
- if (I == TimingData.end())
- I=TimingData.insert(std::make_pair(P, Timer(P->getPassName(), TG))).first;
- I->second.startTimer();
- }
- void passEnded(Pass *P) {
-
- if (dynamic_cast<PMDataManager *>(P))
- return;
-
- std::map<Pass*, Timer>::iterator I = TimingData.find(P);
- assert (I != TimingData.end() && "passStarted/passEnded not nested right!");
- I->second.stopTimer();
- }
-};
-
static TimingInfo *TheTimeInfo;
-} // End of anon namespace
+TimingInfo *getTheTimeInfo() {
+ return TheTimeInfo;
+}
+
+} // End of llvm namespace
//===----------------------------------------------------------------------===//
// PMTopLevelManager implementation