| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2020-07-08 | Stop adding unreachable basic blocks to dataflow work queue | Dylan MacKenzie | -9/+15 | |
| Also adds some debug assertions to prevent API consumers from visiting those basic blocks by accident. | ||||
| 2020-07-08 | Add `reachable` and friends to `mir::traversal` module | Dylan MacKenzie | -0/+9 | |
| 2020-06-30 | Handle inactive enum variants in `MaybeUninitializedPlaces` | Dylan MacKenzie | -23/+88 | |
| 2020-06-26 | Handle stores to projections correctly in liveness analysis | Dylan MacKenzie | -2/+25 | |
| Previously, we were too conservative and `x.field = 4` was treated as a "use" of `x`. | ||||
| 2020-06-21 | Make is_freeze and is_copy_modulo_regions take TyCtxtAt | Ralf Jung | -1/+1 | |
| 2020-06-16 | rename location field of Drop terminators to place | Ralf Jung | -9/+9 | |
| 2020-06-12 | Rollup merge of #73033 - Amanieu:asm-tls, r=oli-obk | Dylan DPC | -1/+1 | |
| Fix #[thread_local] statics as asm! sym operands The `asm!` RFC specifies that `#[thread_local]` statics may be used as `sym` operands for inline assembly. This also fixes a regression in the handling of `#[thread_local]` during monomorphization which caused link-time errors with multiple codegen units, most likely introduced by #71192. r? @oli-obk | ||||
| 2020-06-10 | Fix test | Aaron Hill | -0/+2 | |
| 2020-06-10 | Track span of function in method calls, and use this in #[track_caller] | Aaron Hill | -1/+2 | |
| Fixes #69977 When we parse a chain of method calls like `foo.a().b().c()`, each `MethodCallExpr` gets assigned a span that starts at the beginning of the call chain (`foo`). While this is useful for diagnostics, it means that `Location::caller` will return the same location for every call in a call chain. This PR makes us separately record the span of the function name and arguments for a method call (e.g. `b()` in `foo.a().b().c()`). This `Span` is passed through HIR lowering and MIR building to `TerminatorKind::Call`, where it is used in preference to `Terminator.source_info.span` when determining `Location::caller`. This new span is also useful for diagnostics where we want to emphasize a particular method call - for an example, see https://github.com/rust-lang/rust/pull/72389#discussion_r436035990 | ||||
| 2020-06-08 | Revert #71956 | Dylan MacKenzie | -8/+234 | |
| 2020-06-07 | rename FalseEdges -> FalseEdge | Ralf Jung | -3/+3 | |
| 2020-06-07 | Rollup merge of #72989 - pnkfelix:revert-pr-71840, r=matthewjasper | Dylan DPC | -8/+7 | |
| Revert pr 71840 Revert7 PR #71840 to fix issue #72470 This will need a backport to beta if we do not want #72470 to hit stable. | ||||
| 2020-06-06 | Fix #[thread_local] statics as asm! sym operands | Amanieu d'Antras | -1/+1 | |
| 2020-06-04 | placate tidy. | Felix S. Klock II | -1/+1 | |
| 2020-06-04 | Revert "Reduce the number of drop-flag assignments in unwind paths" | Felix S. Klock II | -1/+4 | |
| This reverts commit 54aa418a6082b364b90feee70b07381ea266c4d5. | ||||
| 2020-06-04 | Revert "Address review comments" | Felix S. Klock II | -6/+2 | |
| This reverts commit b998497bd41d6de71ec035433247dee856d1f3a5. | ||||
| 2020-06-02 | Rename the crates in source code | Vadim Petrochenkov | -0/+2 | |
| 2020-06-01 | Auto merge of #71192 - oli-obk:eager_alloc_id_canonicalization, r=wesleywiser | bors | -0/+2 | |
| Make TLS accesses explicit in MIR r? @rust-lang/wg-mir-opt cc @RalfJung @vakaras for miri thread locals cc @bjorn3 for cranelift fixes #70685 | ||||
| 2020-05-30 | Make TLS accesses explicit in MIR | Oliver Scherer | -0/+2 | |
| 2020-05-29 | Improve inline asm error diagnostics | Amanieu d'Antras | -2/+8 | |
| 2020-05-23 | take mir::PlaceElem by value | Bastian Kauschke | -5/+5 | |
| 2020-05-23 | iterate List by value | Bastian Kauschke | -1/+1 | |
| 2020-05-19 | Document assumptions made in generator transform for analyses | Dylan MacKenzie | -0/+6 | |
| The generator transform needs to inspect all possible dataflow states. This can be done with half the number of bitset union operations if we can assume that the relevant analyses do not use "before" effects. | ||||
| 2020-05-19 | Remove `MaybeRequiresStorage` | Dylan MacKenzie | -234/+2 | |
| 2020-05-19 | Add `MaybeInitializedLocals` dataflow analysis | Dylan MacKenzie | -0/+117 | |
| 2020-05-18 | Add asm! to MIR | Amanieu d'Antras | -3/+62 | |
| 2020-05-09 | Address review comments | Matthew Jasper | -2/+6 | |
| 2020-05-09 | Reduce the number of drop-flag assignments in unwind paths | Matthew Jasper | -4/+1 | |
| 2020-05-09 | Rollup merge of #71942 - nnethercote:shrink-LocalDecl, r=matthewjasper | Dylan DPC | -1/+1 | |
| Shrink `LocalDecl` `LocalDecl` contributes 4-8% of peak heap memory usage on a range of benchmarks. This PR reduces its size from 128 bytes to 56 bytes on 64-bit, and does some clean-ups as well. r? @matthewjasper | ||||
| 2020-05-08 | Rollup merge of #71993 - ecstatic-morse:cleanup-old-liveness, r=jonas-schievink | Dylan DPC | -0/+7 | |
| Remove old `util/liveness.rs` module The liveness dataflow analysis now lives in the `dataflow` module, so this one is no longer necessary. I've copied the relevant bits of the module docs for `util::liveness` to `MaybeLiveLocals`. The example in the docs is now a `mir-dataflow` test: https://github.com/rust-lang/rust/blob/a08c47310c7d49cbdc5d7afb38408ba519967ecd/src/test/ui/mir-dataflow/liveness-ptr.rs#L6-L26 The borrow-checker used the same notion of "defs" and "uses", so I've moved it into a submodule. I would have moved it to `util/def_use.rs`, since it seems generally useful, but there's already a slightly [different version](https://github.com/rust-lang/rust/blob/master/src/librustc_mir/util/def_use.rs) of the same abstraction needed for copy propagation. | ||||
| 2020-05-07 | Incorporate old module docs into `MaybeLiveLocals` docs | Dylan MacKenzie | -0/+7 | |
| 2020-05-06 | Add `SourceInfo::outermost`. | Nicholas Nethercote | -1/+1 | |
| 2020-05-04 | Import dataflow impls via the `impls` submodule | Dylan MacKenzie | -6/+1 | |
| 2020-05-04 | Export dataflow impls by name | Dylan MacKenzie | -4/+4 | |
| 2020-05-03 | Use agreed upon terminology in cursor docs | Dylan MacKenzie | -5/+5 | |
| 2020-05-03 | Live variable analysis | Dylan MacKenzie | -2/+141 | |
| 2020-05-03 | Initialize the cursor with an empty state | Dylan MacKenzie | -4/+10 | |
| 2020-05-03 | Support backward dataflow analyses | Dylan MacKenzie | -639/+1075 | |
| 2020-04-22 | Use `Body` everywhere | Dylan MacKenzie | -2/+2 | |
| 2020-04-16 | don't clone types that are copy (clippy::clone_on_copy) | Matthias Krüger | -4/+3 | |
| 2020-04-09 | Make `MaybeStorageLive` correct for all kinds of MIR bodies | Dylan MacKenzie | -5/+17 | |
| Before, it ignored the first argument and marked all variables without `Storage*` annotations as dead. | ||||
| 2020-04-03 | Rollup merge of #70707 - ecstatic-morse:dataflow-graphviz-cleanup, ↵ | Mazdak Farrokhzad | -277/+0 | |
| r=nikomatsakis Remove unused graphviz emitter This was only used by the old dataflow framework that was removed in #69644. | ||||
| 2020-04-02 | Remove unused graphviz visualization | Dylan MacKenzie | -277/+0 | |
| This was used by the old framework that was removed in #69644. | ||||
| 2020-04-02 | nix rustc_target::abi::* reexport in ty::layout | Mazdak Farrokhzad | -2/+2 | |
| 2020-04-01 | Rollup merge of #70627 - spastorino:use-place-directly-its-copy, r=oli-obk | Mazdak Farrokhzad | -65/+65 | |
| Use place directly its copy r? @oli-obk | ||||
| 2020-04-01 | Rollup merge of #70511 - ecstatic-morse:mir-dataflow-graphviz, r=davidtwco | Mazdak Farrokhzad | -1/+20 | |
| Add `-Z dump-mir-dataflow` flag for dumping dataflow results visualization Previously, to visualize the results of a MIR dataflow pass, one had to add a `#[rustc_mir(borrowck_graphviz_postflow)]` attribute to functions of interest. However, there is no way to specify this attribute on closures and generators, so it was impossible to view results for these MIR bodies. This PR adds a flag, `-Z dump-mir-dataflow`, which will output the dataflow results for any functions specified in `-Z dump-mir` to the output directory specified by `-Z dump-mir-dir`. This behavior is modeled on the `-Z dump-mir-graphviz` flag. | ||||
| 2020-03-31 | Use Place directly in apply_call_return_effect on framework/tests, it's Copy | Santiago Pastorino | -1/+1 | |
| 2020-03-31 | Use Place directly on place_contents_drop_state_cannot_differ, it's Copy | Santiago Pastorino | -2/+2 | |
| 2020-03-31 | Use Place directly on Operand::place and friends, it's Copy | Santiago Pastorino | -28/+28 | |
| 2020-03-31 | Use Place directly, it's Copy even more use cases | Santiago Pastorino | -28/+28 | |
