summaryrefslogtreecommitdiff
path: root/scripts/fuzz_opt.py
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2021-04-15 14:35:42 -0700
committerGitHub <noreply@github.com>2021-04-15 14:35:42 -0700
commitdc041817642994d5d19c7f21bca734369564e842 (patch)
tree78a84fb61927ec177dc4d95808d33c09156bde7b /scripts/fuzz_opt.py
parentac55046821442b2f9140a106dde1436682dea8c4 (diff)
downloadbinaryen-dc041817642994d5d19c7f21bca734369564e842.tar.gz
binaryen-dc041817642994d5d19c7f21bca734369564e842.tar.bz2
binaryen-dc041817642994d5d19c7f21bca734369564e842.zip
Fuzzer: Do not fuzz multivalue testcases in initial contents (#3809)
There is a conflict between multivalue and GC, see the details in the comment. There isn't a good way to get the fuzzer to avoid the combination of them, and GC is more urgent, so disable multivalue in that area for now. (This does not disable all multivalue fuzzing - the fuzzer can still emit stuff. This just disables initial content from test suite having multivalue, which is enough for now, until the fuzzer can emit more GC things, and then we'll need to do more.)
Diffstat (limited to 'scripts/fuzz_opt.py')
-rwxr-xr-xscripts/fuzz_opt.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/scripts/fuzz_opt.py b/scripts/fuzz_opt.py
index 30b0b52fa..7580a59a0 100755
--- a/scripts/fuzz_opt.py
+++ b/scripts/fuzz_opt.py
@@ -212,6 +212,27 @@ def pick_initial_contents():
'--disable-exception-handling',
# has not been fuzzed in general yet
'--disable-memory64',
+ # avoid multivalue for now due to bad interactions with gc rtts in
+ # stacky code. for example, this fails to roundtrip as the tuple code
+ # ends up creating stacky binary code that needs to spill rtts to locals,
+ # which is not allowed:
+ #
+ # (module
+ # (type $other (struct))
+ # (func $foo (result (rtt $other))
+ # (select
+ # (rtt.canon $other)
+ # (rtt.canon $other)
+ # (tuple.extract 1
+ # (tuple.make
+ # (i32.const 0)
+ # (i32.const 0)
+ # )
+ # )
+ # )
+ # )
+ # )
+ '--disable-multivalue',
# DWARF is incompatible with multivalue atm; it's more important to
# fuzz multivalue since we aren't actually fuzzing DWARF here
'--strip-dwarf',