WholeProgramDevirt: generate more detailed and accurate remarks.
authorIvan Krasin <krasin@chromium.org>
Thu, 11 Aug 2016 19:09:02 +0000 (19:09 +0000)
committerIvan Krasin <krasin@chromium.org>
Thu, 11 Aug 2016 19:09:02 +0000 (19:09 +0000)
commitf3403fd2c84f05b1219bc6a7badf062a3b7541ef
treef2e84aeb66b12bc703c454bd8dc87298e2518e2d
parent82b16766e65a211f4e93dd973aff4b343fa158db
WholeProgramDevirt: generate more detailed and accurate remarks.

Summary:
Keep track of all methods for which we have devirtualized at least
one call and then print them sorted alphabetically. That allows to
avoid duplicates and also makes the order deterministic.

Add optimization names into the remarks, so that it's easier to
understand how has each method been devirtualized.

Fix a bug when wrong methods could have been reported for
tryVirtualConstProp.

Reviewers: kcc, mehdi_amini

Differential Revision: https://reviews.llvm.org/D23297

llvm-svn: 278389
llvm/include/llvm/Transforms/IPO/WholeProgramDevirt.h
llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
llvm/test/Transforms/WholeProgramDevirt/devirt-single-impl-check.ll
llvm/test/Transforms/WholeProgramDevirt/devirt-single-impl.ll
llvm/test/Transforms/WholeProgramDevirt/virtual-const-prop-check.ll