[ThinLTO, NewPM] Run OptimizerLastEPCallbacks from buildThinLTOPreLinkDefaultPipeline
authorVitaly Buka <vitalybuka@google.com>
Wed, 10 Feb 2021 09:44:05 +0000 (01:44 -0800)
committerVitaly Buka <vitalybuka@google.com>
Wed, 24 Feb 2021 06:14:41 +0000 (22:14 -0800)
commit8560c2d4268c32fb57a99993ffeb99b3745e0999
tree27928be3735670257bdfe71cb1225c9e943bce38
parent053dc95839b3b8a36db46f8c419e36e632e989cd
[ThinLTO, NewPM] Run OptimizerLastEPCallbacks from buildThinLTOPreLinkDefaultPipeline

-O1 and above do dont call real optimizer pipeline in ThinLTO PreLink.
Also clang can't add PostLink OptimizerLastEPCallbacks for in-process ThinLTO.
This results in missing sanitizer passes with ThinLTO.

Simple working solution is just call OptimizerLastEPCallbacks
at the end of buildThinLTOPreLinkDefaultPipeline.

Differential Revision: https://reviews.llvm.org/D96320
clang/lib/CodeGen/BackendUtil.cpp
clang/test/Driver/asan.c
clang/test/Driver/dfsan.c
clang/test/Driver/msan.c
clang/test/Driver/sancov.c
clang/test/Driver/tsan.c
llvm/lib/Passes/PassBuilder.cpp