summary refs log tree commit diff
path: root/src/librustc_data_structures/bitvec.rs
AgeCommit message (Collapse)AuthorLines
2017-02-10SwitchInt over SwitchSimonas Kazlauskas-0/+4
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-01-12Mark some BitVector methods with #[inline]Michael Woerister-0/+9
2016-08-09generalize BitMatrix to be NxM and not just NxNNiko Matsakis-16/+67
2016-08-09isolate predecessor computationNiko Matsakis-0/+6
The new `Predecessors` type computes a set of interesting targets and their HIR predecessors, and discards everything in between.
2016-06-11remove redundant test caseSrinivas Reddy Thatiparthy-15/+1
2016-06-01switch to BitVector, simplify target_block logicScott A Carr-1/+1
clarify comments and panic message
2016-04-28Make the codegen unit partitioner also emit item declarations.Michael Woerister-11/+22
2016-04-03Use a BitVector instead of Vec<bool> for recording cleanup blocksJames Miller-1/+26
Also adds a FromIterator impl for BitVector to allow construction of a BitVector from an iterator yeilding bools.
2016-03-30Add some standard traversal iterators for MIRJames Miller-0/+1
Adds Preorder, Postorder and Reverse Postorder traversal iterators. Also makes trans/mir use Reverse Postorder traversal for blocks.
2016-03-05apply rustfmt to librustc_data_structures, correcting ↵Niko Matsakis-15/+21
rust-lang-nursery/rustfmt#836
2016-02-23[MIR] Change SimplifyCfg pass to use bitvecSimonas Kazlauskas-0/+79
BitVector is much more space efficient.
2016-01-21[MIR] Promote temps to alloca on multi-assignmentSimonas Kazlauskas-2/+4
Fixes #31002
2015-08-21nits from pnkfelixNiko Matsakis-23/+30
2015-08-18generalize bitvector code into a bitmatrix; write some unit tests, butNiko Matsakis-9/+176
probably not enough. This code is so simple, what could possibly go wrong?
2015-07-09Use vec![elt; n] where possibleUlrik Sverdrup-3/+1
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-04-17Add licenses.Niko Matsakis-0/+10
2015-04-17Port to using the newer graph, which offers iterators instead of theNiko Matsakis-0/+32
older `each` method, but is otherwise identical.