[PATCH] D37091: Expose -mllvm -accurate-sample-profile to clang.
Dehao Chen via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Aug 23 18:52:14 PDT 2017
danielcdh created this revision.
Herald added a subscriber: sanjoy.
With accurate sample profile, we can do more aggressive size optimization. For some size-critical application, this can reduce the text size by 20%
https://reviews.llvm.org/D37091
Files:
include/clang/Driver/Options.td
lib/Driver/ToolChains/Clang.cpp
Index: lib/Driver/ToolChains/Clang.cpp
===================================================================
--- lib/Driver/ToolChains/Clang.cpp
+++ lib/Driver/ToolChains/Clang.cpp
@@ -2340,6 +2340,12 @@
true))
CmdArgs.push_back("-fno-jump-tables");
+ if (Args.hasFlag(options::OPT_faccurate_sample_profile,
+ options::OPT_fno_accurate_sample_profile, false)) {
+ CmdArgs.push_back("-mllvm");
+ CmdArgs.push_back("-accurate-sample-profile");
+ }
+
if (!Args.hasFlag(options::OPT_fpreserve_as_comments,
options::OPT_fno_preserve_as_comments, true))
CmdArgs.push_back("-fno-preserve-as-comments");
Index: include/clang/Driver/Options.td
===================================================================
--- include/clang/Driver/Options.td
+++ include/clang/Driver/Options.td
@@ -587,6 +587,14 @@
def fPIE : Flag<["-"], "fPIE">, Group<f_Group>;
def fno_PIE : Flag<["-"], "fno-PIE">, Group<f_Group>;
def faccess_control : Flag<["-"], "faccess-control">, Group<f_Group>;
+def faccurate_sample_profile : Flag<["-"], "faccurate-sample-profile">,
+ Group<f_Group>, Flags<[DriverOption]>,
+ HelpText<"If sample profile is accurate, we will mark all un-sampled "
+ "callsite as cold. Otherwise, treat un-sampled callsites as if "
+ "we have no profile">;
+def fno_accurate_sample_profile : Flag<["-"], "fno-accurate-sample-profile">,
+ Group<f_Group>, Flags<[DriverOption]>;
+
def fallow_unsupported : Flag<["-"], "fallow-unsupported">, Group<f_Group>;
def fapple_kext : Flag<["-"], "fapple-kext">, Group<f_Group>, Flags<[CC1Option]>,
HelpText<"Use Apple's kernel extensions ABI">;
@@ -643,6 +651,10 @@
Alias<fno_profile_sample_use>;
def fauto_profile_EQ : Joined<["-"], "fauto-profile=">,
Alias<fprofile_sample_use_EQ>;
+def fauto_profile_accurate : Flag<["-"], "fauto-profile-accurate">,
+ Group<f_Group>, Alias<faccurate_sample_profile>;
+def fno_auto_profile_accurate : Flag<["-"], "fno-auto-profile-accurate">,
+ Group<f_Group>, Alias<fno_accurate_sample_profile>;
def fdebug_info_for_profiling : Flag<["-"], "fdebug-info-for-profiling">, Group<f_Group>,
Flags<[CC1Option]>,
HelpText<"Emit extra debug info to make sample profile more accurate.">;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D37091.112492.patch
Type: text/x-patch
Size: 2285 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170824/2216bdc5/attachment.bin>
More information about the cfe-commits
mailing list