Print code snippets next to source locations in IR output

This commit is contained in:
Kamil Śliwak
2021-09-14 12:09:59 +02:00
parent d78522b08b
commit 14639efc5d
38 changed files with 989 additions and 333 deletions
+14 -14
View File
@@ -10,7 +10,7 @@ Optimized IR:
object "Arraysum_34" {
code {
{
/// @src 0:80:429
/// @src 0:80:429 "contract Arraysum {..."
mstore(64, 128)
if callvalue() { revert(0, 0) }
let _1 := datasize("Arraysum_34_deployed")
@@ -22,7 +22,7 @@ object "Arraysum_34" {
object "Arraysum_34_deployed" {
code {
{
/// @src 0:80:429
/// @src 0:80:429 "contract Arraysum {..."
mstore(64, 128)
if iszero(lt(calldatasize(), 4))
{
@@ -32,27 +32,27 @@ object "Arraysum_34" {
if callvalue() { revert(_1, _1) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }
let var_sum := _1
/// @src 0:368:378
let var_i := /** @src 0:80:429 */ _1
/// @src 0:368:378 "uint i = 0"
let var_i := /** @src 0:80:429 "contract Arraysum {..." */ _1
let _2 := sload(_1)
/// @src 0:364:423
/// @src 0:364:423 "for(uint i = 0; i < values.length; i++)..."
for { }
/** @src 0:380:397 */ lt(var_i, _2)
/// @src 0:368:378
/** @src 0:380:397 "i < values.length" */ lt(var_i, _2)
/// @src 0:368:378 "uint i = 0"
{
/// @src 0:80:429
/// @src 0:80:429 "contract Arraysum {..."
if eq(var_i, not(0)) { panic_error_0x11() }
/// @src 0:399:402
var_i := /** @src 0:80:429 */ add(var_i, 1)
/// @src 0:399:402 "i++"
var_i := /** @src 0:80:429 "contract Arraysum {..." */ add(var_i, 1)
}
/// @src 0:399:402
/// @src 0:399:402 "i++"
{
/// @src 0:80:429
/// @src 0:80:429 "contract Arraysum {..."
mstore(_1, _1)
let _3 := sload(add(18569430475105882587588266137607568536673111973893317399460219858819262702947, var_i))
if gt(var_sum, not(_3)) { panic_error_0x11() }
/// @src 0:407:423
var_sum := /** @src 0:80:429 */ add(var_sum, _3)
/// @src 0:407:423 "sum += values[i]"
var_sum := /** @src 0:80:429 "contract Arraysum {..." */ add(var_sum, _3)
}
let memPos := mload(64)
return(memPos, sub(abi_encode_uint256(memPos, var_sum), memPos))