[PATCH] D96354: Avoid conflicts between debug-info and pseudo-probe profiling
Paul Robinson via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Feb 10 07:35:03 PST 2021
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG5ea2d4fa4811: Avoid conflicts between debug-info and pseudo-probe profiling (authored by probinson).
Changed prior to commit:
https://reviews.llvm.org/D96354?vs=322428&id=322684#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D96354/new/
https://reviews.llvm.org/D96354
Files:
clang/lib/Driver/ToolChains/Clang.cpp
clang/test/CodeGen/pseudo-probe-emit.c
clang/test/Driver/pseudo-probe.c
Index: clang/test/Driver/pseudo-probe.c
===================================================================
--- /dev/null
+++ clang/test/Driver/pseudo-probe.c
@@ -0,0 +1,7 @@
+// RUN: %clang -### -fpseudo-probe-for-profiling %s 2>&1 | FileCheck %s --check-prefix=YESPROBE
+// RUN: %clang -### -fno-pseudo-probe-for-profiling %s 2>&1 | FileCheck %s --check-prefix=NOPROBE
+// RUN: %clang -### -fpseudo-probe-for-profiling -fdebug-info-for-profiling %s 2>&1 | FileCheck %s --check-prefix=CONFLICT
+
+// YESPROBE: -fpseudo-probe-for-profiling
+// NOPROBE-NOT: -fpseudo-probe-for-profiling
+// CONFLICT: invalid argument
Index: clang/test/CodeGen/pseudo-probe-emit.c
===================================================================
--- clang/test/CodeGen/pseudo-probe-emit.c
+++ clang/test/CodeGen/pseudo-probe-emit.c
@@ -1,4 +1,4 @@
-// RUN: %clang -O2 -fexperimental-new-pass-manager -fpseudo-probe-for-profiling -g -emit-llvm -S -o - %s | FileCheck %s
+// RUN: %clang_cc1 -O2 -fno-legacy-pass-manager -fpseudo-probe-for-profiling -debug-info-kind=limited -emit-llvm -o - %s | FileCheck %s
// Check the generation of pseudoprobe intrinsic call
Index: clang/lib/Driver/ToolChains/Clang.cpp
===================================================================
--- clang/lib/Driver/ToolChains/Clang.cpp
+++ clang/lib/Driver/ToolChains/Clang.cpp
@@ -3746,6 +3746,12 @@
ArgStringList &CmdArgs,
codegenoptions::DebugInfoKind &DebugInfoKind,
DwarfFissionKind &DwarfFission) {
+ // These two forms of profiling info can't be used together.
+ if (const Arg *A1 = Args.getLastArg(options::OPT_fpseudo_probe_for_profiling))
+ if (const Arg *A2 = Args.getLastArg(options::OPT_fdebug_info_for_profiling))
+ D.Diag(diag::err_drv_argument_not_allowed_with)
+ << A1->getAsString(Args) << A2->getAsString(Args);
+
if (Args.hasFlag(options::OPT_fdebug_info_for_profiling,
options::OPT_fno_debug_info_for_profiling, false) &&
checkDebugInfoOption(
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D96354.322684.patch
Type: text/x-patch
Size: 2080 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20210210/3fc48267/attachment.bin>
More information about the cfe-commits
mailing list