solidity/test/libyul/yulOptimizerTests/commonSubexpressionEliminator/object_access.yul
2019-01-07 17:23:38 +01:00

24 lines
610 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)
}
// ----
// commonSubexpressionEliminator
// {
// let r := "abc"
// let a := datasize("abc")
// let x := dataoffset("abc")
// let y := a
// datacopy(r, x, a)
// mstore(a, x)
// }