[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