Skip to content

Commit

Permalink
Squashed commit of the following:
Browse files Browse the repository at this point in the history
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…
  • Loading branch information
harkal committed May 2, 2024
1 parent 2e6fbe7 commit ce96233
Show file tree
Hide file tree
Showing 32 changed files with 901 additions and 812 deletions.
4 changes: 3 additions & 1 deletion tests/unit/compiler/venom/test_convert_basicblock_simple.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ def test_simple():
venom = ir_node_to_venom(ir_node)
assert venom is not None

bb = venom.basic_blocks[0]
fn = list(venom.functions.values())[0]

bb = fn.basic_blocks[0]
assert bb.instructions[0].opcode == "calldatasize"
assert bb.instructions[1].opcode == "calldatacopy"

Expand Down
45 changes: 24 additions & 21 deletions tests/unit/compiler/venom/test_dominator_tree.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,19 @@

from vyper.exceptions import CompilerPanic
from vyper.utils import OrderedSet
from vyper.venom.analysis import calculate_cfg
from vyper.venom.analysis.dominators import DominatorTreeAnalysis
from vyper.venom.basicblock import IRBasicBlock, IRInstruction, IRLabel, IRLiteral, IRVariable
from vyper.venom.dominators import DominatorTree
from vyper.venom.context import IRContext
from vyper.venom.function import IRFunction
from vyper.venom.passes.make_ssa import MakeSSA
from vyper.venom.passes.pass_manager import IRPassManager


