Merge IL changes from upstream (WIP)#2079
Closed
rossberg wants to merge 93 commits intoWebAssembly:mainfrom
Closed
Merge IL changes from upstream (WIP)#2079rossberg wants to merge 93 commits intoWebAssembly:mainfrom
rossberg wants to merge 93 commits intoWebAssembly:mainfrom
Conversation
…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>
Type family removal pass
Undep pass
…led some conditions in sideconditions.
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.
Uncase removal pass
Sub-expansion pass
… functions can decide to stop the traversal.
…ue with reverse collection in walk.ml
IL Traversals
Undep fix
Improve ids pass
Member
Author
|
Wrong target repo, closing in favour of Wasm-DSL#218 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.