Skip to content
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

Transform JuvixReg into SSA form #2646

Merged
merged 7 commits into from
Feb 20, 2024
Merged

Transform JuvixReg into SSA form #2646

merged 7 commits into from
Feb 20, 2024

Conversation

lukaszcz
Copy link
Collaborator

@lukaszcz lukaszcz commented Feb 12, 2024

  • Closes Transform JuvixReg into SSA form #2560
  • Adds a transformation of JuvixReg into SSA form.
  • Adds an "output variable" field to branching instructions (Case, Branch) which indicates the output variable to which the result is assigned in both branches. The output variable corresponds to top of stack in JuvixAsm after executing the branches. In the SSA transformation, differently renamed output variables are unified by inserting assignment instructions at the end of branches.
  • Adds tests for the SSA transformation.
  • Depends on JuvixReg recursors #2641.

@lukaszcz lukaszcz added this to the 0.6.0 milestone Feb 12, 2024
@lukaszcz lukaszcz self-assigned this Feb 12, 2024
@lukaszcz lukaszcz marked this pull request as ready for review February 19, 2024 09:30
@lukaszcz lukaszcz merged commit cb808c1 into main Feb 20, 2024
4 checks passed
@lukaszcz lukaszcz deleted the reg-ssa branch February 20, 2024 10:45
janmasrovira pushed a commit that referenced this pull request Feb 20, 2024
* Closes #2560 
* Adds a transformation of JuvixReg into SSA form.
* Adds an "output variable" field to branching instructions (`Case`,
`Branch`) which indicates the output variable to which the result is
assigned in both branches. The output variable corresponds to top of
stack in JuvixAsm after executing the branches. In the SSA
transformation, differently renamed output variables are unified by
inserting assignment instructions at the end of branches.
* Adds tests for the SSA transformation.
* Depends on #2641.
paulcadman pushed a commit that referenced this pull request Feb 20, 2024
* Adds a cleanup transformation which removes `Nop` and `Block`
instructions.
* Depends on #2646
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Transform JuvixReg into SSA form
2 participants