diff --git a/lib/IR/PassManager.cpp b/lib/IR/PassManager.cpp index 5a8df703dbe..3c968aac164 100644 --- a/lib/IR/PassManager.cpp +++ b/lib/IR/PassManager.cpp @@ -1739,10 +1739,8 @@ bool PassManager::run(Module &M) { } //===----------------------------------------------------------------------===// -// TimingInfo Class - This class is used to calculate information about the -// amount of time each pass takes to execute. This only happens with -// -time-passes is enabled on the command line. -// +// TimingInfo implementation + bool llvm::TimePassesIsEnabled = false; static cl::opt<bool,true> EnableTiming("time-passes", cl::location(TimePassesIsEnabled), diff --git a/lib/IRReader/IRReader.cpp b/lib/IRReader/IRReader.cpp index fb87cbd8bf8..eeec14e834c 100644 --- a/lib/IRReader/IRReader.cpp +++ b/lib/IRReader/IRReader.cpp @@ -14,9 +14,18 @@ #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/SourceMgr.h" #include "llvm/Support/system_error.h" +#include "llvm/Support/Timer.h" using namespace llvm; +namespace llvm { + extern bool TimePassesIsEnabled; +} + +static const char *TimeIRParsingGroupName = "LLVM IR Parsing"; +static const char *TimeIRParsingName = "Parse IR"; + + Module *llvm::getLazyIRModule(MemoryBuffer *Buffer, SMDiagnostic &Err, LLVMContext &Context) { if (isBitcode((const unsigned char *)Buffer->getBufferStart(), @@ -50,6 +59,8 @@ Module *llvm::getLazyIRFileModule(const std::string &Filename, SMDiagnostic &Err Module *llvm::ParseIR(MemoryBuffer *Buffer, SMDiagnostic &Err, LLVMContext &Context) { + NamedRegionTimer T(TimeIRParsingName, TimeIRParsingGroupName, + TimePassesIsEnabled); if (isBitcode((const unsigned char *)Buffer->getBufferStart(), (const unsigned char *)Buffer->getBufferEnd())) { std::string ErrMsg;