Changes from Git (git http://labmaster3.local/git/llvm-project.git)


  1. [remark][diagnostics] Using clang diagnostic handler for IR input files (details)
Commit 60d39479221d6bc09060f7816bcd7c54eb286603 by xur
[remark][diagnostics] Using clang diagnostic handler for IR input files
For IR input files, we currently use LLVM diagnostic handler even the
compilation is from clang. As a result, we are not able to use -Rpass to
get the transformation reports. Some warnings are not handled properly
either: We found many mysterious warnings in our ThinLTO backend
compilations in SamplePGO and CSPGO. An example of the warning:
"warning: net/proto2/public/metadata_lite.h:51:21: 0.02% (1 / 4999)"
This turns out to be a warning by Wmisexpect, which is supposed to be
filtered out by default. But since the filter is in clang's diagnostic
hander, we emit these incomplete warnings from LLVM's diagnostic
This patch uses clang diagnostic handler for IR input files. We create a
fake backendconsumer just to install the diagnostic handler.
With this change, we will have proper handling of all the warnings and
we can use -Rpass* options in IR input files compilation. Also note that
with is patch, LLVM's diagnostic options, like
"-mllvm -pass-remarks=*", are no longer be able to get optimization
Differential Revision:
The file was addedclang/test/CodeGen/thinlto-clang-diagnostic-handler-in-be.c
The file was addedclang/test/CodeGen/Inputs/thinlto_expect2.proftext
The file was modifiedclang/lib/CodeGen/CodeGenAction.cpp
The file was modifiedclang/test/CodeGen/thinlto-diagnostic-handler-remarks-with-hotness.ll
The file was addedclang/test/CodeGen/Inputs/thinlto_expect1.proftext