https://github.com/mikolaj-pirog created https://github.com/llvm/llvm-project/pull/112750
As in title. This matches the behavior of `-fprofile-use`, which when used without a path to the file, looks for `default.profdata` file in the current/supplied dir. From 642f7ac9b1e999d8adb690b67c6303139794379d Mon Sep 17 00:00:00 2001 From: "Pirog, Mikolaj Maciej" <mikolaj.maciej.pi...@intel.com> Date: Thu, 17 Oct 2024 10:17:09 -0700 Subject: [PATCH] Provide default value for -fprofile-sample-use --- clang/lib/Driver/ToolChains/Clang.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 3fc39296f44281..2da8b604ebff62 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -594,6 +594,8 @@ static void addPGOAndCoverageFlags(const ToolChain &TC, Compilation &C, << PGOGenerateArg->getSpelling() << ProfileGenerateArg->getSpelling(); auto *ProfileUseArg = getLastProfileUseArg(Args); + auto *ProfileSampleUseArg = Args.getLastArg( + options::OPT_fprofile_sample_use, options::OPT_fprofile_sample_use_EQ); if (PGOGenerateArg && ProfileUseArg) D.Diag(diag::err_drv_argument_not_allowed_with) @@ -677,6 +679,25 @@ static void addPGOAndCoverageFlags(const ToolChain &TC, Compilation &C, } } + if (ProfileSampleUseArg) { + if ((ProfileSampleUseArg->getOption().matches( + options::OPT_fprofile_sample_use) || + ProfileSampleUseArg->getOption().matches( + options::OPT_fprofile_sample_use_EQ))) { + SmallString<128> Path(ProfileSampleUseArg->getNumValues() == 0 + ? "" + : ProfileSampleUseArg->getValue()); + if (Path.empty() || llvm::sys::fs::is_directory(Path)) + llvm::sys::path::append(Path, "default.profdata"); + + if (!llvm::sys::fs::exists(Path)) + D.Diag(diag::err_drv_no_such_file) << Path; + + CmdArgs.push_back( + Args.MakeArgString(Twine("-fprofile-sample-use=") + Path)); + } + } + bool EmitCovNotes = Args.hasFlag(options::OPT_ftest_coverage, options::OPT_fno_test_coverage, false) || Args.hasArg(options::OPT_coverage); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits