solidity/test/cmdlineTests/standard_optimizer_generatedSources/output.json
2021-09-08 12:25:56 +02:00

45 lines
18 KiB
JSON

{"contracts":{"a.sol":{"A":{"evm":{"bytecode":{"generatedSources":[],"object":"<BYTECODE REMOVED>"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1456:1","statements":[{"nodeType":"YulBlock","src":"6:3:1","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:1","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:1","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:1","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:1"},"nodeType":"YulFunctionCall","src":"66:20:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:1"},"nodeType":"YulFunctionCall","src":"56:31:1"},"nodeType":"YulExpressionStatement","src":"56:31:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:1","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:1","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:1"},"nodeType":"YulFunctionCall","src":"96:15:1"},"nodeType":"YulExpressionStatement","src":"96:15:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:1","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:1"},"nodeType":"YulFunctionCall","src":"120:15:1"},"nodeType":"YulExpressionStatement","src":"120:15:1"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:1"},{"body":{"nodeType":"YulBlock","src":"241:1031:1","statements":[{"nodeType":"YulVariableDeclaration","src":"251:12:1","value":{"kind":"number","nodeType":"YulLiteral","src":"261:2:1","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"255:2:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"308:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"317:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"320:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:1"},"nodeType":"YulFunctionCall","src":"310:12:1"},"nodeType":"YulExpressionStatement","src":"310:12:1"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"283:7:1"},{"name":"headStart","nodeType":"YulIdentifier","src":"292:9:1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"279:3:1"},"nodeType":"YulFunctionCall","src":"279:23:1"},{"name":"_1","nodeType":"YulIdentifier","src":"304:2:1"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:1"},"nodeType":"YulFunctionCall","src":"275:32:1"},"nodeType":"YulIf","src":"272:52:1"},{"nodeType":"YulVariableDeclaration","src":"333:37:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"360:9:1"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"347:12:1"},"nodeType":"YulFunctionCall","src":"347:23:1"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"337:6:1","type":""}]},{"nodeType":"YulVariableDeclaration","src":"379:28:1","value":{"kind":"number","nodeType":"YulLiteral","src":"389:18:1","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"383:2:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"434:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"443:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"446:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"436:6:1"},"nodeType":"YulFunctionCall","src":"436:12:1"},"nodeType":"YulExpressionStatement","src":"436:12:1"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"422:6:1"},{"name":"_2","nodeType":"YulIdentifier","src":"430:2:1"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"419:2:1"},"nodeType":"YulFunctionCall","src":"419:14:1"},"nodeType":"YulIf","src":"416:34:1"},{"nodeType":"YulVariableDeclaration","src":"459:32:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"473:9:1"},{"name":"offset","nodeType":"YulIdentifier","src":"484:6:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"469:3:1"},"nodeType":"YulFunctionCall","src":"469:22:1"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"463:2:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"539:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"548:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"551:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"541:6:1"},"nodeType":"YulFunctionCall","src":"541:12:1"},"nodeType":"YulExpressionStatement","src":"541:12:1"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"518:2:1"},{"kind":"number","nodeType":"YulLiteral","src":"522:4:1","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"514:3:1"},"nodeType":"YulFunctionCall","src":"514:13:1"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"529:7:1"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"510:3:1"},"nodeType":"YulFunctionCall","src":"510:27:1"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"503:6:1"},"nodeType":"YulFunctionCall","src":"503:35:1"},"nodeType":"YulIf","src":"500:55:1"},{"nodeType":"YulVariableDeclaration","src":"564:26:1","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"587:2:1"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"574:12:1"},"nodeType":"YulFunctionCall","src":"574:16:1"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"568:2:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"613:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"615:16:1"},"nodeType":"YulFunctionCall","src":"615:18:1"},"nodeType":"YulExpressionStatement","src":"615:18:1"}]},"condition":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"605:2:1"},{"name":"_2","nodeType":"YulIdentifier","src":"609:2:1"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"602:2:1"},"nodeType":"YulFunctionCall","src":"602:10:1"},"nodeType":"YulIf","src":"599:36:1"},{"nodeType":"YulVariableDeclaration","src":"644:20:1","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"658:1:1","type":"","value":"5"},{"name":"_4","nodeType":"YulIdentifier","src":"661:2:1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"654:3:1"},"nodeType":"YulFunctionCall","src":"654:10:1"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"648:2:1","type":""}]},{"nodeType":"YulVariableDeclaration","src":"673:23:1","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"693:2:1","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"687:5:1"},"nodeType":"YulFunctionCall","src":"687:9:1"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"677:6:1","type":""}]},{"nodeType":"YulVariableDeclaration","src":"705:56:1","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"727:6:1"},{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"743:2:1"},{"kind":"number","nodeType":"YulLiteral","src":"747:2:1","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"739:3:1"},"nodeType":"YulFunctionCall","src":"739:11:1"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"756:2:1","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"752:3:1"},"nodeType":"YulFunctionCall","src":"752:7:1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"735:3:1"},"nodeType":"YulFunctionCall","src":"735:25:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"723:3:1"},"nodeType":"YulFunctionCall","src":"723:38:1"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"709:10:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"820:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"822:16:1"},"nodeType":"YulFunctionCall","src":"822:18:1"},"nodeType":"YulExpressionStatement","src":"822:18:1"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"779:10:1"},{"name":"_2","nodeType":"YulIdentifier","src":"791:2:1"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"776:2:1"},"nodeType":"YulFunctionCall","src":"776:18:1"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"799:10:1"},{"name":"memPtr","nodeType":"YulIdentifier","src":"811:6:1"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"796:2:1"},"nodeType":"YulFunctionCall","src":"796:22:1"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"773:2:1"},"nodeType":"YulFunctionCall","src":"773:46:1"},"nodeType":"YulIf","src":"770:72:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"858:2:1","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"862:10:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"851:6:1"},"nodeType":"YulFunctionCall","src":"851:22:1"},"nodeType":"YulExpressionStatement","src":"851:22:1"},{"nodeType":"YulVariableDeclaration","src":"882:17:1","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"893:6:1"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"886:3:1","type":""}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"915:6:1"},{"name":"_4","nodeType":"YulIdentifier","src":"923:2:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"908:6:1"},"nodeType":"YulFunctionCall","src":"908:18:1"},"nodeType":"YulExpressionStatement","src":"908:18:1"},{"nodeType":"YulAssignment","src":"935:22:1","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"946:6:1"},{"name":"_1","nodeType":"YulIdentifier","src":"954:2:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"942:3:1"},"nodeType":"YulFunctionCall","src":"942:15:1"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"935:3:1"}]},{"nodeType":"YulVariableDeclaration","src":"966:22:1","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"981:2:1"},{"name":"_1","nodeType":"YulIdentifier","src":"985:2:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"977:3:1"},"nodeType":"YulFunctionCall","src":"977:11:1"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"970:3:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"1034:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1043:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1046:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1036:6:1"},"nodeType":"YulFunctionCall","src":"1036:12:1"},"nodeType":"YulExpressionStatement","src":"1036:12:1"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1011:2:1"},{"name":"_5","nodeType":"YulIdentifier","src":"1015:2:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1007:3:1"},"nodeType":"YulFunctionCall","src":"1007:11:1"},{"name":"_1","nodeType":"YulIdentifier","src":"1020:2:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1003:3:1"},"nodeType":"YulFunctionCall","src":"1003:20:1"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1025:7:1"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1000:2:1"},"nodeType":"YulFunctionCall","src":"1000:33:1"},"nodeType":"YulIf","src":"997:53:1"},{"nodeType":"YulVariableDeclaration","src":"1059:10:1","value":{"kind":"number","nodeType":"YulLiteral","src":"1068:1:1","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1063:1:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"1123:118:1","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1144:3:1"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1162:3:1"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1149:12:1"},"nodeType":"YulFunctionCall","src":"1149:17:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1137:6:1"},"nodeType":"YulFunctionCall","src":"1137:30:1"},"nodeType":"YulExpressionStatement","src":"1137:30:1"},{"nodeType":"YulAssignment","src":"1180:19:1","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1191:3:1"},{"name":"_1","nodeType":"YulIdentifier","src":"1196:2:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1187:3:1"},"nodeType":"YulFunctionCall","src":"1187:12:1"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1180:3:1"}]},{"nodeType":"YulAssignment","src":"1212:19:1","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1223:3:1"},{"name":"_1","nodeType":"YulIdentifier","src":"1228:2:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1219:3:1"},"nodeType":"YulFunctionCall","src":"1219:12:1"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1212:3:1"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1089:1:1"},{"name":"_4","nodeType":"YulIdentifier","src":"1092:2:1"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1086:2:1"},"nodeType":"YulFunctionCall","src":"1086:9:1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1096:18:1","statements":[{"nodeType":"YulAssignment","src":"1098:14:1","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1107:1:1"},{"kind":"number","nodeType":"YulLiteral","src":"1110:1:1","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1103:3:1"},"nodeType":"YulFunctionCall","src":"1103:9:1"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1098:1:1"}]}]},"pre":{"nodeType":"YulBlock","src":"1082:3:1","statements":[]},"src":"1078:163:1"},{"nodeType":"YulAssignment","src":"1250:16:1","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1260:6:1"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1250:6:1"}]}]},"name":"abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"207:9:1","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"218:7:1","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"230:6:1","type":""}],"src":"146:1126:1"},{"body":{"nodeType":"YulBlock","src":"1378:76:1","statements":[{"nodeType":"YulAssignment","src":"1388:26:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1400:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"1411:2:1","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1396:3:1"},"nodeType":"YulFunctionCall","src":"1396:18:1"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1388:4:1"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1430:9:1"},{"name":"value0","nodeType":"YulIdentifier","src":"1441:6:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1423:6:1"},"nodeType":"YulFunctionCall","src":"1423:25:1"},"nodeType":"YulExpressionStatement","src":"1423:25:1"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1347:9:1","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1358:6:1","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1369:4:1","type":""}],"src":"1277:177:1"}]},"contents":"{
{ }
function panic_error_0x41()
{
mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x41)
revert(0, 0x24)
}
function abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0
{
let _1 := 32
if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }
let offset := calldataload(headStart)
let _2 := 0xffffffffffffffff
if gt(offset, _2) { revert(0, 0) }
let _3 := add(headStart, offset)
if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(0, 0) }
let _4 := calldataload(_3)
if gt(_4, _2) { panic_error_0x41() }
let _5 := shl(5, _4)
let memPtr := mload(64)
let newFreePtr := add(memPtr, and(add(_5, 63), not(31)))
if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }
mstore(64, newFreePtr)
let dst := memPtr
mstore(memPtr, _4)
dst := add(memPtr, _1)
let src := add(_3, _1)
if gt(add(add(_3, _5), _1), dataEnd) { revert(0, 0) }
let i := 0
for { } lt(i, _4) { i := add(i, 1) }
{
mstore(dst, calldataload(src))
dst := add(dst, _1)
src := add(src, _1)
}
value0 := memPtr
}
function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail
{
tail := add(headStart, 32)
mstore(headStart, value0)
}
}","id":1,"language":"Yul","name":"#utility.yul"}]}}}}},"sources":{"a.sol":{"id":0}}}