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

Finish off SSA #339

Open
7 tasks done
drcjt opened this issue Aug 27, 2023 · 3 comments
Open
7 tasks done

Finish off SSA #339

drcjt opened this issue Aug 27, 2023 · 3 comments
Assignees
Labels
enhancement New feature or request

Comments

@drcjt
Copy link
Owner

drcjt commented Aug 27, 2023

Started implementing SSA but lots left to do:

  • Add ssa number to IR nodes
  • Insert Phi Functions
    • Calculate Dominance Frontier
    • Calculate Iterated Dominance Frontier
    • Insert actual phi functions
      • Need to add phi node
  • Rename variables
@drcjt drcjt added the enhancement New feature or request label Aug 27, 2023
@drcjt drcjt self-assigned this Aug 27, 2023
@drcjt drcjt mentioned this issue Aug 27, 2023
@drcjt
Copy link
Owner Author

drcjt commented Sep 2, 2023

#353 adds ssa numbers to IR nodes

@drcjt drcjt mentioned this issue Sep 3, 2023
@drcjt drcjt mentioned this issue Sep 12, 2023
@drcjt
Copy link
Owner Author

drcjt commented Sep 12, 2023

Need to write automated tests
Also consider refactoring liveness out of ssabuilder into a separate Liveness class

@drcjt
Copy link
Owner Author

drcjt commented Sep 17, 2023

Ideas for automated testing of SSA:

  • Create new integration test project. For tests assemble il and then use bespoke code to do most of what the MethodCompiler does before running ssa build. Then run the SsaBuilder directly and assert on results e.g. ssa numbers in local variable table
  • Add some asserts/checks into the ILCompiler itself to check things, see fgDebugCheckSsa in Ryujit for inspiration
    • There is at most one ssa definition for a given ssa number, and that the definition is in the expected block
    • Sanity check Phi's

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant