[clang] [llvm] [TimeProfiler][Clang] Add zstd-compressed time-trace output support (PR #228627)
Chandler Carruth via cfe-commits
cfe-commits at lists.llvm.org
Sun Oct 18 02:33:47 PDT 2026
================
@@ -7344,6 +7346,32 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
CmdArgs.push_back(Args.MakeArgString("-ftime-trace=" + Twine(Name)));
Args.AddLastArg(CmdArgs, options::OPT_ftime_trace_granularity_EQ);
Args.AddLastArg(CmdArgs, options::OPT_ftime_trace_verbose);
+ llvm::TimeTraceCompression Compress = llvm::TimeTraceCompression::Infer;
+ if (const Arg *CompressArg =
+ Args.getLastArg(options::OPT_ftime_trace_compress_EQ)) {
+ StringRef Value = CompressArg->getValue();
+ if (Value == "none")
+ Compress = llvm::TimeTraceCompression::None;
+ else if (Value == "zstd")
+ Compress = llvm::TimeTraceCompression::Zstd;
+ else if (Value == "infer")
+ Compress = llvm::TimeTraceCompression::Infer;
+ else
+ D.Diag(diag::err_drv_unsupported_option_argument)
+ << CompressArg->getSpelling() << Value;
+ }
+ if (Compress == llvm::TimeTraceCompression::Infer)
+ Compress = llvm::inferTimeTraceCompressionFromPath(Name);
+ if (Compress == llvm::TimeTraceCompression::Zstd) {
+ if (llvm::compression::zstd::isAvailable())
+ CmdArgs.push_back("-ftime-trace-compress=zstd");
+ else
+ D.Diag(diag::err_drv_time_trace_compression_unavailable) << "zstd";
----------------
chandlerc wrote:
Good point, done and simplified accordingly.
https://github.com/llvm/llvm-project/pull/228627
More information about the cfe-commits
mailing list