Skip to content

Commit

Permalink
feat[venom]: add support for no optimizations
Browse files Browse the repository at this point in the history
  • Loading branch information
charles-cooper committed Oct 19, 2024
1 parent b3ea663 commit cece31c
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions vyper/venom/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,17 +43,22 @@ def generate_assembly_experimental(

def _run_passes(fn: IRFunction, optimize: OptimizationLevel) -> None:
# Run passes on Venom IR
# TODO: Add support for optimization levels

ac = IRAnalysesCache(fn)

SimplifyCFGPass(ac, fn).run_pass()
MakeSSA(ac, fn).run_pass()

if optimize == OptimizationLevel.NONE:
StoreExpansionPass(ac, fn).run_pass()
return

Mem2Var(ac, fn).run_pass()
MakeSSA(ac, fn).run_pass()

SCCP(ac, fn).run_pass()
StoreElimination(ac, fn).run_pass()
SimplifyCFGPass(ac, fn).run_pass()

AlgebraicOptimizationPass(ac, fn).run_pass()
# NOTE: MakeSSA is after algebraic optimization it currently produces
# smaller code by adding some redundant phi nodes. This is not a
Expand All @@ -62,9 +67,12 @@ def _run_passes(fn: IRFunction, optimize: OptimizationLevel) -> None:
# without making the code generation more expensive by running
# MakeSSA again.
MakeSSA(ac, fn).run_pass()

BranchOptimizationPass(ac, fn).run_pass()
RemoveUnusedVariablesPass(ac, fn).run_pass()

# TODO: codesize optimizations, e.g. for literals

StoreExpansionPass(ac, fn).run_pass()
DFTPass(ac, fn).run_pass()

Expand Down

0 comments on commit cece31c

Please sign in to comment.