about summary refs log tree commit diff
path: root/src/librustc_codegen_ssa/mir/analyze.rs
AgeCommit message (Collapse)AuthorLines
2020-08-30mv compiler to compiler/mark-448/+0
2020-07-20mir: avoid double substitutionDavid Wood-2/+1
This commit avoids a natural, free-range double substitution error by monomorphizing the projection element before getting the type. Signed-off-by: David Wood <david@davidtw.co>
2020-06-16remove visit_terminator_kind from MIR visitorRalf Jung-3/+3
2020-06-07rename FalseEdges -> FalseEdgeRalf Jung-1/+1
2020-05-23take mir::PlaceElem by valueBastian Kauschke-2/+2
2020-05-18Implement asm! codegenAmanieu d'Antras-1/+2
2020-05-03Add `MutatingUseContext::Yield`Dylan MacKenzie-1/+2
...emulating `MutatingUseContext::Call`
2020-04-22Auto merge of #71044 - ecstatic-morse:body-predecessor-cache, r=oli-obkbors-1/+1
Remove `BodyAndCache` ...returning to the original approach using interior mutability within `Body`. This simplifies the API at the cost of some uncontended mutex locks when the parallel compiler is enabled. The current API requires you to either have a mutable reference to `Body` (`&mut BodyAndCache`), or to compute the predecessor graph ahead of time by creating a `ReadOnlyBodyAndCache`. This is not a good fit for, e.g., the dataflow framework, which 1. does not mutate the MIR 2. only sometimes needs the predecessor graph (for backward dataflow problems)
2020-04-22Don't use `*` for deref-coercionDylan MacKenzie-1/+1
2020-04-21visit_place_base is just visit_localSantiago Pastorino-1/+1
2020-04-19Dogfood more or_patterns in the compilerJosh Stone-15/+21
2020-04-02nix rustc_target::abi::* reexport in ty::layoutMazdak Farrokhzad-1/+2
2020-03-30rustc -> rustc_middle part 3 (rustfmt)Mazdak Farrokhzad-3/+3
2020-03-30rustc -> rustc_middle part 2Mazdak Farrokhzad-5/+5
2020-03-29Use `&` to do deref coercion for `ReadOnlyBodyAndCache`Dylan MacKenzie-1/+1
2020-03-29Make `Visitor::visit_body` take a simple `Body`Dylan MacKenzie-1/+1
2020-03-10Rollup merge of #69714 - spastorino:place-ref-lifetime, r=oli-obkMazdak Farrokhzad-1/+1
Make PlaceRef take just one lifetime r? @eddyb
2020-03-06mir::Local is Copy we can pass it by value in these casesSantiago Pastorino-1/+1
2020-03-04PlaceRef<'a, 'tcx> -> PlaceRef<'tcx>Santiago Pastorino-1/+1
2020-03-02Make PlaceRef lifetimes of LocalAnalyzer::process_place be both 'tcxSantiago Pastorino-1/+1
2020-02-09rustc_codegen_ssa: only "spill" SSA-like values to the stack for debuginfo.Eduard-Mihai Burtescu-19/+0
2020-01-28Place::ty_from takes local by valueSantiago Pastorino-1/+1
2020-01-28Local field on PlaceRef and RootPlace is not a reference anymoreSantiago Pastorino-5/+5
2020-01-10Remove PlaceBase enum and make Place base field be local: LocalSantiago Pastorino-12/+6
2020-01-10Remove Static from PlaceBaseSantiago Pastorino-7/+6
2020-01-01Rename `syntax_pos` to `rustc_span` in source codeVadim Petrochenkov-1/+1
2019-12-22Format the worldMark Rousskov-110/+98
2019-12-18Add Rvalue::AddressOf to MIRMatthew Jasper-0/+2
This operator creates a raw pointer to a Place directly, without first creating a reference. See RFC #2582 for motivation. The Rvalue is currently unused.
2019-12-03rustc: expose the mir::Body reference lifetime from mir::ReadOnlyBodyCache ↵Eduard-Mihai Burtescu-1/+1
(#64736 fallout).
2019-12-02Remove HasLocalDecls impl from BodyCache's, properly reborrow to Body, ↵Paul Daniel Faria-1/+1
rename all body_cache back to body
2019-12-02Remove BodyCache.body and rely on Deref as much as possible for ↵Paul Daniel Faria-1/+1
ReadOnlyBodyCache
2019-12-02Undo minor changes that weren't needed, fix one lifetime typoPaul Daniel Faria-4/+5
2019-12-02Fix compilation errors created during rebasePaul Daniel Faria-1/+1
2019-12-02Simplify BodyCache impl and fix all remaining type errors in librustc_mir ↵Paul Daniel Faria-8/+8
(lifetime errors still exist)
2019-12-02Account for new maybe_sideeffect helper that requires predecessorsPaul Daniel Faria-15/+14
2019-12-02Convert &mut to & since the reference didn't need to be mutablePaul Daniel Faria-1/+1
2019-12-02Revert back to using FunctionCx's BodyPaul Daniel Faria-1/+1
2019-12-02Add Body back as field of FunctionCx, but under a different lifetimePaul Daniel Faria-14/+11
2019-12-02Improved BodyCache body impl so it only returns a sharable ref, add new ↵Paul Daniel Faria-6/+7
body_mut method, fix visit macros, simplify usage in codegen_ssa analyzer
2019-12-02Remove Body from FunctionCx, pass it along during librustc_codegen_ssaPaul Daniel Faria-20/+15
2019-12-02Simplify Cache wrapper to single type, impl Deref on it, fix all compilation ↵Paul Daniel Faria-16/+24
errors in librustc_codegen_ssa
2019-11-27rustc: move debug info from LocalDecl and UpvarDecl into a dedicated ↵Eduard-Mihai Burtescu-31/+82
VarDebugInfo.
2019-10-31rustc_codegen_ssa: move local variable debuginfo to mir::debuginfo.Eduard-Mihai Burtescu-7/+15
2019-10-22Pattern match over PlaceRef rather than PlaceSantiago Pastorino-4/+1
This prepares the code base for when projection is interned. Place's projection field is going to be `&List<PlaceElem<'tcx>>` so we won't be able to pattern match against it.
2019-09-29remove indexed_vec re-export from rustc_data_structurescsmoe-1/+1
2019-09-29remove bit_set re-export from rustc_data_structurescsmoe-1/+1
2019-09-25Rename `sty` to `kind`varkor-1/+1
2019-09-09Use slice patterns to match projection baseSantiago Pastorino-4/+1
2019-09-09Convert Place's projection to a boxed sliceSantiago Pastorino-13/+13
2019-08-16Remove redundant `ty` fields from `mir::Constant` and ↵Eduard-Mihai Burtescu-1/+1
`hair::pattern::PatternRange`.