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:
Currently compiling this code
results
Note that there are two
DUFFCOPY
s. It first copies the data pointed by the pointer thatmapiterinit
/mapiternext
returns toautotmp_2
, then copies fromautotmp_2
toe
.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: