solidity/test/libyul/yulOptimizerTests/rematerialiser/for_break.yul

33 lines
549 B
Plaintext

{
let a
let b
let i := 0
for {} lt(i, 10) {i := add(a, b)} {
a := origin()
b := origin()
b := caller()
// a=origin, b=caller
if callvalue() { break }
// a=origin, b=caller
a := caller()
}
mstore(a, b)
}
// ====
// step: rematerialiser
// ----
// {
// let a
// let b
// let i := 0
// for { } lt(i, 10) { i := add(caller(), caller()) }
// {
// a := origin()
// b := origin()
// b := caller()
// if callvalue() { break }
// a := caller()
// }
// mstore(a, b)
// }