summary refs log tree commit diff
path: root/src/librustc_mir/transform/inline.rs
AgeCommit message (Collapse)AuthorLines
2020-02-05Selectively disable sanitizer instrumentationTomasz Miąsko-0/+23
Add `no_sanitize` attribute that allows to opt out from sanitizer instrumentation in an annotated function.
2020-02-01Move builtin attribute logic to new rustc_attr crate.Mazdak Farrokhzad-1/+1
For now, this is all the crate contains, but more attribute logic & types will be moved there over time.
2020-01-28make_integrate_local takes Local by valueSantiago Pastorino-4/+4
2020-01-27don't clone types that are copy, round two.Matthias Krüger-2/+2
2020-01-10Remove PlaceBase enum and make Place base field be local: LocalSantiago Pastorino-18/+10
2020-01-10Remove Static from PlaceBaseSantiago Pastorino-5/+0
2020-01-05Remove rustc_hir reexports in rustc::hir.Mazdak Farrokhzad-1/+1
2020-01-04extract rustc::middle::codegen_fn_attrsMazdak Farrokhzad-1/+1
2020-01-01Ensure that we process projections during MIR inliningAaron Hill-8/+4
Fixes #67710 Previously, we were not calling `super_place`, which resulted in us failing to update any local references that occur in ProjectionElem::Index. This caused the post-inlining MIR to contain a reference to a local ID from the inlined callee, leading to an ICE due to a type mismatch.
2019-12-27Fix `Instance::resolve()` incorrectly returning specialized instancesWesley Wiser-3/+10
We only want to return specializations when `Reveal::All` is passed, not when `Reveal::UserFacing` is. Resolving this fixes several issues with the `ConstProp`, `SimplifyBranches`, and `Inline` MIR optimization passes. Fixes #66901
2019-12-22Format the worldMark Rousskov-128/+92
2019-12-20[mir-opt] Fix `Inline` pass to handle inlining into `box` expressionsWesley Wiser-10/+20
2019-12-08Rollup merge of #66991 - Nashenas88:body_cache_cleanup, r=eddybMazdak Farrokhzad-6/+6
Cleanup BodyCache After this PR: - `BodyCache` is renamed to `BodyAndCache` - `ReadOnlyBodyCache` is renamed to `ReadOnlyBodyAndCache` - `ReadOnlyBodyAndCache::body` fn is removed and all calls to it are replaced by a deref (possible due to fix of its `Deref` imp in #65947) cc @eddyb @oli-obk
2019-12-05`#[track_caller]` suppresses MIR inlining.Adam Perry-0/+5
2019-12-05rustc: Apply clearer naming to BodyAndCache, fix Deref impl, remove unneeded ↵Paul Daniel Faria-6/+6
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-31/+31
rename all body_cache back to body
2019-12-02Remove BodyCache.body and rely on Deref as much as possible for ↵Paul Daniel Faria-3/+3
ReadOnlyBodyCache
2019-12-02Fix tidy errorsPaul Daniel Faria-4/+9
2019-12-02Fix remaining compilation issuesPaul Daniel Faria-11/+11
2019-12-02Simplify BodyCache impl and fix all remaining type errors in librustc_mir ↵Paul Daniel Faria-23/+23
(lifetime errors still exist)
2019-12-02Address nits and remove unneeded passPaul Daniel Faria-1/+1
2019-12-02Move predecessors cache invalidation back to basic_blocks_mut, add a couple ↵Paul Daniel Faria-3/+3
more ensure_predecessors to prevent panics
2019-12-02Stop invalidating predecessors cache when accessing unique basic block, ↵Paul Daniel Faria-3/+3
invalidate cache when accessing unique terminator
2019-11-30rustc: move mir::SourceScopeLocalData to a field of SourceScopeData.Eduard-Mihai Burtescu-5/+1
2019-11-30rustc_mir: fix inliner to also copy over source_scope_local_data.Eduard-Mihai Burtescu-1/+10
2019-11-27rustc: move debug info from LocalDecl and UpvarDecl into a dedicated ↵Eduard-Mihai Burtescu-8/+4
VarDebugInfo.
2019-10-22Move Place::elem methods and friends to TyCtxtSantiago Pastorino-3/+3
2019-10-22Intern place projectionSantiago Pastorino-1/+8
2019-10-22Pattern match over PlaceRef rather than PlaceSantiago Pastorino-26/+14
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-10-18Use Cow to handle modifications of projection in preparation for interningSantiago Pastorino-4/+8
2019-10-17Add process_* place hooks to improve code reutilizationSantiago Pastorino-11/+12
2019-10-17Prepare inline MutVisitor to have projections internedSantiago Pastorino-16/+35
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-3/+3
2019-09-11Make Place Boxed on Statement to reduce size from 64 bytes to 32 bytesSantiago Pastorino-2/+2
2019-09-09Convert Place's projection to a boxed sliceSantiago Pastorino-17/+15
2019-08-22Handle statics in `Subst::subst()` by implementing `TypeFoldable`Wesley Wiser-15/+0
2019-08-22Move def_id out add substsrefWesley Wiser-15/+9
2019-08-22Move promoted out of mir::BodyWesley Wiser-4/+5
2019-08-22Move 'tcx lifetime on MirPassWesley Wiser-2/+2
2019-08-16Remove redundant `ty` fields from `mir::Constant` and ↵Eduard-Mihai Burtescu-1/+1
`hair::pattern::PatternRange`.
2019-07-26Rollup merge of #62801 - bjorn3:remove_lower_128bit_ops, r=alexcrichtonMazdak Farrokhzad-7/+0
Remove support for -Zlower-128bit-ops It is broken and unused cc https://github.com/rust-lang/rust/issues/58969 blocked https://github.com/rust-lang-nursery/compiler-builtins/pull/302 (removes definitions of the lang items removed in this PR) r? @alexcrichton
2019-07-20Migrate from Place enum to Place structSantiago Pastorino-6/+19
2019-07-19Remove support for -Zlower-128bit-opsbjorn3-7/+0
It is broken and unused
2019-07-06normalize use of backticks/lowercase in compiler messages for librustc_mirSamy Kacimi-6/+6
https://github.com/rust-lang/rust/issues/60532 r? @alexreg
2019-06-25Implement From<Local> for Place and PlaceBaseSantiago Pastorino-3/+3
2019-06-18rustc: remove 'x: 'y bounds (except from comments/strings).Eduard-Mihai Burtescu-1/+1
2019-06-17remove _by_hir_id if there is no NodeId counterpartljedrz-1/+1
2019-06-16Auto merge of #60730 - matthewjasper:optimize-false-edges, r=pnkfelixbors-4/+2
Optimize matches Attempt to fix or improve #60571 This is breaking some diagnostics because the MIR for match arms isn't in source order any more. cc @centril