def _add_bb(
ctx: IRFunction, label: IRLabel, cfg_outs: [IRLabel], bb: Optional[IRBasicBlock] = None
fn: IRFunction, label: IRLabel, cfg_outs: list[IRLabel], bb: Optional[IRBasicBlock] = None
) -> IRBasicBlock:
bb = bb if bb is not None else IRBasicBlock(label, ctx)
ctx.append_basic_block(bb)
bb = bb if bb is not None else IRBasicBlock(label, fn)
fn.append_basic_block(bb)
cfg_outs_len = len(cfg_outs)
if cfg_outs_len == 0:
bb.append_instruction("stop")
Expand All @@ -29,27 +30,28 @@ def _add_bb(
def _make_test_ctx():
lab = [IRLabel(str(i)) for i in range(0, 9)]

ctx = IRFunction(lab[1])
ctx = IRContext()
fn = ctx.create_function(lab[1].value)

bb1 = ctx.basic_blocks[0]
bb1 = fn.basic_blocks[0]
bb1.append_instruction("jmp", lab[2])

_add_bb(ctx, lab[7], [])
_add_bb(ctx, lab[6], [lab[7], lab[2]])
_add_bb(ctx, lab[5], [lab[6], lab[3]])
_add_bb(ctx, lab[4], [lab[6]])
_add_bb(ctx, lab[3], [lab[5]])
_add_bb(ctx, lab[2], [lab[3], lab[4]])
_add_bb(fn, lab[7], [])
_add_bb(fn, lab[6], [lab[7], lab[2]])
_add_bb(fn, lab[5], [lab[6], lab[3]])
_add_bb(fn, lab[4], [lab[6]])
_add_bb(fn, lab[3], [lab[5]])
_add_bb(fn, lab[2], [lab[3], lab[4]])

return ctx
return fn


def test_deminator_frontier_calculation():
ctx = _make_test_ctx()
bb1, bb2, bb3, bb4, bb5, bb6, bb7 = [ctx.get_basic_block(str(i)) for i in range(1, 8)]
fn = _make_test_ctx()
bb1, bb2, bb3, bb4, bb5, bb6, bb7 = [fn.get_basic_block(str(i)) for i in range(1, 8)]

calculate_cfg(ctx)
dom = DominatorTree.build_dominator_tree(ctx, bb1)
pm = IRPassManager(fn)
dom = pm.request_analysis(DominatorTreeAnalysis)
df = dom.dominator_frontiers

assert len(df[bb1]) == 0, df[bb1]
Expand All @@ -62,12 +64,13 @@ def test_deminator_frontier_calculation():


def test_phi_placement():
ctx = _make_test_ctx()
bb1, bb2, bb3, bb4, bb5, bb6, bb7 = [ctx.get_basic_block(str(i)) for i in range(1, 8)]
fn = _make_test_ctx()
bb1, bb2, bb3, bb4, bb5, bb6, bb7 = [fn.get_basic_block(str(i)) for i in range(1, 8)]

x = IRVariable("%x")
bb1.insert_instruction(IRInstruction("mload", [IRLiteral(0)], x), 0)
bb2.insert_instruction(IRInstruction("add", [x, IRLiteral(1)], x), 0)
bb7.insert_instruction(IRInstruction("mstore", [x, IRLiteral(0)]), 0)

MakeSSA().run_pass(ctx, bb1)
pm = IRPassManager(fn)
MakeSSA(pm).run_pass()
7 changes: 4 additions & 3 deletions tests/unit/compiler/venom/test_duplicate_operands.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from vyper.compiler.settings import OptimizationLevel
from vyper.venom import generate_assembly_experimental
from vyper.venom.function import IRFunction
from vyper.venom.context import IRContext


def test_duplicate_operands():
Expand All @@ -15,8 +15,9 @@ def test_duplicate_operands():
Should compile to: [PUSH1, 10, DUP1, DUP1, DUP1, ADD, MUL, STOP]
"""
ctx = IRFunction()
bb = ctx.get_basic_block()
ctx = IRContext()
fn = ctx.create_function("test")
bb = fn.get_basic_block()
op = bb.append_instruction("store", 10)
sum_ = bb.append_instruction("add", op, op)
bb.append_instruction("mul", sum_, op)
Expand Down
32 changes: 16 additions & 16 deletions tests/unit/compiler/venom/test_make_ssa.py
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
from vyper.venom.analysis import calculate_cfg, calculate_liveness
from vyper.venom.basicblock import IRBasicBlock, IRLabel
from vyper.venom.function import IRFunction
from vyper.venom.context import IRContext
from vyper.venom.passes.make_ssa import MakeSSA
from vyper.venom.passes.pass_manager import IRPassManager


def test_phi_case():
ctx = IRFunction(IRLabel("_global"))
ctx = IRContext()
fn = ctx.create_function("_global")

bb = ctx.get_basic_block()
bb = fn.get_basic_block()

bb_cont = IRBasicBlock(IRLabel("condition"), ctx)
bb_then = IRBasicBlock(IRLabel("then"), ctx)
bb_else = IRBasicBlock(IRLabel("else"), ctx)
bb_if_exit = IRBasicBlock(IRLabel("if_exit"), ctx)
ctx.append_basic_block(bb_cont)
ctx.append_basic_block(bb_then)
ctx.append_basic_block(bb_else)
ctx.append_basic_block(bb_if_exit)
bb_cont = IRBasicBlock(IRLabel("condition"), fn)
bb_then = IRBasicBlock(IRLabel("then"), fn)
bb_else = IRBasicBlock(IRLabel("else"), fn)
bb_if_exit = IRBasicBlock(IRLabel("if_exit"), fn)
fn.append_basic_block(bb_cont)
fn.append_basic_block(bb_then)
fn.append_basic_block(bb_else)
fn.append_basic_block(bb_if_exit)

v = bb.append_instruction("mload", 64)
bb_cont.append_instruction("jnz", v, bb_then.label, bb_else.label)
Expand All @@ -30,11 +31,10 @@ def test_phi_case():

bb.append_instruction("jmp", bb_cont.label)

calculate_cfg(ctx)
MakeSSA().run_pass(ctx, ctx.basic_blocks[0])
calculate_liveness(ctx)
pm = IRPassManager(fn)
MakeSSA(pm).run_pass()

condition_block = ctx.get_basic_block("condition")
condition_block = fn.get_basic_block("condition")
assert len(condition_block.instructions) == 2

phi_inst = condition_block.instructions[0]
Expand Down
102 changes: 55 additions & 47 deletions tests/unit/compiler/venom/test_multi_entry_block.py
Original file line number Diff line number Diff line change
@@ -1,44 +1,48 @@
from vyper.venom.analysis import calculate_cfg
from vyper.venom.function import IRBasicBlock, IRFunction, IRLabel
from vyper.venom.analysis.cfg import CFGAnalysis
from vyper.venom.context import IRContext
from vyper.venom.function import IRBasicBlock, IRLabel
from vyper.venom.passes.normalization import NormalizationPass
from vyper.venom.passes.pass_manager import IRPassManager


def test_multi_entry_block_1():
ctx = IRFunction()
ctx = IRContext()
fn = ctx.create_function("__global")

finish_label = IRLabel("finish")
target_label = IRLabel("target")
block_1_label = IRLabel("block_1", ctx)
block_1_label = IRLabel("block_1", fn)

bb = ctx.get_basic_block()
bb = fn.get_basic_block()
op = bb.append_instruction("store", 10)
acc = bb.append_instruction("add", op, op)
bb.append_instruction("jnz", acc, finish_label, block_1_label)

block_1 = IRBasicBlock(block_1_label, ctx)
ctx.append_basic_block(block_1)
block_1 = IRBasicBlock(block_1_label, fn)
fn.append_basic_block(block_1)
acc = block_1.append_instruction("add", acc, op)
op = block_1.append_instruction("store", 10)
block_1.append_instruction("mstore", acc, op)
block_1.append_instruction("jnz", acc, finish_label, target_label)

target_bb = IRBasicBlock(target_label, ctx)
ctx.append_basic_block(target_bb)
target_bb = IRBasicBlock(target_label, fn)
fn.append_basic_block(target_bb)
target_bb.append_instruction("mul", acc, acc)
target_bb.append_instruction("jmp", finish_label)

finish_bb = IRBasicBlock(finish_label, ctx)
ctx.append_basic_block(finish_bb)
finish_bb = IRBasicBlock(finish_label, fn)
fn.append_basic_block(finish_bb)
finish_bb.append_instruction("stop")

calculate_cfg(ctx)
assert not ctx.normalized, "CFG should not be normalized"
pm = IRPassManager(fn)
pm.request_analysis(CFGAnalysis)
assert not fn.normalized, "CFG should not be normalized"

NormalizationPass().run_pass(ctx)
NormalizationPass(pm).run_pass()

assert ctx.normalized, "CFG should be normalized"
assert fn.normalized, "CFG should be normalized"

finish_bb = ctx.get_basic_block(finish_label.value)
finish_bb = fn.get_basic_block(finish_label.value)
cfg_in = list(finish_bb.cfg_in)
assert cfg_in[0].label.value == "target", "Should contain target"
assert cfg_in[1].label.value == "__global_split_finish", "Should contain __global_split_finish"
Expand All @@ -47,91 +51,95 @@ def test_multi_entry_block_1():

# more complicated one
def test_multi_entry_block_2():
ctx = IRFunction()
ctx = IRContext()
fn = ctx.create_function("__global")

finish_label = IRLabel("finish")
target_label = IRLabel("target")
block_1_label = IRLabel("block_1", ctx)
block_2_label = IRLabel("block_2", ctx)
block_1_label = IRLabel("block_1", fn)
block_2_label = IRLabel("block_2", fn)

bb = ctx.get_basic_block()
bb = fn.get_basic_block()
op = bb.append_instruction("store", 10)
acc = bb.append_instruction("add", op, op)
bb.append_instruction("jnz", acc, finish_label, block_1_label)

block_1 = IRBasicBlock(block_1_label, ctx)
ctx.append_basic_block(block_1)
block_1 = IRBasicBlock(block_1_label, fn)
fn.append_basic_block(block_1)
acc = block_1.append_instruction("add", acc, op)
op = block_1.append_instruction("store", 10)
block_1.append_instruction("mstore", acc, op)
block_1.append_instruction("jnz", acc, target_label, finish_label)

block_2 = IRBasicBlock(block_2_label, ctx)
ctx.append_basic_block(block_2)
block_2 = IRBasicBlock(block_2_label, fn)
fn.append_basic_block(block_2)
acc = block_2.append_instruction("add", acc, op)
op = block_2.append_instruction("store", 10)
block_2.append_instruction("mstore", acc, op)
# switch the order of the labels, for fun and profit
block_2.append_instruction("jnz", acc, finish_label, target_label)

target_bb = IRBasicBlock(target_label, ctx)
ctx.append_basic_block(target_bb)
target_bb = IRBasicBlock(target_label, fn)
fn.append_basic_block(target_bb)
target_bb.append_instruction("mul", acc, acc)
target_bb.append_instruction("jmp", finish_label)

finish_bb = IRBasicBlock(finish_label, ctx)
ctx.append_basic_block(finish_bb)
finish_bb = IRBasicBlock(finish_label, fn)
fn.append_basic_block(finish_bb)
finish_bb.append_instruction("stop")

calculate_cfg(ctx)
assert not ctx.normalized, "CFG should not be normalized"
pm = IRPassManager(fn)
pm.request_analysis(CFGAnalysis)
assert not fn.normalized, "CFG should not be normalized"

NormalizationPass().run_pass(ctx)
NormalizationPass(pm).run_pass()

assert ctx.normalized, "CFG should be normalized"
assert fn.normalized, "CFG should be normalized"

finish_bb = ctx.get_basic_block(finish_label.value)
finish_bb = fn.get_basic_block(finish_label.value)
cfg_in = list(finish_bb.cfg_in)
assert cfg_in[0].label.value == "target", "Should contain target"
assert cfg_in[1].label.value == "__global_split_finish", "Should contain __global_split_finish"
assert cfg_in[2].label.value == "block_1_split_finish", "Should contain block_1_split_finish"


def test_multi_entry_block_with_dynamic_jump():
ctx = IRFunction()
ctx = IRContext()
fn = ctx.create_function("__global")

finish_label = IRLabel("finish")
target_label = IRLabel("target")
block_1_label = IRLabel("block_1", ctx)
block_1_label = IRLabel("block_1", fn)

bb = ctx.get_basic_block()
bb = fn.get_basic_block()
op = bb.append_instruction("store", 10)
acc = bb.append_instruction("add", op, op)
bb.append_instruction("djmp", acc, finish_label, block_1_label)

block_1 = IRBasicBlock(block_1_label, ctx)
ctx.append_basic_block(block_1)
block_1 = IRBasicBlock(block_1_label, fn)
fn.append_basic_block(block_1)
acc = block_1.append_instruction("add", acc, op)
op = block_1.append_instruction("store", 10)
block_1.append_instruction("mstore", acc, op)
block_1.append_instruction("jnz", acc, finish_label, target_label)

target_bb = IRBasicBlock(target_label, ctx)
ctx.append_basic_block(target_bb)
target_bb = IRBasicBlock(target_label, fn)
fn.append_basic_block(target_bb)
target_bb.append_instruction("mul", acc, acc)
target_bb.append_instruction("jmp", finish_label)

finish_bb = IRBasicBlock(finish_label, ctx)
ctx.append_basic_block(finish_bb)
finish_bb = IRBasicBlock(finish_label, fn)
fn.append_basic_block(finish_bb)
finish_bb.append_instruction("stop")

calculate_cfg(ctx)
assert not ctx.normalized, "CFG should not be normalized"
pm = IRPassManager(fn)
pm.request_analysis(CFGAnalysis)
assert not fn.normalized, "CFG should not be normalized"

NormalizationPass().run_pass(ctx)
assert ctx.normalized, "CFG should be normalized"
NormalizationPass(pm).run_pass()
assert fn.normalized, "CFG should be normalized"

finish_bb = ctx.get_basic_block(finish_label.value)
finish_bb = fn.get_basic_block(finish_label.value)
cfg_in = list(finish_bb.cfg_in)
assert cfg_in[0].label.value == "target", "Should contain target"
assert cfg_in[1].label.value == "__global_split_finish", "Should contain __global_split_finish"
Expand Down
Loading

0 comments on commit ce96233

Please sign in to comment.