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

refactor[venom]: introduce IRContext and IRAnalysisCache #3983

Merged
merged 10 commits into from
May 4, 2024

Conversation

harkal
Copy link
Collaborator

@harkal harkal commented Apr 30, 2024

What I did

This PR completes a big refactor of the venom codebase, while introducing IRContext and IRPassManager.
IRContext is now encapsulating the whole Venom context of compilation which now contains all the IRFunctions.
The pass manager IRPassManages attempts to clean up the pass/analysis handling, by providing a way for passes to request and retrieve specific analyses over the Venom code.

How I did it

How to verify it

Commit message

Add the implementation if `IRContext` and `IRPassManager` along with the required refactoring

Description for the changelog

Cute Animal Picture

841e3b75-4387-48b3-a4cd-174557493b80 copy

@harkal harkal changed the title IRContext refactor feat[ir]: refactor May 1, 2024
vyper/venom/analysis/analysis.py Fixed Show fixed Hide fixed
vyper/venom/analysis/cfg.py Dismissed Show dismissed Hide dismissed
vyper/venom/analysis/cfg.py Fixed Show fixed Hide fixed
vyper/venom/analysis/dominators.py Dismissed Show dismissed Hide dismissed
vyper/venom/analysis/liveness.py Fixed Show fixed Hide fixed
vyper/venom/passes/pass_manager.py Fixed Show fixed Hide fixed
vyper/venom/passes/pass_manager.py Fixed Show fixed Hide fixed
vyper/venom/passes/pass_manager.py Fixed Show fixed Hide fixed
vyper/venom/analysis/liveness.py Fixed Show fixed Hide fixed
vyper/venom/analysis/cfg.py Fixed Show fixed Hide fixed
vyper/venom/analysis/dfg.py Fixed Show fixed Hide fixed
vyper/venom/analysis/dup_requirements.py Fixed Show fixed Hide fixed
vyper/venom/analysis/liveness.py Fixed Show fixed Hide fixed
vyper/venom/passes/remove_unused_variables.py Fixed Show fixed Hide fixed
@harkal harkal changed the title feat[ir]: refactor feat[ir]: introduction of IRContext and IRPassManager May 2, 2024
from vyper.exceptions import CompilerPanic
from vyper.utils import OrderedSet
from vyper.venom.analysis.analysis import IRAnalysis
from vyper.venom.analysis.cfg import CFGAnalysis

Check notice

Code scanning / CodeQL

Cyclic import Note

Import of module
vyper.venom.analysis.cfg
begins an import cycle.
@harkal harkal marked this pull request as ready for review May 2, 2024 13:21
Copy link
Member

@charles-cooper charles-cooper left a comment

Choose a reason for hiding this comment

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

i think overall this is a big improvement - the passes are more encapsulated.

question: why do request_analysis and invalidate_analysis have to be called imperatively? is there any way for a pass to register which analyses it needs and then there is automated machinery which calls request_analysis and invalidate_analysis?

@charles-cooper charles-cooper changed the title feat[ir]: introduction of IRContext and IRPassManager feat[ir]: introduce IRContext and IRPassManager May 2, 2024
Comment on lines -83 to -102
while True:
changes = 0

changes += ir_pass_optimize_empty_blocks(ctx)
changes += ir_pass_remove_unreachable_blocks(ctx)

calculate_liveness(ctx)

changes += ir_pass_optimize_unused_variables(ctx)

calculate_cfg(ctx)
calculate_liveness(ctx)

changes += DFTPass().run_pass(ctx)

calculate_cfg(ctx)
calculate_liveness(ctx)

if changes == 0:
break
Copy link
Member

Choose a reason for hiding this comment

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

removing this loop seems to cause an optimizer regression

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This depends on the compiled code. For example compiling CurveStableSwapNG-0.4.0.vy results (wc -c):

master branch: 50489
Current branch: 50541 <-- indeed looks like a regression

but on the current branch if we just remove DFTPass at the end like so:

@@ -49,7 +49,7 @@ def _run_passes(fn: IRFunction, optimize: OptimizationLevel) -> None:
 
     SimplifyCFGPass(pm).run_pass()
     RemoveUnusedVariablesPass(pm).run_pass()
-    DFTPass(pm).run_pass()
+    # DFTPass(pm).run_pass()

we get down to size that master can't get to: 50419

This PR is about getting the code cleaned up and organized by providing the machinery to have pass/analysis flexibility (while also making it much more efficient 🚀 ), and then the exact sequencing of passes, along with tuning them, will be determined as a separate issue.

Copy link
Member

Choose a reason for hiding this comment

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

well, adding the loop back in reduces codesize again -- 50417

Copy link
Member

Choose a reason for hiding this comment

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

i guess the RemoveUnusedVariablesPass as currently implemented is not really a one-shot pass, since each iteration can remove more dead variables

@harkal
Copy link
Collaborator Author

harkal commented May 3, 2024

question: why do request_analysis and invalidate_analysis have to be called imperatively? is there any way for a pass to register which analyses it needs and then there is automated machinery which calls request_analysis and invalidate_analysis?

I tried both designs, but the imperative won at the end. It's more clear/explicit when and how request and invalidations happen, and it gives you the flexibility of sequencing and re-requesting analyses when needed depending on the nature of the pass.

@charles-cooper
Copy link
Member

and it gives you the flexibility of sequencing and re-requesting analyses when needed depending on the nature of the pass.

like here? https://github.com/vyperlang/vyper/pull/3983/files#diff-014351fadf932e6f54253bd6705a6b85dda68db2e9ac7daa6aad133bc2253217R71

harkal added 4 commits May 3, 2024 20:16
commit db9fc3b8d0a58258218db715963335564e156f0c
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 30 14:50:07 2024 +0300

    update tests

commit 89d51c4a92ca77a8b5491ecb3afe17e5a84ba004
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 30 14:34:45 2024 +0300

    refactor and cleanup

commit be91dfe79b5c27aa17399f1858d7f7341fa2503b
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 30 14:29:42 2024 +0300

    move data segment info to context

commit 6903c22095e0dd354a22d54ad0b196a9d8c32206
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 30 14:22:54 2024 +0300

    Refactor VenomCompiler class in venom_to_assembly.py

commit 9b6117f3a2af66ca61700e775a8e3de47e32d511
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 30 12:00:34 2024 +0300

    lint

commit c14e33a54fac6036e17002b8ef68ccd4f4c0ea96
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 30 11:49:12 2024 +0300

    add comment

commit 5fec3f2479b39c1a4fd6c48514ef1215fb884b89
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 30 11:47:15 2024 +0300

    fix symbol replacement bug in _merge_jumpdests function

commit 89d1a5c0ee65176ef4b2c47108b761586a06efe2
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 30 11:32:51 2024 +0300

    add test cases

commit 99f0d364502176ba0d9a59a57336fdcaeab413a3
Merge: ddb79131 7fc748c8
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 30 12:10:47 2024 +0300

    Merge branch 'feature/sccp' into refactor/irfunction

commit 7fc748c814e0a0c007f810c574c60bb3b99576f3
Merge: 8bd05a91 04cadaa9
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 30 12:10:27 2024 +0300

    Merge branch 'master' into feature/sccp

commit ddb791319bf87b73a291ba1571e53411c9b6409b
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 30 11:15:30 2024 +0300

    Refactor IRContext and IRFunction classes in vyper/venom

commit 506e2892d7dc3a6832e1a700380554dda407aecb
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 30 10:32:33 2024 +0300

    remove legacy function handling

commit bcecd5a4598004b8255f0b95ffc681e9f43584dd
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 30 10:28:54 2024 +0300

    Chain basic blocks refactor

commit d78409b9b5e388368950cf6ce2a1da00d2d2d83b
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 29 18:47:52 2024 +0300

    output context

commit 8cc1b7578346513863c093ba3d4845c10e45e3f0
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 29 18:37:22 2024 +0300

    Fix CFG altering instructions in IRFunction class

commit 8516588e2735fbbc0bff73178a19edcbf6cf69b3
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 29 18:32:25 2024 +0300

    Refactor IRContext and IRFunction classes in vyper/venom

commit 2762f8ca996881a005ed96bc5af833511560a3be
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 29 18:23:04 2024 +0300

    Refactor IRContext and IRFunction classes in vyper/venom

commit 81f2cb0dd85aaf1bba8f4abfd5ecfc854b74a331
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 29 17:47:46 2024 +0300

    Fix type annotation in test_dominator_tree.py

commit f44f54491ecfc0623b868c7e8caec32b0911fe98
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 29 17:47:22 2024 +0300

    ctx to fn

commit 8bd05a9154af84a0fbe3cd39bb01f59b41331556
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Fri Apr 26 09:29:57 2024 -0400

    reference wegman+zadeck

commit 2bee449b554c8e520c910027048b59fb81b9d80a
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Apr 26 14:41:26 2024 +0300

    Fix typo

