about summary refs log tree commit diff
path: root/src/librustc_mir/transform/deaggregator.rs
AgeCommit message (Collapse)AuthorLines
2020-08-30mv compiler to compiler/mark-49/+0
2020-08-13Clean up some mir transform passeskadmin-13/+11
I noticed a few places where there were intermediates being created in MIR optimization passes, so I removed them.
2020-04-22Use `Body` everywhereDylan MacKenzie-1/+1
2020-03-30rustc -> rustc_middle part 2Mazdak Farrokhzad-2/+2
2019-12-22Format the worldMark Rousskov-13/+9
2019-12-05rustc: Apply clearer naming to BodyAndCache, fix Deref impl, remove unneeded ↵Paul Daniel Faria-1/+1
Index impl, remove body fn rustc_codegen_ssa: Fix BodyAndCache reborrow to Body and change instances of body() call to derefence rustc_mir: Fix BodyAndCache reborrow to Body and change intances of body() call to derefence
2019-12-02Remove HasLocalDecls impl from BodyCache's, properly reborrow to Body, ↵Paul Daniel Faria-2/+2
rename all body_cache back to body
2019-12-02Fix tidy errorsPaul Daniel Faria-1/+3
2019-12-02Simplify BodyCache impl and fix all remaining type errors in librustc_mir ↵Paul Daniel Faria-2/+2
(lifetime errors still exist)
2019-10-22Intern place projectionSantiago Pastorino-0/+1
2019-09-11Make Place Boxed on Statement to reduce size from 64 bytes to 32 bytesSantiago Pastorino-3/+3
2019-08-22Move 'tcx lifetime on MirPassWesley Wiser-2/+2
2019-06-14Run `rustfmt --file-lines ...` for changes from previous commits.Eduard-Mihai Burtescu-6/+1
2019-06-14Unify all uses of 'gcx and 'tcx.Eduard-Mihai Burtescu-1/+1
2019-06-12Run `rustfmt --file-lines ...` for changes from previous commits.Eduard-Mihai Burtescu-4/+6
2019-06-12rustc: replace `TyCtxt<'tcx, 'gcx, 'tcx>` with `TyCtxt<'gcx, 'tcx>`.Eduard-Mihai Burtescu-1/+1
2019-06-12Fix fallout from `deny(unused_lifetimes)`.Eduard-Mihai Burtescu-1/+1
2019-06-12rustc: replace `TyCtxt<'a, 'gcx, 'tcx>` with `TyCtxt<'tcx, 'gcx, 'tcx>`.Eduard-Mihai Burtescu-1/+1
2019-06-09Changed usages of `mir` in librustc::mir and librustc_mir to `body`Jad Ghalayini-2/+2
2019-06-06Don't run MIR passes on constructor shimsMatthew Jasper-58/+10
2019-05-28Changes the type `mir::Mir` into `mir::Body`Claude-Alban RANÉLY-VERGÉ-DÉPRÉ-1/+1
The commit should have changed comments as well. At the time of writting, it passes the tidy and check tool. Revisions asked by eddyb : - Renamed of all the occurences of {visit/super}_mir - Renamed test structures `CachedMir` to `Cached` Fixing the missing import on `AggregateKind`
2019-05-03Address review commentsTyler Mandry-1/+1
2019-04-25Support variantful generatorsTyler Mandry-1/+19
This allows generators to overlap fields using variants.
2019-02-09fix rebase falloutRalf Jung-1/+1
2019-02-08librustc_mir => 2018Taiki Endo-1/+1
2018-12-25Remove licensesMark Rousskov-10/+0
2018-09-24Shrink StatementKind::Assign.Nicholas Nethercote-4/+8
This shrinks StatementKind from 80 bytes to 64 bytes on 64-bit.
2018-08-24support user-given types in adtsNiko Matsakis-1/+1
2018-04-27mir: Deaggregate constant MIRNick Fitzgerald-20/+1
Appears to work now that miri has merged.
2018-02-20rustc_mir: optimize the deaggregator's expansion of statements.Eduard-Mihai Burtescu-43/+26
2018-02-20rustc_mir: don't run the deaggregator on arrays for now.Eduard-Mihai Burtescu-1/+5
2018-02-20rustc_mir: always run the deaggregator.Eduard-Mihai Burtescu-5/+0
2018-02-20rustc_mir: handle all aggregate kinds in the deaggregator.Eduard-Mihai Burtescu-81/+68
2018-02-20rustc_mir: use the "idiomatic" optimization gating in the deaggregator.Eduard-Mihai Burtescu-11/+16
2017-12-01MIR: s/lv(al(ue)?)?/place in function/variable/module names.Eduard-Mihai Burtescu-1/+1
2017-12-01MIR: s/Lvalue/Place in type names.Eduard-Mihai Burtescu-2/+2
2017-11-18rustc_mir: always downcast enums, even if univariant.Eduard-Mihai Burtescu-2/+2
2017-11-14rustc: split off BodyOwnerKind from MirSource.Eduard-Mihai Burtescu-6/+11
2017-11-14rustc: move the MIR pass infrastructure and list to rustc_mir.Eduard-Mihai Burtescu-1/+2
2017-05-12box large variants in MIRAriel Ben-Yehuda-4/+4
Operand: 72 -> 24 B Statement: 192 -> 96 B Terminator: 256 -> 112 B librustc translation memory usage: 1795 -> 1669 MB next step would be interning lvalues, I suppose?
2017-05-02simplify the MirPass traits and passes dramaticallyNiko Matsakis-6/+6
Overall goal: reduce the amount of context a mir pass needs so that it resembles a query. - The hooks are no longer "threaded down" to the pass, but rather run automatically from the top-level (we also thread down the current pass number, so that the files are sorted better). - The hook now receives a *single* callback, rather than a callback per-MIR. - The traits are no longer lifetime parameters, which moved to the methods -- given that we required `for<'tcx>` objecs, there wasn't much point to that. - Several passes now store a `String` instead of a `&'l str` (again, no point).
2017-05-02rework `MirPass` API to be stateless and extract helper fnsNiko Matsakis-1/+1
2017-01-26rustc: rename TyCtxt's `map` field to `hir`.Eduard-Mihai Burtescu-1/+1
2016-12-12Auto merge of #38307 - bluss:mir-opt-level, r=eddybbors-7/+4
Simplify use of mir_opt_level Remove the unused top level option by the same name, and retain the debug option. Use -Zmir-opt-level=1 as default. One pass is enabled by default but wants to be optional: - Instcombine requires mir_opt_level > 0 Copy propagation is not used by default, but used to be activated by explicit -Zmir-opt-level=1. It must move one higher to be off by default: - CopyPropagation requires mir_opt_level > 1 Deaggregate is not used by default, and used to be on a different level than CopyPropagation: - Deaggreate requires mir_opt_level > 2
2016-12-11Simplify use of mir_opt_levelUlrik Sverdrup-7/+4
Remove the unused top level option by the same name, and retain the debug option. Use -Zmir-opt-level=1 as default. One pass is enabled by default but wants to be optional: - Instcombine requires mir_opt_level > 0 Copy propagation is not used by default, but used to be activated by explicit -Zmir-opt-level=1. It must move one higher to be off by default: - CopyPropagation requires mir_opt_level > 1 Deaggregate is not used by default, and used to be on a different level than CopyPropagation: - Deaggreate requires mir_opt_level > 2
2016-12-09mir: Reinstate while loop in deaggregator passUlrik Sverdrup-59/+58
A previous commit must have removed the `while let` loop here by mistake; for each basic block, it should find and deaggregate multiple statements in their index order, and the `curr` index tracks the progress through the block. This fixes both the case of deaggregating statements in separate basic blocks (preserving `curr` could prevent that) as well as multiple times in the same block (missing loop prevented that).
2016-10-28rustc: move mir::repr::* to mir.Eduard Burtescu-1/+1
2016-10-04Remove some unused methods from metadataVadim Petrochenkov-5/+1
Address comments + Fix rebase
2016-10-04Eliminate ty::VariantKind in favor of def::CtorKindVadim Petrochenkov-2/+2
2016-09-03Fix buggy field access translationVadim Petrochenkov-2/+2