- 07 9月, 2018 1 次提交
-
-
由 Niko Matsakis 提交于
-
- 05 9月, 2018 1 次提交
-
-
由 ljedrz 提交于
-
- 16 8月, 2018 1 次提交
-
-
由 Nicholas Nethercote 提交于
`HybridIdxSetBuf` is a sparse-when-small but dense-when-large index set that is very efficient for sets that (a) have few elements, (b) have large `universe_size` values, and (c) are cleared frequently. Which makes it perfect for the `gen_set` and `kill_set` sets used by the new borrow checker. This patch reduces the execution time of the five slowest NLL benchmarks by 55%, 21%, 16%, 10% and 9%. It also reduces the max-rss of three benchmarks by 53%, 33%, and 9%.
-
- 23 7月, 2018 2 次提交
-
-
由 ljedrz 提交于
-
由 Santiago Pastorino 提交于
-
- 01 5月, 2018 1 次提交
-
-
由 Eduard-Mihai Burtescu 提交于
-
- 10 3月, 2018 2 次提交
-
-
由 bobtwinkles 提交于
-
由 bobtwinkles 提交于
The new output format is perhaps a little more readable. As a bonus, we get labels on the outgoing edges to more easily corroborate the dataflow with the plain MIR graphviz output.
-
- 11 1月, 2018 1 次提交
-
-
由 Matt Brubeck 提交于
-
- 13 12月, 2017 1 次提交
-
-
由 Felix S. Klock II 提交于
Made `do_dataflow` and related API `pub(crate)`.
-
- 16 8月, 2017 1 次提交
-
-
由 Felix S. Klock II 提交于
Refactored `each_bit`, which traverses a `IdxSet`, so that the bulk of its implementation lives in `rustc_data_structures`.
-
- 28 6月, 2017 1 次提交
-
-
由 Felix S. Klock II 提交于
Turn `elaborate_drops` and `rustc_peek` implementations into MIR passes that also live in `rustc_mir` crate. Rewire things so `rustc_driver` uses the `ElaborateDrops` from `rustc_mir` crate.
-
- 18 3月, 2017 1 次提交
-
-
由 Ariel Ben-Yehuda 提交于
-
- 26 12月, 2016 1 次提交
-
-
由 Felix S. Klock II 提交于
I no longer remember why I needed this (or thought I did). The way that the `BitDenotation` is passed around in all existing use cases (and planned future ones), the thing that were in the `Ctxt` can just be part of `Self` instead. (I think ariel had been pushing me to do this back when I first put in this infrastructure; it took me a while to see how much of pain the `Ctxt` was causing.)
-
- 14 11月, 2016 1 次提交
-
-
由 Aleksey Kladov 提交于
Don't allow lifetimes without any bounds at all
-
- 28 10月, 2016 1 次提交
-
-
由 Eduard Burtescu 提交于
-
- 11 10月, 2016 1 次提交
-
-
由 Wesley Wiser 提交于
Resolves a FIXME
-
- 09 6月, 2016 2 次提交
-
-
由 Ariel Ben-Yehuda 提交于
-
由 Ariel Ben-Yehuda 提交于
-
- 25 5月, 2016 2 次提交
-
-
由 Felix S. Klock II 提交于
-
由 Felix S. Klock II 提交于
used this to address a long-standing wart/bug in how filtering-out of values with type impl'ing `Copy` was done.
-
- 24 5月, 2016 3 次提交
-
-
由 Felix S. Klock II 提交于
Also got rid of the `trait HasMoveData`, since I am now just imposing the constraint that `BitDenotation<Ctxt=MoveData<'tcx>>` where necessary instead.
-
由 Felix S. Klock II 提交于
-
由 Felix S. Klock II 提交于
As some drive-by's: * moved bitwise operators into `mod bitslice` * factored out `fn gen` and `fn kill` methods on `BlockSets` type * removed outdated comment about `fn propagate_call_return`
-
- 16 5月, 2016 1 次提交
-
-
由 Felix S. Klock II 提交于
Incorporates many fixes contributed by arielb1. ---- revise borrowck::mir::dataflow code to allow varying domain for bitvectors. This particular code implements the `BitDenotation` trait for three analyses: * `MovingOutStatements`, which, like `borrowck::move_data`, maps each bit-index to a move instruction, and a 1 means "the effect of this move reaches this point" (and the assigned l-value, if a scoped declaration, is still in scope). * `MaybeInitializedLvals`, which maps each bit-index to an l-value. A 1 means "there exists a control flow path to this point that initializes the associated l-value." * `MaybeUninitializedLvals`, which maps each bit-index to an l-value A 1 means "there exists a control flow path to this point that de-initializes the associated l-value." ---- Revised `graphviz` dataflow-rendering support in `borrowck::mir`. One big difference is that this code is now parameterized over the `BitDenotation`, so that it can be used to render dataflow results independent of how the dataflow bitvectors are interpreted; see where reference to `MoveOut` is replaced by the type parameter `D`. ---- Factor out routine to query subattributes in `#[rustc_mir(..)]`. (Later commits build upon this for some unit testing and instrumentation.) ---- thread through a tcx so that I can query types of lvalues as part of analysis. ---- Revised `BitDenotation::Ctxt`, allowing variation beyond `MoveData`. The main motivation is to ease threading through a `TyCtxt`. (In hindsight it might have been better to instead attach the `TyCtxt` to each of the different dataflow implementations, but that would require e.g. switching away from having a `Default` impl, so I am leaving that experiment for another time.)
-
- 23 3月, 2016 2 次提交
-
-
由 Jorge Aparicio 提交于
-
由 Jorge Aparicio 提交于
Automated conversion using the untry tool [1] and the following command: ``` $ find -name '*.rs' -type f | xargs untry ``` at the root of the Rust repo. [1]: https://github.com/japaric/untry
-
- 22 3月, 2016 1 次提交
-
-
由 Felix S. Klock II 提交于
emit (via debug!) scary message from `fn borrowck_mir` until basic prototype is in place. Gather children of move paths and set their kill bits in dataflow. (Each node has a link to the child that is first among its siblings.) Hooked in libgraphviz based rendering, including of borrowck dataflow state. doing this well required some refactoring of the code, so I cleaned it up more generally (adding comments to explain what its trying to do and how it is doing it). Update: this newer version addresses most review comments (at least the ones that were largely mechanical changes), but I left the more interesting revisions to separate followup commits (in this same PR).
-