Unused store eliminator.

This commit is contained in:
chriseth
2021-11-23 11:53:08 +01:00
parent 81666f8232
commit 45ebe08dea
66 changed files with 1112 additions and 131 deletions
@@ -11,7 +11,6 @@ object "C_12" {
code {
{
/// @src 0:61:418 "contract C {..."
mstore(64, 128)
if callvalue() { revert(0, 0) }
/// @src 0:103:238 "assembly {..."
sstore(0, shl(180, 1))
@@ -26,7 +25,6 @@ object "C_12" {
code {
{
/// @src 0:61:418 "contract C {..."
mstore(64, 128)
if callvalue() { revert(0, 0) }
/// @src 0:279:410 "assembly {..."
sstore(0, 0x1000000000000000000000000000000000000000000000)
@@ -195,16 +195,14 @@ object "C_6" {
code {
{
/// @src 0:60:101 "contract C {..."
let _1 := memoryguard(0x80)
mstore(64, _1)
if iszero(lt(calldatasize(), 4))
{
let _2 := 0
if eq(0x26121ff0, shr(224, calldataload(_2)))
let _1 := 0
if eq(0x26121ff0, shr(224, calldataload(_1)))
{
if callvalue() { revert(_2, _2) }
if slt(add(calldatasize(), not(3)), _2) { revert(_2, _2) }
return(_1, _2)
if callvalue() { revert(_1, _1) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }
return(memoryguard(0x80), _1)
}
}
revert(0, 0)
@@ -194,16 +194,14 @@ object "C_6" {
code {
{
/// @src 0:60:101
let _1 := memoryguard(0x80)
mstore(64, _1)
if iszero(lt(calldatasize(), 4))
{
let _2 := 0
if eq(0x26121ff0, shr(224, calldataload(_2)))
let _1 := 0
if eq(0x26121ff0, shr(224, calldataload(_1)))
{
if callvalue() { revert(_2, _2) }
if slt(add(calldatasize(), not(3)), _2) { revert(_2, _2) }
return(_1, _2)
if callvalue() { revert(_1, _1) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }
return(memoryguard(0x80), _1)
}
}
revert(0, 0)
@@ -183,16 +183,14 @@ object "C_6" {
object "C_6_deployed" {
code {
{
let _1 := memoryguard(0x80)
mstore(64, _1)
if iszero(lt(calldatasize(), 4))
{
let _2 := 0
if eq(0x26121ff0, shr(224, calldataload(_2)))
let _1 := 0
if eq(0x26121ff0, shr(224, calldataload(_1)))
{
if callvalue() { revert(_2, _2) }
if slt(add(calldatasize(), not(3)), _2) { revert(_2, _2) }
return(_1, _2)
if callvalue() { revert(_1, _1) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }
return(memoryguard(0x80), _1)
}
}
revert(0, 0)
@@ -95,7 +95,6 @@ object "C_2" {
code {
{
/// @src 0:265:278 "contract C {}"
mstore(64, memoryguard(0x80))
revert(0, 0)
}
}
@@ -553,7 +552,6 @@ object "D_27" {
code {
{
/// @src 0:265:278 "contract C {}"
mstore(64, memoryguard(0x80))
revert(0, 0)
}
}
@@ -24,7 +24,6 @@ object "C_7" {
code {
{
/// @src 0:82:117 "contract C {..."
mstore(64, memoryguard(0x80))
revert(0, 0)
}
}
@@ -58,7 +57,6 @@ object "D_10" {
code {
{
/// @src 0:118:137 "contract D is C {..."
mstore(64, memoryguard(0x80))
revert(0, 0)
}
}
@@ -24,7 +24,6 @@ object "C_3" {
code {
{
/// @src 0:82:95 "contract C {}"
mstore(64, memoryguard(0x80))
revert(0, 0)
}
}
@@ -110,7 +109,6 @@ object "D_16" {
code {
{
/// @src 0:82:95 "contract C {}"
mstore(64, memoryguard(0x80))
revert(0, 0)
}
}
@@ -11,7 +11,6 @@ object "D_12" {
code {
{
/// @src 0:82:161 "contract D {..."
mstore(64, 128)
if callvalue() { revert(0, 0) }
let _1 := datasize("D_12_deployed")
codecopy(128, dataoffset("D_12_deployed"), _1)
@@ -23,16 +22,14 @@ object "D_12" {
code {
{
/// @src 0:82:161 "contract D {..."
let _1 := memoryguard(0x80)
mstore(64, _1)
if iszero(lt(calldatasize(), 4))
{
let _2 := 0
if eq(0x26121ff0, shr(224, calldataload(_2)))
let _1 := 0
if eq(0x26121ff0, shr(224, calldataload(_1)))
{
if callvalue() { revert(_2, _2) }
if slt(add(calldatasize(), not(3)), _2) { revert(_2, _2) }
return(_1, _2)
if callvalue() { revert(_1, _1) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }
return(memoryguard(0x80), _1)
}
}
revert(0, 0)
@@ -24,7 +24,6 @@ object "D_8" {
code {
{
/// @src 0:82:153 "contract D {..."
mstore(64, 128)
if iszero(lt(calldatasize(), 4))
{
let _1 := 0
@@ -11,7 +11,6 @@ object "C_12" {
code {
{
/// @src 0:62:463 "contract C {..."
mstore(64, 128)
if callvalue() { revert(0, 0) }
/// @src 0:103:275 "assembly {..."
mstore(0, 100)
@@ -27,10 +26,8 @@ object "C_12" {
code {
{
/// @src 0:62:463 "contract C {..."
mstore(64, 128)
if callvalue() { revert(0, 0) }
/// @src 0:317:454 "assembly {..."
mstore(0, 100)
sstore(0, 17385872270140913825666367956517731270094621555228275961425792378517567244498)
/// @src 0:62:463 "contract C {..."
stop()
@@ -24,7 +24,6 @@ object "C_7" {
code {
{
/// @src 0:62:285 "contract C {..."
mstore(64, 128)
if callvalue() { revert(0, 0) }
/// @src 0:109:277 "assembly {..."
mstore(0, 100)
@@ -1,8 +1,5 @@
{"contracts":{"C":{"C":{"evm":{"assembly":" /* \"C\":79:428 contract C... */
0xa0
dup1
0x40
mstore
jumpi(tag_6, callvalue)
0x1f
bytecodeSize
@@ -452,9 +449,6 @@ sub_0: assembly {
}
"}}},"D":{"D":{"evm":{"assembly":" /* \"D\":91:166 contract D is C(3)... */
0xa0
dup1
0x40
mstore
jumpi(tag_6, callvalue)
0x1f
bytecodeSize
@@ -528,13 +522,8 @@ tag_4:
tag_1:
/* \"C\":147:149 42 */
mstore(0x80, 0x2a)
/* \"D\":107:108 3 */
0x03
/* \"C\":203:219 stateVar = _init */
0x00
/* \"D\":91:166 contract D is C(3)... */
sstore
sub(shl(0xff, 0x01), 0x04)
/* \"D\":91:166 contract D is C(3)... */
dup2
sgt
0x01
@@ -545,9 +534,7 @@ tag_1:
0x03
/* \"D\":91:166 contract D is C(3)... */
add
/* \"C\":203:219 stateVar = _init */
0x00
/* \"D\":91:166 contract D is C(3)... */
sstore
/* \"D\":113:164 constructor(int _init2)... */
jump\t// out
@@ -555,17 +542,9 @@ tag_1:
tag_9:
pop
pop
shl(0xe0, 0x4e487b71)
/* \"C\":203:219 stateVar = _init */
0x00
/* \"D\":91:166 contract D is C(3)... */
mstore
mstore(0x00, shl(0xe0, 0x4e487b71))
mstore(0x04, 0x11)
0x24
/* \"C\":203:219 stateVar = _init */
0x00
/* \"D\":91:166 contract D is C(3)... */
revert
revert(0x00, 0x24)
stop
sub_0: assembly {
@@ -200,16 +200,14 @@ object \"C_6\" {
code {
{
/// @src 0:60:101 \"contract C {...\"
let _1 := memoryguard(0x80)
mstore(64, _1)
if iszero(lt(calldatasize(), 4))
{
let _2 := 0
if eq(0x26121ff0, shr(224, calldataload(_2)))
let _1 := 0
if eq(0x26121ff0, shr(224, calldataload(_1)))
{
if callvalue() { revert(_2, _2) }
if slt(add(calldatasize(), not(3)), _2) { revert(_2, _2) }
return(_1, _2)
if callvalue() { revert(_1, _1) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }
return(memoryguard(0x80), _1)
}
}
revert(0, 0)
@@ -199,16 +199,14 @@ object \"C_6\" {
code {
{
/// @src 0:60:101
let _1 := memoryguard(0x80)
mstore(64, _1)
if iszero(lt(calldatasize(), 4))
{
let _2 := 0
if eq(0x26121ff0, shr(224, calldataload(_2)))
let _1 := 0
if eq(0x26121ff0, shr(224, calldataload(_1)))
{
if callvalue() { revert(_2, _2) }
if slt(add(calldatasize(), not(3)), _2) { revert(_2, _2) }
return(_1, _2)
if callvalue() { revert(_1, _1) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }
return(memoryguard(0x80), _1)
}
}
revert(0, 0)
@@ -188,16 +188,14 @@ object \"C_6\" {
object \"C_6_deployed\" {
code {
{
let _1 := memoryguard(0x80)
mstore(64, _1)
if iszero(lt(calldatasize(), 4))
{
let _2 := 0
if eq(0x26121ff0, shr(224, calldataload(_2)))
let _1 := 0
if eq(0x26121ff0, shr(224, calldataload(_1)))
{
if callvalue() { revert(_2, _2) }
if slt(add(calldatasize(), not(3)), _2) { revert(_2, _2) }
return(_1, _2)
if callvalue() { revert(_1, _1) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }
return(memoryguard(0x80), _1)
}
}
revert(0, 0)
@@ -592,7 +592,6 @@ object \"C_54\" {
{
/// @src 0:79:435 \"contract C...\"
let _1 := memoryguard(0xa0)
mstore(64, _1)
if callvalue() { revert(0, 0) }
let programSize := datasize(\"C_54\")
let argSize := sub(codesize(), programSize)
@@ -1417,7 +1416,6 @@ object \"D_72\" {
{
/// @src 1:91:166 \"contract D is C(3)...\"
let _1 := memoryguard(0xa0)
mstore(64, _1)
if callvalue() { revert(0, 0) }
let programSize := datasize(\"D_72\")
let argSize := sub(codesize(), programSize)
@@ -1448,15 +1446,13 @@ object \"D_72\" {
/// @src 0:154:156 \"42\"
mstore(128, 0x2a)
/// @src 1:91:166 \"contract D is C(3)...\"
sstore(/** @src 0:210:226 \"stateVar = _init\" */ 0x00, /** @src 1:107:108 \"3\" */ 0x03)
/// @src 1:91:166 \"contract D is C(3)...\"
if and(1, sgt(var_init2, sub(shl(255, 1), 4)))
{
mstore(/** @src 0:210:226 \"stateVar = _init\" */ 0x00, /** @src 1:91:166 \"contract D is C(3)...\" */ shl(224, 0x4e487b71))
mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x11)
revert(/** @src 0:210:226 \"stateVar = _init\" */ 0x00, /** @src 1:91:166 \"contract D is C(3)...\" */ 0x24)
revert(0, 0x24)
}
sstore(/** @src 0:210:226 \"stateVar = _init\" */ 0x00, /** @src 1:91:166 \"contract D is C(3)...\" */ add(/** @src 1:107:108 \"3\" */ 0x03, /** @src 1:91:166 \"contract D is C(3)...\" */ var_init2))
sstore(/** @src -1:-1:-1 */ 0, /** @src 1:91:166 \"contract D is C(3)...\" */ add(/** @src 1:107:108 \"3\" */ 0x03, /** @src 1:91:166 \"contract D is C(3)...\" */ var_init2))
}
}
/// @use-src 0:\"C\", 1:\"D\"
@@ -30,7 +30,6 @@ object "C_3" {
code {
{
/// @src 0:82:95 "contract C {}"
mstore(64, memoryguard(0x80))
revert(0, 0)
}
}
@@ -122,7 +121,6 @@ object "D_16" {
code {
{
/// @src 0:82:95 "contract C {}"
mstore(64, memoryguard(0x80))
revert(0, 0)
}
}