commit 4c3b252ffd767fd166958c64ee094d8e5fdf7661
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Apr 26 14:18:24 2024 +0300

    compile/runtime tests

commit 3dca106e17f59186c0987aff063b2b9bb3fb7549
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Apr 26 14:17:39 2024 +0300

    Fix typo in simplify_cfg.py

commit e3b40d123f2a33a68c8ade51586c34eb7c165ebe
Merge: 4bb67fb8 1592ea1b
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Wed Apr 24 14:31:42 2024 -0400

    Merge branch 'master' into feature/sccp

commit 4bb67fb862690930c086e878c769020d7e0570f3
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 22 11:16:06 2024 +0300

    lint

commit a8a69514d6a8c72f307dc5cea3172514ae7da5ea
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 22 11:12:16 2024 +0300

    oob tests for compile/run time

commit 3769faa9f574c88db25730ec4c6c567b18403214
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 22 10:32:26 2024 +0300

    remove unused import

commit 5e2be93d176f4c46fd44ed61873989b29a26c45f
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 22 10:31:29 2024 +0300

    add back check

commit ea0b57fe2553c8fd01b3687ec458be2b60c80c27
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 22 10:23:37 2024 +0300

    remove unused self.dom

commit be86cbfffb8ccf1efd4b1683601b59adff517661
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 22 10:21:53 2024 +0300

    refactor

commit 3c3072c366c8e87b3315cd29bbc935ec134fe823
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 22 10:20:00 2024 +0300

    Reform type assertion in IRInstruction class

commit 34354a0cba284545e926cb54988110166ff02d19
Merge: cf478ed4 80708e6d
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 22 10:14:30 2024 +0300

    Merge branch 'master' into feature/sccp

commit cf478ed42848f464550d317b26b440e303ecff33
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Apr 17 19:54:45 2024 +0300

    Raise invalid work item type handling in SCCP

commit 1c8df40b0af6d6309c9cbd3df23c1d99533b96ab
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Apr 17 19:43:02 2024 +0300

    nbytes

commit a3185224d11b608a1c8d3aea3e0799e3b7873150
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Apr 17 12:06:35 2024 +0300

    remove fast return

commit bc95d0cf7f336a514e800c0648b7783704500e54
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Apr 17 12:03:58 2024 +0300

    Move `cfg_in_exec` to `SCCP`

commit 251181dbc6ff5e38edece9d2b81223ee9470ee28
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Apr 17 11:51:04 2024 +0300

    rename `vars` to `in_vars`

commit 40ad2001dc2bcc9b7c6cb4577bee81dc1803bb8b
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Apr 17 11:49:12 2024 +0300

    remove basic_block from SSAWorkItem

commit 13d7cc2caca2f506d570f3b2a469d92663c67c59
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Apr 17 11:44:37 2024 +0300

    use snake_case naming convention

commit c83940acd702c24fab2d9611b170ba550476ba56
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Apr 17 11:41:34 2024 +0300

    remove fast paths

commit 1d0ae1cc1c98069513f160cdf8bac5353bf7b97b
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Apr 17 11:26:02 2024 +0300

    generalize `mstore` insertion before `return`

commit 5cd9c3e2cd203f0a177b7558b84dd00d8a194b08
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Apr 17 11:20:50 2024 +0300

    Rename Mem2Stack to Mem2Var

commit 93ae7edd09333d90dff606e8336f5413b1807893
Merge: 6bd1822b e1adb7b3
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 16 11:22:55 2024 +0300

    Merge branch 'master' into feature/sccp

commit 6bd1822b56343fef3bd62571871a0e2509f661b8
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 16 09:54:28 2024 +0300

    remove masking

commit b01b9afad2f9ce36ce831bf8a90202fdaea0d3bc
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 16 09:44:15 2024 +0300

    Add input value bounds checks in SCCP evaluation functions

commit c778fbb53cb724c9116c148fd967de3880197408
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 16 09:37:43 2024 +0300

    refactor _evm_iszero function

commit eba81af9ed066f415fac53477f25bfc94c7d5522
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 16 09:34:40 2024 +0300

    Refactor EVM evaluation functions

commit 09cb6ce596d33564abd57c2810df6ca0d05eec83
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 16 09:18:52 2024 +0300

    make use of vyper signed/unsigned conversion utility functions

commit 238d28e588beb2a36ba3e6635ecdc51369e1fb5f
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 23:51:00 2024 +0300

    refactor

commit 75a0bcb7351cd066972577feb89ebe74011a8799
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 22:33:14 2024 +0300

    Panic for too many iterations in SimplifyCFGPass

commit 913124fa95a1d6700b262ca5613a2e3a0ec29348
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 22:02:27 2024 +0300

    right right shift

commit 298504f6a70616aa62557523642f9cd31eb08bcf
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 21:35:38 2024 +0300

    lint

commit 8bda3f99d5e5ce36862d0944409b02c7b3280f1f
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 21:14:56 2024 +0300

    bound iterations

commit e684bd48de411c11a374f627e6324f188e82245c
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 21:07:31 2024 +0300

    rename functions

commit 02bcf8bdbe89094c5caf1c3733983e4683752cd4
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 21:03:58 2024 +0300

    snakecasefy

