From 1f079267dc8281f9cb92b23910de621b3387265a Mon Sep 17 00:00:00 2001 From: Reid Spencer Date: Tue, 24 Aug 2004 17:52:35 +0000 Subject: [PATCH] Give the -time-passes tool option a global storage location so that its value can be discovered by the various LLVM tools. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16032 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Pass.h | 5 +++++ lib/VMCore/Pass.cpp | 7 ++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/include/llvm/Pass.h b/include/llvm/Pass.h index 96cd263e217..08496c5d2e7 100644 --- a/include/llvm/Pass.h +++ b/include/llvm/Pass.h @@ -332,6 +332,11 @@ private: virtual void addToPassManager(PassManagerT *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 945a7cac647..d6fe2fba41c 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 -EnableTiming("time-passes", +bool llvm::TimePassesIsEnabled = false; +static cl::opt +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,