Isaac van Bakel
400075d9d9
Fixed all unnecessary muts in language core
2017-08-01 23:01:24 +01:00
Simonas Kazlauskas
aac82d9b13
SwitchInt over Switch
...
This removes another special case of Switch by replacing it with the more general SwitchInt. While
this is more clunky currently, there’s no reason we can’t make it nice (and efficient) to use.
2017-02-10 19:42:41 +02:00
Michael Woerister
71274ac9ad
Mark some BitVector methods with #[inline]
2017-01-12 15:13:02 -05:00
Niko Matsakis
9978cbc8f4
generalize BitMatrix to be NxM and not just NxN
2016-08-09 08:26:06 -04:00
Niko Matsakis
0e97240f98
isolate predecessor computation
...
The new `Predecessors` type computes a set of interesting targets and
their HIR predecessors, and discards everything in between.
2016-08-09 08:26:05 -04:00
Srinivas Reddy Thatiparthy
99e9f2ddc1
remove redundant test case
2016-06-11 20:59:58 +05:30
Scott A Carr
79bf586d4b
switch to BitVector, simplify target_block logic
...
clarify comments and panic message
2016-06-01 10:23:56 -07:00
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