commit d23440080674b7d20537a009c83a09d65f098145
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 16:46:16 2024 +0300

    use `pytest.raises()'

commit 19c6a773336bc871f2ee2913369231aa1176005a
Merge: e6022655 39b46ca3
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 16:39:37 2024 +0300

    Merge branch 'master' into feature/sccp

commit e60226551dd8d64f85833dd0dec26907780738bd
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 16:38:31 2024 +0300

    remove unsused local

commit b105a01abf9564571c1325b11bd95577063327b9
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 16:36:32 2024 +0300

    update test for venom compile type assert

commit 9545e36345a39682f2c265330c41971cd7b55516
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 16:33:09 2024 +0300

    formatting

commit b1842064a219519c7ab73cc25babdb9a983115db
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 16:32:22 2024 +0300

    update tests for venom compile time asserts

commit 1238c9690e3d09a9f43bf6417622ab653965b694
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 16:05:34 2024 +0300

    formatting

commit 975d4ebfa54d1361942db37a8eac6283d1e4c103
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 16:05:06 2024 +0300

    `ast_source` made into `IRnode`

commit 225c5937bde459cd0b819b1fe51cf27f1634712a
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 16:04:32 2024 +0300

    lint

commit 2a77c88c8442695cb8720517978d2ee31ddf3993
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 16:04:09 2024 +0300

    fix signextend

commit 34593bf13b3b174f488acf59dc60f339f848967a
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 12:39:03 2024 +0300

    assertion failure and add get_ast_source method

commit c2a17edcf573b53587c23473ed864944a475e1ff
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 11:58:52 2024 +0300

    Remove `abort` opcode, make false assertions into compile error

commit b5548ebdfacf3a90114929f499b961062cb5a376
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 11:33:30 2024 +0300

    lint

commit ac841ecb4860da0d275d301e4acd25a66c98a86d
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 11:15:43 2024 +0300

    add comment

commit cbec0a510dc3433e0a922f2853e8f430bcf841f7
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 11:14:43 2024 +0300

    Remove unused code

commit 5506b40189488ecfbf8f70c8e03ca869eb258892
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 01:11:07 2024 +0300

    comments and cleanup

commit 4e417197024c2ffb5d8bb8f99061524c92c025fa
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 01:05:23 2024 +0300

    comments and a small optimization

commit 073ddd2729266d3f628a62962fcc666476e5d07a
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 00:57:13 2024 +0300

    Refactor `self.uses` handling to simplify code

commit 8047ce139345572aa9364d9865da43b220dd9e0f
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 15 00:45:11 2024 +0300

    Remove unused function

commit adcbda765f9669e31a85d318a88715a2dbaf977f
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sun Apr 14 22:35:07 2024 +0300

    Remove commented code in ir_node_to_venom.py

commit 1b227f793fb38a0ee8de93f15b35c550a9c29c85
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sun Apr 14 22:25:38 2024 +0300

    return iterators when posible

commit ca409509b94bbc859c42d6d9a215cb0213d357bf
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sun Apr 14 22:06:29 2024 +0300

    Enable liveness display in IRInstruction class

commit 8a7024feed2a5a8083d0897b2a117d33b756b3b9
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sun Apr 14 10:46:16 2024 +0300

    refactor sccp code

commit cbd5a581430e7accf9745ea23cfd9909180ee5e0
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 13 23:44:59 2024 +0300

    Remove unused imports and optimize imports in venom/__init__.py

commit 9f9f1da7cde42a662374fbfa7cfec91b3d1e5d08
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 13 23:14:49 2024 +0300

    lint

commit 2a5e22b36bb587c6d3e47c4859c2bd8d3f50ffd2
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 13 23:10:37 2024 +0300

    raise CompilerPanic for unimplemented djmp with literal

commit 96abd9f5a5c20352b5d49e799cac23ff9e13451b
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 13 22:01:02 2024 +0300

    lint

commit 4a8def3207a9a26c6e1a513c33dc1db16136ab88
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 13 18:15:13 2024 +0300

    Remove unused imports

commit 8c728b049602d4b3eac89620987d70b6e66fcac7
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 13 17:42:50 2024 +0300

    lint

commit a76341a9bafe36fee882a20509951dbb9cad68a8
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 13 14:55:33 2024 +0300

    Add type hinting for ARITHMETIC_OPS dictionary

commit 6016d1ba876beb3d26b8baaa09735f6666578474
Merge: 63e23007 cb940684
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Apr 12 21:52:10 2024 +0300

    Merge branch 'master' into feature/sccp

commit 63e23007ce55551da66cfe6493e5d4923bad98a7
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Apr 12 21:47:54 2024 +0300

    cleanup

commit 2354c8ad189daa1c74f1d1c6b001b1ec4c49deae
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Apr 12 21:46:06 2024 +0300

    Remove unused code and add new instruction "abort"

commit c5ac59acac1826705d12aa74dc76b0828c3c270c
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Apr 12 21:32:53 2024 +0300

    bugfix DFT

commit 234b2080207278ec64755bd06cc51a292a54b42b
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Apr 12 16:17:32 2024 +0300

    Remove xfail markers from test functions

commit 393b2906bee718012e42ddb008071c353d1119c0
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Apr 12 16:06:15 2024 +0300

    Swap order of operands in _evm_signextend function

commit 184f371ee4a3c2f1245d25d46fe17c7c6964658f
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Apr 12 16:05:49 2024 +0300

    add `abort` venom instruction

commit 153844aed9b35baf8773b04ce3d97b0cd53a8e2a
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Apr 12 12:20:41 2024 +0300

    Fix signed integer operations in SCCP evaluation

commit 36da602d9aaff9d6587464ee9101c41188c7321a
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Apr 12 12:03:07 2024 +0300

    Fix incorrect lattice values in test_sccp.py

commit 7c232b0972faead4561bfcdabdd2e25c7223b4df
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Apr 12 11:55:45 2024 +0300

    fix successor phis

commit d2d053d2b8949651605c8c341838b7e19a6d9a4e
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Apr 12 02:14:38 2024 +0300

    Refactor exp in SCCP evaluation

commit f4b2fdca46447d9fa753acb6fe810d69122d018d
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Apr 12 01:59:13 2024 +0300

    lint

commit dd481fc81ea247a6910ac2018764d2c1e72295f3
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Apr 12 01:58:17 2024 +0300

    fix exp evaluation

commit b29975de51b347f6c04313568e2c7b487840c677
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Apr 12 01:48:06 2024 +0300

    fixes

commit ca9713518b756c09e82c7aa6a4f0bccdb2f63b5e
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Apr 11 19:33:21 2024 +0300

    disable variable propagation

commit 536af1e12bd7e8bce31f4947bf5f126a57a486b6
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Apr 11 19:17:11 2024 +0300

    fix branch selection logic to actually use _meet()

commit 85e6ad8a67b81904381be5c2b6b690c61016e06d
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Apr 11 18:23:22 2024 +0300

    update test cases in test_sccp

commit 53fcc755c33306d6785c686d2fc5daf3225d6271
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Apr 11 17:45:37 2024 +0300

    Add _evm_not function to handle bitwise NOT operation

commit 1e9365078c20ff465520074b99773e294ef45996
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Apr 11 10:29:13 2024 +0300

    enable for internals

commit 5ae8edea5e35a2fb56a25f30f8c6c350a15758b0
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Apr 11 00:29:48 2024 +0300

    Refactor Mem2Stack pass and add variable propagation

commit 779ce77e47158fdc8daee75e5ed28a136058fe0a
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Apr 11 00:29:40 2024 +0300

    Fix operand order in EVM shift operations

commit b12717afcd22a944c32fbff15223578fb3814417
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Apr 10 22:09:05 2024 +0300

    Commented out SCCP pass and rearranged code

commit ee833edd3b6beb4abc3f09376cb7fa8d64b42dbb
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Apr 10 22:08:52 2024 +0300

    block optimization and remove unreachable blocks

commit d116cc1ba68b6bb77aed913100e83609ead718c1
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Apr 10 22:08:30 2024 +0300

    Fix operand order in binary operations and add new EVM instructions

commit 05194e39900a07687eab4b50148806a98e06b0c9
Merge: ddb5795e eb81c269
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Apr 10 09:40:49 2024 +0300

    Merge branch 'master' into feature/sccp

commit ddb5795ed8664947b6e27dfca652fe702dc73c0e
Merge: c75c89c9 8fcbde28
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 9 17:38:32 2024 +0300

    Merge branch 'master' into feature/sccp

commit c75c89c9b38a7d27888a7577a09144e133cea223
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 9 17:27:57 2024 +0300

    fixes

commit 6e3d7fc4183bb1c546763011ba4f1da65637356f
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 9 16:27:26 2024 +0300

    fix phi issue

commit cda13481cd93a97f1399710fe226a4eba1a62683
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 9 15:53:22 2024 +0300

    Update arithmetic operations in SCCP

commit dcaaefd9a514bfe8f326fbd0d722db588ffca3b8
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 9 13:39:27 2024 +0300

    Refactor arithmetic operations in SCCP evaluation

commit 0f92f1e075fb0d6a64c2610c4d9bd952a4ca80f1
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 9 13:39:15 2024 +0300

    clean sccp

commit 2c30b7cbea0d7607ce2c236cd6dd85fc6ed8dbe9
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 9 13:18:38 2024 +0300

    Add CEILING_UINT256 constant to SizeLimits class

commit dcea498a8c9f1b06d23558bbad026599e03d87dd
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 9 12:58:34 2024 +0300

    Refactor SCCP pass files and evaluation functions

commit 9055dca39116d7e55f89e7f8f7c5a00de83af165
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 9 01:42:12 2024 +0300

    reverse condition order

commit 50fbdd814745428f580598ef0e4723554fee0b48
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 9 01:26:38 2024 +0300

    Refactor SCCP pass to propagate variables for cleaner code for humans

commit 9a04a28fa4d7fd686f932f867dded3caf0cf9b34
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 9 01:15:57 2024 +0300

    Fix phi operand bug in SCCP pass

commit 1647e3e23d5b3713c15e8a1815fb60cce9974164
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 9 00:53:12 2024 +0300

    Updated unreachable block elimination with new phi

commit 78efcf76965a7cf7fe1831e1469a40c3d3e61ca9
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 9 00:52:35 2024 +0300

    Remove phi operand method

commit dde71b91350ac21a94794217facac2e0a6eff1ec
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 9 00:35:23 2024 +0300

    Fix SCCP propagation bug

commit 2b69335484f3c1f4fd484e03ec1844297eb1c0c2
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 9 00:27:02 2024 +0300

    Fix SCCP algorithm and add conditional jump optimization

commit 313881a77a9fd7916f7adfb20c928b4898e245eb
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 8 21:26:53 2024 +0300

    temp

commit 200f816241379ad98636ea45d6b77c7bb2251259
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 8 21:06:05 2024 +0300

    `nop` instruction

commit b04e08c8fc8a31664b5d61b3d39db3b673515f2c
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 8 21:05:53 2024 +0300

    lint

commit 0e44392b8d496895943788a70417e42e5846c151
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Apr 8 21:05:20 2024 +0300

    constant jump optimization

commit f3be0096c6c3bae88d3194388c2abda3c3e9649c
Merge: 213b2057 c54d3b16
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sun Apr 7 21:56:20 2024 +0300

    Merge branch 'master' into feature/sccp

commit 213b2057cf5caac35d705e7a0de24ff0e0c8aa71
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 6 21:54:44 2024 +0300

    use isinstance

commit cbd6a13ab7c11d62b8757e73c6f450ca3aae37b8
Merge: ae53c2dc 273f8144
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 6 21:52:26 2024 +0300

    Merge branch 'refactor/venom_classes' into feature/sccp

commit 273f81442b1b702e5960021900398ab9a7bc6db9
Merge: fae87baa 7485ceab
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 6 21:44:20 2024 +0300

    Merge branch 'master' into refactor/venom_classes

commit fae87baafedd3e0a26db71f884a273e9d4236dc8
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 6 21:31:52 2024 +0300

    Refactor IROperand checks to use isinstance() instead of custom functions

commit ae53c2dc5861aae1bf454e1af5f5ee98092c5cd1
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 6 11:35:32 2024 +0300

    refactors

commit b1a8c37ebb253f2d1e8223889283545a286882e2
Merge: efd533ab ea34e4df
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 6 11:29:15 2024 +0300

    Merge branch 'refactor/venom_classes' into feature/sccp

commit ea34e4df78ef301a13dff878b88b38b764e93fa3
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 6 10:11:47 2024 +0300

    remove unused member

commit 0fbd68a5a56beca65766ff649b75211c5f318f5a
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 6 10:06:36 2024 +0300

    lint

commit 29ae288a7438eaf79c7c2c50c9c29423d34b3803
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 6 10:06:28 2024 +0300

    refactor IROperand as base

commit 63a6d8495d2eabee1fbbc718e24b4f2b54db59be
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 6 09:46:11 2024 +0300

    use new class structure and `is_` functions

commit 2298a27d785d0e10926d2c47e1300dddc9040bca
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 6 09:34:14 2024 +0300

    refactor class hierarchy

commit efd533abfed4dd653ad44a416a465e2e29bf6da0
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 6 09:26:18 2024 +0300

    fixes

commit 432b830c15158b810e2b3486373c08261d7712e5
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 6 00:28:31 2024 +0300

    fix

commit b09cddfbcc29a223b3c7480cc549cfe9e2b3289a
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 6 00:26:54 2024 +0300

    lint

commit 8036078e2ec76712e0f7fad0b489d01a60ddd4ee
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 6 00:26:39 2024 +0300

    refactor

commit f8b5a0429ee64b1d41d32fd11d062b957587695e
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 6 00:26:25 2024 +0300

    cleanup

commit 07ba2102b3650d00636bd0bb3be8bd35509e02ea
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 6 00:15:21 2024 +0300

    fix merge accident

commit a8e8576b8d14028be06e8c6048f01a982ab9ae8f
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 6 00:15:05 2024 +0300

    remove unused parameter

commit 9dcd13699261358536642b1eea59f259cebd4645
Merge: 1a424c51 63b8d1da
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 6 00:11:52 2024 +0300

    Merge branch 'master' into feature/sccp

commit 1a424c516feb8c0625eaeea8982fe09b4db0cecc
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Apr 6 00:10:15 2024 +0300

    run sccp on all functions

commit 3c4825860585d51d86d0ad094e2058e15989d67e
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Apr 5 23:39:02 2024 +0300

    enable sccp

commit ce9f447a185228c09efabcf88b5fee9c6444d086
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Apr 5 23:32:22 2024 +0300

    add global symbol saving/restoring for repeat body

commit 69e3ec10c2eece9285e39da0f6d1b9e1c5205719
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Apr 5 21:18:29 2024 +0300

    Refactor if-else block in ir_node_to_venom.py

commit 8d6699aeeb5dabe06815883aa25a407cfa5ac5b8
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Apr 5 16:57:33 2024 +0300

    Refactor memory allocation to use stack

commit a60fa6cb744ce82ed42cd5513ba61d94b5795f15
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Apr 5 16:29:11 2024 +0300

    temp commit

commit b193c709c3de56e33093fae9bf3c707f384b4c6f
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Apr 5 16:27:10 2024 +0300

    Add global symbol tracking in ir_node_to_venom.py

commit 6799b97407f4fdc4a6b8c90f7bb87ffdc3b9f28e
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Apr 4 10:06:18 2024 +0300

    param alloca

commit b28ac5a3711f3c08e1f669cdbc829e155242a90a
Merge: 5c182840 d372ad9a
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Apr 4 10:01:56 2024 +0300

    Merge branch 'venom-alloca' into feature/sccp

commit 5c1828405459e4f28d9c5d81820c2b38daa12e6b
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Apr 4 10:00:55 2024 +0300

    temp

commit d372ad9a02392ce3f58558acddb4a674369063c4
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Wed Apr 3 18:05:00 2024 -0400

    wip -- different kind of alloca for internal function params

commit 53d1711dc2cf59297294ceaaa8c4484514c09f5f
Merge: 4dd53845 45a225c4
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Apr 4 00:29:16 2024 +0300

    Merge branch 'master' into feature/sccp

commit 4dd53845628d72feba6adc6bc33609a53029f02b
Merge: 37a89858 731da639
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Apr 4 00:28:31 2024 +0300

    Merge branch 'mem2stack' into feature/sccp

commit 731da6392d4f50079a8299d813ef7e639e9619d7
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Apr 4 00:25:54 2024 +0300

    Refactor Mem2Stack pass and MakeSSA pass

commit ebf38d93365ef81e2d9e1b8b019f3df60da79688
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Apr 4 00:16:25 2024 +0300

    Refactor Mem2Stack pass to use DFG outputs

commit b908cae6180dc8c56925d4b8cb2649149f97c1e2
Merge: 53587b9e 1a27693e
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Apr 3 20:13:15 2024 +0300

    Merge branch 'venom-alloca' into mem2stack

commit 1a27693e134d727278214239c8026d445841555b
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Wed Apr 3 15:21:23 2024 +0000

    fix a defaults test

commit b0e918efa14c619c4687f3694d12dd14b0fcc79a
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Wed Apr 3 15:18:44 2024 +0000

    fix operand order

commit 4a6fd78d4158feb42d65ad6b2eea6175f39ca8f5
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Wed Apr 3 15:12:37 2024 +0000

    revert symbols change

commit 37a898585ba3f2b56c167a712a7e3f5696e7a8b5
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Apr 3 13:13:05 2024 +0300

    Remove unnecessary __eq__ method from IRVariable class

commit f8d88d2a355cacf6e6b04750653c38e13cfd4f10
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Apr 3 13:08:34 2024 +0300

    remove test

commit 6fcea4dd155316993ddd143380dab6a944a44550
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Apr 3 13:07:08 2024 +0300

    remove parameters

commit d529b4bdd9dabe0f113b8cee718b363e46022f7f
Merge: bf0b2172 6fb76e29
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Apr 3 13:04:35 2024 +0300

    Merge branch 'fix/use_pass_instances' into feature/sccp

commit 53587b9ec55969da238a880cc17decb08fb5641f
Merge: ca4a817d 6fb76e29
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Apr 3 12:54:23 2024 +0300

    Merge branch 'fix/use_pass_instances' into mem2stack

commit 6fb76e29d98c5daf0167a970805692cef5e50eb0
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Apr 3 12:40:43 2024 +0300

    Update tests to use pass instances

commit 345f9f57dbd75bc3721fd5725728723af7124a5c
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Apr 3 12:35:16 2024 +0300

    Update code to use pass instances

commit 55b852efcc4c58ea2583866c11a05b7971888c28
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Apr 3 12:30:41 2024 +0300

    Refactor IRPass class to use instance methods instead of class methods

commit ca4a817dd1dd34122c99c7b89874a36f70d6b4a0
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Apr 3 00:34:21 2024 +0300

    Add Mem2Stack pass to optimize memory usage

commit 7569a343c1900037cbd555b15bf27cd18db37dd9
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Tue Apr 2 20:35:33 2024 +0000

    another variable rename

commit 5c3231b9304dd8691169f8c80af086fd14077548
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Tue Apr 2 20:32:16 2024 +0000

    remove mstore from passthru instructions, add argument names

commit 00bc09524252fd3961b2d4f75422c3d1b852a1bd
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Tue Apr 2 15:48:14 2024 -0400

    fix another variable

commit e41e6d625978c02011d4e7665b53e47464b691df
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Tue Apr 2 15:46:59 2024 -0400

    fix bad variable

commit f7d9432860b81679a1511ef20c96503f0ac1739d
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Tue Apr 2 15:44:57 2024 -0400

    fix order of arguments

commit df3b5b8dcc9855ee504fd4c83826a71dabe5ac68
Merge: 24d7eaca e34ca9ca
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Tue Apr 2 15:40:28 2024 -0400

    Merge branch 'master' into venom-alloca

commit 24d7eaca9885572c5752006f2ec6973668a10181
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Sun Mar 24 15:20:31 2024 +0000

    fix a variable lookup

commit 607502d1e8dff6a066adffd2470fbc4c74cdf289
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Sun Mar 24 12:44:11 2024 +0000

    fix buf in revert with reason

commit 77427f657824fc33f3fc9603d0e59071f104d1e3
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Sun Mar 24 12:41:36 2024 +0000

    lint

commit b22ab6178c0a7adcd80e4183dcffb85fbf8efa4a
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Sun Mar 24 00:54:16 2024 +0000

    remove mload and mstore handling in ir_node_to_venom

commit 593d2ee5d6e2bf7b4e37f78a81cf8830595b6cea
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Sun Mar 24 00:52:20 2024 +0000

    remove memory elision code

    it better belongs in a separate pass

commit 42289ddcbaf068a5c84ddf27d9d8b42f44e0b7de
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Sun Mar 24 00:20:05 2024 +0000

    update alloca generation

commit 5adc7d41cf13d8594e0da2962e16ab1dfe6c1b2c
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Sat Mar 23 23:40:45 2024 +0000

    fix with variable shadowing

commit 3221c1c469d15638c75d81b392a210acfcda5ae5
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Sat Mar 23 19:02:20 2024 +0000

    update alloca check

commit 0f7597371beebb0f43e7f49eb2c8594d31b0e346
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Sat Mar 23 18:48:15 2024 +0000

    simplify alloca, lint

commit ab9d60fc14a8d821f0190a963b080a619f4abbff
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Sat Mar 23 18:32:09 2024 +0000

    last fixes

commit aa1920731a7b8a61e77ce07af837b384f9c0fd35
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Sat Mar 23 18:27:58 2024 +0000

    fix a bad from_list

commit 75169cc9d099a8ff5676fb4f57c755b235bbd632
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Sat Mar 23 18:10:16 2024 +0000

    fix typo

commit 597d00aa03e27e4f191c5863c2642dd96dd79be3
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Sat Mar 23 18:06:13 2024 +0000

    fix another builtin bug

commit a5dd7bb7519561a31e2bc28c5d7a56a9c1c46e9e
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Sat Mar 23 18:04:26 2024 +0000

    small fix

commit b37d4d92a7e472223899721ceea65cd50918fcde
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Sat Mar 23 17:54:42 2024 +0000

    fix some fixtures

commit 4a3bd4b70a8bd03e5ed054d93a019f06e1458959
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Sat Mar 23 17:38:53 2024 +0000

    fix bad evm_version fixture

commit 5518af3ff2e1fbb38896a2e0aa986e6b9aa08af3
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Thu Mar 21 20:35:18 2024 +0000

    fix a comment

commit 21eefb344f42e1c2611725bdf187a201a9f54eee
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Thu Mar 21 20:28:01 2024 +0000

    fix some more instances

commit 73a68f1ee6f88f43d58baf900036a72f2b902526
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Thu Mar 21 20:03:14 2024 +0000

    use more add_ofst / fix instances where IRnodes are not expected

commit 685164cad26364f56281d9e2efdd59903a903f74
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Thu Mar 21 19:55:36 2024 +0000

    fix a fixture scope

commit b79403a6e8e91827d32b2a2400ac9e5d2ad26642
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Thu Mar 21 13:49:11 2024 -0400

    pass thru alloca in gep

commit a047691fc32ac916eadba62dd288fc066874223a
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Thu Mar 21 13:48:13 2024 -0400

    wip -- change new_variable to return IRnode with alloca metadata instead
    of int

commit 319be84f7658bfdc0ebeac98b8b72d3736ec7b47
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Thu Mar 21 13:00:30 2024 -0400

    do not perform deallocation in venom pipeline

    small refactor: refactor replicated code for variable deallocatoin

commit 1c6d6f000a5ba43e8376b3dc9eb8fb5042b08f81
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Thu Mar 21 12:46:45 2024 -0400

    make settings into a global object

    this unifies various functions which modify global settings:
    anchor_opt_level, anchor_evm_version, _set_debug

commit bf0b217274770b98c1cfba5c10ce6fb9c94d509f
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 2 17:27:24 2024 +0300

    Add constant propagation method to SCCP pass

commit 664cd8f1f599160d38494af7601927da45387819
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 2 15:27:02 2024 +0300

    Add arithmetic optimization to SCCP pass

commit 14f00b377e4a0f048bce7f91a37143bb5d1d98aa
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 2 15:21:04 2024 +0300

    handle unused

commit 9206f81bbf8c80b1ff1b695fd4f5979e5139ebf4
Merge: 7ac26d83 34eba098
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 2 14:51:56 2024 +0300

    Merge branch 'feature/venom_updates' into feature/sccp

commit 34eba0987409f29d30aadd20ba88de9f761c6057
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 2 12:18:28 2024 +0300

    missplaced comment

commit 7ac26d83161bd607e931ca6f1662dca9a93fa37b
Merge: 64c107d5 fece7b10
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Apr 2 10:35:32 2024 +0300

    Merge branch 'feature/venom_updates' into feature/sccp

commit fece7b10f10a9572c387d65284b430947617d86c
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Mar 28 16:37:55 2024 +0200

    remove stray alloca

commit 6099dae8d922a91faa1f382dee62a96517352b3d
Merge: f57a9d1c 4a8a472e
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Mar 28 12:26:15 2024 +0200

    Merge branch 'feature/venom_updates' of github.com:harkal/vyper into feature/venom_updates

commit f57a9d1c577888ebb2724246ae30ce3463ac0f3c
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Mar 28 12:25:38 2024 +0200

    verify phi placement

commit 4beaaa40545e75fda5ddc6f94de5a797fe638c82
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Mar 28 12:10:08 2024 +0200

    unlint

commit 4a8a472ecae1a35776288c8258a858bbdbae5cf7
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Mar 28 12:07:21 2024 +0200

    Update vyper/codegen/stmt.py

    Co-authored-by: Charles Cooper <cooper.charles.m@gmail.com>

commit 50cb1b4a546fe6312f0dba3e2cf1cdfe685eca2c
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Mar 28 12:05:59 2024 +0200

    lint

commit 85bbd8c87f19177ed1efd83723c2b82cf7ebc433
Merge: fec8b84a 45959387
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Mar 28 12:05:28 2024 +0200

    Merge branch 'master' into feature/venom_updates

commit fec8b84af82f5e53a34e10efcb2b62e8f4096ade
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Mar 27 09:49:20 2024 +0200

    ensure revaluation order for select

commit 3e53d7f5fdf296ef0b5803400909c4183b8a64a0
Merge: a5a1844a 6e9b2c98
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 26 22:33:49 2024 +0200

    Merge branch 'master' into feature/venom_updates

commit a5a1844a6a5c292ff48d692f13eed341fbbf79f2
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 26 22:31:12 2024 +0200

    add DominatorTree.build_dominator_tree()

commit 52c6f61c0fa82ad21044ff645e0b15660e15479a
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 26 22:23:41 2024 +0200

    commenting

commit 84004815ac4e23717f81cff8fe0d62219611a71f
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 26 22:19:26 2024 +0200

    rename variables, refactor code

commit ebf776ea388f6e6164b2dace25a5ea89ed9ebe87
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 26 22:18:50 2024 +0200

    refactor dominator tree constructor

commit b1ba5cbd1a02c52635a2a8cf60a192646e8d097e
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Tue Mar 26 12:43:42 2024 -0400

    add review

commit cedd51802ce3e08abd927773adb1bed603f20dd9
Merge: c3b4dc70 ea7f0818
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 26 17:41:42 2024 +0200

    Merge branch 'master' into feature/venom_updates

commit 64c107d5c4b85a8f7356b3cda481688c381beef0
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 26 11:48:02 2024 +0200

    update dominator tree usage

commit 193f2751ce708c156734f97fda75f6da91c34d60
Merge: ee301dab c3b4dc70
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 26 11:44:21 2024 +0200

    Merge branch 'feature/venom_updates' into feature/sccp

commit c3b4dc70da99f6ba4e1a54ef3d44fdd3f3e7ae42
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sun Mar 24 10:37:32 2024 +0200

    revert mstore evaluation order

commit 990951320a6f9db2148a1ce90aed4ca2f311a2ca
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sun Mar 24 10:27:43 2024 +0200

    protect b from double evaluation

commit affdb09db4c486783aecd263f64061421340f17b
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sun Mar 24 10:24:24 2024 +0200

    change mstore evaluation order

commit 10d3c82b503d84264c89d6b491f21403cc9a68e4
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sun Mar 24 10:19:50 2024 +0200

    lint

commit 15573c4c27ecb52c2e7c1150b44fdbb733e394a4
Merge: 0a0d5925 91a9401c
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sun Mar 24 10:16:33 2024 +0200

    Merge branch 'feature/venom_updates' of github.com:harkal/vyper into feature/venom_updates

commit 0a0d59257e5fc105b96e46938300b61ff9841de7
Merge: 91ea9bde cedf7087
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sun Mar 24 10:16:18 2024 +0200

    Merge branch 'master' into feature/venom_updates

commit 91a9401cbe86577d8d0ce5dfe4cf775e3aca7519
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Sun Mar 24 03:08:21 2024 +0000

    fix cursed __repr__ function

commit c05bcfffa8a9de7aef63be95cc32e59d4d3f3255
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Sat Mar 23 23:32:36 2024 +0000

    add some review comments

commit 544c90cb95a50b5325cb9b72dbdb5569a9a1a5ac
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Sat Mar 23 19:17:17 2024 -0400

    add some comments, sanity check

commit 91ea9bde11bfaefc585c2058ce25d6c33efb1024
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sun Mar 24 00:04:32 2024 +0200

    lint

commit fb5d87d6524f13bd7b9683fd8ac643f7b87443da
Merge: 66977b49 e5892786
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Sat Mar 23 17:19:30 2024 +0000

    Merge branch 'master' into feature/venom_updates

commit 66977b49445ee2530c7f2f8fec7755c71e3b710d
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Fri Mar 22 21:25:16 2024 +0000

    remove some xfails

commit 6f9923e0d8ec6f9bb2d9f0cff36256a9baffeb06
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 22 23:18:19 2024 +0200

    lint

commit 8bc466fb1cc6e8d5bc8bdb34934be4c07079dbdf
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 22 23:14:08 2024 +0200

    fix workflow

commit 0e59adbdfe4932053474033c09467167cf422f3f
Merge: 84a02d76 58e1a336
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 22 19:35:17 2024 +0200

    Merge pull request #5 from charles-cooper/perf/venom

    improve venom performance

commit 58e1a336302b12846754dcf65302869cebc95be8
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Fri Mar 22 13:09:32 2024 -0400

    fix a couple tests

commit afa51731e2444efd9bfd5408849aa621c230a1d3
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Fri Mar 22 13:04:15 2024 -0400

    some more small optimizations

commit 84a02d76af58f3a7b8b2ed64b4320351ff1f613f
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 22 18:40:38 2024 +0200

    mark test

commit 3e4de66300068586884ff34888200d7f2e793aad
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 22 18:38:50 2024 +0200

    cleanupo

commit bcfa42ddd0e0e163b41bbcfc53a1fefc3de4d630
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Fri Mar 22 12:28:24 2024 -0400

    OrderedSet hide dict implementation better

commit 6ebf97707efa306c3e4be71999407024f3a1ecd4
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Fri Mar 22 11:21:12 2024 -0400

    add comment

commit fbe4e2828d8732a5ddf2910ea2149b7e8639a94c
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Fri Mar 22 11:17:41 2024 -0400

    index basic blocks

commit 86acccb10baa773584e89702fbdf968bb2831147
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Fri Mar 22 11:12:00 2024 -0400

    improvements to OrderedSet performance

commit ef78ccf9e38bbf8305e920dc32113e7f6ea806c1
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 22 15:59:15 2024 +0200

    before cleanup

commit 1325d48024c5c5d8e10d7d4fbb8f5ba7b93a24b8
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 22 00:16:18 2024 +0200

    revert

commit 46fe75783d500e6887d6dbc79a5d3357353c7525
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 22 00:16:02 2024 +0200

    fix dominator test

commit d72a41f3a4a4e02987a041ad09e6b8ae8e98e1d2
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 22 00:15:53 2024 +0200

    add volatile instruction

commit 06d216fe76d59f5d720f3a8f2700fa7ac6ea7ac3
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Mar 21 19:02:12 2024 +0200

    lint

commit 50146d1b85c83b60632dfd69a4a11b40514c360c
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Mar 21 18:56:15 2024 +0200

    depth first

commit 3c88c50de85f572ae0a183c0ad707a313aff32a0
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Thu Mar 21 12:43:59 2024 -0400

    lint

commit 625996205151d8c4a18dce7694a4160a8d238b2d
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Mar 21 16:21:24 2024 +0200

    update dominator users

commit 2a404cc02fe0720c08f77f1fb20d09767cf64310
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Mar 21 15:39:49 2024 +0200

    add documentation

commit 20536bf3ba5381a4d8193e09465d8fde2b864711
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Mar 21 15:35:52 2024 +0200

    variable name elaboration

commit 0b5e7645c2e4f930a843ba6d33d5ea2b5ef63d42
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Mar 21 09:08:00 2024 +0200

    remove unnecessary check

commit 54feec49c910e84cd59cfcf6dce203243a60d362
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Mar 20 12:16:39 2024 +0200

    assert there is a producing instruction

commit 0c066f6abd908a640f6214c9ee64f5e1499f5704
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Mar 20 12:10:16 2024 +0200

    lint

commit b942c0329cfdc5b44e1b8930c5709ef40733c277
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Mar 20 12:07:58 2024 +0200

    rename members

commit 560e4a94d14123d7ae3a4d89627aae74076a5892
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Mar 20 12:05:29 2024 +0200

    remove debugging leftover

commit aff18ad9a79d0efbc4888bd0bb4aa1b9b8ac0942
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Mar 20 12:04:36 2024 +0200

    added comment

commit a866575a09585102a6e03732842cc92f92d0c8a2
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Mar 20 11:58:23 2024 +0200

    style

commit 43185a0ce51fee2b96d6a5fba7531ac73b950142
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Mar 20 11:57:18 2024 +0200

    style change

commit c42011666a9f1022c3971ecffdb4585bb5aab02d
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Mar 20 11:56:06 2024 +0200

    variable rename

commit 5c453f30c18256c333d034d3663a16917099d5d5
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Mar 20 11:51:10 2024 +0200

    bound check int literal

commit e5d2c4598286e470bf0c97270ffec2162199486b
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Mar 20 11:45:53 2024 +0200

    compile with experimental

commit 752b685189588ad6e1d4caa5c07ec4777939da51
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Mar 20 11:43:50 2024 +0200

    remove unnecessary assert

commit 5e7f93cf7ee85513cdaf776c1f9772792716171f
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Mar 20 11:36:19 2024 +0200

    equalities

commit 5c58549db5dd0a4d7d08a937f291e894c01a4b62
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Mar 20 11:34:38 2024 +0200

    fixes

commit 6de6e7dde4b2b0a5d1878a047cd9302198b153c0
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Tue Mar 19 12:07:06 2024 -0400

    wip - alloca

commit 5ec9e6052df50cf9e21935d86cc3eed69e0c226a
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Tue Mar 19 11:45:00 2024 -0400

    count iterations, not changes for exception

commit 2a7cb0bbd397660b4909b513e8d5d2530d0a1688
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Tue Mar 19 11:43:04 2024 -0400

    add a couple comments

commit c3e0ac91e4d8fa54156e43501d7d0a2c4ae657fc
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Tue Mar 19 11:38:54 2024 -0400

    simplify ir_node_to_venom

commit 5f4f5489fb9d983fbc42cfa81f87efea270990b2
Merge: 477643e6 41474df9
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 19 17:19:07 2024 +0200

    Merge branch 'feature/venom_updates' of github.com:harkal/vyper into feature/venom_updates

commit 41474df95ddbc2e8c8bfb69de71c50f44b9e68a1
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Tue Mar 19 11:18:55 2024 -0400

    rename a variable

commit 477643e64bdcbf2e0c3951c91322b4120f62eb52
Merge: ea076324 34316f35
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 19 17:01:36 2024 +0200

    Merge branch 'feature/venom_updates' of github.com:harkal/vyper into feature/venom_updates

commit 34316f352b68c72065baa6bff63ae575f5257ff7
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Tue Mar 19 10:52:58 2024 -0400

    move an optimization to assembly

commit e37e54a73fbdea0b60948be1d98dad235b2af996
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Tue Mar 19 10:19:43 2024 -0400

    fixes from bad merge

commit ea076324460378fcbdffd2f795525d0d2b1cd917
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 19 16:35:15 2024 +0200

    remove print

commit 9c63c3eef47bce81a12757d5ea38f0f195c31595
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 19 16:31:55 2024 +0200

    fix typo

commit 71882ed5ec76132cfae00afec056e9ccbd8bc9f1
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 19 16:29:38 2024 +0200

    add passthrough_data

commit 540b71a7602e24e9c11613388fed7c81bc802e6c
Merge: d7ef9efc 84f1b695
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Tue Mar 19 10:09:18 2024 -0400

    Merge branch 'feature/venom_updates' of github.com:harkal/vyper into feature/venom_updates

commit d7ef9efcdadffca00395a3c5fa3f44078b356dd2
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Tue Mar 19 10:08:47 2024 -0400

    rename venom_pipeline to experimental-codegen

commit 2330f83fa7e4ad0ef7050fd6cd34abd3b11d8f90
Merge: 46f5f8c8 58ecff59
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Tue Mar 19 10:05:02 2024 -0400

    Merge branch 'master' into feature/venom_updates

commit 84f1b695101a8ff8fc3f3aa24be01732c8d5252f
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 19 15:28:08 2024 +0200

    docs

commit 25fa225c71bac8e6f7ae2b8acbaaf913039ee9a0
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 19 15:25:32 2024 +0200

    cleanup

commit 1cd994c45ae30891f47edd218f0a267214fc2c13
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 19 11:09:45 2024 +0200

    cleanup

commit 24730adcbea9e6be95631fcffea73cf8870b70fd
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 18 20:37:10 2024 +0200

    optimize double swaps

commit ee301dab014d748af8f9eede95fdef70b229f305
Merge: 49998ed0 dab020db
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 15 13:10:12 2024 +0200

    Merge branch 'feature/venom_updates' into feature/sccp

commit dab020db2c992ebf86dc544ea83fa4a8baecffc1
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 15 13:08:15 2024 +0200

    dfg testing

commit 46f5f8c8465b7bc6e1eb962a96f0be9851bf39d8
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Mar 14 11:14:15 2024 +0200

    stack reorder pass scaffold

commit 31e6c8eb6cf9253151244f1732c6e0237b185bb3
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Mar 14 11:13:45 2024 +0200

    small stack optimization

commit dfc9b8602af2b0049bbad6e1919bb8142810a20d
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Mar 14 11:13:25 2024 +0200

    fix

commit 5477ec179239d584e469d489468915fc1d8cefc4
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Mar 14 11:13:14 2024 +0200

    graphviz output for DFG

commit 559a80b7c07712bbd1fc65e4eaa0cc846ae9819d
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Mar 14 10:07:50 2024 +0200

    update test

commit 4d700775f138a92649298bfb2cc88e0258580e38
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Mar 13 21:12:36 2024 +0200

    no operation instructions for translator

commit d513bb4c70383223de930a1196d3490fa487ea6e
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Mar 13 21:08:09 2024 +0200

    cleanup, optimization

commit 651a076c1aa774bb42063c2e9c25668c84f699d4
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Mar 13 12:51:34 2024 +0200

    optimization

commit 7fc72a2509d04de06b8cb5e94c7f8c56b7437899
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Mar 13 12:38:57 2024 +0200

    change source_pos to ast_source

commit 5a22d49fd6554a3b5bda57e313c4fdb6e3c515d6
Merge: 41cf781a a9ee6414
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Wed Mar 13 12:34:49 2024 +0200

    Merge branch 'master' into feature/venom_updates

commit 49998ed026fd39e9ec4e09c8578c1379321d01cd
Merge: 59d062f4 41cf781a
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 12 14:33:56 2024 +0200

    Merge branch 'feature/venom_updates' into feature/sccp

commit 41cf781a5ac3b26bcf17457f677cfd3743960f64
Merge: 4059e88f 39027dc8
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 12 14:32:33 2024 +0200

    Merge branch 'master' into feature/venom_updates

commit 59d062f43a6ba4c2d8ba2880ef1f11edaa6c9095
Merge: 3d1a5fb8 4059e88f
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 12 09:56:50 2024 +0200

    Merge branch 'feature/venom_updates' into feature/sccp

commit 4059e88f25c0d4a6a63cab4847bde0143f8b1a8e
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 12 09:56:31 2024 +0200

    Add cfg and cfg_runtime output types

commit 3d1a5fb802f077be54edf50ac0e7ce9594b5b98c
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 12 09:50:34 2024 +0200

    fix

commit 74a40344d1eb9465bb4295b429f53e8057aa1d38
Merge: dbc322a6 743b15df
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 12 09:18:25 2024 +0200

    Merge branch 'feature/venom_updates' into feature/sccp

commit 743b15dfef48a4e15b90374ce0f180c8579e4942
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 12 08:33:38 2024 +0200

    mark xfail venom

commit 47dfd0525f459e9589bf09816b6476cd6f12d5b5
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 12 00:38:35 2024 +0200

    mark xfail

commit 7e9b87802797573cb1caa87a7f881ad2bd0a0974
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 12 00:34:35 2024 +0200

    use exit instruction

commit e2b51abaebf26e4ff2cf9a15b7c71e8ed524e336
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 12 00:17:56 2024 +0200

    mark tests xfail for venom

commit 7e9ee92ad30f5a18bee4b4564c13d83105dc999b
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 12 00:06:59 2024 +0200

    exit venom instruction

commit 5e496ef33c0e97701f7f16ba33183a719d8e784a
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 11 18:12:43 2024 +0200

    remove unsused imports

commit 926eeb3dbe2ce032023edf95e87d3bf8d4469430
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 11 18:10:42 2024 +0200

    simplify jumps

commit f2e3871958cbdb1dd8852fc0e70cbdc0a2212903
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 11 17:01:26 2024 +0200

    update cfg on remove unreachable blocks

commit f1465da377723cf2d8ba09f73c6dc2b4aea8fda8
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 11 16:32:46 2024 +0200

    simplify cfg refactor and optimization

commit 75fc03522c568cc034281d5dcea85ccac0220156
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 11 13:10:36 2024 +0200

    raise on dup out of stack

commit 86ea74fcff263c0f323e634025dd994b49e6cb3b
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 11 00:40:28 2024 +0200

    fix

commit c0b7de076c55566e88764b59aff03c4725a8ce3b
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sun Mar 10 23:57:16 2024 +0200

    simplify cfg

commit f455b666dfd789821545f10f4affc8a52cea9591
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sun Mar 10 00:36:36 2024 +0200

    fix tests for venom

commit 7994423cb53217cab28f66cafff8306d7dd8f08b
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sun Mar 10 00:31:53 2024 +0200

    fix test for venom

commit ea8367402b44ff1940a937eefac20092eaa0e715
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Mar 9 23:35:28 2024 +0200

    update to new external call syntax

commit a87076e0054e3d55f8b3d1f284733b8fea23b970
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Mar 9 23:13:52 2024 +0200

    lint

commit 7bc1b13cc40bb8e8bb336fcd885b22c847c88891
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Mar 9 23:10:40 2024 +0200

    revert force experimental flag

commit 2bf47c7df198fb20a3ace284f5c0d7e15602115f
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Mar 9 23:07:43 2024 +0200

    lint

commit c017371256ae45be1334bb54568efb5eb28d64c0
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Mar 9 23:00:26 2024 +0200

    update test for venom

commit afdb086998b7945e567b65415c35578637fe0ee5
Merge: 3ebd99ee 9428196a
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Mar 9 22:33:25 2024 +0200

    Merge branch 'master' into feature/venom_updates

commit 3ebd99eed5354c9e88dc823ead135767d6a5f1a3
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Mar 9 12:36:02 2024 +0200

    pass down source pos

commit 862bcd8161ab4dba76865c79ec3e6b94a0449b69
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Mar 9 00:27:03 2024 +0200

    fix test_assert_reason_revert_length

commit dbc322a628bb977ae289b5208a1e1fe8736e3f2d
Merge: 792443bb b62701ee
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 8 23:40:07 2024 +0200

    Merge branch 'feature/venom_updates' into feature/sccp

commit b62701eed6f28073ba5ba0a887153afe30018dcd
Merge: e8c8ba0e cf37ec27
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 8 23:39:32 2024 +0200

    Merge branch 'master' into feature/venom_updates

commit e8c8ba0ef7f1d3394672cc42cafb2488c716434e
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 8 21:14:44 2024 +0200

    handle raw data

commit b01c7309eb34e00e155fb0c1c019fa2fdf1efc30
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 8 21:14:30 2024 +0200

    Update dense selector to emit the target constrained djump instruction

commit 14450967d1b7cdc8b1e772e25558619baabb4f4a
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 8 21:00:56 2024 +0200

    codesize dispatcher

commit 792443bb2512590bb5aabe48e635603096a29d21
Merge: 957e773c 338dc09b
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 8 20:03:13 2024 +0200

    Merge branch 'feature/venom_updates' into feature/sccp

commit 338dc09bffcd5ab97379efb88094154d34ca2172
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 8 19:49:39 2024 +0200

    remove unused imports

commit ef4e8a21f633811e6ae66c68cfb1558a46c3bbea
Merge: b828a86f 787c562a
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 8 19:34:35 2024 +0200

    Merge branch 'master' into feature/venom_updates

commit b828a86f9c8b7f3f6bf49ed51d35a35417aa514d
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 8 16:26:58 2024 +0200

    fix

commit 7a650dfc7a7f0bd0e7ab0e711ba23c273feada49
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 8 13:06:48 2024 +0200

    cleanup

commit 94e7328e426d64003826f3a7d489ac00b6365c76
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 8 13:03:07 2024 +0200

    fix lib issues

commit bbb25fa68c97d07652cbd55cb266deaf39ad105b
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 8 00:35:37 2024 +0200

    temp

commit 9d7336de9a753ad6a2b974243a0a56a784761537
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 8 00:10:26 2024 +0200

    more fixes

commit 6b74b20f513a5b73ae130b04a95196de7dcc3e0e
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Fri Mar 8 00:03:07 2024 +0200

    var list

commit 43a11c227f60ede182483f3391f55303a5f58094
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Thu Mar 7 23:50:52 2024 +0200

    cleanup

commit 957e773c7b364c0540c9bc2d13c974ca3b326df7
Merge: a92af68a 5aa6c893
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 5 22:01:45 2024 +0200

    Merge branch 'feature/venom_updates' into feature/sccp

commit 5aa6c893af688e9950bd2dde58f1203476d0c0c9
Merge: a0ff8286 327e95ae
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 5 21:59:14 2024 +0200

    Merge branch 'master' into feature/venom_updates

commit a0ff82864ece39fe4553c29a3251bed1a967243b
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Tue Mar 5 08:21:31 2024 -0800

    force strict=True for venom_xfail

commit 04260acd2407a04cc17049e48ccf49ce53abce06
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 5 18:20:58 2024 +0200

    fix case where cfg_in empty on non entry nodes

commit a92af68ae704e9421afe5ecf320bf73a3556b8f3
Merge: 005e38eb 7f969b9b
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 5 11:18:43 2024 +0200

    Merge branch 'feature/venom_updates' into feature/sccp

commit 7f969b9b859d508ec2d3aaa1969d7ce11b9a0b74
Merge: 51075a88 d3e7b7d3
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 5 11:18:02 2024 +0200

    Merge branch 'master' into feature/venom_updates

commit 005e38eb6dd06d2be8ee20d7fc384fa82694fd37
Merge: 36e22a67 d3e7b7d3
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Tue Mar 5 10:04:56 2024 +0200

    Merge branch 'master' into feature/sccp

commit 36e22a678a10729e571e992df78c399031085c8b
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 4 18:59:28 2024 +0200

    fixes

commit 3601c23a4f0476dfb2fafbaf0979515ec2e90821
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 4 16:26:56 2024 +0200

    fixes

commit a95ff489fbf288cf4d3d51651c9011012d4845ba
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 4 15:56:30 2024 +0200

    more tests

commit bba4cbb81ecbe0599295531e51501d77914d64a0
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 4 15:40:12 2024 +0200

    update test

commit b29e353952b7d6648f32ae6c207ad80d030a9994
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 4 15:37:06 2024 +0200

    phi handling

commit c6c79ba080375e665f7c4a818bfcca75e373e4d0
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 4 15:36:44 2024 +0200

    add parent to inserted phi instructions

commit 51b3cf18ac5310c7753b20ac368e991acd6e592d
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 4 15:11:19 2024 +0200

    add first() method in OrderedSet

commit 71aca413ed834e5fe5bb7eb4b7acc96921048a53
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 4 12:47:42 2024 +0200

    finalise test1 and add new onw

commit 1c468a22b3687c581bc8ae10f5b933bd2b7c2324
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 4 12:47:20 2024 +0200

    more implementation

commit a4758b1cf7a407dc3225b69d7e17aa140574ec8c
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 4 11:47:51 2024 +0200

    progress

commit e7d25e95ba67913c0fa87e7cb094d9cf41af8453
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 4 11:47:41 2024 +0200

    add forgoted initializer

commit 2ac9c477c24c86d5745f449d0d9a5fa2af887466
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 4 10:35:59 2024 +0200

    update test

commit 5a543be14aeb97afc7bd2f515e2a545de4a1e654
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 4 10:35:52 2024 +0200

    compute uses

commit 82f3f24acba1b3fb95cbed2006dbb4385e7fa9b1
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 4 10:20:49 2024 +0200

    get_uses() in basic_block

commit b19d084c3fb3c89daa57afdaf42138df6c46b387
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 4 10:20:32 2024 +0200

    Use pass instances instead of classes

commit 69d30c362c72ce02b17727fd631f9b231b4a771f
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 4 09:47:39 2024 +0200

    add test sccp

commit 0c563e7b3262052ffa5fe21bae5f16e5b75a763e
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 4 09:44:49 2024 +0200

    visitPhi

commit 9c1e5330081e808543dc687e0357a38f659b0cdd
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sun Mar 3 19:34:21 2024 +0200

    data structures

commit 92eed811efc89f3bd11fed70be3329d5456c6e94
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Mar 2 22:43:30 2024 +0200

    gg

commit df9b90baa5b18681931709048935f348ceadef67
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Sat Mar 2 11:15:46 2024 +0200

    add sccp pass

commit 51075a88ea9ba0f8b1278351eb55ee49a40d775e
Merge: 9f595ca1 d7b39b6e
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 4 09:48:51 2024 +0200

    Merge branch 'feature/venom_updates' of github.com:harkal/vyper into feature/venom_updates

commit 9f595ca11edf1ff5e67aa310205535a5ad9b461d
Author: Harry Kalogirou <harkal@nlogn.eu>
Date:   Mon Mar 4 09:48:15 2024 +0200

    cleanup make_ssa test

commit d7b39b6e3da088d02fb4f541289c50f622731a59
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Sat Mar 2 11:44:20 2024 -0500

    add `#pragma experimental-codegen`

