Camille GILLOT
c48756cdbf
Limit creation of tracked place directly.
2023-02-06 21:55:05 +00:00
Camille GILLOT
9a6c04f5d0
Handle discriminants in dataflow-const-prop.
2023-02-06 21:51:47 +00:00
Camille GILLOT
cd3649b2a5
Only exclude locals if the place is not indirect.
2023-02-06 21:51:45 +00:00
Camille GILLOT
0d59b8c997
Remove redundant test.
2023-02-06 21:29:02 +00:00
Camille GILLOT
8e05ab04e5
Run SROA to fixpoint.
2023-02-05 12:08:42 +00:00
Camille GILLOT
42c9514629
Simplify construction of replacement map.
2023-02-05 11:44:18 +00:00
Giacomo Pasini
68c1e2fd48
Treat Drop as a rmw operation
...
Previously, a Drop terminator was considered a move in MIR.
This commit changes the behavior to only treat Drop as a mutable
access to the dropped place.
In order for this change to be correct, we need to guarantee that
a) A dropped value won't be used again
b) Places that appear in a drop won't be used again before a
subsequent initialization.
We can ensure this to be correct at MIR construction because Drop
will only be emitted when a variable goes out of scope,
thus having:
(a) as there is no way of reaching the old value. drop-elaboration
will also remove any uninitialized drop.
(b) as the place can't be named following the end of the scope.
However, the initialization status, previously tracked by moves,
should also be tied to the execution of a Drop, hence the
additional logic in the dataflow analyses.
2023-01-30 00:20:40 +01:00
Bryan Garza
360db516cc
Create stable metric to measure long computation in Const Eval
...
This patch adds a `MirPass` that tracks the number of back-edges and
function calls in the CFG, adds a new MIR instruction to increment a
counter every time they are encountered during Const Eval, and emit a
warning if a configured limit is breached.
2023-01-23 23:56:22 +00:00
nils
fd7a159710
Fix uninlined_format_args for some compiler crates
...
Convert all the crates that have had their diagnostic migration
completed (except save_analysis because that will be deleted soon and
apfloat because of the licensing problem).
2023-01-05 19:01:12 +01:00
Jeremy Stucki
3dde32ca97
rustc: Remove needless lifetimes
2022-12-20 22:10:40 +01:00
Rémy Rakic
8275d115fb
Revert "Auto merge of #103880 - b-naber:field-ty-mir, r=lcnr"
...
This reverts commit 03770f0e2b , reversing
changes made to 01ef4b21dc .
2022-12-19 15:31:20 +00:00
bors
03770f0e2b
Auto merge of #103880 - b-naber:field-ty-mir, r=lcnr
...
Use non-ascribed type as field's type in mir
Fixes https://github.com/rust-lang/rust/issues/96514
r? `@lcnr`
2022-12-16 12:47:49 +00:00
Rageking8
58110572fb
fix dupe word typos
2022-12-05 16:42:36 +08:00
b-naber
9061ffba8c
use no type in ProjectionElem::Field for PlaceBuilder::UpVar
2022-11-23 21:25:27 +01:00
Matthias Krüger
e3036df003
couple of clippy::perf fixes
2022-11-18 10:30:47 +01:00
Jannis Christopher Köhl
108790b8dc
Remove log statement that was commented out
2022-11-12 20:32:09 +01:00
Jannis Christopher Köhl
2e034dc68c
Exclude locals completely, instead of individual places
2022-11-12 14:57:14 +01:00
Jannis Christopher Köhl
3c6d1a723d
Add test for repr(transparent) with scalar
2022-11-11 11:24:31 +01:00
Jannis Christopher Köhl
8ecb276735
Simplify creation of map
2022-11-10 19:12:10 +01:00
Jannis Christopher Köhl
9766ee0b20
Fix struct field tracking and add tests for it
2022-11-09 18:21:42 +01:00
Jannis Christopher Köhl
bfbca6c75c
Completely remove tracking of references for now
2022-11-09 18:03:30 +01:00
Jannis Christopher Köhl
3997893ccb
Fix rebase
2022-11-07 11:01:44 +01:00
Jannis Christopher Köhl
89f934917d
Small corrections of documentation
2022-11-07 10:35:26 +01:00
Jannis Christopher Köhl
630e17d3e4
Limit number of tracked places, and some other perf improvements
2022-11-07 10:35:26 +01:00
Jannis Christopher Köhl
1f82a9f89e
Move HasTop and HasBottom into lattice.rs
2022-11-07 10:35:25 +01:00
Jannis Christopher Köhl
de69d088a4
Explicitly match all terminators
2022-11-07 10:35:24 +01:00
Jannis Christopher Köhl
5b7b309c60
Improve documentation of assumptions
2022-11-07 10:35:24 +01:00
Jannis Christopher Köhl
274a49132b
Improve documentation, plus some small changes
2022-11-07 10:35:23 +01:00
Jannis Christopher Köhl
aaa35b3e48
Add comment for the current retag situation
2022-11-07 10:35:22 +01:00
Jannis Christopher Köhl
3c0f3b04b5
Only assume Stacked Borrows if -Zunsound-mir-opts is given
2022-11-07 10:35:21 +01:00
Jannis Christopher Köhl
111324e17c
Prevent registration inside references if target is !Freeze
2022-11-07 10:35:20 +01:00
Jannis Christopher Köhl
4478a87018
Fix formatting
2022-11-07 10:35:20 +01:00
Jannis Christopher Köhl
7ab1ba95de
Remove Unknown state in favor of Value(Top)
2022-11-07 10:35:20 +01:00
Jannis Christopher Köhl
1765587846
Only track (trivially) freeze types
2022-11-07 10:35:20 +01:00
Jannis Christopher Köhl
b5063ab0e5
Make more assumptions explicit
2022-11-07 10:35:19 +01:00
Jannis Christopher Köhl
2f66e9417f
Flood with bottom for Deinit, StorageLive and StorageDead
2022-11-07 10:35:19 +01:00
Jannis Christopher Köhl
eab77320e6
Handle NonDivergingIntrinsic and CopyNonOverlapping
2022-11-07 10:35:19 +01:00
Jannis Christopher Köhl
f99950f6ae
Update test results after rebase
2022-11-07 10:35:18 +01:00
Jannis Christopher Köhl
c56e99cdba
Fix typo
2022-11-07 10:35:18 +01:00
Jannis Christopher Köhl
13b70599c1
Only allow registration of scalars for now
2022-11-07 10:35:16 +01:00
Jannis Christopher Köhl
817c27744d
Handle StorageLive
2022-11-07 10:35:16 +01:00
Jannis Christopher Köhl
e2ddf8a6e5
Add comment about downcast projection element
2022-11-07 10:35:15 +01:00
Jannis Christopher Köhl
1e5ca57014
Use StorageDead and Deinit to flood place
2022-11-07 10:35:15 +01:00
Jannis Christopher Köhl
904adcac0f
Flood place on drop
2022-11-07 10:35:15 +01:00
Jannis Christopher Köhl
2113e45488
Remove superfluous line
2022-11-07 10:35:14 +01:00
Jannis Christopher Köhl
2e4d0820d2
Add more documentation
2022-11-07 10:35:14 +01:00
Jannis Christopher Köhl
fe84bbf844
Add tracking of unreachability
2022-11-07 10:35:13 +01:00
Jannis Christopher Köhl
16dedba1c8
Ignore terminators explicitly
2022-11-07 10:35:13 +01:00
Jannis Christopher Köhl
8a789ce009
Reject registration of downcasts for now
2022-11-07 10:35:12 +01:00
Jannis Christopher Köhl
ad99d2e15d
Move handling of references and simplify flooding
2022-11-07 10:35:11 +01:00