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

An SSA form could possibly help reduce number of registers needed? #41

Open
ExpHP opened this issue Apr 29, 2021 · 2 comments
Open

An SSA form could possibly help reduce number of registers needed? #41

ExpHP opened this issue Apr 29, 2021 · 2 comments
Labels
enhancement New feature or request

Comments

@ExpHP
Copy link
Owner

ExpHP commented Apr 29, 2021

I just had a discussion with someone where, in the same discussion:

  • I mentioned that the format we're compiling into has an extremely limited set of registers
  • I said that truth doesn't have a CFG or SSA "because optimization is currently a non-goal (compared to round-trippability)"

Shortly after the discussion it dawned on me that SSA could quite possibly help with allocating registers to named local variables (allowing a register to be reused even if a variable it was bound to is still in scope). It'd probably be a lot of work (and a lot for me to learn 😅), but it in the end it could help make ANM scripts even nicer to write.

@ExpHP ExpHP added the enhancement New feature or request label Apr 29, 2021
@ExpHP
Copy link
Owner Author

ExpHP commented Apr 29, 2021

I should also note that the disassembler Binary Ninja also has SSA forms. So I guess they have use cases for decompilation as well? (anything useful for us?)

Anyways, getting a CFG is a big part of this, and is a requirement for many other techniques as well. I imagine that many of its possible use cases for truth will become apparent as I work on that.

@ExpHP
Copy link
Owner Author

ExpHP commented May 1, 2021

actually, interupt[]s could be a really big problem for any attempt to build a CFG.

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