Skip to content

[compiler] ReactiveIR: refactor Branch/Fallthrough#32027

Closed
josephsavona wants to merge 2 commits into
gh/josephsavona/67/basefrom
gh/josephsavona/67/head
Closed

[compiler] ReactiveIR: refactor Branch/Fallthrough#32027
josephsavona wants to merge 2 commits into
gh/josephsavona/67/basefrom
gh/josephsavona/67/head

Conversation

@josephsavona
Copy link
Copy Markdown
Member

@josephsavona josephsavona commented Jan 8, 2025

Stack from ghstack (oldest at bottom):

Continuing the exploration of the sea-of-nodes ReactiveIR.

Three main changes:

  • ReactiveGraph has both entry and exit. Entry is mostly for completeness since it would be the first entry in the nodes map.
  • Moves the 'terminal' data from JoinNode to BranchNode. Each branch has both an entry and exit, but these are intended for use with reconstruction back to ReactiveFunction and for interpreting the IR or forward data flow analysis.
  • Renames JoinNode => FallthroughNode, removing the terminal.

Combined with the previous changes — ensuring that every block ends in a terminal that has controls transitively through to its entry node — it's now always possible to reach all nodes from the exit and to walk forward for forward data flow analysis or abstract/actual interpretation of the instructions.

Continuing the exploration of the sea-of-nodes ReactiveIR.

Three main changes:
* ReactiveGraph has both entry and exit. Entry is mostly for completeness since it would be the first entry in the nodes map.
* Moves the 'terminal' data from JoinNode to BranchNode. Each branch has both an entry and exit, but these are intended for use with reconstruction back to ReactiveFunction and for interpreting the IR or forward data flow analysis.
* Renames JoinNode => FallthroughNode, removing the terminal.

Combined with the previous changes — ensuring that every block ends in a terminal that has controls transitively through to its entry node — it's now always possible to reach all nodes from the exit and to walk forward for forward data flow analysis or abstract/actual interpretation of the instructions.

[ghstack-poisoned]
@facebook-github-bot facebook-github-bot added CLA Signed React Core Team Opened by a member of the React Core Team labels Jan 8, 2025
josephsavona added a commit that referenced this pull request Jan 8, 2025
Continuing the exploration of the sea-of-nodes ReactiveIR.

Three main changes:
* ReactiveGraph has both entry and exit. Entry is mostly for completeness since it would be the first entry in the nodes map.
* Moves the 'terminal' data from JoinNode to BranchNode. Each branch has both an entry and exit, but these are intended for use with reconstruction back to ReactiveFunction and for interpreting the IR or forward data flow analysis.
* Renames JoinNode => FallthroughNode, removing the terminal.

Combined with the previous changes — ensuring that every block ends in a terminal that has controls transitively through to its entry node — it's now always possible to reach all nodes from the exit and to walk forward for forward data flow analysis or abstract/actual interpretation of the instructions.

ghstack-source-id: 23f3e74
Pull Request resolved: #32027
Continuing the exploration of the sea-of-nodes ReactiveIR.

Three main changes:
* ReactiveGraph has both entry and exit. Entry is mostly for completeness since it would be the first entry in the nodes map.
* Moves the 'terminal' data from JoinNode to BranchNode. Each branch has both an entry and exit, but these are intended for use with reconstruction back to ReactiveFunction and for interpreting the IR or forward data flow analysis.
* Renames JoinNode => FallthroughNode, removing the terminal.

Combined with the previous changes — ensuring that every block ends in a terminal that has controls transitively through to its entry node — it's now always possible to reach all nodes from the exit and to walk forward for forward data flow analysis or abstract/actual interpretation of the instructions.

[ghstack-poisoned]
Testmasha pushed a commit to Testmasha/Test that referenced this pull request Apr 15, 2025
Continuing the exploration of the sea-of-nodes ReactiveIR.

Three main changes:
* ReactiveGraph has both entry and exit. Entry is mostly for completeness since it would be the first entry in the nodes map.
* Moves the 'terminal' data from JoinNode to BranchNode. Each branch has both an entry and exit, but these are intended for use with reconstruction back to ReactiveFunction and for interpreting the IR or forward data flow analysis.
* Renames JoinNode => FallthroughNode, removing the terminal.

Combined with the previous changes — ensuring that every block ends in a terminal that has controls transitively through to its entry node — it's now always possible to reach all nodes from the exit and to walk forward for forward data flow analysis or abstract/actual interpretation of the instructions.

ghstack-source-id: 23f3e74
Pull Request resolved: facebook/react#32027
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed React Core Team Opened by a member of the React Core Team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants