Marijn Haverbeke 3bdbf74d47 Make moving of temporaries do the right thing, use it to optimize
This adds support for dropping cleanups for temporary values when they
are moved somewhere else. It then adds wraps most copy operations
(return, put in data structure, box, etc) in a way that will fall back
to a move when it is safe.

This saves a lot of taking/dropping, shaving over a megabyte off the
stage2/rustc binary size.

In some cases, most notably function returns, we could detect that the
returned value is a local variable, and can thus be safely moved even
though it is not a temporary. This will require putting some more
information in lvals.

I did not yet handle function arguments, since the logic for passing
them looked too convoluted to touch. I'll probably try that in the
near future, since it's bound to be a big win.
2011-07-07 15:54:01 +02:00
..
2011-06-30 12:37:30 -07:00
2011-06-24 21:13:26 +02:00
2011-06-19 20:48:20 -07:00
2011-07-05 18:29:47 -07:00
2011-06-24 21:13:26 +02:00
2011-06-24 21:13:26 +02:00
2011-06-30 22:21:30 -07:00
2011-06-28 14:16:09 -07:00