Skip to content

Merge IL changes from upstream (WIP)#2079

Closed
rossberg wants to merge 93 commits intoWebAssembly:mainfrom
Wasm-DSL:merge-deptup
Closed

Merge IL changes from upstream (WIP)#2079
rossberg wants to merge 93 commits intoWebAssembly:mainfrom
Wasm-DSL:merge-deptup

Conversation

@rossberg
Copy link
Member

@rossberg rossberg commented Feb 12, 2026

This is a PR merging upstream, in particular the changes to IL and elaboration (see #2056) and the addition of parameterised relations.

I tried to adapt the additional middlend passes here to the extent I could. It compiles, but there seem to be some remaining issues that causes e.g. typefamilyremoval to crash. @DCuppello1, could please have a look?

Some remarks:

(1) I moved all relevant changes to the middlend, other than resolving merge conflicts, to a separate (i.e. the last) commit (dc04802), which you may want to review carefully.

(2) I left a TODO in the improveids pass, since it wasn't obvious to me what the expected result of transform_mixop is and how that function ought to be adapted to the new mixop representation.

(3) I only applied minimal adjustments for relation parameters. I suppose some passes ought to be generalised to actually take advantage of them.

DCupello1 and others added 30 commits September 30, 2025 16:45
…roved equality check through type alias reduction. Added some more cases for conversion checks. Made a wrapper function for the new type family constructors to aid validation.
…ons after traversal, making it possible to not write specific cases for conversions. Removed boolean parameter indicating that it is a match expression.
… arguments. Some small changes also done to make wasm 3.0 validate.
…one before applying conversions. Fixed an issue with getting the real type of CaseE and also added some more cases to get_real_typ_from_exp.
…ptional removal operation. Removed function that makes the family constructor since not necessary.
…tion functions so that they don't get conversions applied to them.
…se number of the type family instead of mangling all of the bind names.
Co-authored-by: Andreas Rossberg <rossberg@mpi-sws.org>
nomeata and others added 28 commits December 3, 2025 15:34
This pass recongizes when multiple subsequent clauses of a definition share the pattern and have only boolean premises, and rewrites that to a single clause using if-then-else on the right-hand side.
… functions can decide to stop the traversal.
@rossberg
Copy link
Member Author

Wrong target repo, closing in favour of Wasm-DSL#218

@rossberg rossberg closed this Feb 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants