diff options
author | Alex Voicu <alexandru.voicu@amd.com> | 2025-04-15 00:47:09 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-15 00:47:09 +0300 |
commit | 1bcec036e197f6ab7461722502e4393396b46ec3 (patch) | |
tree | 3d88753049c9443b146d7d2dde94d267cf558896 /clang/lib/CodeGen/BackendUtil.cpp | |
parent | cd7d2c3bf89c9f0e6b7467d9d5ac87ddc829975c (diff) | |
download | llvm-1bcec036e197f6ab7461722502e4393396b46ec3.zip llvm-1bcec036e197f6ab7461722502e4393396b46ec3.tar.gz llvm-1bcec036e197f6ab7461722502e4393396b46ec3.tar.bz2 |
[HIP][HIPSTDPAR][NFC] Re-order & adapt `hipstdpar` specific passes (#134753)
The `hipstdpar` specific passes were not ordered ideally, especially for
`fgpu-rdc` compilations, which meant that we'd eagerly run accelerator
code selection and remove symbols that might end up used. This change
corrects that aspect by ensuring that accelerator code selection is only
done after linking (this will have to be revisited in the future once
the closed-world assumption no longer holds). Furthermore, we take the
opportunity to move allocation interposition so that it properly gets
printed when print-pipeline-passes is requested. NFC.
Diffstat (limited to 'clang/lib/CodeGen/BackendUtil.cpp')
-rw-r--r-- | clang/lib/CodeGen/BackendUtil.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/clang/lib/CodeGen/BackendUtil.cpp b/clang/lib/CodeGen/BackendUtil.cpp index 7557cb8..f7eb853 100644 --- a/clang/lib/CodeGen/BackendUtil.cpp +++ b/clang/lib/CodeGen/BackendUtil.cpp @@ -1115,6 +1115,10 @@ void EmitAssemblyHelper::RunOptimizationPipeline( if (CodeGenOpts.LinkBitcodePostopt) MPM.addPass(LinkInModulesPass(BC)); + if (LangOpts.HIPStdPar && !LangOpts.CUDAIsDevice && + LangOpts.HIPStdParInterposeAlloc) + MPM.addPass(HipStdParAllocationInterpositionPass()); + // Add a verifier pass if requested. We don't have to do this if the action // requires code generation because there will already be a verifier pass in // the code-generation pipeline. @@ -1178,10 +1182,6 @@ void EmitAssemblyHelper::RunOptimizationPipeline( return; } - if (LangOpts.HIPStdPar && !LangOpts.CUDAIsDevice && - LangOpts.HIPStdParInterposeAlloc) - MPM.addPass(HipStdParAllocationInterpositionPass()); - // Now that we have all of the passes ready, run them. { PrettyStackTraceString CrashInfo("Optimizer"); |