mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 12:43:36 +01:00
[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
This commit is contained in:
parent
0c06d55837
commit
bdf8b94754
@ -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.
|
||||
|
@ -5,7 +5,7 @@
|
||||
; RUN: opt -thinlto-bc -o %t.o %s
|
||||
|
||||
; Legacy PM
|
||||
; RUN: llvm-lto2 run %t.o -save-temps \
|
||||
; RUN: llvm-lto2 run %t.o -save-temps -pass-remarks=. \
|
||||
; RUN: -o %t3 \
|
||||
; RUN: -r=%t.o,test,px \
|
||||
; RUN: -r=%t.o,_ZN1A1nEi,p \
|
||||
@ -17,11 +17,11 @@
|
||||
; RUN: -r=%t.o,_ZN1B1fEi, \
|
||||
; RUN: -r=%t.o,_ZN1C1fEi, \
|
||||
; RUN: -r=%t.o,_ZTV1B,px \
|
||||
; RUN: -r=%t.o,_ZTV1C,px
|
||||
; RUN: -r=%t.o,_ZTV1C,px 2>&1 | FileCheck %s --check-prefix=REMARK
|
||||
; RUN: llvm-dis %t3.1.4.opt.bc -o - | FileCheck %s --check-prefix=CHECK-IR
|
||||
|
||||
; New PM
|
||||
; RUN: llvm-lto2 run %t.o -save-temps -use-new-pm \
|
||||
; RUN: llvm-lto2 run %t.o -save-temps -use-new-pm -pass-remarks=. \
|
||||
; RUN: -o %t3 \
|
||||
; RUN: -r=%t.o,test,px \
|
||||
; RUN: -r=%t.o,_ZN1A1nEi,p \
|
||||
@ -33,9 +33,11 @@
|
||||
; RUN: -r=%t.o,_ZN1B1fEi, \
|
||||
; RUN: -r=%t.o,_ZN1C1fEi, \
|
||||
; RUN: -r=%t.o,_ZTV1B,px \
|
||||
; RUN: -r=%t.o,_ZTV1C,px
|
||||
; RUN: -r=%t.o,_ZTV1C,px 2>&1 | FileCheck %s --check-prefix=REMARK
|
||||
; RUN: llvm-dis %t3.1.4.opt.bc -o - | FileCheck %s --check-prefix=CHECK-IR
|
||||
|
||||
; REMARK: single-impl: devirtualized a call to _ZN1A1nEi
|
||||
|
||||
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
||||
target triple = "x86_64-grtev4-linux-gnu"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user