Refactor SideEffects struct

This commit is contained in:
Harikrishnan Mulackal
2020-08-18 14:53:59 +02:00
parent 58bfe0b0d2
commit 3cbe65e4f3
24 changed files with 290 additions and 126 deletions
@@ -4,7 +4,7 @@
function c() { b() }
}
// ----
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
// a:
// b:
// c:
// : movable, movable apart from effects, can be removed, can be removed if no msize
// a: movable apart from effects, can loop
// b: movable apart from effects, can loop
// c: movable apart from effects, can loop
@@ -3,6 +3,6 @@
function b() { a() }
}
// ----
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
// a:
// b:
// : movable, movable apart from effects, can be removed, can be removed if no msize
// a: movable apart from effects, can loop
// b: movable apart from effects, can loop
+1 -1
View File
@@ -1,4 +1,4 @@
{
}
// ----
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
// : movable, movable apart from effects, can be removed, can be removed if no msize
@@ -2,4 +2,4 @@
sstore(0, 1)
}
// ----
// : invalidatesStorage
// : writes storage
+6 -6
View File
@@ -6,9 +6,9 @@
function i() { pop(msize()) }
}
// ----
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
// a: invalidatesMemory
// f: invalidatesMemory
// g: invalidatesStorage
// h: sideEffectFreeIfNoMSize
// i: sideEffectFree, sideEffectFreeIfNoMSize
// : movable, movable apart from effects, can be removed, can be removed if no msize
// a: writes memory
// f: writes memory
// g: writes storage
// h: movable apart from effects, can be removed if no msize, reads memory
// i: can be removed, can be removed if no msize, reads memory
@@ -7,5 +7,5 @@
sstore(0, mload(0))
}
// ----
// : invalidatesStorage, invalidatesMemory
// foo: invalidatesMemory
// : can loop, writes storage, writes memory
// foo: can loop, writes memory
@@ -15,8 +15,8 @@
}
}
// ----
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
// a: invalidatesStorage
// b: invalidatesStorage
// c: invalidatesStorage, invalidatesMemory
// d: movable, sideEffectFree, sideEffectFreeIfNoMSize
// : movable, movable apart from effects, can be removed, can be removed if no msize
// a: can loop, writes storage
// b: can loop, writes storage
// c: can loop, writes storage, writes memory
// d: movable, movable apart from effects, can be removed, can be removed if no msize
@@ -5,8 +5,8 @@
function h() { invalid() }
}
// ----
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
// a: sideEffectFree, sideEffectFreeIfNoMSize
// f: sideEffectFree, sideEffectFreeIfNoMSize
// : movable, movable apart from effects, can be removed, can be removed if no msize
// a: can be removed, can be removed if no msize
// f: can be removed, can be removed if no msize
// g:
// h:
@@ -2,5 +2,5 @@
function a() { a() }
}
// ----
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
// a:
// : movable, movable apart from effects, can be removed, can be removed if no msize
// a: movable apart from effects, can loop
@@ -6,9 +6,9 @@
function i() { let z := mload(0) }
}
// ----
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
// a: movable, sideEffectFree, sideEffectFreeIfNoMSize
// f: invalidatesMemory
// g: invalidatesStorage
// h: sideEffectFree, sideEffectFreeIfNoMSize
// i: sideEffectFreeIfNoMSize
// : movable, movable apart from effects, can be removed, can be removed if no msize
// a: movable, movable apart from effects, can be removed, can be removed if no msize
// f: writes memory
// g: writes storage
// h: can be removed, can be removed if no msize, reads memory
// i: movable apart from effects, can be removed if no msize, reads memory
+4 -4
View File
@@ -4,7 +4,7 @@
function g() { sstore(0, 1) }
}
// ----
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
// a: invalidatesStorage, invalidatesMemory
// f: invalidatesStorage, invalidatesMemory
// g: invalidatesStorage
// : movable, movable apart from effects, can be removed, can be removed if no msize
// a: writes other state, writes storage, writes memory
// f: writes other state, writes storage, writes memory
// g: writes storage
+5 -5
View File
@@ -5,8 +5,8 @@
function h() { pop(sload(0))}
}
// ----
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
// a: invalidatesStorage
// f: invalidatesStorage
// g: invalidatesStorage, invalidatesMemory
// h: sideEffectFree, sideEffectFreeIfNoMSize
// : movable, movable apart from effects, can be removed, can be removed if no msize
// a: writes storage
// f: writes storage
// g: writes other state, writes storage, writes memory
// h: movable apart from effects, can be removed, can be removed if no msize, reads storage
@@ -31,10 +31,10 @@
}
}
// ----
// : invalidatesStorage, invalidatesMemory
// f: sideEffectFreeIfNoMSize
// g: invalidatesStorage, invalidatesMemory
// h: invalidatesStorage, invalidatesMemory
// i: invalidatesStorage
// r: movable, sideEffectFree, sideEffectFreeIfNoMSize
// t: invalidatesMemory
// : writes storage, writes memory
// f: movable apart from effects, can be removed if no msize, reads memory
// g: writes storage, writes memory
// h: writes storage, writes memory
// i: writes storage
// r: movable, movable apart from effects, can be removed, can be removed if no msize
// t: writes memory
@@ -4,6 +4,6 @@
pop(f())
}
// ----
// :
// f:
// g:
// : movable apart from effects, can loop
// f: movable apart from effects, can loop
// g: movable apart from effects, can loop