forked from vyperlang/vyper
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat[ir]: add
make_ssa
pass to venom pipeline (vyperlang#3825)
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 <[email protected]>
- Loading branch information
1 parent
5bdd174
commit 91ef0dd
Showing
46 changed files
with
1,684 additions
and
849 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.