Allow inlining a function within its own argument forms#534
Open
se-mz wants to merge 1 commit intoClozure:masterfrom
Open
Allow inlining a function within its own argument forms#534se-mz wants to merge 1 commit intoClozure:masterfrom
se-mz wants to merge 1 commit intoClozure:masterfrom
Conversation
NX1-EXPAND-INLINE overzealously protects not just the body but also the argument forms from (mutually) recursive inlining. As a result, only the outer call is inlined in calls like (F X (F Y Z)).
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.
nx1-expand-inlineoverzealously protects not just the body but also the argument forms from what I assume is (mutually) recursive inlining. As a result, only the outer call is inlined in calls like(f x (f y z)).Adding an extra parameter just for this is a bit annoying, but
nx1-destructureis only called here andnx1-lambda-bindonly has one other call site.I did once try to disable the
*nx-inline-expansions*mechanism entirely for the hell of it but still couldn't trigger a problem with inlining. Is it possible that it's redundant? Maybe I'm just not good at coming up with test cases.