[igt-dev] [PATCH 5/6] scripts/code_cov_parse_info: take gcc IPA optimizations into account

Mauro Carvalho Chehab mauro.chehab at linux.intel.com
Thu Sep 22 08:46:17 UTC 2022


From: Mauro Carvalho Chehab <mchehab at kernel.org>

When -O2/-O3 is used with GCC, IPA will produce function variants
at the object code. So, for a function or macro foo(), it may
produce several actual functions at the object code, like:

	foo.isra.3
	foo.isra.4

For the purposes of code coverage, all of those are the same
function, so use a regex with "\w+", which will exclude the
.isra.<number>, considering all variants as the same function.

Signed-off-by: Mauro Carvalho Chehab <mchehab at kernel.org>
---

To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover.
See [PATCH 0/6] at: https://lore.kernel.org/all/cover.1663836123.git.mchehab@kernel.org/

 scripts/code_cov_parse_info | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/scripts/code_cov_parse_info b/scripts/code_cov_parse_info
index e8bac730e88b..7f3e1f9ef116 100755
--- a/scripts/code_cov_parse_info
+++ b/scripts/code_cov_parse_info
@@ -136,7 +136,9 @@ sub parse_info_data($)
 		# Function coverage
 
 		# FN:<line number of function start>,<function name>
-		if (m/^FN:(-?\d+),(.*)/) {
+		# Note: /w+ intentionally removes IPA gcc-optimization names, as
+		# this is more related to branch coverage
+		if (m/^FN:(-?\d+),(\w+)/) {
 			my $ln = $1;
 
 			$func = $2;
@@ -156,7 +158,9 @@ sub parse_info_data($)
 
 		# Parse functions that were actually used
 		# FNDA:<execution count>,<function name>
-		if (m/^FNDA:(-?\d+),(.*)/) {
+		# Note: /w+ intentionally removes IPA gcc-optimization names, as
+		# this is more related to branch coverage
+		if (m/^FNDA:(-?\d+),(\w+)/) {
 			my $count = $1;
 
 			# Negative gcov results are possible, as reported at:
-- 
2.37.2



More information about the igt-dev mailing list