aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/BackendUtil.cpp
diff options
context:
space:
mode:
authorFYK <fanju110@163.com>2025-06-14 02:05:16 +0800
committerGitHub <noreply@github.com>2025-06-13 12:05:16 -0600
commit52d34865b9db3485c8a671a88cc571270349f720 (patch)
tree40bf8e87c19a70e65198544ae7e7f02a84eaea9e /clang/lib/CodeGen/BackendUtil.cpp
parentf82cf7442029d3376813db82eca60800e999bfb9 (diff)
downloadllvm-52d34865b9db3485c8a671a88cc571270349f720.zip
llvm-52d34865b9db3485c8a671a88cc571270349f720.tar.gz
llvm-52d34865b9db3485c8a671a88cc571270349f720.tar.bz2
Fix and reapply IR PGO support for Flang (#142892)
This PR resubmits the changes from #136098, which was previously reverted due to a build failure during the linking stage: ``` undefined reference to `llvm::DebugInfoCorrelate' undefined reference to `llvm::ProfileCorrelate' ``` The root cause was that `llvm/lib/Frontend/Driver/CodeGenOptions.cpp` references symbols from the `Instrumentation` component, but the `LINK_COMPONENTS` in the `llvm/lib/Frontend/CMakeLists.txt` for `LLVMFrontendDriver` did not include it. As a result, linking failed in configurations where these components were not transitively linked. ### Fix: This updated patch explicitly adds `Instrumentation` to `LINK_COMPONENTS` in the relevant `llvm/lib/Frontend/CMakeLists.txt` file to ensure the required symbols are properly resolved. --------- Co-authored-by: ict-ql <168183727+ict-ql@users.noreply.github.com> Co-authored-by: Chyaka <52224511+liliumshade@users.noreply.github.com> Co-authored-by: Tarun Prabhu <tarunprabhu@gmail.com>
Diffstat (limited to 'clang/lib/CodeGen/BackendUtil.cpp')
-rw-r--r--clang/lib/CodeGen/BackendUtil.cpp9
1 files changed, 1 insertions, 8 deletions
diff --git a/clang/lib/CodeGen/BackendUtil.cpp b/clang/lib/CodeGen/BackendUtil.cpp
index 88b3a49..7e0a3cf 100644
--- a/clang/lib/CodeGen/BackendUtil.cpp
+++ b/clang/lib/CodeGen/BackendUtil.cpp
@@ -124,17 +124,10 @@ namespace clang {
extern llvm::cl::opt<bool> ClSanitizeGuardChecks;
}
-// Default filename used for profile generation.
-static std::string getDefaultProfileGenName() {
- return DebugInfoCorrelate || ProfileCorrelate != InstrProfCorrelator::NONE
- ? "default_%m.proflite"
- : "default_%m.profraw";
-}
-
// Path and name of file used for profile generation
static std::string getProfileGenName(const CodeGenOptions &CodeGenOpts) {
std::string FileName = CodeGenOpts.InstrProfileOutput.empty()
- ? getDefaultProfileGenName()
+ ? llvm::driver::getDefaultProfileGenName()
: CodeGenOpts.InstrProfileOutput;
if (CodeGenOpts.ContinuousProfileSync)
FileName = "%c" + FileName;