https://github.com/macurtis-amd created https://github.com/llvm/llvm-project/pull/122143
None >From e774d184e18600f272813fdf7af05cff5f878374 Mon Sep 17 00:00:00 2001 From: Matthew Curtis <macur...@amd.com> Date: Wed, 8 Jan 2025 10:20:44 -0600 Subject: [PATCH] [clang] Propagate -ftime-report to offload lto --- clang/lib/Driver/ToolChains/Clang.cpp | 4 ++++ clang/lib/Driver/ToolChains/CommonArgs.cpp | 4 ++++ clang/test/Driver/amdgpu-openmp-toolchain.c | 4 ++++ clang/test/Driver/lto.c | 6 ++++++ 4 files changed, 18 insertions(+) diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index a0002371da2f1b..a6258fb799b8c5 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -9281,6 +9281,10 @@ void LinkerWrapper::ConstructJob(Compilation &C, const JobAction &JA, if (const Arg *A = Args.getLastArg(options::OPT_Rpass_analysis_EQ)) CmdArgs.push_back(Args.MakeArgString( Twine("--offload-opt=-pass-remarks-analysis=") + A->getValue())); + + if (Args.getLastArg(options::OPT_ftime_report)) + CmdArgs.push_back("--device-compiler=-ftime-report"); + if (Args.getLastArg(options::OPT_save_temps_EQ)) CmdArgs.push_back("--save-temps"); diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp index 60214c4d59cee5..f8967890f722cf 100644 --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -1209,6 +1209,10 @@ void tools::addLTOOptions(const ToolChain &ToolChain, const ArgList &Args, if (ImplicitMapSyms) CmdArgs.push_back( Args.MakeArgString(Twine(PluginOptPrefix) + "-implicit-mapsyms")); + + if (Args.hasArg(options::OPT_ftime_report)) + CmdArgs.push_back( + Args.MakeArgString(Twine(PluginOptPrefix) + "-time-passes")); } void tools::addOpenMPRuntimeLibraryPath(const ToolChain &TC, diff --git a/clang/test/Driver/amdgpu-openmp-toolchain.c b/clang/test/Driver/amdgpu-openmp-toolchain.c index f596708047c154..1c2ee26173139c 100644 --- a/clang/test/Driver/amdgpu-openmp-toolchain.c +++ b/clang/test/Driver/amdgpu-openmp-toolchain.c @@ -81,3 +81,7 @@ // RUN: %clang -### --target=x86_64-unknown-linux-gnu -emit-llvm -S -fopenmp --offload-arch=gfx803 \ // RUN: -stdlib=libc++ -nogpulib %s 2>&1 | FileCheck %s --check-prefix=LIBCXX // LIBCXX-NOT: include/amdgcn-amd-amdhsa/c++/v1 + +// RUN: %clang -### -target x86_64-pc-linux-gnu -nogpulib -fopenmp --offload-arch=gfx90a \ +// RUN: -ftime-report %s 2>&1 | FileCheck %s --check-prefix=CHECK-TIME-REPORT +// CHECK-TIME-REPORT: clang-linker-wrapper{{.*}}"--device-compiler=-ftime-report" diff --git a/clang/test/Driver/lto.c b/clang/test/Driver/lto.c index 5be95013f00d72..a85f953af37a81 100644 --- a/clang/test/Driver/lto.c +++ b/clang/test/Driver/lto.c @@ -114,3 +114,9 @@ // // CHECK-GISEL: "-plugin-opt=-global-isel=1" // CHECK-DISABLE-GISEL: "-plugin-opt=-global-isel=0" + +// -flto passes -time-passes when -ftime-report is passed +// RUN: %clang --target=x86_64-unknown-linux-gnu -### %s -flto -ftime-report 2> %t +// RUN: FileCheck --check-prefix=CHECK-TIME-REPORT < %t %s + +// CHECK-TIME-REPORT: "-plugin-opt=-time-passes" _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits