diff options
author | Francis Visoiu Mistrih <francisvm@yahoo.com> | 2019-03-12 20:28:50 +0000 |
---|---|---|
committer | Francis Visoiu Mistrih <francisvm@yahoo.com> | 2019-03-12 20:28:50 +0000 |
commit | 20fff32b7d1f1a1bd417b22aa9f26ededd97a3e5 (patch) | |
tree | 3d306ab2527a4bfcf4cfc24a9a82cbea6b476559 /llvm/tools/llvm-lto2 | |
parent | a54d580350cd5779ee7bd119fd2beffe3097472e (diff) | |
download | bcm5719-llvm-20fff32b7d1f1a1bd417b22aa9f26ededd97a3e5.tar.gz bcm5719-llvm-20fff32b7d1f1a1bd417b22aa9f26ededd97a3e5.zip |
[Remarks] Add -foptimization-record-passes to filter remark emission
Currently we have -Rpass for filtering the remarks that are displayed as
diagnostics, but when using -fsave-optimization-record, there is no way
to filter the remarks while generating them.
This adds support for filtering remarks by passes using a regex.
Ex: `clang -fsave-optimization-record -foptimization-record-passes=inline`
will only emit the remarks coming from the pass `inline`.
This adds:
* `-fsave-optimization-record` to the driver
* `-opt-record-passes` to cc1
* `-lto-pass-remarks-filter` to the LTOCodeGenerator
* `--opt-remarks-passes` to lld
* `-pass-remarks-filter` to llc, opt, llvm-lto, llvm-lto2
* `-opt-remarks-passes` to gold-plugin
Differential Revision: https://reviews.llvm.org/D59268
llvm-svn: 355964
Diffstat (limited to 'llvm/tools/llvm-lto2')
-rw-r--r-- | llvm/tools/llvm-lto2/llvm-lto2.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/tools/llvm-lto2/llvm-lto2.cpp b/llvm/tools/llvm-lto2/llvm-lto2.cpp index 6cceb8e4cf8..df51921396a 100644 --- a/llvm/tools/llvm-lto2/llvm-lto2.cpp +++ b/llvm/tools/llvm-lto2/llvm-lto2.cpp @@ -101,6 +101,12 @@ static cl::opt<bool> OptRemarksWithHotness( "Has effect only if -pass-remarks-output is specified.")); static cl::opt<std::string> + OptRemarksPasses("pass-remarks-filter", + cl::desc("Only record optimization remarks from passes " + "whose names match the given regular expression"), + cl::value_desc("regex")); + +static cl::opt<std::string> SamplePGOFile("lto-sample-profile-file", cl::desc("Specify a SamplePGO profile file")); @@ -220,6 +226,7 @@ static int run(int argc, char **argv) { // Optimization remarks. Conf.RemarksFilename = OptRemarksOutput; + Conf.RemarksPasses = OptRemarksPasses; Conf.RemarksWithHotness = OptRemarksWithHotness; Conf.SampleProfile = SamplePGOFile; |