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

Design the IR #74

Open
1 of 8 tasks
jubnzv opened this issue Aug 6, 2024 · 0 comments
Open
1 of 8 tasks

Design the IR #74

jubnzv opened this issue Aug 6, 2024 · 0 comments
Assignees
Labels
area:ir Everything related to the IR and corresponding internals enhancement New feature or request tracking issue

Comments

@jubnzv
Copy link
Member

jubnzv commented Aug 6, 2024

Design a new IR that expresses the runtime semantics of both: FunC and Tact.

This involves:

  • Designing an IR, choosing the more suitable features properties needed for analysis e.g.:
    • should it be SSA or something else?
    • do we need def-use chains or other spa information (ASTStore: Add UD functionality #188)?
    • do we need an explicit dominance relation?
    • do we need access to TVM assembly?
    • etc.
  • Add the mechanism to access high-level IR structure from which that structure has been generated which is required to get more context.
  • Develop lowering passes from both: Tact and FunC high level IRs
    • Tact requires lowering for high-level constructions like contracts, traits and messages. The lowering should be kind of similar to the implementation of the Tact FunC backend.
    • Augmented assignments in both languages should be lowered
    • Tact functions/receivers/init functions should be lowered to the same function type
    • Correspondence IR <--> FunC/Tact AST
  • Design an API to access IR entries in the most convenient way.

Finally, it will give the possibility to write language-independent analyzers that work on a lower level than FunC/Tact.

@jubnzv jubnzv added enhancement New feature or request tracking issue labels Aug 6, 2024
@jubnzv jubnzv added this to the v1.0 milestone Aug 6, 2024
@jubnzv jubnzv self-assigned this Aug 6, 2024
@jubnzv jubnzv pinned this issue Aug 6, 2024
@jubnzv jubnzv mentioned this issue Aug 6, 2024
9 tasks
@jubnzv jubnzv added the area:ir Everything related to the IR and corresponding internals label Oct 19, 2024
@jubnzv jubnzv removed this from the v1.0 milestone Dec 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:ir Everything related to the IR and corresponding internals enhancement New feature or request tracking issue
Projects
None yet
Development

No branches or pull requests

1 participant