Change how Extract_projections handles nested sets of closures#484
Merged
mshinwell merged 1 commit intoocaml:4.03from Feb 26, 2016
Merged
Change how Extract_projections handles nested sets of closures#484mshinwell merged 1 commit intoocaml:4.03from
mshinwell merged 1 commit intoocaml:4.03from
Conversation
Contributor
|
This is OK |
mshinwell
added a commit
that referenced
this pull request
Feb 26, 2016
GPR#484: Change how Extract_projections handles nested sets of closures
mshinwell
added a commit
that referenced
this pull request
Feb 26, 2016
GPR#484: Change how Extract_projections handles nested sets of closures
Octachron
pushed a commit
to Octachron/ocaml
that referenced
this pull request
Feb 29, 2016
GPR#484: Change how Extract_projections handles nested sets of closures
mshinwell
added a commit
to mshinwell/ocaml
that referenced
this pull request
Jul 13, 2021
…#484) * Replace Rec_info with type of kind Rec_info in func decl types With necessary changes in the simplifier. This finally removes the old `Rec_info` module. The new inlining logic is still not hooked up. * Code review * Add assertions; be conservative in `Alias_set.inter` Since the intersection of alias sets is used to find common aliases when joining, we can safely be conservative and just leave an element out if it appears in both alias sets but with different coercions. * Add rec info to free names, exported ids Co-authored-by: Mark Shinwell <mshinwell@gmail.com>
chambart
pushed a commit
to chambart/ocaml-1
that referenced
this pull request
Feb 1, 2022
stedolan
pushed a commit
to stedolan/ocaml
that referenced
this pull request
Mar 22, 2022
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.
The patch fixes an issue with how extract projections works on nested sets of closures. Mostly for @chambart to review.
Previously, any mention of a variable as a free variable or specialised arg would stop that variable from being lifted by unbox_specialised_args or unbox_free_variables. With this patch we recurse into the body of nested sets of closures and if all uses of the free variable or specialised arg are as projections then extract projections can still apply to the original variable.
Previously, applying unbox_specialised_args to a set_of_closures would prevent applying unbox_specialised_args to any set_of_closures containing the original set_of_closures. With this patch unbox_specialised_args works correctly on nested sets_of_closures.