Find a file
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
doc Clarify docs about claim 2011-06-28 17:50:06 -07:00
mk Add a stdtest crate to hold the standard library tests 2011-07-06 14:39:40 -07:00
src Make moving of temporaries do the right thing, use it to optimize 2011-07-07 15:54:01 +02:00
.gitignore Ignore files generated by Doxygen. 2011-06-01 10:37:48 -07:00
AUTHORS.txt Add Rob Arnold to AUTHORS.txt 2011-07-02 00:08:29 -07:00
configure Add a stdtest crate to hold the standard library tests 2011-07-06 14:39:40 -07:00
LICENSE.txt Update copyrights for completeness. 2011-05-03 12:10:03 -07:00
Makefile.in Partially restore the fuzzer crate's build rules 2011-07-01 10:43:21 -07:00
README Update README to point to github, test email notification. 2010-06-23 21:11:10 -07:00

This is a compiler and suite of associated libraries and documentation for the
Rust programming language.

See LICENSE.txt for terms of copyright and redistribution.

See http://github.com/graydon/rust for current development page.