Merge pull request #10535 from ethereum/removeNumbers

Improve generated names.
This commit is contained in:
chriseth 2021-02-23 13:29:18 +01:00 committed by GitHub
commit 7d0ecd9406
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 127 additions and 122 deletions

View File

@ -96,7 +96,7 @@ string IRNames::constantValueFunction(VariableDeclaration const& _constant)
string IRNames::localVariable(VariableDeclaration const& _declaration)
{
return "vloc_" + _declaration.name() + '_' + std::to_string(_declaration.id());
return "var_" + _declaration.name() + '_' + std::to_string(_declaration.id());
}
string IRNames::localVariable(Expression const& _expression)
@ -120,7 +120,7 @@ string IRNames::tupleComponent(size_t _i)
string IRNames::zeroValue(Type const& _type, string const& _variableName)
{
return "zero_value_for_type_" + _type.identifier() + _variableName;
return "zero_" + _type.identifier() + _variableName;
}
FunctionDefinition const* IRHelpers::referencedFunctionDeclaration(Expression const& _expression)

View File

@ -81,24 +81,29 @@ void NameSimplifier::findSimplification(YulString const& _name)
string name = _name.str();
static auto replacements = vector<pair<regex, string>>{
{regex("_\\$\\d+"), ""}, // removes AST IDs
{regex("_\\$|\\$_"), "_"}, // remove type mangling delimiters
{regex("_[0-9]+([^0-9a-fA-Fx])"), "$1"}, // removes AST IDs that are not hex.
{regex("_[0-9]+$"), ""}, // removes AST IDs that are not hex.
{regex("_t_"), "_"}, // remove type prefixes
{regex("__"), "_"},
{regex("(abi_..code.*)_to_.*"), "$1"}, // removes _to... for abi functions
{regex("(stringliteral_[0-9a-f][0-9a-f][0-9a-f][0-9a-f])[0-9a-f]*"), "$1"}, // shorten string literal
{regex("tuple_t_"), ""},
{regex("(stringliteral_?[0-9a-f][0-9a-f][0-9a-f][0-9a-f])[0-9a-f]*"), "$1"}, // shorten string literal
{regex("tuple_"), ""},
{regex("_memory_ptr"), ""},
{regex("_calldata_ptr"), "_calldata"},
{regex("_fromStack"), ""},
{regex("_storage_storage"), "_storage"},
{regex("(storage.*)_?storage"), "$1"},
{regex("_memory_memory"), "_memory"},
{regex("t_contract\\$_([^_]*)_"), "$1_"},
{regex("index_access_t_array"), "index_access"},
{regex("_contract\\$_([^_]*)_?"), "$1_"},
{regex("index_access_(t_)?array"), "index_access"},
{regex("[0-9]*_$"), ""}
};
for (auto const& [pattern, substitute]: replacements)
{
string candidate = regex_replace(name, pattern, substitute);
if (!m_context.dispenser.illegalName(YulString(candidate)))
if (!candidate.empty() && !m_context.dispenser.illegalName(YulString(candidate)))
name = candidate;
}

View File

