From patchwork Thu Oct 3 10:46:07 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?J=C3=B8rgen_Kvalsvik?= X-Patchwork-Id: 1992283 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=kolabnow.com header.i=@kolabnow.com header.a=rsa-sha256 header.s=dkim20240523 header.b=Khv+xnua; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4XK7g90QMdz1xtk for ; Thu, 3 Oct 2024 20:47:49 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id DEC56385DDDE for ; Thu, 3 Oct 2024 10:47:46 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mx.kolabnow.com (mx.kolabnow.com [212.103.80.155]) by sourceware.org (Postfix) with ESMTPS id 9A457385842D for ; Thu, 3 Oct 2024 10:46:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9A457385842D Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=lambda.is Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=lambda.is ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 9A457385842D Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=212.103.80.155 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1727952386; cv=none; b=RkglN8ksM4ZNEwHmYvIBX6i4WEm+mln+NgrxpSbpFTkKH6EAz7L+lRsRkAijogrwGG/qvl+y5SRMH0n+52qLduanOGMYqgFW0zb3Ixgx7iav3/k0YQziWBLRLpTn405T1V9A2bGzv4853zUDFu2spnrtizxib5kckl+GeJITQNM= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1727952386; c=relaxed/simple; bh=3NjIo4kn8UVbpkmfk85OGZ4Psa/wdXXuOP8rJ/LR8aQ=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=JaThZS9PK0XN7a4YB+IXr9wplakypvzsPSwfBsVmBA49pn58GNWkha/58MenPlaizYAnKmJj5smAvyPqeXOzhgkV4BKVcWtQK1WYTvG+PDyGRSilABf0ExFv7nRLQrZ6HeCZarIpKBCgAc+CWVlgOdv8SBT7Un1wAE90Brl6noQ= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from localhost (unknown [127.0.0.1]) by mx.kolabnow.com (Postfix) with ESMTP id 674DD34F00F8; Thu, 3 Oct 2024 12:46:21 +0200 (CEST) Authentication-Results: ext-mx-out011.mykolab.com (amavis); dkim=pass (2048-bit key) reason="pass (just generated, assumed good)" header.d=kolabnow.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kolabnow.com; h= content-transfer-encoding:content-type:content-type:mime-version :message-id:date:date:subject:subject:from:from:received :received:received; s=dkim20240523; t=1727952378; x=1729766779; bh=ptgyJ4yO7SbapDKHGrsF3s5gKALb0xwhVT4Yh/ZLivw=; b=Khv+xnuaNWrF SoTT9OhSjqE8DXNYOJ5wejR605xPnx3k/r4rEqopnzMNC7QT4V1r+9zic5HAIOXV DdBCJsfytXgOcNJO7s7DSx+MY3ILWVtBwalPPApRVOQX14KcSwfzbe1fLUzBQ27/ uW005KtPZEA9OJUwfyd68ADds5AFNi8i8CM68ZVn4vEvNIwyx9TBfpKJCu1vD+ED jVeD+uIMa56tOzwPgh+xmH81UUsBpR3osdUz0JLfFTqU9BGj620zhl3PFAloKIly SVVVDD9EIfVs08jZ9ysWQowK68JcMDE0Op+L4uDf1RKJHQA3b9xZWUz/sBxS40Xa czvbfIpqCA== X-Virus-Scanned: amavis at mykolab.com X-Spam-Score: -1 X-Spam-Level: X-Spam-Status: No, score=-6.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 Received: from mx.kolabnow.com ([127.0.0.1]) by localhost (ext-mx-out011.mykolab.com [127.0.0.1]) (amavis, port 10024) with ESMTP id BUmgx9r8Ljx4; Thu, 3 Oct 2024 12:46:18 +0200 (CEST) Received: from int-mx011.mykolab.com (unknown [10.9.13.11]) by mx.kolabnow.com (Postfix) with ESMTPS id DA31834F00F6; Thu, 3 Oct 2024 12:46:17 +0200 (CEST) Received: from ext-subm010.mykolab.com (unknown [10.9.6.10]) by int-mx011.mykolab.com (Postfix) with ESMTPS id 137D93098A29; Thu, 3 Oct 2024 12:46:17 +0200 (CEST) From: =?utf-8?q?J=C3=B8rgen_Kvalsvik?= To: gcc-patches@gcc.gnu.org Cc: hubicka@ucw.cz, =?utf-8?q?J=C3=B8rgen_Kvalsvik?= Subject: [PATCH 0/2] Prime path coverage to gcc/gcov Date: Thu, 3 Oct 2024 12:46:07 +0200 Message-Id: <20241003104609.2197741-1-j@lambda.is> MIME-Version: 1.0 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org This is both a ping and a minor update. A few of the patches from the previous set have been merged, but the big feature still needs review. Since then it has been quiet, but there are two notable changes: 1. The --prime-paths-{lines,source} flags take an optional argument to print covered or uncovered paths, or both. By default, uncovered paths are printed like before. 2. Fixed a bad vector access when independent functions share compiler generated statements. A reproducing case is in gcov-23.C which relied on printing the uncovered path of multiple destructors of static objects. Jørgen Kvalsvik (2): gcov: branch, conds, calls in function summaries Add prime path coverage to gcc/gcov gcc/Makefile.in | 6 +- gcc/builtins.cc | 2 +- gcc/collect2.cc | 5 +- gcc/common.opt | 16 + gcc/doc/gcov.texi | 184 +++ gcc/doc/invoke.texi | 36 + gcc/gcc.cc | 4 +- gcc/gcov-counter.def | 3 + gcc/gcov-io.h | 3 + gcc/gcov.cc | 531 ++++++- gcc/ipa-inline.cc | 2 +- gcc/passes.cc | 4 +- gcc/path-coverage.cc | 782 +++++++++ gcc/prime-paths.cc | 2031 ++++++++++++++++++++++++ gcc/profile.cc | 6 +- gcc/selftest-run-tests.cc | 1 + gcc/selftest.h | 1 + gcc/testsuite/g++.dg/gcov/gcov-22.C | 170 ++ gcc/testsuite/g++.dg/gcov/gcov-23-1.h | 9 + gcc/testsuite/g++.dg/gcov/gcov-23-2.h | 9 + gcc/testsuite/g++.dg/gcov/gcov-23.C | 30 + gcc/testsuite/gcc.misc-tests/gcov-29.c | 869 ++++++++++ gcc/testsuite/gcc.misc-tests/gcov-30.c | 869 ++++++++++ gcc/testsuite/gcc.misc-tests/gcov-31.c | 35 + gcc/testsuite/gcc.misc-tests/gcov-32.c | 24 + gcc/testsuite/gcc.misc-tests/gcov-33.c | 27 + gcc/testsuite/gcc.misc-tests/gcov-34.c | 29 + gcc/testsuite/lib/gcov.exp | 118 +- gcc/tree-profile.cc | 11 +- 29 files changed, 5795 insertions(+), 22 deletions(-) create mode 100644 gcc/path-coverage.cc create mode 100644 gcc/prime-paths.cc create mode 100644 gcc/testsuite/g++.dg/gcov/gcov-22.C create mode 100644 gcc/testsuite/g++.dg/gcov/gcov-23-1.h create mode 100644 gcc/testsuite/g++.dg/gcov/gcov-23-2.h create mode 100644 gcc/testsuite/g++.dg/gcov/gcov-23.C create mode 100644 gcc/testsuite/gcc.misc-tests/gcov-29.c create mode 100644 gcc/testsuite/gcc.misc-tests/gcov-30.c create mode 100644 gcc/testsuite/gcc.misc-tests/gcov-31.c create mode 100644 gcc/testsuite/gcc.misc-tests/gcov-32.c create mode 100644 gcc/testsuite/gcc.misc-tests/gcov-33.c create mode 100644 gcc/testsuite/gcc.misc-tests/gcov-34.c