Michael Woerister
0fc9f9a200
Make the codegen unit partitioner also emit item declarations.
2016-04-28 16:53:00 -04:00
James Miller
605bc04264
Use a BitVector instead of Vec<bool> for recording cleanup blocks
...
Also adds a FromIterator impl for BitVector to allow construction of a
BitVector from an iterator yeilding bools.
2016-04-03 14:58:34 +12:00
James Miller
60a28e60aa
Add some standard traversal iterators for MIR
...
Adds Preorder, Postorder and Reverse Postorder traversal iterators.
Also makes trans/mir use Reverse Postorder traversal for blocks.
2016-03-30 12:57:43 +13:00
Niko Matsakis
43dc48c7ff
apply rustfmt to librustc_data_structures, correcting rust-lang-nursery/rustfmt#836
2016-03-05 08:40:33 -05:00
Simonas Kazlauskas
b92e2437f5
[MIR] Change SimplifyCfg pass to use bitvec
...
BitVector is much more space efficient.
2016-02-23 11:43:52 +02:00
Simonas Kazlauskas
e74aa2bdff
[MIR] Promote temps to alloca on multi-assignment
...
Fixes #31002
2016-01-21 19:01:43 +02:00
Niko Matsakis
b247402666
nits from pnkfelix
2015-08-21 14:40:07 -04:00
Niko Matsakis
5448de72c2
generalize bitvector code into a bitmatrix; write some unit tests, but
...
probably not enough. This code is so simple, what could possibly go
wrong?
2015-08-18 17:36:32 -04:00
Ulrik Sverdrup
836f32e769
Use vec![elt; n] where possible
...
The common pattern `iter::repeat(elt).take(n).collect::<Vec<_>>()` is
exactly equivalent to `vec![elt; n]`, do this replacement in the whole
tree.
(Actually, vec![] is smart enough to only call clone n - 1 times, while
the former solution would call clone n times, and this fact is
virtually irrelevant in practice.)
2015-07-09 11:05:32 +02:00
Niko Matsakis
65ccffd224
Add licenses.
2015-04-17 10:12:55 -04:00
Niko Matsakis
7ab0d1ab67
Port to using the newer graph, which offers iterators instead of the
...
older `each` method, but is otherwise identical.
2015-04-17 10:12:55 -04:00