summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorTeresa Johnson <tejohnson@google.com>2018-08-14 03:00:16 +0000
committerTeresa Johnson <tejohnson@google.com>2018-08-14 03:00:16 +0000
commitb0a1d3bdf1d0124c555231a518cb6da769cceb05 (patch)
treea54475cc4e00a5f39f97d12e10ce714ff4129ebe /llvm/lib
parentb7b342e2805a7d674ead0e5bf9ab7307e2ec12b3 (diff)
downloadbcm5719-llvm-b0a1d3bdf1d0124c555231a518cb6da769cceb05.tar.gz
bcm5719-llvm-b0a1d3bdf1d0124c555231a518cb6da769cceb05.zip
[ThinLTO] Fix printing of WPD remarks
Summary: When WPD is performed in a ThinLTO backend, the function may be created if it isn't already in that module. Module::getOrInsertFunction may add a bitcast, in which case the returned Constant is not a Function and doesn't have a name. Invoke stripPointerCasts() on the returned value where we access its name. Reviewers: pcc Subscribers: mehdi_amini, inglorion, eraman, steven_wu, dexonsmith, llvm-commits Differential Revision: https://reviews.llvm.org/D49959 llvm-svn: 339640
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp b/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
index d65da2504db..2f75c6b6614 100644
--- a/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
+++ b/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
@@ -755,7 +755,8 @@ void DevirtModule::applySingleImplDevirt(VTableSlotInfo &SlotInfo,
auto Apply = [&](CallSiteInfo &CSInfo) {
for (auto &&VCallSite : CSInfo.CallSites) {
if (RemarksEnabled)
- VCallSite.emitRemark("single-impl", TheFn->getName(), OREGetter);
+ VCallSite.emitRemark("single-impl",
+ TheFn->stripPointerCasts()->getName(), OREGetter);
VCallSite.CS.setCalledFunction(ConstantExpr::getBitCast(
TheFn, VCallSite.CS.getCalledValue()->getType()));
// This use is no longer unsafe.
@@ -891,7 +892,8 @@ void DevirtModule::applyICallBranchFunnel(VTableSlotInfo &SlotInfo,
continue;
if (RemarksEnabled)
- VCallSite.emitRemark("branch-funnel", JT->getName(), OREGetter);
+ VCallSite.emitRemark("branch-funnel",
+ JT->stripPointerCasts()->getName(), OREGetter);
// Pass the address of the vtable in the nest register, which is r10 on
// x86_64.
OpenPOWER on IntegriCloud