Re-enable 91381 with fixes.
[oota-llvm.git] / lib / CompilerDriver / Main.cpp
index c581809d04b96d785714751a70206249815b2bcc..3a3487a0a9c03224f5654ee77c39580b06a1bc63 100644 (file)
@@ -19,6 +19,7 @@
 #include "llvm/Support/raw_ostream.h"
 #include "llvm/System/Path.h"
 
+#include <sstream>
 #include <stdexcept>
 #include <string>
 
@@ -28,6 +29,8 @@ using namespace llvmc;
 
 namespace {
 
+  std::stringstream* GlobalTimeLog;
+
   sys::Path getTempDir() {
     sys::Path tempDir;
 
@@ -81,6 +84,11 @@ namespace {
 
 namespace llvmc {
 
+// Used to implement -time option. External linkage is intentional.
+void AppendToGlobalTimeLog(const std::string& cmd, double time) {
+  *GlobalTimeLog << "# " << cmd << ' ' << time << '\n';
+}
+
 // Sometimes plugins want to condition on the value in argv[0].
 const char* ProgramName;
 
@@ -122,7 +130,19 @@ int Main(int argc, char** argv) {
       throw std::runtime_error("no input files");
     }
 
-    return BuildTargets(graph, langMap);
+    if (Time) {
+      GlobalTimeLog = new std::stringstream;
+      GlobalTimeLog->precision(2);
+    }
+
+    int ret = BuildTargets(graph, langMap);
+
+    if (Time) {
+      llvm::errs() << GlobalTimeLog->str();
+      delete GlobalTimeLog;
+    }
+
+    return ret;
   }
   catch(llvmc::error_code& ec) {
     return ec.code();