aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/llvm/Pass.h5
-rw-r--r--lib/VMCore/Pass.cpp7
2 files changed, 9 insertions, 3 deletions
diff --git a/include/llvm/Pass.h b/include/llvm/Pass.h
index 96cd263..08496c5 100644
--- a/include/llvm/Pass.h
+++ b/include/llvm/Pass.h
@@ -332,6 +332,11 @@ private:
virtual void addToPassManager(PassManagerT<BasicBlock> *PM,AnalysisUsage &AU);
};
+/// If the user specifies the -time-passes argument on an LLVM tool command line
+/// then the value of this boolean will be true, otherwise false.
+/// @brief This is the storage for the -time-passes option.
+extern bool TimePassesIsEnabled;
+
} // End llvm namespace
// Include support files that contain important APIs commonly used by Passes,
diff --git a/lib/VMCore/Pass.cpp b/lib/VMCore/Pass.cpp
index 945a7ca..d6fe2fb 100644
--- a/lib/VMCore/Pass.cpp
+++ b/lib/VMCore/Pass.cpp
@@ -110,15 +110,16 @@ bool FunctionPassManager::run(Function &F) {
// amount of time each pass takes to execute. This only happens with
// -time-passes is enabled on the command line.
//
-static cl::opt<bool>
-EnableTiming("time-passes",
+bool llvm::TimePassesIsEnabled = false;
+static cl::opt<bool,true>
+EnableTiming("time-passes", cl::location(TimePassesIsEnabled),
cl::desc("Time each pass, printing elapsed time for each on exit"));
// 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.
void TimingInfo::createTheTimeInfo() {
- if (!EnableTiming || TheTimeInfo) return;
+ if (!TimePassesIsEnabled || TheTimeInfo) return;
// Constructed the first time this is called, iff -time-passes is enabled.
// This guarantees that the object will be constructed before static globals,