commit b0785f877dbcc871c152492bc40235112f43357f
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Fri Mar 1 20:45:10 2024 +0000

    some more xfails

commit 619ab3dea916cf09396fd9948aa1bf7ded07ac07
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Fri Mar 1 20:31:59 2024 +0000

    update workflow file

commit a8053031426f93fa3e4255e4fb651b0f86b08bac
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Fri Mar 1 20:30:55 2024 +0000

    fix lint

commit 60f0b6b8604e9fc4338fa590d3cc954ec69e31f5
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Fri Mar 1 20:23:39 2024 +0000

    mark more xfails

commit 28c10a69274eb2ae2852d6ead29bdb9f03bf1d99
Author: Charles Cooper <cooper.charles.m@gmail.com>
Date:   Fri Mar 1 20:23:26 2024 +00…
@@ -1,14 +1,19 @@
from vyper.utils import OrderedSet
from vyper.venom.analysis import DFG
from vyper.venom.analysis.dfg import DFGAnalysis
Copy link
Member

Choose a reason for hiding this comment

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

it will be nice to have vyper/venom/analysis/__init__.py which exposes the classes, so we don't need to import each class from the specific module

Comment on lines 14 to 15
def __init__(self, manager: IRPassManager):
super().__init__(manager)
Copy link
Member

