summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenPGO.cpp
diff options
context:
space:
mode:
authorJustin Bogner <mail@justinbogner.com>2015-01-09 01:46:40 +0000
committerJustin Bogner <mail@justinbogner.com>2015-01-09 01:46:40 +0000
commit203f91e311f860a8d621ad2dfb1da22b6bc03fb9 (patch)
tree8f20f555806dfefe6b835869732624e259496a6e /clang/lib/CodeGen/CodeGenPGO.cpp
parent4f217684c78f398c956bbe889b9c6165df1a3a77 (diff)
downloadbcm5719-llvm-203f91e311f860a8d621ad2dfb1da22b6bc03fb9.tar.gz
bcm5719-llvm-203f91e311f860a8d621ad2dfb1da22b6bc03fb9.zip
InstrProf: Don't emit counter increments in dead code
We were previously emitting counter increments even if we didn't have an insertion point, which would result in a CallInst with no parent. This leads to a crash, as in pr22166, if we try to do GlobalDCE. llvm-svn: 225495
Diffstat (limited to 'clang/lib/CodeGen/CodeGenPGO.cpp')
-rw-r--r--clang/lib/CodeGen/CodeGenPGO.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CodeGenPGO.cpp b/clang/lib/CodeGen/CodeGenPGO.cpp
index 71bd1ca351d..24b035d6759 100644
--- a/clang/lib/CodeGen/CodeGenPGO.cpp
+++ b/clang/lib/CodeGen/CodeGenPGO.cpp
@@ -788,6 +788,8 @@ CodeGenPGO::applyFunctionAttributes(llvm::IndexedInstrProfReader *PGOReader,
void CodeGenPGO::emitCounterIncrement(CGBuilderTy &Builder, unsigned Counter) {
if (!CGM.getCodeGenOpts().ProfileInstrGenerate || !RegionCounterMap)
return;
+ if (!Builder.GetInsertPoint())
+ return;
auto *I8PtrTy = llvm::Type::getInt8PtrTy(CGM.getLLVMContext());
Builder.CreateCall4(CGM.getIntrinsic(llvm::Intrinsic::instrprof_increment),
llvm::ConstantExpr::getBitCast(FuncNameVar, I8PtrTy),
OpenPOWER on IntegriCloud