================ @@ -194,11 +197,29 @@ int Compilation::ExecuteCommand(const Command &C, if (LogOnly) return 0; + // We don't use any timers or llvm::TimeGroup's because those are tied into + // the global static timer list which, in principle, could be cleared without + // us knowing about it. + llvm::TimeRecord StartTime; + if (getArgs().hasArg(options::OPT_time)) { + StartTime = llvm::TimeRecord::getCurrentTime(/*Start=*/true); + } + std::string Error; bool ExecutionFailed; int Res = C.Execute(Redirects, &Error, &ExecutionFailed); if (PostCallback) PostCallback(C, Res); + + if (getArgs().hasArg(options::OPT_time)) { + llvm::TimeRecord Time = llvm::TimeRecord::getCurrentTime(/*Start=*/false); + Time -= StartTime; + llvm::StringRef Name = llvm::sys::path::filename(C.getExecutable()); + llvm::errs() << "# " << Name << " " + << llvm::format("%0.5f", Time.getUserTime()) << " " + << llvm::format("%0.5f", Time.getSystemTime()) << "\n"; ---------------- tarunprabhu wrote:
Ah. Nice catch. I have changed it "%0.2" which should be compatible with GCC. https://github.com/llvm/llvm-project/pull/109165 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits