summary refs log tree commit diff
path: root/src/librustc_mir/dataflow/impls/mod.rs
AgeCommit message (Collapse)AuthorLines
2018-02-03Auto merge of #47845 - Zoxc:gen-fixes, r=nikomatsakisbors-0/+4
Generator bugfixes r? @nikomatsakis
2018-01-30Force locals to be live after they are borrowed for immovable generators. ↵John Kåre Alsaker-0/+4
Fixes #47736
2018-01-29rustc: replace "lvalue" terminology with "place" in the code.Eduard-Mihai Burtescu-52/+52
2017-12-13Refactoring: pull bitvector initialization out from other parts of dataflow.Felix S. Klock II-6/+6
This is meant to ease development of multi-stage dataflow analyses where the output from one analysis is used to initialize the state for the next; in such a context, you cannot start with `bottom_value` for all the bits.
2017-12-10avoid passing the gen/kill bits to `start_block_effects`Ariel Ben-Yehuda-12/+15
If the gen/kill bits are set there, the effects of `start_block_effects` will not be seen when using `FlowAtLocation` etc. to go over the MIR. EverInitializedLvals is the only pass that got this wrong, but this fixes the footgun for everyone.
2017-12-06work around weird match arm lifetimesAriel Ben-Yehuda-3/+23
2017-12-06handle gen/kill sets togetherAriel Ben-Yehuda-50/+16
2017-12-01MIR: s/lv(al(ue)?)?/place in function/variable/module names.Eduard-Mihai Burtescu-14/+14
2017-12-01MIR: s/Lvalue/Place in type names.Eduard-Mihai Burtescu-6/+6
2017-11-27Add initialization info to `MoveData`Matthew Jasper-54/+168
* Used for new dataflow to track if a variable has every been initialized * Used for other dataflows that need to be updated for initializations
2017-11-15fix comment, remove redundant codeMikhail Modin-1/+4
2017-11-15add `StorageDead` handlingMikhail Modin-7/+14
2017-11-09Add `TerminatorKind::DropAndReplace` handlingMikhail Modin-0/+13
2017-11-08restore move out dataflow, add report of move out errorsMikhail Modin-1/+161
2017-10-31make the dataflow / mir-borrowck types carry a `'tcx` lifetimeNiko Matsakis-33/+33
Also, factor out `do_mir_borrowck`, which is the code that actually performs the MIR borrowck from within the scope of an inference context. This change should be a pure refactoring.
2017-09-13Analyse storage liveness and preserve it during generator transformationJohn Kåre Alsaker-0/+4
2017-08-19rustc: Remove some dead codeVadim Petrochenkov-160/+1
2017-08-16Added dataflow analysis for `Borrows`.Felix S. Klock II-0/+3
post-rebase: addressed review comment: rename `loc_map`/`location_map` and `rgn_map`/`region_map`. post-rebase: remove now unnecessary `mut` decl. post-rebase: address comments: bind iterator expr, and alpha-rename `loc`/`location` and `idx`/`index`.
2017-08-16Refactor `trait BitDenotation` to take `Location` instead of ↵Felix S. Klock II-30/+20
`BasicBlock`/`usize` argument pairs.
2017-08-12Auto merge of #43794 - Eijebong:fix_typos, r=lukaramu,steveklanik,imperiobors-1/+1
Fix some typos I wrote a really naive script and found those typos in the documentation.
2017-08-11Fix some typosBastien Orivel-1/+1
2017-08-10For box expressions, use NZ drop instead of a free blockAriel Ben-Yehuda-9/+22
This falls naturally out of making drop elaboration work with `box` expressions, which is probably required for sane MIR borrow-checking. This is a pure refactoring with no intentional functional effects.
2017-07-30add new instructions for asserting when values are valid, and to describe ↵Ralf Jung-0/+1
when we can rely on them being locked in memory
2017-06-28Shift mir-dataflow from `rustc_borrowck` to `rustc_mir` crate.Felix S. Klock II-0/+600
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.