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

41 lines
625 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)
// }