]> granicus.if.org Git - llvm/commit
Reland "[Remarks] Add -foptimization-record-passes to filter remark emission"
authorFrancis Visoiu Mistrih <francisvm@yahoo.com>
Tue, 12 Mar 2019 21:22:27 +0000 (21:22 +0000)
committerFrancis Visoiu Mistrih <francisvm@yahoo.com>
Tue, 12 Mar 2019 21:22:27 +0000 (21:22 +0000)
commit1e252811d6155fa571f0e2d24af3c246b1b7c12a
tree87f285d0bb2595284637d614cc718c746aced30c
parente733b62cb8ce6f3c11ba4eeb725ff843eb1ed35b
Reland "[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

Original llvm-svn: 355964

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@355984 91177308-0d34-0410-b5e6-96231b3b80d8
14 files changed:
include/llvm/IR/RemarkStreamer.h
include/llvm/LTO/Config.h
include/llvm/LTO/LTO.h
lib/IR/RemarkStreamer.cpp
lib/LTO/LTO.cpp
lib/LTO/LTOBackend.cpp
lib/LTO/LTOCodeGenerator.cpp
lib/LTO/ThinLTOCodeGenerator.cpp
test/LTO/Resolution/X86/diagnostic-handler-remarks.ll
test/ThinLTO/X86/diagnostic-handler-remarks.ll
tools/gold/gold-plugin.cpp
tools/llc/llc.cpp
tools/llvm-lto2/llvm-lto2.cpp
tools/opt/opt.cpp