solidity/test/libyul/yulOptimizerTests/commonSubexpressionEliminator/object_access.yul
2019-04-03 14:58:20 +02:00

25 lines
624 B
Plaintext

{
// Arguments to ``datasize`` and ``dataoffset`` need to be
// literals. We cannot simplify their arguments, but we can
// simplify them as a full expression.
// ``datacopy`` does not have this restriction.
let r := "abc"
let a := datasize("abc")
let x := dataoffset("abc")
// should be replaced by a
let y := datasize("abc")
datacopy("abc", x, y)
mstore(a, x)
}
// ====
// step: commonSubexpressionEliminator
// ----
// {
// let r := "abc"
// let a := datasize("abc")
// let x := dataoffset("abc")
// let y := a
// datacopy(r, x, a)
// mstore(a, x)
// }