From 8aad0b07465f6043dc1d9a609b3d3ab2cc410e83 Mon Sep 17 00:00:00 2001 From: Daniel Lubarov Date: Tue, 2 Aug 2022 15:57:06 -0700 Subject: [PATCH] Feedback --- evm/src/cpu/kernel/assembler.rs | 2 +- evm/src/cpu/kernel/optimizer.rs | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/evm/src/cpu/kernel/assembler.rs b/evm/src/cpu/kernel/assembler.rs index 0a1232e1..4e3381b5 100644 --- a/evm/src/cpu/kernel/assembler.rs +++ b/evm/src/cpu/kernel/assembler.rs @@ -538,6 +538,6 @@ mod tests { constants: HashMap, ) -> Kernel { let parsed_files = files.iter().map(|f| parse(f)).collect_vec(); - assemble(parsed_files, constants, false) + assemble(parsed_files, constants, true) } } diff --git a/evm/src/cpu/kernel/optimizer.rs b/evm/src/cpu/kernel/optimizer.rs index a334f2d8..6fe9d496 100644 --- a/evm/src/cpu/kernel/optimizer.rs +++ b/evm/src/cpu/kernel/optimizer.rs @@ -89,6 +89,7 @@ fn no_op_jumps(code: &mut Vec) { } /// Remove swaps: `[PUSH x, PUSH y, SWAP1] -> [PUSH y, PUSH x]`. +// Could be generalized to recognize more than two pushes. fn remove_swapped_pushes(code: &mut Vec) { replace_windows(code, |window| { if let [Push(x), Push(y), StandardOp(swap1)] = window @@ -113,6 +114,7 @@ fn remove_swaps_commutative(code: &mut Vec) { } /// Remove push-pop type patterns, such as: `[DUP1, POP]`. +// Could be extended to other non-side-effecting operations, e.g. [DUP1, ADD, POP] -> [POP]. fn remove_ignored_values(code: &mut Vec) { replace_windows(code, |[a, b]| { if let StandardOp(pop) = b && &pop == "POP" {