-
Notifications
You must be signed in to change notification settings - Fork 127
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Optimize representation of sequences in Useless pass #569
Merged
Commits on May 17, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 2d07f55 - Browse repository at this point
Copy the full SHA 2d07f55View commit details -
Configuration menu - View commit details
-
Copy full SHA for 30629e7 - Browse repository at this point
Copy the full SHA 30629e7View commit details -
Simplify forcing of usefulness of
Array_alloc
argumentRather than always forcing a `Value.Array`'s length to be useful whenever an array element exists, only force the `Array_alloc`'s argument to be useful whenever an array element exists.
Configuration menu - View commit details
-
Copy full SHA for ee544e1 - Browse repository at this point
Copy the full SHA ee544e1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4a39ded - Browse repository at this point
Copy the full SHA 4a39dedView commit details -
Configuration menu - View commit details
-
Copy full SHA for 81bf18f - Browse repository at this point
Copy the full SHA 81bf18fView commit details -
Configuration menu - View commit details
-
Copy full SHA for f557f13 - Browse repository at this point
Copy the full SHA f557f13View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7475813 - Browse repository at this point
Copy the full SHA 7475813View commit details
Commits on May 22, 2024
-
Optimize representation of sequences in Useless pass
The `Useless` optimization pass may determine that the contents of a sequence (array or vector) is useless; similarly, it may determine that the length of a sequence is useless; finally, it may determine that the identity of an array is useless. However, the transformation performed by the `Useless` optimization pass would, at most, change a `t array` or `t vector` to `unit array` or `unit vector`. This commit allows the `Useless` optimization pass to change sequences with useless contents to simpler types. In particular: * a `t array` with useless contents, useless length, and useless identity becomes a `unit` * a `t array` with useless contents, useless length, and useful identity becomes a `unit ref` * a `t array` with useless contents, useful length, and useless identity becomes a `word64` (or a `word32` on 32-bit platforms) * a `t array` with useless contents, useful length, and useful identity becomes a `word64 ref` (or a `word32 ref` on 32-bit platforms) * a `t vector` with useless contents and useless length becomes a `unit` * a `t vector` with useless contents and useful length becomes a `word64` (or a `word32` on 32-bit platforms) Such optimizations do not happen frequently, but there are a few instances in a self-compile.
Configuration menu - View commit details
-
Copy full SHA for 1aad5fe - Browse repository at this point
Copy the full SHA 1aad5feView commit details
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.