Note that there are two DUFFCOPYs. It first copies the data pointed by the pointer that mapiterinit/mapiternext returns to autotmp_2, then copies from autotmp_2 to e.
I think one copy should be enough.
It might be able to do zero copy in some circumstances (but sounds a little crazy for now). Maybe no function call before the variable die, no address-taken, read only?
(Currently, if T is SSA-able (i.e. smaller), it generates no copy.)
The text was updated successfully, but these errors were encountered: