wire up a minimal -ftime-report, which prints the optimizer/codegen
times. Daniel, plz add driver support.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64869 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Driver/clang.cpp b/Driver/clang.cpp
index 24c4d7f..a22e0d2 100644
--- a/Driver/clang.cpp
+++ b/Driver/clang.cpp
@@ -42,6 +42,7 @@
#include "clang/Basic/FileManager.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Basic/TargetInfo.h"
+#include "llvm/Pass.h"
#include "llvm/ADT/OwningPtr.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/StringExtras.h"
@@ -211,6 +212,12 @@
//===----------------------------------------------------------------------===//
// Builtin Options
//===----------------------------------------------------------------------===//
+
+static llvm::cl::opt<bool>
+TimeReport("ftime-report",
+ llvm::cl::desc("Print the amount of time each "
+ "phase of compilation takes"));
+
static llvm::cl::opt<bool>
Freestanding("ffreestanding",
llvm::cl::desc("Assert that the compilation takes place in a "
@@ -1503,6 +1510,10 @@
// If no input was specified, read from stdin.
if (InputFilenames.empty())
InputFilenames.push_back("-");
+
+ // Handle -ftime-report.
+ if (TimeReport)
+ llvm::TimePassesIsEnabled = true;
// Create a file manager object to provide access to and cache the filesystem.
FileManager FileMgr;