Camille GILLOT
4abea83663
Improve naming and comments.
2023-10-21 07:01:25 +00:00
Camille GILLOT
751a079413
Implement JumpThreading pass.
2023-10-21 06:58:38 +00:00
Oli Scherer
e96ce20b34
s/generator/coroutine/
2023-10-20 21:14:01 +00:00
Oli Scherer
60956837cf
s/Generator/Coroutine/
2023-10-20 21:10:38 +00:00
Michael Goulet
b2d2184ede
Format all the let chains in compiler
2023-10-13 08:59:36 +00:00
Camille GILLOT
27d6a57e58
Preserve DebugInfo in DeadStoreElimination.
2023-10-06 15:46:11 +00:00
ouz-a
5d753abb30
have better explanation for relate_types
2023-10-02 23:39:45 +03:00
ouz-a
cd7f471931
Add docs, remove code, change subtyper code
2023-10-02 23:39:44 +03:00
ouz-a
3148e6a993
subtyping_projections
2023-10-02 23:37:49 +03:00
Oli Scherer
ec6f554536
Some tracing cleanups
2023-09-28 16:13:37 +00:00
bors
551c7183f8
Auto merge of #115794 - cjgillot:aggregate-no-box, r=davidtwco
...
Do not create a DerefLen place for `Box<[T]>`.
Fixes https://github.com/rust-lang/rust/issues/115789
2023-09-24 06:13:17 +00:00
Camille GILLOT
44ac8dcc71
Remove GeneratorWitness and rename GeneratorWitnessMIR.
2023-09-23 13:47:30 +00:00
Matthias Krüger
d4d0c840b3
Rollup merge of #115770 - ouz-a:match_elem_builder, r=lcnr
...
Match on elem first while building move paths
While working on https://github.com/rust-lang/rust/pull/115025 `@lcnr` and I observed "move_paths_for" function matched on the `Ty` instead of `Projection` which seems flawed as it's the `Projection`s that cause the problem not the type.
r? `@lcnr`
2023-09-22 23:12:34 +02:00
ouz-a
63df126f59
match array for constantindex and subslice
2023-09-22 16:28:45 +03:00
ouz-a
442c87a0b0
better bug message
2023-09-22 11:31:45 +03:00
ouz-a
d6efedcaf5
remove inner match
2023-09-22 11:21:55 +03:00
Ralf Jung
c94410c145
rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const
2023-09-21 08:12:30 +02:00
Camille GILLOT
e76b7f226a
Do not create a DerefLen place for Box<[T]>
.
2023-09-20 16:07:03 +00:00
ouz-a
0cb22a66eb
very verbose error handling
2023-09-12 21:09:29 +03:00
ouz-a
22b1acb455
match on elem first
2023-09-12 10:28:37 +03:00
Camille GILLOT
6ad6b4381c
Support non-scalar constants.
2023-09-11 16:29:41 +00:00
Camille GILLOT
4ad22b91fc
Correct comment and assumption.
2023-09-07 15:45:25 +00:00
Camille GILLOT
fc63543792
Support array length.
2023-09-06 16:05:04 +00:00
Camille GILLOT
7ef555d84a
Support non-trivial scalars in ConstProp.
2023-09-05 21:25:41 +00:00
Jason Newcomb
f686bd8949
Take &mut Results
in ResultsVisitor
2023-09-02 19:35:51 -04:00
Ralf Jung
4c53783f3c
when terminating during unwinding, show the reason why
2023-08-24 13:28:26 +02:00
Ralf Jung
818ec8e23a
give some unwind-related terminators a more clear name
2023-08-20 15:52:38 +02:00
Camille GILLOT
f5e4eb91b7
Use Terminator::edges for backward analysis too.
2023-08-16 19:40:46 +00:00
Camille GILLOT
e9990ce89c
Only evaluate yield place after resume in liveness.
2023-08-16 18:12:18 +00:00
Camille GILLOT
7ded3409b8
Specify that method only applies statement effects.
2023-08-16 18:12:18 +00:00
Camille GILLOT
aa697f599e
Rename YieldResumeEffect.
2023-08-16 18:12:18 +00:00
Camille GILLOT
388f6a6413
Make TerminatorEdge plural.
2023-08-16 18:12:18 +00:00
Camille GILLOT
6cf15d4cb5
Rename MaybeUnreachable.
2023-08-16 18:12:18 +00:00
Camille GILLOT
f19cd3f2e1
Use TerminatorEdge for dataflow-const-prop.
2023-08-16 18:12:18 +00:00
Camille GILLOT
3acfa092db
Only run MaybeInitializedPlaces once for drop elaboration.
2023-08-16 18:12:18 +00:00
Camille GILLOT
5173d85043
Allow apply_terminator_effect to customize edges.
2023-08-16 18:12:17 +00:00
Camille GILLOT
32711b2b4e
Introduce MaybeUnreachable.
2023-08-16 18:12:17 +00:00
Camille GILLOT
934a99eb65
Move domain_size to GenKillAnalysis.
2023-08-16 18:12:17 +00:00
Camille GILLOT
8726cbc75f
Move initialization dataflow impls into their own module.
2023-08-16 18:12:17 +00:00
Camille GILLOT
760881b29d
Create bottom on-the-fly instead of cloning it.
2023-08-16 18:12:17 +00:00
Camille GILLOT
9c97abd54c
Simplify for_each_mut_borrow.
2023-08-16 18:12:17 +00:00
Matthias Krüger
13de583583
Rollup merge of #114505 - ouz-a:cleanup_mir, r=RalfJung
...
Add documentation to has_deref
Documentation of `has_deref` needed some polish to be more clear about where it should be used and what's it's purpose.
cc https://github.com/rust-lang/rust/issues/114401
r? `@RalfJung`
2023-08-06 17:26:29 +02:00
ouz-a
6df546281b
cleanup misinformation regarding has_deref
2023-08-06 17:29:09 +03:00
Michael Goulet
99969d282b
Use upvar_tys in more places, make it a list
2023-08-01 23:19:31 +00:00
Matthias Krüger
3ce90b1649
inline format!() args up to and including rustc_codegen_llvm
2023-07-30 14:22:50 +02:00
Camille GILLOT
f5feb3e3ca
Turn copy into moves during DSE.
2023-07-19 09:59:12 +00:00
Mahdi Dibaiee
e55583c4b8
refactor(rustc_middle): Substs -> GenericArg
2023-07-14 13:27:35 +01:00
Mark Rousskov
cc907f80b9
Re-format let-else per rustfmt update
2023-07-12 21:49:27 -04:00
bors
5b733e2bca
Auto merge of #113316 - DrMeepster:underefer_perf, r=oli-obk
...
Rewrite `UnDerefer`, again
This PR is intended to improve the perf regression introduced by #112882 .
`UnDerefer` has been separated out again for borrowck reasons. It was a bit overzealous to remove it in the previous PR.
r? `@oli-obk`
2023-07-11 06:52:53 +00:00
DrMeepster
b0dbd60040
optimization round 2
...
- moved work from `find_local` to `gather_statement`
- created custom iterator for `iter_projections`
- reverted change from `IndexVec` to `FxIndexMap`
2023-07-10 20:46:01 -07:00