@ -42,11 +42,11 @@ object "object" {
x_7 := x_11
}
{
let _4, _5, _6, _7 := iszero_204_878_1509(_1, _1, _1, lt_206(x_4, x_5, x_6, x_7, _1, _1, _1, 10))
let _4, _5, _6, _7 := iszero_887(_1, _1, _1, lt(x_4, x_5, x_6, x_7, _1, _1, _1, 10))
if i32.eqz(i64.eqz(i64.or(i64.or(_4, _5), i64.or(_6, _7)))) { break }
let _8, _9, _10, _11 := eq_205_879_1510(x_4, x_5, x_6, x_7, _1, _1, _1, 2)
let _8, _9, _10, _11 := eq_888(x_4, x_5, x_6, x_7, _1, _1, _1, 2)
if i32.eqz(i64.eqz(i64.or(i64.or(_8, _9), i64.or(_10, _11)))) { break }
let _12, _13, _14, _15 := eq_205_879_1510(x_4, x_5, x_6, x_7, _1, _1, _1, 4)
let _12, _13, _14, _15 := eq_888(x_4, x_5, x_6, x_7, _1, _1, _1, 4)
if i32.eqz(i64.eqz(i64.or(i64.or(_12, _13), i64.or(_14, _15)))) { continue }
}
sstore(_1, _1, _1, _1, x_4, x_5, x_6, x_7)
@ -68,15 +68,15 @@ object "object" {
let r1_1, carry_2 := add_carry(x1, y1, carry_1)
r1 := r1_1
}
function iszero_204_878_1509(x1, x2, x3, x4) -> r1, r2, r3, r4
function iszero_887(x1, x2, x3, x4) -> r1, r2, r3, r4
{
r4 := i64.extend_i32_u(i64.eqz(i64.or(i64.or(x1, x2), i64.or(x3, x4))))
}
function eq_205_879_1510(x1, x2, x3, x4, y1, y2, y3, y4) -> r1, r2, r3, r4
function eq_888(x1, x2, x3, x4, y1, y2, y3, y4) -> r1, r2, r3, r4
{
r4 := i64.extend_i32_u(i32.and(i64.eq(x1, y1), i32.and(i64.eq(x2, y2), i32.and(i64.eq(x3, y3), i64.eq(x4, y4)))))
}
function lt_206(x1, x2, x3, x4, y1, y2, y3, y4) -> z4
function lt(x1, x2, x3, x4, y1, y2, y3, y4) -> z4
{
let z:i32 := false
let _1:i32 := 0xffffffff:i32
@ -230,7 +230,7 @@ Text representation:
(br_if $label__3 (i32.eqz (i32.eqz (local.get $_3))))
(block $label__4
(block
(local.set $_4 (call $iszero_204_878_1509 (local.get $_1) (local.get $_1) (local.get $_1) (call $lt_206 (local.get $x_4) (local.get $x_5) (local.get $x_6) (local.get $x_7) (local.get $_1) (local.get $_1) (local.get $_1) (i64.const 10))))
(local.set $_4 (call $iszero_887 (local.get $_1) (local.get $_1) (local.get $_1) (call $lt (local.get $x_4) (local.get $x_5) (local.get $x_6) (local.get $x_7) (local.get $_1) (local.get $_1) (local.get $_1) (i64.const 10))))
(local.set $_5 (global.get $global_))
(local.set $_6 (global.get $global__1))
(local.set $_7 (global.get $global__2))
@ -240,7 +240,7 @@ Text representation:
(br $label__3)
))
(block
(local.set $_8 (call $eq_205_879_1510 (local.get $x_4) (local.get $x_5) (local.get $x_6) (local.get $x_7) (local.get $_1) (local.get $_1) (local.get $_1) (i64.const 2)))
(local.set $_8 (call $eq_888 (local.get $x_4) (local.get $x_5) (local.get $x_6) (local.get $x_7) (local.get $_1) (local.get $_1) (local.get $_1) (i64.const 2)))
(local.set $_9 (global.get $global_))
(local.set $_10 (global.get $global__1))
(local.set $_11 (global.get $global__2))
@ -250,7 +250,7 @@ Text representation:
(br $label__3)
))
(block
(local.set $_12 (call $eq_205_879_1510 (local.get $x_4) (local.get $x_5) (local.get $x_6) (local.get $x_7) (local.get $_1) (local.get $_1) (local.get $_1) (i64.const 4)))
(local.set $_12 (call $eq_888 (local.get $x_4) (local.get $x_5) (local.get $x_6) (local.get $x_7) (local.get $_1) (local.get $_1) (local.get $_1) (i64.const 4)))
(local.set $_13 (global.get $global_))
(local.set $_14 (global.get $global__1))
(local.set $_15 (global.get $global__2))
@ -348,7 +348,7 @@ Text representation:
(local.get $r1)
)
(func $iszero_204_878_1509
(func $iszero_887
(param $x1 i64)
(param $x2 i64)
(param $x3 i64)
@ -368,7 +368,7 @@ Text representation:
(local.get $r1)
)
(func $eq_205_879_1510
(func $eq_888
(param $x1 i64)
(param $x2 i64)
(param $x3 i64)
@ -392,7 +392,7 @@ Text representation:
(local.get $r1)
)
(func $lt_206
(func $lt
(param $x1 i64)
(param $x2 i64)
(param $x3 i64)

View File

@ -210,83 +210,83 @@ object "C_81" {
mstore(64, newFreePtr)
}
function fun_f_80(vloc_a_4, vloc_b_6, vloc_c_8, vloc_d_10) -> vloc__13, vloc__15, vloc__17, vloc__19 {
let zero_value_for_type_t_uint256_1 := zero_value_for_split_t_uint256()
vloc__13 := zero_value_for_type_t_uint256_1
let zero_value_for_type_t_int256_2 := zero_value_for_split_t_int256()
vloc__15 := zero_value_for_type_t_int256_2
let zero_value_for_type_t_uint256_3 := zero_value_for_split_t_uint256()
vloc__17 := zero_value_for_type_t_uint256_3
let zero_value_for_type_t_uint256_4 := zero_value_for_split_t_uint256()
vloc__19 := zero_value_for_type_t_uint256_4
function fun_f_80(var_a_4, var_b_6, var_c_8, var_d_10) -> var__13, var__15, var__17, var__19 {
let zero_t_uint256_1 := zero_value_for_split_t_uint256()
var__13 := zero_t_uint256_1
let zero_t_int256_2 := zero_value_for_split_t_int256()
var__15 := zero_t_int256_2
let zero_t_uint256_3 := zero_value_for_split_t_uint256()
var__17 := zero_t_uint256_3
let zero_t_uint256_4 := zero_value_for_split_t_uint256()
var__19 := zero_t_uint256_4
let expr_23 := 0x02
let _5 := vloc_a_4
let _5 := var_a_4
let expr_24 := _5
let _6 := convert_t_rational_2_by_1_to_t_uint256(expr_23)
let expr_25 := checked_exp_t_rational_2_by_1_t_uint256(expr_24)
let vloc_w_22 := expr_25
let var_w_22 := expr_25
let expr_29 := 0x02
let expr_30 := 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe
let expr_31 := expr_30
let _7 := vloc_b_6
let _7 := var_b_6
let expr_32 := _7
let _8 := convert_t_rational_minus_2_by_1_to_t_int256(expr_31)
let expr_33 := checked_exp_t_rational_minus_2_by_1_t_uint256(expr_32)
let vloc_x_28 := expr_33
let var_x_28 := expr_33
let expr_37 := 0x0a
let _9 := vloc_c_8
let _9 := var_c_8
let expr_38 := _9
let _10 := convert_t_rational_10_by_1_to_t_uint256(expr_37)
let expr_39 := checked_exp_t_rational_10_by_1_t_uint256(expr_38)
let vloc_y_36 := expr_39
let var_y_36 := expr_39
let expr_47 := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
let expr_48 := expr_47
let _11 := vloc_d_10
let _11 := var_d_10
let expr_49 := _11
let _12 := convert_t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1_to_t_uint256(expr_48)
let expr_50 := checked_exp_t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1_t_uint256(expr_49)
let vloc_z_42 := expr_50
let var_z_42 := expr_50
let expr_53 := 0x00
let expr_54 := expr_53
let _13 := vloc_a_4
let _13 := var_a_4
let expr_55 := _13
let _14 := convert_t_rational_0_by_1_to_t_uint256(expr_54)
let expr_56 := checked_exp_t_rational_0_by_1_t_uint256(expr_55)
vloc_w_22 := expr_56
var_w_22 := expr_56
let expr_57 := expr_56
let expr_60 := 0x01
let expr_61 := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
let expr_62 := expr_61
let _15 := vloc_b_6
let _15 := var_b_6
let expr_63 := _15
let _16 := convert_t_rational_minus_1_by_1_to_t_int256(expr_62)
let expr_64 := checked_exp_t_rational_minus_1_by_1_t_uint256(expr_63)
vloc_x_28 := expr_64
var_x_28 := expr_64
let expr_65 := expr_64
let expr_68 := 0x01
let _17 := vloc_c_8
let _17 := var_c_8
let expr_69 := _17
let _18 := convert_t_rational_1_by_1_to_t_uint256(expr_68)
let expr_70 := checked_exp_t_rational_1_by_1_t_uint256(expr_69)
vloc_y_36 := expr_70
var_y_36 := expr_70
let expr_71 := expr_70
let _19 := vloc_w_22
let _19 := var_w_22
let expr_73 := _19
let expr_77_component_1 := expr_73
let _20 := vloc_x_28
let _20 := var_x_28
let expr_74 := _20
let expr_77_component_2 := expr_74
let _21 := vloc_y_36
let _21 := var_y_36
let expr_75 := _21
let expr_77_component_3 := expr_75
let _22 := vloc_z_42
let _22 := var_z_42
let expr_76 := _22
let expr_77_component_4 := expr_76
vloc__13 := expr_77_component_1
vloc__15 := expr_77_component_2
vloc__17 := expr_77_component_3
vloc__19 := expr_77_component_4
var__13 := expr_77_component_1
var__15 := expr_77_component_2
var__17 := expr_77_component_3
var__19 := expr_77_component_4
leave
}

View File

@ -51,14 +51,14 @@ object "C_59" {
dst := add(dst, _2)
src := add(src, _2)
}
let ret, ret_1 := fun_sumArray_58(dst_1)
let ret, ret_1 := fun_sumArray(dst_1)
let memPos := allocate_memory(_1)
return(memPos, sub(abi_encode_uint256_t_string(memPos, ret, ret_1), memPos))
return(memPos, sub(abi_encode_uint256_string(memPos, ret, ret_1), memPos))
}
}
revert(0, 0)
}
function abi_encode_uint256_t_string(headStart, value0, value1) -> tail
function abi_encode_uint256_string(headStart, value0, value1) -> tail
{
mstore(headStart, value0)
let _1 := 32
@ -97,23 +97,23 @@ object "C_59" {
{
value := shr(mul(offset, 8), slot_value)
}
function fun_sumArray_58(vloc__s_22_mpos) -> vloc, vloc__27_mpos
function fun_sumArray(var_s_mpos) -> var, var_mpos
{
if iszero(lt(vloc, mload(vloc__s_22_mpos))) { panic_error_0x32() }
let _1 := mload(mload(add(add(vloc__s_22_mpos, mul(vloc, 32)), 32)))
let _2, _3 := storage_array_index_access$_t_struct$_S_storage(vloc, vloc)
if iszero(lt(var_mpos, mload(var_s_mpos))) { panic_error_0x32() }
let _1 := mload(mload(add(add(var_s_mpos, mul(var_mpos, 32)), 32)))
let _2, _3 := storage_array_index_access_struct_S(var_mpos, var_mpos)
sstore(_2, _1)
if iszero(lt(0x01, mload(vloc__s_22_mpos))) { panic_error_0x32() }
let _4 := mload(mload(add(vloc__s_22_mpos, 64)))
if iszero(lt(vloc, 0x02)) { panic_error_0x32() }
let slot := add(0x02, vloc)
if iszero(lt(0x01, mload(var_s_mpos))) { panic_error_0x32() }
let _4 := mload(mload(add(var_s_mpos, 64)))
if iszero(lt(var_mpos, 0x02)) { panic_error_0x32() }
let slot := add(0x02, var_mpos)
let _5 := sload(slot)
let shiftBits := mul(vloc, 8)
let shiftBits := mul(var_mpos, 8)
let mask := shl(shiftBits, not(0))
sstore(slot, or(and(_5, not(mask)), and(shl(shiftBits, _4), mask)))
let _6, _7 := storage_array_index_access$_t_struct$_S_storage(0x02, vloc)
vloc := extract_from_storage_value_dynamict_uint256(sload(_6), _7)
vloc__27_mpos := copy_literal_to_memory_64902fd228f7ef267f3b474dd6ef84bae434cf5546eee948e7ca26df3eda1927()
let _6, _7 := storage_array_index_access_struct_S(0x02, var_mpos)
var := extract_from_storage_value_dynamict_uint256(sload(_6), _7)
var_mpos := copy_literal_to_memory_64902fd228f7ef267f3b474dd6ef84bae434cf5546eee948e7ca26df3eda1927()
}
function panic_error_0x32()
{
@ -127,7 +127,7 @@ object "C_59" {
mstore(4, 0x41)
revert(0, 0x24)
}
function storage_array_index_access$_t_struct$_S_storage(array, index) -> slot, offset
function storage_array_index_access_struct_S(array, index) -> slot, offset
{
if iszero(lt(index, 0x02)) { panic_error_0x32() }
slot := add(array, index)

View File

@ -27,26 +27,26 @@ object "Arraysum_34" {
{
if callvalue() { revert(_1, _1) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }
let vloc_sum := _1
let vloc_i := _1
let var_sum := _1
let var_i := _1
let _2 := sload(_1)
for { }
lt(vloc_i, _2)
lt(var_i, _2)
{
if eq(vloc_i, not(0)) { panic_error_0x11() }
vloc_i := add(vloc_i, 1)
if eq(var_i, not(0)) { panic_error_0x11() }
var_i := add(var_i, 1)
}
{
mstore(_1, _1)
vloc_sum := checked_add_t_uint256(vloc_sum, sload(add(keccak256(_1, 0x20), vloc_i)))
var_sum := checked_add_uint256(var_sum, sload(add(keccak256(_1, 0x20), var_i)))
}
let memPos := allocate_memory(_1)
return(memPos, sub(abi_encode_uint(memPos, vloc_sum), memPos))
return(memPos, sub(abi_encode_uint256(memPos, var_sum), memPos))
}
}
revert(0, 0)
}
function abi_encode_uint(headStart, value0) -> tail
function abi_encode_uint256(headStart, value0) -> tail
{
tail := add(headStart, 32)
mstore(headStart, value0)
@ -63,7 +63,7 @@ object "Arraysum_34" {
}
mstore(64, newFreePtr)
}
function checked_add_t_uint256(x, y) -> sum
function checked_add_uint256(x, y) -> sum
{
if gt(x, not(y)) { panic_error_0x11() }
sum := add(x, y)

View File

@ -137,7 +137,7 @@ object \"D_16\" {
if iszero(expr_12_address) { revert_forward_1() }
let vloc_c_8_address := expr_12_address
let var_c_8_address := expr_12_address
}

View File

@ -85,12 +85,12 @@ object "test_11" {
mstore(64, newFreePtr)
}
function fun_f_10() -> vloc__5 {
let zero_value_for_type_t_bool_1 := zero_value_for_split_t_bool()
vloc__5 := zero_value_for_type_t_bool_1
function fun_f_10() -> var__5 {
let zero_t_bool_1 := zero_value_for_split_t_bool()
var__5 := zero_t_bool_1
let expr_7 := 0x01
vloc__5 := expr_7
var__5 := expr_7
leave
}

View File

@ -21,13 +21,13 @@ object "C_7" {
mstore(64, 128)
if iszero(lt(calldatasize(), 4))
{
let selector := shift_right_224_unsigned(calldataload(0))
let selector := shift_right_unsigned(calldataload(0))
pop(selector)
}
pop(iszero(calldatasize()))
revert(0, 0)
}
function shift_right_224_unsigned(value) -> newValue
function shift_right_unsigned(value) -> newValue
{ newValue := shr(224, value) }
}
}

View File

@ -136,11 +136,11 @@ object \"C_11\" {
mstore(64, newFreePtr)
}
function fun_f_10() -> vloc__5_mpos {
let zero_value_for_type_t_string_memory_ptr_1_mpos := zero_value_for_split_t_string_memory_ptr()
vloc__5_mpos := zero_value_for_type_t_string_memory_ptr_1_mpos
function fun_f_10() -> var__5_mpos {
let zero_t_string_memory_ptr_1_mpos := zero_value_for_split_t_string_memory_ptr()
var__5_mpos := zero_t_string_memory_ptr_1_mpos
vloc__5_mpos := convert_t_stringliteral_9f0adad0a59b05d2e04a1373342b10b9eb16c57c164c8a3bfcbf46dccee39a21_to_t_string_memory_ptr()
var__5_mpos := convert_t_stringliteral_9f0adad0a59b05d2e04a1373342b10b9eb16c57c164c8a3bfcbf46dccee39a21_to_t_string_memory_ptr()
leave
}

View File

@ -88,11 +88,11 @@ object \"C_11\" {
mstore(64, newFreePtr)
}
function fun_f_10() -> vloc__5 {
let zero_value_for_type_t_bytes32_1 := zero_value_for_split_t_bytes32()
vloc__5 := zero_value_for_type_t_bytes32_1
function fun_f_10() -> var__5 {
let zero_t_bytes32_1 := zero_value_for_split_t_bytes32()
var__5 := zero_t_bytes32_1
vloc__5 := convert_t_stringliteral_9f0adad0a59b05d2e04a1373342b10b9eb16c57c164c8a3bfcbf46dccee39a21_to_t_bytes32()
var__5 := convert_t_stringliteral_9f0adad0a59b05d2e04a1373342b10b9eb16c57c164c8a3bfcbf46dccee39a21_to_t_bytes32()
leave
}

View File

@ -92,12 +92,12 @@ object \"C_11\" {
mstore(64, newFreePtr)
}
function fun_f_10() -> vloc__5 {
let zero_value_for_type_t_bytes4_1 := zero_value_for_split_t_bytes4()
vloc__5 := zero_value_for_type_t_bytes4_1
function fun_f_10() -> var__5 {
let zero_t_bytes4_1 := zero_value_for_split_t_bytes4()
var__5 := zero_t_bytes4_1
let expr_7 := 0x61626364
vloc__5 := convert_t_rational_1633837924_by_1_to_t_bytes4(expr_7)
var__5 := convert_t_rational_1633837924_by_1_to_t_bytes4(expr_7)
leave
}

View File

@ -136,11 +136,11 @@ object \"C_11\" {
mstore(64, newFreePtr)
}
function fun_f_10() -> vloc__5_mpos {
let zero_value_for_type_t_string_memory_ptr_1_mpos := zero_value_for_split_t_string_memory_ptr()
vloc__5_mpos := zero_value_for_type_t_string_memory_ptr_1_mpos
function fun_f_10() -> var__5_mpos {
let zero_t_string_memory_ptr_1_mpos := zero_value_for_split_t_string_memory_ptr()
var__5_mpos := zero_t_string_memory_ptr_1_mpos
vloc__5_mpos := convert_t_stringliteral_d6604f85ac07e2b33103a620b3d3d75b0473c7214912beded67b9b624d41c571_to_t_string_memory_ptr()
var__5_mpos := convert_t_stringliteral_d6604f85ac07e2b33103a620b3d3d75b0473c7214912beded67b9b624d41c571_to_t_string_memory_ptr()
leave
}

View File

@ -92,12 +92,12 @@ object \"C_11\" {
mstore(64, newFreePtr)
}
function fun_f_10() -> vloc__5 {
let zero_value_for_type_t_bytes4_1 := zero_value_for_split_t_bytes4()
vloc__5 := zero_value_for_type_t_bytes4_1
function fun_f_10() -> var__5 {
let zero_t_bytes4_1 := zero_value_for_split_t_bytes4()
var__5 := zero_t_bytes4_1
let expr_7 := 0xaabbccdd
vloc__5 := convert_t_rational_2864434397_by_1_to_t_bytes4(expr_7)
var__5 := convert_t_rational_2864434397_by_1_to_t_bytes4(expr_7)
leave
}

View File

@ -1081,13 +1081,13 @@
// let _2 := mload(0)
// if slt(sub(_1, _2), 64) { revert(0, 0) }
// sstore(0, and(calldataload(_2), sub(shl(160, 1), 1)))
// let x0, x1, x2, x3, x4 := abi_decode_addresst_uint256t_bytes_calldatat_enum$_Operation(mload(7), mload(8))
// let x0, x1, x2, x3, x4 := abi_decode_addresst_uint256t_bytes_calldatat_enum_Operation(mload(7), mload(8))
// sstore(x1, x0)
// sstore(x3, x2)
// sstore(1, x4)
// pop(abi_encode_bytes32_t_address_t_uint256_t_bytes32_t_enum$_Operation_t_uint256_t_uint256_t_uint256_t_address_t_address_t_uint(mload(30), mload(31), mload(32), mload(33), mload(34), mload(35), mload(36), mload(37), mload(38), mload(39), mload(40), mload(41)))
// pop(abi_encode_bytes32_address_uint256_bytes32_enum_Operation_uint256_uint256_uint256_address_address_uint256(mload(30), mload(31), mload(32), mload(33), mload(34), mload(35), mload(36), mload(37), mload(38), mload(39), mload(40), mload(41)))
// }
// function abi_decode_addresst_uint256t_bytes_calldatat_enum$_Operation(headStart, dataEnd) -> value0, value1, value2, value3, value4
// function abi_decode_addresst_uint256t_bytes_calldatat_enum_Operation(headStart, dataEnd) -> value0, value1, value2, value3, value4
// {
// if slt(sub(dataEnd, headStart), 128) { revert(value4, value4) }
// value0 := and(calldataload(headStart), sub(shl(160, 1), 1))
@ -1106,7 +1106,7 @@
// if iszero(lt(_3, 3)) { revert(value4, value4) }
// value4 := _3
// }
// function abi_encode_bytes32_t_address_t_uint256_t_bytes32_t_enum$_Operation_t_uint256_t_uint256_t_uint256_t_address_t_address_t_uint(headStart, value10, value9, value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail
// function abi_encode_bytes32_address_uint256_bytes32_enum_Operation_uint256_uint256_uint256_address_address_uint256(headStart, value10, value9, value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail
// {
// tail := add(headStart, 352)
// mstore(headStart, value0)

View File

@ -486,17 +486,17 @@
// srcPtr := add(srcPtr, 0x20)
// pos := add(pos, 0x60)
// }
// let a, b, c, d := abi_decode_uint256t_uint256t_array$_t_uint256_$dynt_array$_t_array$_t_uint256_memory_$dyn(mload(0x20), mload(64))
// let a, b, c, d := abi_decode_uint256t_uint256t_array_uint256_dynt_array_array_uint256_memory_dyn(mload(0x20), mload(64))
// sstore(a, b)
// sstore(c, d)
// sstore(_1, pos)
// }
// function abi_decode_t_array$_t_array$_t_uint256_memory_$dyn(offset, end) -> array
// function abi_decode_array_array_uint256_memory_dyn(offset, end) -> array
// {
// let _1 := 0x1f
// if iszero(slt(add(offset, _1), end)) { revert(array, array) }
// let length := calldataload(offset)
// array := allocateMemory(array_allocation_size_t_array$_t_address_$dyn_memory(length))
// array := allocateMemory(array_allocation_size_array_address_dyn_memory(length))
// let dst := array
// mstore(array, length)
// let _2 := 0x20
@ -525,7 +525,7 @@
// src := _4
// }
// }
// function abi_decode_uint256t_uint256t_array$_t_uint256_$dynt_array$_t_array$_t_uint256_memory_$dyn(headStart, dataEnd) -> value0, value1, value2, value3
// function abi_decode_uint256t_uint256t_array_uint256_dynt_array_array_uint256_memory_dyn(headStart, dataEnd) -> value0, value1, value2, value3
// {
// if slt(sub(dataEnd, headStart), 128) { revert(value2, value2) }
// value0 := calldataload(headStart)
@ -537,7 +537,7 @@
// let _3 := add(headStart, offset)
// if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(value2, value2) }
// let length := calldataload(_3)
// let dst := allocateMemory(array_allocation_size_t_array$_t_address_$dyn_memory(length))
// let dst := allocateMemory(array_allocation_size_array_address_dyn_memory(length))
// let dst_1 := dst
// mstore(dst, length)
// dst := add(dst, _1)
@ -553,7 +553,7 @@
// value2 := dst_1
// let offset_1 := calldataload(add(headStart, 96))
// if gt(offset_1, _2) { revert(value3, value3) }
// value3 := abi_decode_t_array$_t_array$_t_uint256_memory_$dyn(add(headStart, offset_1), dataEnd)
// value3 := abi_decode_array_array_uint256_memory_dyn(add(headStart, offset_1), dataEnd)
// }
// function allocateMemory(size) -> memPtr
// {
@ -562,7 +562,7 @@
// if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { revert(0, 0) }
// mstore(64, newFreePtr)
// }
// function array_allocation_size_t_array$_t_address_$dyn_memory(length) -> size
// function array_allocation_size_array_address_dyn_memory(length) -> size
// {
// if gt(length, 0xffffffffffffffff) { revert(size, size) }
// size := add(mul(length, 0x20), 0x20)

View File

@ -36,16 +36,16 @@
//
// {
// {
// let a, b := abi_decode_t_bytes_calldata(mload(0), mload(1))
// let a_1, b_1 := abi_decode_t_bytes_calldata(a, b)
// let a_2, b_2 := abi_decode_t_bytes_calldata(a_1, b_1)
// let a_3, b_3 := abi_decode_t_bytes_calldata(a_2, b_2)
// let a_4, b_4 := abi_decode_t_bytes_calldata(a_3, b_3)
// let a_5, b_5 := abi_decode_t_bytes_calldata(a_4, b_4)
// let a_6, b_6 := abi_decode_t_bytes_calldata(a_5, b_5)
// let a, b := abi_decode_bytes_calldata(mload(0), mload(1))
// let a_1, b_1 := abi_decode_bytes_calldata(a, b)
// let a_2, b_2 := abi_decode_bytes_calldata(a_1, b_1)
// let a_3, b_3 := abi_decode_bytes_calldata(a_2, b_2)
// let a_4, b_4 := abi_decode_bytes_calldata(a_3, b_3)
// let a_5, b_5 := abi_decode_bytes_calldata(a_4, b_4)
// let a_6, b_6 := abi_decode_bytes_calldata(a_5, b_5)
// mstore(a_6, b_6)
// }
// function abi_decode_t_bytes_calldata(offset, end) -> arrayPos, length
// function abi_decode_bytes_calldata(offset, end) -> arrayPos, length
// {
// if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }
// length := calldataload(offset)