summaryrefslogtreecommitdiff
path: root/scripts/fuzz_shell.js
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2024-09-03 13:53:36 -0700
committerGitHub <noreply@github.com>2024-09-03 13:53:36 -0700
commit48d4c55116728823fbdbc1dd13f8f8916ac0b0af (patch)
tree23471599f6e53ff076428f5743adb77bcae32824 /scripts/fuzz_shell.js
parent8125f7ab5124bbe1cd18b2d8be6a3877ba97acdb (diff)
downloadbinaryen-48d4c55116728823fbdbc1dd13f8f8916ac0b0af.tar.gz
binaryen-48d4c55116728823fbdbc1dd13f8f8916ac0b0af.tar.bz2
binaryen-48d4c55116728823fbdbc1dd13f8f8916ac0b0af.zip
[NFC] Avoid repeated work in DeadArgumentElimination scanning (#6869)
This pass may do multiple iterations, and before this PR it scanned the entire module each time. That is simpler than tracking stale data, but it can be quite slow. This PR adds staleness tracking, which makes it over 3x faster (and this can be one of our slowest passes in some cases, so this is significant). To achieve this: * Add a staleness marker on function info. * Rewrite how we track unseen calls. Previously we used atomics in a clever way, * now we just accumulate the data in a simple way (easier for staleness tracking). * Add staleness invalidation in the proper places. * Add a param to localizeCallsTo to allow us to learn when a function is changed. This kind of staleness analysis is usually not worthwhile, but given the 3x plus speedup it seems justified. I fuzzed it directly, and also any staleness bug can lead to validation errors, so normal fuzzing also gives us good coverage here.
Diffstat (limited to 'scripts/fuzz_shell.js')
0 files changed, 0 insertions, 0 deletions