From 87a872da07d823f830e4db00f712e41f0f2c7fd0 Mon Sep 17 00:00:00 2001 From: Leszek Swirski Date: Wed, 2 Aug 2017 11:43:47 +0100 Subject: [PATCH] [tools] Speed-up check-unused-bailouts.sh Use some less-known grep flags to avoid the for loop in check-unused-bailouts.sh, speeding it up considerably. Before: $ time tools/check-unused-bailouts.sh >/dev/null real 0m14.717s user 0m6.968s sys 0m7.128s After: $ time tools/check-unused-bailouts.sh >/dev/null real 0m0.514s user 0m0.480s sys 0m0.028s Change-Id: I2178e2adaf60282865cf18272246a77bcff9d140 Reviewed-on: https://chromium-review.googlesource.com/597690 Reviewed-by: Michael Starzinger Commit-Queue: Leszek Swirski Cr-Commit-Position: refs/heads/master@{#47076} --- tools/check-unused-bailouts.sh | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/tools/check-unused-bailouts.sh b/tools/check-unused-bailouts.sh index da4d4a7f46..68c2c91548 100755 --- a/tools/check-unused-bailouts.sh +++ b/tools/check-unused-bailouts.sh @@ -4,13 +4,22 @@ # found in the LICENSE file. v8_root=$(readlink -f $(dirname $BASH_SOURCE)/../) -bailouts=$(grep -oP 'V\(\K(k[^,]*)' "$v8_root/src/bailout-reason.h") +bailouts=$( + grep \ + --only-matching \ + --perl-regexp 'V\(\K(k[^,]*)' \ + -- "$v8_root/src/bailout-reason.h") -for bailout in $bailouts; do - bailout_uses=$(grep -r $bailout "$v8_root/src" "$v8_root/test/cctest" | wc -l) - if [ $bailout_uses -eq "1" ]; then - echo "Bailout reason \"$bailout\" seems to be unused." - fi -done +# Find bailouts which appear exactly once (in bailout-reason.h) +grep \ + --only-matching \ + --no-filename \ + --recursive \ + --word-regexp \ + --fixed-strings "$bailouts" \ + -- "$v8_root/src" "$v8_root/test/cctest" \ +| sort \ +| uniq -u \ +| sed -e 's/.*/Bailout reason "&" seems to be unused./' echo "Kthxbye."