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

feat[ir]: add make_ssa pass to venom pipeline #3825

Merged
merged 354 commits into from
Apr 2, 2024

Conversation

harkal
Copy link
Collaborator

@harkal harkal commented Mar 1, 2024

What I did

How I did it

How to verify it

Commit message

this commit updates the venom pipeline to be capable of translating 100%
of the original vyper IR, and successfully passes the entire test suite.

to accomplish this, the translation pass from the old IR to Venom is
simplified, moving several optimization and analysis steps to separate
passes. the most significant of these is the `make_ssa` pass, which
converts any Venom code into SSA form, therefore letting us write
non-SSA code in the translation pass, simplifying the translation.

to support the `make_ssa` pass, this commit also adds a dominator tree
implementation, along with implementations of dominance frontier and
other utility functions. these should also be useful for additional
passes that will be contributed in the future.

to facilitate the development process, this commit also adds two more
output formats: `cfg` and `cfg_runtime`, which provide a graph
representation of the Venom code.

Description for the changelog

Cute Animal Picture

Put a link to a cute animal picture inside the parenthesis-->

setup.cfg Outdated Show resolved Hide resolved
code, output_formats=["bytecode_runtime"], settings=Settings(optimize=optimize)
code,
output_formats=["bytecode_runtime"],
settings=Settings(optimize=optimize, experimental_codegen=experimental_codegen),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should this maybe be like get_settings or a compile_code fixture?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can resolve later

@charles-cooper charles-cooper enabled auto-merge (squash) April 2, 2024 17:34
@charles-cooper charles-cooper merged commit 91ef0dd into vyperlang:master Apr 2, 2024
149 checks passed
electriclilies pushed a commit to electriclilies/vyper that referenced this pull request Apr 27, 2024
this commit updates the venom pipeline to be capable of translating 100%
of the original vyper IR, and successfully passes the entire test suite.

to accomplish this, the translation pass from the old IR to Venom is
simplified, moving several optimization and analysis steps to separate
passes. the most significant of these is the `make_ssa` pass, which
converts any Venom code into SSA form, therefore letting us write
non-SSA code in the translation pass, simplifying the translation.

to support the `make_ssa` pass, this commit also adds a dominator tree
implementation, along with implementations of dominance frontier and
other utility functions. these should also be useful for additional
passes that will be contributed in the future.

to facilitate the development process, this commit also adds two more
output formats: `cfg` and `cfg_runtime`, which provide a graph
representation of the Venom code.

---------

Co-authored-by: Charles Cooper <cooper.charles.m@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants