Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
950784a
work
kripken Oct 13, 2026
eb92c6f
oar
kripken Oct 13, 2026
479cf92
work
kripken Oct 13, 2026
327c476
fix
kripken Oct 14, 2026
78630e6
fuzz
kripken Oct 14, 2026
01ec083
undo
kripken Oct 14, 2026
7d4362d
undo
kripken Oct 14, 2026
30d4880
undo
kripken Oct 14, 2026
62d6f45
undo
kripken Oct 14, 2026
6df116a
undo
kripken Oct 14, 2026
d5649c8
undo
kripken Oct 14, 2026
3b83bd7
simpl
kripken Oct 14, 2026
e2745e8
simpl
kripken Oct 14, 2026
cc70c10
form
kripken Oct 14, 2026
3aad80b
comment
kripken Oct 14, 2026
7f496de
simpl
kripken Oct 14, 2026
13d2b15
simpl
kripken Oct 14, 2026
4dd3c5f
Merge remote-tracking branch 'origin/main' into typegen
kripken Oct 14, 2026
c3067a1
update fuzz test
kripken Oct 14, 2026
ac8eaa5
Merge remote-tracking branch 'origin/main' into typegen
kripken Oct 15, 2026
1bedbe6
reorder to execution order
kripken Oct 15, 2026
3c629de
Update test/lit/passes/type-generalizing.wast
kripken Oct 15, 2026
7dd90b7
rephrease test
kripken Oct 15, 2026
44bff47
todo
kripken Oct 15, 2026
84e4977
add tests for gaps
kripken Oct 15, 2026
95d7501
merge
kripken Oct 21, 2026
03f21b1
comment
kripken Oct 21, 2026
72bb947
mergefix
kripken Oct 21, 2026
5973fe5
Merge remote-tracking branch 'origin/main' into typegen
kripken Oct 22, 2026
5decf16
Merge remote-tracking branch 'origin/main' into typegen
kripken Oct 22, 2026
11b5a9b
fix fuzz crashes on descriptor generalizing to any
kripken Oct 22, 2026
fcaf2fc
fix another crash, on br_on_non_null
kripken Oct 22, 2026
8ad69f0
whitespace.fix
kripken Oct 22, 2026
b9bffdc
fix.struct_array.atomics
kripken Oct 22, 2026
d9800a2
format
kripken Oct 22, 2026
740348a
failing br_on
kripken Oct 22, 2026
9f5cb46
fix.tuple.make
kripken Oct 22, 2026
b8108cf
fix ref.get_desc
kripken Oct 22, 2026
4751238
separate out string tests, which cannot be fuzzed yet
kripken Oct 23, 2026
ee64c80
more cast fixes
kripken Oct 23, 2026
b1e6c14
more fixes
kripken Oct 23, 2026
ee35644
trampolines
kripken Nov 2, 2026
6e3eba6
fix refs
kripken Nov 2, 2026
d9a2b3a
rename to avoid Unsubtyping name conflict
kripken Nov 2, 2026
26e0089
safely apply the defaults
kripken Nov 2, 2026
9ce897e
yolo.merg
kripken Nov 2, 2026
7050d5c
fix
kripken Nov 2, 2026
df06d33
update a test
kripken Nov 2, 2026
109f5a5
fix
kripken Nov 2, 2026
ff58c59
fix
kripken Nov 2, 2026
1d07302
fix
kripken Nov 3, 2026
cec2da9
fix
kripken Nov 3, 2026
e1aff35
fix
kripken Nov 3, 2026
4ea6774
work
kripken Nov 3, 2026
d989a0b
fixes
kripken Nov 3, 2026
bce8685
work
kripken Nov 3, 2026
9b735c1
Merge remote-tracking branch 'origin/main' into safe.subexpr.typegen
kripken Nov 3, 2026
251762f
fix
kripken Nov 4, 2026
a35ba81
work
kripken Nov 4, 2026
3cf6e73
Merge remote-tracking branch 'origin/main' into safe.subexpr.typegen
kripken Nov 5, 2026
b004761
fix
kripken Nov 5, 2026
437f415
fix
kripken Nov 5, 2026
b5e39a7
go
kripken Nov 6, 2026
a2cd7d5
undo
kripken Nov 6, 2026
e0339c3
undo
kripken Nov 6, 2026
e415240
comment
kripken Nov 6, 2026
bb203b4
updates
kripken Nov 6, 2026
c6fe306
fix comment
kripken Nov 6, 2026
dc40509
nicer
kripken Nov 6, 2026
673c4b3
updates
kripken Nov 6, 2026
7ee62bd
nicer
kripken Nov 6, 2026
c0a982c
Update src/passes/TypeGeneralizing.cpp
kripken Nov 10, 2026
9bd5ef0
feedback: BrOn unreachability
kripken Nov 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions scripts/test/fuzzing.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
'strings.wast',
'simplify-locals-strings.wast',
'string-lowering-instructions.wast',
'type-generalizing-strings.wast',
# TODO: fuzzer and interpreter support for extern conversions
'extern-conversions.wast',
# ignore DWARF because it is incompatible with multivalue atm
Expand Down
10 changes: 7 additions & 3 deletions src/ir/child-typer.h
Original file line number Diff line number Diff line change
Expand Up @@ -862,7 +862,9 @@ template<typename Subtype> struct ChildTyper : OverriddenVisitor<Subtype> {
void visitRefI31(RefI31* curr) { note(&curr->value, Type::i32); }

void visitI31Get(I31Get* curr) {
note(&curr->i31, Type(HeapType::i31, Nullable));
// Polymorphic over sharedness.
note(&curr->i31,
VarRef{Nullable, VarAbsHeapType{VarSharedness{0u}, HeapType::i31}});
}

void visitCallRef(CallRef* curr, std::optional<HeapType> ht = std::nullopt) {
Expand Down Expand Up @@ -973,7 +975,7 @@ template<typename Subtype> struct ChildTyper : OverriddenVisitor<Subtype> {
}
}
if (auto desc = curr->type.getHeapType().getDescriptorType()) {
note(&curr->desc, Type(*desc, NonNullable, Exact));
note(&curr->desc, Type(*desc, Nullable, Exact));
}
}

Expand Down Expand Up @@ -1167,7 +1169,9 @@ template<typename Subtype> struct ChildTyper : OverriddenVisitor<Subtype> {
}

void visitArrayLen(ArrayLen* curr) {
note(&curr->ref, Type(HeapType::array, Nullable));
// Polymorphic over sharedness.
note(&curr->ref,
VarRef{Nullable, VarAbsHeapType{VarSharedness{0u}, HeapType::array}});
}

void visitArrayCopy(ArrayCopy* curr,
Expand Down
3 changes: 3 additions & 0 deletions src/passes/OptimizeInstructions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1576,6 +1576,9 @@ struct OptimizeInstructions
// Given the large amount of potential benefit we can get from a successful
// optimization in GUFA, any reduction there may be a bad idea, so we
// should be very careful and probably *not* remove such casts.
//
// The only case where we are always ok to remove such casts is when lastOpts
// is true, because nothing significant runs after us that can be harmed.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this pulled in from some other change?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a drive-by comment addition.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure it counts as a drive-by if it's an an otherwise-untouched file, but ok :)


// If an instruction traps on a null input, there is no need for a
// ref.as_non_null on that input: we will trap either way (and the binaryen
Expand Down
Loading
Loading