From 6b113c0fecd62b57ee88757c3ca80e9bdd11150d Mon Sep 17 00:00:00 2001 From: Khaled Yakdan Date: Mon, 11 Jul 2022 15:56:37 +0000 Subject: [PATCH] cmd/compile: avoid excessive libfuzzer instrumentation of int compares Do not intercept integer compares that are used to increment libFuzzer's 8-bit counters. This is unnecessary and has a negative impact on the fuzzing performance. This fixes #53760. Change-Id: Id22efac968b18014eedabb6f0762e1456897024e GitHub-Last-Rev: 52f69fd68c21001beb7b853d4f0343ece0d3f9d1 GitHub-Pull-Request: golang/go#53786 Reviewed-on: https://go-review.googlesource.com/c/go/+/416796 Run-TryBot: Keith Randall Auto-Submit: Keith Randall TryBot-Result: Gopher Robot Reviewed-by: Matthew Dempsky Reviewed-by: Keith Randall Reviewed-by: Keith Randall --- src/cmd/compile/internal/walk/compare.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cmd/compile/internal/walk/compare.go b/src/cmd/compile/internal/walk/compare.go index df7cb731f7..8a8f9b6d93 100644 --- a/src/cmd/compile/internal/walk/compare.go +++ b/src/cmd/compile/internal/walk/compare.go @@ -116,7 +116,7 @@ func walkCompare(n *ir.BinaryExpr, init *ir.Nodes) ir.Node { switch t.Kind() { default: - if base.Debug.Libfuzzer != 0 && t.IsInteger() { + if base.Debug.Libfuzzer != 0 && t.IsInteger() && (n.X.Name() == nil || !n.X.Name().Libfuzzer8BitCounter()) { n.X = cheapExpr(n.X, init) n.Y = cheapExpr(n.Y, init) -- 2.48.1