[llvm-branch-commits] [clang] [Clang][LTO][AMDGPU] start using new pass manager for backend codegen (PR #210250)
Vikram Hegde via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Jul 20 22:46:12 PDT 2026
https://github.com/vikramRH updated https://github.com/llvm/llvm-project/pull/210250
>From f07668a18c137a249c3b7b92a7463af4d8e287a9 Mon Sep 17 00:00:00 2001
From: vikhegde <vikram.hegde at amd.com>
Date: Thu, 16 Jul 2026 16:27:28 +0530
Subject: [PATCH] [Clang][LTO][AMDGPU] start using new pass manager for backend
codegen
---
clang/lib/Driver/ToolChains/Clang.cpp | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 8c9b98795b194..09891a12e3453 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -5291,6 +5291,13 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
}
}
+ if (getToolChain().getTriple().isAMDGCN()) {
+ if (Args.hasFlag(options::OPT_fenable_new_pm_codegen,
+ options::OPT_fno_enable_new_pm_codegen, true)) {
+ CmdArgs.push_back(Args.MakeArgString("-fenable-new-pm-codegen"));
+ }
+ }
+
if (IsCuda && !IsCudaDevice) {
// We need to figure out which CUDA version we're compiling for, as that
// determines how we load and launch GPU kernels.
@@ -9924,10 +9931,18 @@ void LinkerWrapper::ConstructJob(Compilation &C, const JobAction &JA,
// Forward the LTO mode for this toolchain.
auto DeviceLTOMode = TC->getLTOMode(ToolChainArgs, Kind);
- if (DeviceLTOMode == LTOK_Full)
+ if (DeviceLTOMode == LTOK_Full) {
CmdArgs.push_back(Args.MakeArgString(
"--device-compiler=" + TC->getTripleString() + "=-flto=full"));
- else if (DeviceLTOMode == LTOK_Thin) {
+
+ if (TC->getTriple().isAMDGCN() &&
+ Args.hasFlag(options::OPT_fenable_new_pm_codegen,
+ options::OPT_fno_enable_new_pm_codegen, true)) {
+ CmdArgs.push_back(
+ Args.MakeArgString("--device-linker=" + TC->getTripleString() +
+ "=-plugin-opt=-enable-npm-for-backend"));
+ }
+ } else if (DeviceLTOMode == LTOK_Thin) {
CmdArgs.push_back(Args.MakeArgString(
"--device-compiler=" + TC->getTripleString() + "=-flto=thin"));
if (TC->getTriple().isAMDGPU()) {
More information about the llvm-branch-commits
mailing list