-
Notifications
You must be signed in to change notification settings - Fork 46k
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
[compiler] Handle OutlinedFunctionExpression in various passes #30089
Conversation
There's nothing interesting happening quite yet. Note that OutlinedFunctionExpression will be created only after InferReferenceEffects so some of the passes before will not need to handle this HIR node. The codegen currently doesn't handle this HIR node for now. [ghstack-poisoned]
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
There's nothing interesting happening quite yet. Note that OutlinedFunctionExpression will be created only after InferReferenceEffects so some of the passes before will not need to handle this HIR node. The codegen currently doesn't handle this HIR node for now. ghstack-source-id: ea697009dcb24d4ccc7c058d7579e75e1b4b90e7 Pull Request resolved: #30089
Comparing: f5d2feb...28ec1c4 Critical size changesIncludes critical production bundles, as well as any change greater than 2%:
Significant size changesIncludes any change greater than 0.2%: Expand to show
|
…sses" There's nothing interesting happening quite yet. Note that OutlinedFunctionExpression will be created only after InferReferenceEffects so some of the passes before will not need to handle this HIR node. The codegen currently doesn't handle this HIR node for now. [ghstack-poisoned]
There's nothing interesting happening quite yet. Note that OutlinedFunctionExpression will be created only after InferReferenceEffects so some of the passes before will not need to handle this HIR node. The codegen currently doesn't handle this HIR node for now. ghstack-source-id: b8735178a815e9e36a23f854dcd43677f56a0153 Pull Request resolved: #30089
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This stack looks great! Looking forward to seeing more of the outlining implementation, what we discussed in design sync makes sense though.
One extra thought: what about JSX created during a loop? So far it seems the model is around outlining functions, when what we really want to outline is JSX.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually thinking about this more i think we might want a different representation to make this more general. Rather than an outlined function which represents a function in the source + its outlined component, it seems like we could:
- Create outlined components for complex JSX subexpressions (regardless of whether they're in a callback or in a loop)
- Replace existing JSX instructions with calls to those outlined components
So we might be able to completely avoid new instruction variants, since the outlined functions are just a separate function to plumb through the pipeline and the the JSX expressions just get swapped in-place.
I've implemented the alternative at #30331 |
Stack from ghstack (oldest at bottom):
There's nothing interesting happening quite yet.
Note that OutlinedFunctionExpression will be created only after
InferReferenceEffects so some of the passes before will not need to
handle this HIR node.
The codegen currently doesn't handle this HIR node for now.