aboutsummaryrefslogtreecommitdiffstats
path: root/test/libyul
diff options
context:
space:
mode:
Diffstat (limited to 'test/libyul')
-rw-r--r--test/libyul/yulOptimizerTests/commonSubexpressionEliminator/case2.yul52
-rw-r--r--test/libyul/yulOptimizerTests/commonSubexpressionEliminator/function_scopes.yul52
2 files changed, 104 insertions, 0 deletions
diff --git a/test/libyul/yulOptimizerTests/commonSubexpressionEliminator/case2.yul b/test/libyul/yulOptimizerTests/commonSubexpressionEliminator/case2.yul
new file mode 100644
index 00000000..fd8b4bc8
--- /dev/null
+++ b/test/libyul/yulOptimizerTests/commonSubexpressionEliminator/case2.yul
@@ -0,0 +1,52 @@
+{
+ let _13 := 0x20
+ let _14 := allocate(_13)
+ pop(_14)
+ let _15 := 2
+ let _16 := 3
+ let _17 := 0x40
+ let _18 := allocate(_17)
+ let _19 := array_index_access(_18, _16)
+ mstore(_19, _15)
+ function allocate(size) -> p
+ {
+ let _1 := 0x40
+ let p_2 := mload(_1)
+ p := p_2
+ let _20 := add(p_2, size)
+ mstore(_1, _20)
+ }
+ function array_index_access(array, index) -> p_1
+ {
+ let _21 := 0x20
+ let _22 := mul(index, _21)
+ p_1 := add(array, _22)
+ }
+}
+// ----
+// commonSubexpressionEliminator
+// {
+// let _13 := 0x20
+// let _14 := allocate(_13)
+// pop(_14)
+// let _15 := 2
+// let _16 := 3
+// let _17 := 0x40
+// let _18 := allocate(_17)
+// let _19 := array_index_access(_18, _16)
+// mstore(_19, _15)
+// function allocate(size) -> p
+// {
+// let _1 := 0x40
+// let p_2 := mload(_1)
+// p := p_2
+// let _20 := add(p_2, size)
+// mstore(_1, _20)
+// }
+// function array_index_access(array, index) -> p_1
+// {
+// let _21 := 0x20
+// let _22 := mul(index, _21)
+// p_1 := add(array, _22)
+// }
+// }
diff --git a/test/libyul/yulOptimizerTests/commonSubexpressionEliminator/function_scopes.yul b/test/libyul/yulOptimizerTests/commonSubexpressionEliminator/function_scopes.yul
new file mode 100644
index 00000000..28e840cf
--- /dev/null
+++ b/test/libyul/yulOptimizerTests/commonSubexpressionEliminator/function_scopes.yul
@@ -0,0 +1,52 @@
+{
+ function allocate(size) -> p
+ {
+ let _1 := 0x40
+ p := mload(_1)
+ let _2 := add(p, size)
+ let _3 := 0x40
+ mstore(_3, _2)
+ }
+ function array_index_access(array, index) -> p_1
+ {
+ let _4 := 0x20
+ let _5 := mul(index, _4)
+ p_1 := add(array, _5)
+ }
+ let _6 := 0x20
+ let _7 := allocate(_6)
+ pop(_7)
+ let _8 := 0x40
+ let x := allocate(_8)
+ let _9 := 2
+ let _10 := 3
+ let _11 := array_index_access(x, _10)
+ mstore(_11, _9)
+}
+// ----
+// commonSubexpressionEliminator
+// {
+// function allocate(size) -> p
+// {
+// let _1 := 0x40
+// p := mload(_1)
+// let _2 := add(p, size)
+// let _3 := _1
+// mstore(_1, _2)
+// }
+// function array_index_access(array, index) -> p_1
+// {
+// let _4 := 0x20
+// let _5 := mul(index, _4)
+// p_1 := add(array, _5)
+// }
+// let _6 := 0x20
+// let _7 := allocate(_6)
+// pop(_7)
+// let _8 := 0x40
+// let x := allocate(_8)
+// let _9 := 2
+// let _10 := 3
+// let _11 := array_index_access(x, _10)
+// mstore(_11, _9)
+// }