Choose a reason for hiding this comment

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

unenecessary constructor implementation

Comment on lines 18 to 19
def __init__(self, manager: IRPassManager):
super().__init__(manager)
Copy link
Member

Choose a reason for hiding this comment

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

useless constructor

Comment on lines 17 to 18
def __init__(self, manager: IRPassManager):
super().__init__(manager)
Copy link
Member

Choose a reason for hiding this comment

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

useless constructor implementation

"""
self.entry_points.remove(label)
@property
def entry(self) -> IRBasicBlock:
Copy link
Member

Choose a reason for hiding this comment

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

maybe entry_block?

Copy link
Member

Choose a reason for hiding this comment

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

or entry_point

@@ -188,18 +156,12 @@ def _compute_reachability_from(self, bb: IRBasicBlock) -> None:
return
bb.is_reachable = True
for inst in bb.instructions:
if inst.opcode in CFG_ALTERING_INSTRUCTIONS or inst.opcode == "invoke":
if inst.opcode in CFG_ALTERING_INSTRUCTIONS: # or inst.opcode == "invoke":
Copy link
Member

Choose a reason for hiding this comment

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

should we just delete the comment then?

calculate_cfg(ctx)
ctx.remove_unreachable_blocks()
self.manager.force_analysis(CFGAnalysis)
fn.remove_unreachable_blocks()
Copy link
Member

Choose a reason for hiding this comment

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

i think this is redundant, because remove_unreachable_blocks() also gets run in SimplifyCFG pass

from vyper.venom.function import IRFunction


class IRPassManager:
Copy link
Member

Choose a reason for hiding this comment

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

this looks very closely coupled to IRAnalysis. maybe it should go in the same file, and also be renamed to IRAnalysisManager

in_bb.add_cfg_out(bb)

def invalidate(self):
super().invalidate()
Copy link
Member

Choose a reason for hiding this comment

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

doesn't super().invalidate() throw an exception?

tests/unit/compiler/venom/test_sccp.py Fixed Show fixed Hide fixed
tests/unit/compiler/venom/test_sccp.py Fixed Show fixed Hide fixed
tests/unit/compiler/venom/test_sccp.py Fixed Show fixed Hide fixed
tests/unit/compiler/venom/test_sccp.py Fixed Show fixed Hide fixed

def invalidate(self):
from vyper.venom.analysis.dominators import DominatorTreeAnalysis
from vyper.venom.analysis.liveness import LivenessAnalysis

Check notice

Code scanning / CodeQL

Cyclic import Note

Import of module
vyper.venom.analysis.liveness
begins an import cycle.
vyper/venom/analysis/analysis.py Fixed Show fixed Hide fixed
vyper/venom/analysis/analysis.py Fixed Show fixed Hide fixed
@charles-cooper
Copy link
Member

note: large contracts i was testing come from 24s to ~6-7s(!)

Copy link
Member

@charles-cooper charles-cooper left a comment

Choose a reason for hiding this comment

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

nice work -- very nice cleanup. merging, although i think we need to do a follow-up PR to investigate the tuning issues as discussed here #3983 (comment)

@charles-cooper charles-cooper changed the title feat[ir]: introduce IRContext and IRPassManager refactor[venom]: introduce IRContext and IRPassManager May 4, 2024
@charles-cooper charles-cooper changed the title refactor[venom]: introduce IRContext and IRPassManager refactor[venom]: introduce IRContext and IRAnalysisCache May 4, 2024
@charles-cooper charles-cooper merged commit ace3789 into vyperlang:master May 4, 2024
152 checks passed
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

2 participants