about summary refs log tree commit diff
path: root/src/librustc_data_structures/lib.rs
AgeCommit message (Collapse)AuthorLines
2018-07-25Deny bare_trait_objects globallyTatsuyuki Ishi-2/+0
2018-07-20data_structures: Add a reference wrapper for pointer-indexed maps/setsVadim Petrochenkov-10/+11
Use `ptr::eq` for comparing pointers
2018-07-16Generate region values directly to reduce memory usage.David Wood-0/+1
Also modify `SparseBitMatrix` so that it does not require knowing the dimensions in advance, but instead grows on demand.
2018-07-13Auto merge of #51987 - nikomatsakis:nll-region-infer-scc, r=pnkfelixbors-2/+1
nll experiment: compute SCCs instead of iterative region solving This is an attempt to speed up region solving by replacing the current iterative dataflow with a SCC computation. The idea is to detect cycles (SCCs) amongst region constraints and then compute just one value per cycle. The graph with all cycles removed is of course a DAG, so we can then solve constraints "bottom up" once the liveness values are known. I kinda ran out of time this morning so the last commit is a bit sloppy but I wanted to get this posted, let travis run on it, and maybe do a perf run, before I clean it up.
2018-07-12rename `control_flow_graph` to `graph`Niko Matsakis-1/+1
2018-07-12rename `graph` to `control_flow_graph::implementation`Niko Matsakis-1/+0
2018-07-11Deny bare trait objects in in src/librustc_data_structuresljedrz-0/+2
2018-07-01create a new `WorkQueue` data structureNiko Matsakis-0/+1
2018-06-06Add and use OnDrop::disableJohn Kåre Alsaker-0/+8
2018-06-01Add a WorkerLocal abstractionJohn Kåre Alsaker-0/+1
2018-06-01Add TinyList data structure.Michael Woerister-0/+1
2018-05-24get `rustc_hash` from external crateNiko Matsakis-0/+1
2018-05-22Add SortedMap to rustc_data_structures.Michael Woerister-0/+1
2018-05-17Rollup merge of #50808 - SimonSapin:nonzero, r=alexcrichtonkennytm-1/+0
Stabilize num::NonZeroU* Tracking issue: https://github.com/rust-lang/rust/issues/49137
2018-05-16Stabilize num::NonZeroU*Simon Sapin-1/+0
Tracking issue: https://github.com/rust-lang/rust/issues/49137
2018-05-14Remove LazyBTreeMap.Nicholas Nethercote-1/+0
It was introduced in #50240 to avoid an allocation when creating a new BTreeMap, which gave some speed-ups. But then #50352 made that the default behaviour for BTreeMap, so LazyBTreeMap is no longer necessary.
2018-05-13Add parallel abstractionsJohn Kåre Alsaker-0/+1
2018-04-28Auto merge of #50240 - nnethercote:LazyBTreeMap, r=cramertjbors-0/+1
Implement LazyBTreeMap and use it in a few places. This is a thin wrapper around BTreeMap that avoids allocating upon creation. I would prefer to change BTreeMap directly to make it lazy (like I did with HashSet in #36734) and I initially attempted that by making BTreeMap::root an Option<>. But then I also had to change Iter and Range to handle trees with no root, and those types have stability markers on them and I wasn't sure if that was acceptable. Also, BTreeMap has a lot of complex code and changing it all was challenging, and I didn't have high confidence about my general approach. So I prototyped this wrapper instead and used it in the hottest locations to get some measurements about the effect. The measurements are pretty good! - Doing a debug build of serde, it reduces the total number of heap allocations from 17,728,709 to 13,359,384, a 25% reduction. The number of bytes allocated drops from 7,474,672,966 to 5,482,308,388, a 27% reduction. - It gives speedups of up to 3.6% on some rustc-perf benchmark jobs. crates.io, futures, and serde benefit most. ``` futures-check avg: -1.9% min: -3.6% max: -0.5% serde-check avg: -2.1% min: -3.5% max: -0.7% crates.io-check avg: -1.7% min: -3.5% max: -0.3% serde avg: -2.0% min: -3.0% max: -0.9% serde-opt avg: -1.8% min: -2.9% max: -0.3% futures avg: -1.5% min: -2.8% max: -0.4% tokio-webpush-simple-check avg: -1.1% min: -2.2% max: -0.1% futures-opt avg: -1.2% min: -2.1% max: -0.4% piston-image-check avg: -0.8% min: -1.1% max: -0.3% crates.io avg: -0.6% min: -1.0% max: -0.3% ``` @Gankro, how do you think I should proceed here? Is leaving this as a wrapper reasonable? Or should I try to make BTreeMap itself lazy? If so, can I change the representation of Iter and Range? Thanks!
2018-04-26rustc_target: move in syntax::abi and flip dependency.Irina Popa-0/+4
2018-04-26Implement LazyBTreeMap and use it in a few places.Nicholas Nethercote-0/+1
This is a thin wrapper around BTreeMap that avoids allocating upon creation. It speeds up some rustc-perf benchmarks by up to 3.6%.
2018-04-08Move deny(warnings) into rustbuildMark Simulacrum-1/+0
This permits easier iteration without having to worry about warnings being denied. Fixes #49517
2018-04-05Bump the bootstrap compiler to 1.26.0 betaAlex Crichton-4/+0
Holy cow that's a lot of `cfg(stage0)` removed and a lot of new stable language features!
2018-03-29Stabilize underscore lifetimesTaylor Cramer-1/+1
2018-03-26Stabilize i128 feature tooMark Mansi-2/+1
2018-03-26Stabilize i128_typeMark Mansi-1/+1
2018-03-26Stabilize conservative_impl_traitTaylor Cramer-1/+1
2018-03-26Stabilize universal_impl_traitTaylor Cramer-1/+1
2018-03-17Add OnDropJohn Kåre Alsaker-0/+8
2018-03-07Replace iterator structures with `impl Trait`.Corey Farwell-0/+1
2018-03-01obtain `UnificationTable` and `snapshot_vec` from `ena` insteadNiko Matsakis-2/+3
The ena version has an improved interface. I suspect `librustc_data_structures` should start migrating out to crates.io in general.
2018-01-28Remove VecCellMark Simulacrum-1/+0
2018-01-28Remove unused blake2b implementationMark Simulacrum-1/+0
2018-01-20Stabilize std::ptr::NonNullSimon Sapin-1/+0
2018-01-20Rename std::ptr::Shared to NonNullSimon Sapin-1/+1
`Shared` is now a deprecated `type` alias. CC https://github.com/rust-lang/rust/issues/27730#issuecomment-352800629
2017-12-17Add sync module to rustc_data_structuresJohn Kåre Alsaker-0/+9
2017-11-16IndexVec: add `'_` to make clear where borrowing is happeningNiko Matsakis-0/+1
2017-10-16Use SipHasher128 in StableHasher.Michael Woerister-0/+1
2017-10-16rustc_data_structures: Add implementation of 128 bit SipHash.Michael Woerister-0/+1
2017-09-02stabilize mem::discriminant (closes #24263)Alex Burka-1/+0
2017-08-25*: remove crate_{name,type} attributesTamir Duberstein-3/+0
Fixes #41701.
2017-08-19rustc: Remove some dead codeVadim Petrochenkov-3/+1
2017-08-02Remove unused fnv hash codeMatt Brubeck-1/+0
2017-07-26Auto merge of #43373 - alexcrichton:stabilize-1.20.0, r=aturonbors-1/+0
Stabilize more APIs for the 1.20.0 release In addition to the few stabilizations that have already landed, this cleans up the remaining APIs that are in `final-comment-period` right now to be stable by the 1.20.0 release
2017-07-25std: Stabilize `manually_drop` featureAlex Crichton-1/+0
Stabilizes * `core::mem::ManuallyDrop` * `std::mem::ManuallyDrop` * `ManuallyDrop::new` * `ManuallyDrop::into_inner` * `ManuallyDrop::drop` * `Deref for ManuallyDrop` * `DerefMut for ManuallyDrop` Closes #40673
2017-07-25Bump master to 1.21.0Alex Crichton-3/+0
This commit bumps the master branch's version to 1.21.0 and also updates the bootstrap compiler from the freshly minted beta release.
2017-07-06remove associated_consts feature gateSean McArthur-1/+1
2017-06-30Revert "Stabilize RangeArgument"Steven Fackler-0/+1
This reverts commit 143206d54d7558c2326212df99efc98110904fdb.
2017-06-24Stabilize RangeArgumentSteven Fackler-1/+0
Move it and Bound to core::ops while we're at it. Closes #30877
2017-06-19Bump version and stage0 compilerAlex Crichton-3/+0
2017-06-15Remove struct_field_attributes feature gateWonwoo Choi-1/+1