summary refs log tree commit diff
path: root/src/librustc_mir/transform/mod.rs
AgeCommit message (Collapse)AuthorLines
2018-07-05Do not run AST borrowck when -Zborrowck=mirSantiago Pastorino-1/+4
2018-06-14rustc: rename ty::maps to ty::query.Eduard-Mihai Burtescu-1/+1
2018-05-17Rename trans to codegen everywhere.Irina Popa-1/+1
2018-03-22Added initial processing of UserAssertTy statements.David Wood-3/+2
2018-03-22Killing UserAssertTy in CleanupPostBorrowck pass.David Wood-3/+4
2018-03-22Added UserAssertTy statement.David Wood-0/+2
2018-03-08Split const prop into its own passOliver Schneider-0/+2
2018-03-08Add InterpretInterner to StableHashingContext for AllocId serializationOliver Schneider-0/+1
2018-03-02Perform manual fixupsManish Goregaokar-1/+1
2018-03-02Run Rustfix on librustc_mirManish Goregaokar-1/+1
2018-03-02Replace Rc with Lrc for shared dataJohn Kåre Alsaker-3/+3
2018-02-28Rollup merge of #48355 - mikhail-m1:subslice_pattern_array_drop2, r=nikomatsakisManish Goregaokar-0/+1
Fixes #47311. r? @nrc
2018-02-25restore Subslice move out from array after elaborate drops and borrowckMikhail Modin-0/+1
2018-02-20rustc_mir: always run the deaggregator.Eduard-Mihai Burtescu-1/+5
2018-02-08add transform for uniform array move outMikhail Modin-0/+3
2017-12-15move `type_check` out of `transform` and into the `nll` moduleNiko Matsakis-1/+1
2017-12-04inform constraint generation using maybe-initPaul Daniel Faria-1/+0
In particular, if we see a variable is DROP-LIVE, but it is not MAYBE-INIT, then we can ignore the drop. This leavess attempt to use more complex refinements of the idea (e.g., for subpaths or subfields) to future work.
2017-12-03funnel all unwind paths through a single Resume blockAriel Ben-Yehuda-0/+1
This simplifies analysis and borrow-checking because liveness at the resume point can always be simply propagated. Later on, the "dead" Resumes are removed.
2017-12-03add a pass to remove no-op landing padsAriel Ben-Yehuda-0/+5
2017-11-26fix codegen of drops of fields of packed structsAriel Ben-Yehuda-0/+6
2017-11-18Add a MIR pass to lower 128-bit operators to lang item callsScott McMurray-0/+3
Runs only with `-Z lower_128bit_ops` since it's not hooked into targets yet.
2017-11-14rustc: split off BodyOwnerKind from MirSource.Eduard-Mihai Burtescu-13/+33
2017-11-14rustc_mir: drive passes directly with a macro.Eduard-Mihai Burtescu-185/+89
2017-11-14rustc: move the MIR pass infrastructure and list to rustc_mir.Eduard-Mihai Burtescu-6/+163
2017-11-06collect unused unsafe codeAriel Ben-Yehuda-1/+1
FIXME: de-uglify
2017-11-06run unsafety checking before dead block collectionAriel Ben-Yehuda-2/+10
Fixes #45087.
2017-10-02incr.comp.: Re-execute queries during red/green marking in order to find out ↵Michael Woerister-8/+7
their color.
2017-09-24move unsafety checking to MIRAriel Ben-Yehuda-0/+3
No functional changes intended.
2017-08-21Merge remote-tracking branch 'origin/master' into genAlex Crichton-2/+2
2017-08-21Moved support code for `rustc_mir::borrow_check` query out of `mod transform`.Felix S. Klock II-1/+0
2017-08-21Expose mir-borrowck via a query.Felix S. Klock II-1/+2
(A followup commit removes the mir::transform based entry point.)
2017-08-17Merge remote-tracking branch 'origin/master' into genAlex Crichton-0/+8
2017-08-17Auto merge of #43902 - michaelwoerister:fix-mir-passes-promoted, r=arielb1bors-0/+8
Run MIR passes on promoted temporaries again. This seems to have been broken some time in the past (maybe here: https://github.com/rust-lang/rust/commit/9c154a67bf5c6841c39afdb90388cc3ba36dc70c#diff-2f8e8805126c84b2be3f0967ffa0af28L162). r? @arielb1
2017-08-16Merge remote-tracking branch 'origin/master' into genAlex Crichton-0/+1
2017-08-16Merge remote-tracking branch 'origin/master' into genAlex Crichton-1/+1
2017-08-16MIR based borrow check (opt-in).Felix S. Klock II-0/+1
One can either use `-Z borrowck-mir` or add the `#[rustc_mir_borrowck]` attribute to opt into MIR based borrow checking. Note that regardless of whether one opts in or not, AST-based borrow check will still run as well. The errors emitted from AST-based borrow check will include a "(Ast)" suffix in their error message, while the errors emitted from MIR-based borrow check will include a "(Mir)" suffix. post-rebase: removed check for intra-statement mutual conflict; replaced with assertion checking that at most one borrow is generated per statement. post-rebase: removed dead code: `IdxSet::pairs` and supporting stuff.
2017-08-16Run MIR passes on promoted temporaries again.Michael Woerister-0/+8
2017-08-15use field init shorthand EVERYWHEREZack M. Davis-1/+1
Like #43008 (f668999), but _much more aggressive_.
2017-08-09Merge remote-tracking branch 'origin/master' into genAlex Crichton-0/+1
2017-07-30add a pass for validation commands; for now just emit the initial AcquireValidRalf Jung-0/+1
2017-07-28Generator literal supportJohn Kåre Alsaker-0/+1
2017-07-19Add empty MIR pass for non-lexical lifetimesPaul Faria-0/+1
2017-06-28Shift mir-dataflow from `rustc_borrowck` to `rustc_mir` crate.Felix S. Klock II-0/+2
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.
2017-06-12Add post-pass to remove EndRegions of unborrowed extents.Felix S. Klock II-0/+1
2017-05-02move queries code into transformNiko Matsakis-6/+99
2017-05-02delete dead codeNiko Matsakis-1/+0
2017-05-02simplify down to one query per pass suiteNiko Matsakis-65/+16
2017-05-02rip out everything but `MirPass`, move the logic into suitesNiko Matsakis-69/+37
2017-05-02remove `Pass` and (temporarily) drop `Inline`Niko Matsakis-6/+2
2017-05-02convert the `inline` pass to use the new multi resultNiko Matsakis-11/+24
This involves changing various details about that system, though the basic shape remains the same.