[clang] [clang][coverage] Add opt-in call continuation counters for coverage (PR #201079)
via cfe-commits
cfe-commits at lists.llvm.org
Mon Jun 15 09:05:37 PDT 2026
================
@@ -1157,6 +1234,34 @@ void CodeGenPGO::emitCounterSetOrIncrement(CGBuilderTy &Builder, const Stmt *S,
CGM.getIntrinsic(llvm::Intrinsic::instrprof_increment_step), Args);
}
+void CodeGenPGO::emitCallContinuationCounter(CGBuilderTy &Builder,
+ const Stmt *S) {
+ if (!CallContinuationCounterMap)
+ return;
+
+ auto I = CallContinuationCounterMap->find(S);
+ if (I == CallContinuationCounterMap->end())
+ return;
+
+ if (!Builder.GetInsertBlock())
+ return;
+
+ auto *NormalizedFuncNameVarPtr =
+ llvm::ConstantExpr::getPointerBitCastOrAddrSpaceCast(
+ FuncNameVar, llvm::PointerType::get(CGM.getLLVMContext(), 0));
+
+ llvm::Value *Args[] = {
+ NormalizedFuncNameVarPtr, Builder.getInt64(FunctionHash),
+ Builder.getInt32(NumRegionCounters), Builder.getInt32(I->second)};
+
+ if (llvm::EnableSingleByteCoverage)
+ Builder.CreateCall(CGM.getIntrinsic(llvm::Intrinsic::instrprof_cover),
+ ArrayRef(Args, 4));
----------------
ankurrj7 wrote:
done , add a test for single byte coverage
https://github.com/llvm/llvm-project/pull/201079
More information about the cfe-commits
mailing list