summary refs log tree commit diff
path: root/compiler/rustc_mir_dataflow/src
AgeCommit message (Collapse)AuthorLines
2022-10-23Migrate all diagnosticsNilstrieb-10/+10
2022-10-06Remove `mir::CastKind::Misc`ouz-a-1/+2
2022-09-26remove cfg(bootstrap)Pietro Albini-1/+0
2022-09-21UPDATE - rename DiagnosticHandler macro to DiagnosticJhonny Bill Mena-11/+11
2022-09-21UPDATE - rename DiagnosticHandler trait to IntoDiagnosticJhonny Bill Mena-11/+11
2022-09-20Auto merge of #99806 - oli-obk:unconstrained_opaque_type, r=estebankbors-1/+2
Allow patterns to constrain the hidden type of opaque types fixes #96572 reverts a revert as original PR was a perf regression that was fixed by reverting it: https://github.com/rust-lang/rust/pull/99368#issuecomment-1186587864) TODO: * check if https://github.com/rust-lang/rust/issues/99685 is avoided
2022-09-16Only generate `OpaqueCast` for opaque typesOli Scherer-1/+1
2022-09-16Revert "Revert "Rollup merge of #98582 - oli-obk:unconstrained_opaque_type, ↵Oli Scherer-0/+1
r=estebank"" This reverts commit 4a742a691e7dd2522bad68b86fe2fd5a199d5561.
2022-09-15Only enable the let_else feature on bootstrapest31-1/+1
On later stages, the feature is already stable. Result of running: rg -l "feature.let_else" compiler/ src/librustdoc/ library/ | xargs sed -s -i "s#\\[feature.let_else#\\[cfg_attr\\(bootstrap, feature\\(let_else\\)#"
2022-09-06Generalize the Assume intrinsic statement to a general Intrinsic statementOli Scherer-6/+3
2022-09-06Lower the assume intrinsic to a MIR statementOli Scherer-0/+3
2022-08-29Rollup merge of #99027 - tmiasko:basic-blocks, r=oli-obkMatthias Krüger-17/+14
Replace `Body::basic_blocks()` with field access Since the refactoring in #98930, it is possible to borrow the basic blocks independently from other parts of MIR by accessing the `basic_blocks` field directly. Replace unnecessary `Body::basic_blocks()` method with a direct field access, which has an additional benefit of borrowing the basic blocks only.
2022-08-26Rollup merge of #100744 - 5225225:migrate-rustc-mir-dataflow, r=davidtwcoMichael Goulet-22/+93
Migrate rustc_mir_dataflow to diagnostic structs
2022-08-26Replace `Body::basic_blocks()` with field accessTomasz Miąsko-17/+14
2022-08-25Add method that applies DefUse effectTomasz Miąsko-15/+11
2022-08-25Fix liveness analysis for yield terminatorsTomasz Miąsko-32/+61
A resume place is evaluated and assigned to only after a yield terminator resumes. Ensure that locals used when evaluating the resume place are live across the yield.
2022-08-23Rename rustc_mir_dataflow diagnostic to mir_dataflow5225225-10/+10
2022-08-23Migrate rustc_mir_dataflow to diagnostic structs5225225-22/+93
2022-08-22use type alias impl trait in `outlives_bounds::InferCtxtExt`SparrowLii-1/+2
2022-08-01Remove redundant `TransferWrapper` structTomasz Miąsko-14/+2
2022-07-29Auto merge of #99667 - ouz-a:some_branch, r=oli-obkbors-22/+17
Optimize `UnDerefer` Addresses the performance [issues](https://github.com/rust-lang/rust/pull/98145#issuecomment-1183548597) faced here. r? `@oli-obk`
2022-07-28type alias covers whole returnouz-a-6/+7
2022-07-28create type aliasouz-a-16/+10
2022-07-25remove cloneouz-a-1/+1
2022-07-24fix import errorouz-a-1/+1
2022-07-24optimize un_dereferouz-a-21/+21
2022-07-20Auto merge of #99058 - michaelwoerister:remove-stable-set-and-map, r=nagisabors-1/+1
Remove the unused StableSet and StableMap types from rustc_data_structures. The current implementation is not "stable" in the same sense that `HashStable` and `StableHasher` are stable, i.e. across compilation sessions. So, in my opinion, it's better to remove those types (which are basically unused anyway) than to give the wrong impression that these are safe for incr. comp. I plan to provide new "stable" collection types soon that can be used to replace `FxHashMap` and `FxHashSet` in query results (see [draft](https://github.com/michaelwoerister/rust/commit/69d03ac7a7d651a397ab793e9d78f8fce3edf7a6)). It's unsound that `HashMap` and `HashSet` implement `HashStable` (see https://github.com/rust-lang/rust/issues/98890 for a recent P-critical bug caused by this) -- so we should make some progress there.
2022-07-20Remove unused StableMap and StableSet types from rustc_data_structuresMichael Woerister-1/+1
2022-07-20Revert "Rollup merge of #98582 - oli-obk:unconstrained_opaque_type, r=estebank"Oli Scherer-1/+0
This reverts commit 6f8fb911ad504b77549cf3256a09465621beab9d, reversing changes made to 7210e46dc69a4b197a313d093fe145722c248b7d.
2022-07-16Rollup merge of #98582 - oli-obk:unconstrained_opaque_type, r=estebankMatthias Krüger-0/+1
Allow destructuring opaque types in their defining scopes fixes #96572 Before this PR, the following code snippet failed with an incomprehensible error, and similar code just ICEd in mir borrowck. ```rust type T = impl Copy; let foo: T = (1u32, 2u32); let (a, b) = foo; ``` The problem was that the last line created MIR projections of the form `foo.0` and `foo.1`, but `foo`'s type is `T`, which doesn't have fields (only its hidden type does). But the pattern supplies enough type information (a tuple of two different inference types) to bind a hidden type.
2022-07-15Introduce opaque type to hidden type projectionOli Scherer-0/+1
2022-07-14Remove FIXME from MIR `always_storage_live_locals`pierwill-3/+0
2022-07-13Rename `debugging_opts` to `unstable_opts`Joshua Nelson-7/+7
This is no longer used only for debugging options (e.g. `-Zoutput-width`, `-Zallow-features`). Rename it to be more clear.
2022-07-12add new rval, pull deref earlyouz-a-2/+68
2022-07-09Rollup merge of #99022 - pierwill:always-storage-live-locals, r=pierwillMatthias Krüger-1/+1
MIR dataflow: Rename function to `always_storage_live_locals` Related to #99021. r? ```@JakobDegen``` (as discussed on Zulip)
2022-07-07MIR dataflow: Rename function to `always_storage_live_locals`pierwill-1/+1
Related to #99021.
2022-07-07Rollup merge of #98986 - pierwill:patch-5, r=oli-obkMatthias Krüger-1/+1
Fix missing word in comment
2022-07-07Rollup merge of #98981 - pierwill:pierwill/dataflow-docs-edits, r=Dylan-DPCDylan DPC-8/+8
Edit `rustc_mir_dataflow::framework` documentation Some edits for clarity and consistency.
2022-07-07Move `switch_sources` from Body to BasicBlocksTomasz Miąsko-1/+1
2022-07-07Move `predecessors` from Body to BasicBlocksTomasz Miąsko-1/+1
2022-07-07Move `is_cfg_cyclic` from Body to BasicBlocksTomasz Miąsko-1/+1
2022-07-06Fix missing word in commentpierwill-1/+1
2022-07-06Edit `rustc_mir_dataflow::framework` documentationpierwill-8/+8
2022-07-05Rollup merge of #98944 - pierwill:flatset-docs, r=Dylan-DPCGuillaume Gomez-5/+7
Edit `rustc_mir_dataflow::framework::lattice::FlatSet` docs Cosmetic improvements. Adds a paragraph break, and ellipses to signify arbitrary size of a flat set.
2022-07-05Edit `rustc_mir_dataflow::framework::lattice::FlatSet` docspierwill-5/+7
Cosmetic improvements. Adds a paragraph break, and ellipses to signify arbitrary size of a flat set.
2022-07-01cleanup mir visitor for `rustc::pass_by_value`lcnr-5/+5
2022-06-21Auto merge of #95576 - DrMeepster:box_erasure, r=oli-obkbors-1/+12
Remove dereferencing of Box from codegen Through #94043, #94414, #94873, and #95328, I've been fixing issues caused by Box being treated like a pointer when it is not a pointer. However, these PRs just introduced special cases for Box. This PR removes those special cases and instead transforms a deref of Box into a deref of the pointer it contains. Hopefully, this is the end of the Box<T, A> ICEs.
2022-06-19Rollup merge of #98165 - WaffleLapkin:once_things_renamings, r=m-ou-seMatthias Krüger-2/+2
once cell renamings This PR does the renamings proposed in https://github.com/rust-lang/rust/issues/74465#issuecomment-1153703128 - Move/rename `lazy::{OnceCell, Lazy}` to `cell::{OnceCell, LazyCell}` - Move/rename `lazy::{SyncOnceCell, SyncLazy}` to `sync::{OnceLock, LazyLock}` (I used `Lazy...` instead of `...Lazy` as it seems to be more consistent, easier to pronounce, etc) ```@rustbot``` label +T-libs-api -T-libs
2022-06-17Auto merge of #97863 - JakobDegen:bitset-choice, r=nnethercotebors-4/+4
`BitSet` related perf improvements This commit makes two changes: 1. Changes `MaybeLiveLocals` to use `ChunkedBitSet` 2. Overrides the `fold` method for the iterator for `ChunkedBitSet` I have local benchmarks verifying that each of these changes individually yield significant perf improvements to #96451 . I'm hoping this will be true outside of that context too. If that is not the case, I'll try to gate things on where they help as needed r? `@nnethercote` who I believe was working on closely related things, cc `@tmiasko` because of the destprop pr
2022-06-16Move/rename `lazy::Sync{OnceCell,Lazy}` to `sync::{Once,Lazy}Lock`Maybe Waffle-2/+2