Jubilee Young
7086dd83cc
compiler: rustc_abi::Abi => BackendRepr
...
The initial naming of "Abi" was an awful mistake, conveying wrong ideas
about how psABIs worked and even more about what the enum meant.
It was only meant to represent the way the value would be described to
a codegen backend as it was lowered to that intermediate representation.
It was never meant to mean anything about the actual psABI handling!
The conflation is because LLVM typically will associate a certain form
with a certain ABI, but even that does not hold when the special cases
that actually exist arise, plus the IR annotations that modify the ABI.
Reframe `rustc_abi::Abi` as the `BackendRepr` of the type, and rename
`BackendRepr::Aggregate` as `BackendRepr::Memory`. Unfortunately, due to
the persistent misunderstandings, this too is now incorrect:
- Scattered ABI-relevant code is entangled with BackendRepr
- We do not always pre-compute a correct BackendRepr that reflects how
we "actually" want this value to be handled, so we leave the backend
interface to also inject various special-cases here
- In some cases `BackendRepr::Memory` is a "real" aggregate, but in
others it is in fact using memory, and in some cases it is a scalar!
Our rustc-to-backend lowering code handles this sort of thing right now.
That will eventually be addressed by lifting duplicated lowering code
to either rustc_codegen_ssa or rustc_target as appropriate.
2024-10-29 14:56:00 -07:00
Jubilee Young
4839d6e6e5
compiler: Add rustc_abi dependence to the compiler
...
Depend on rustc_abi in compiler crates that use it indirectly but have
not yet taken on that dependency, and are not entangled in my other PRs.
This leaves an "excise rustc_target" step after the dust settles.
2024-10-27 21:10:58 -07:00
Josh Triplett
ecdc2441b6
"innermost", "outermost", "leftmost", and "rightmost" don't need hyphens
...
These are all standard dictionary words and don't require hyphenation.
2024-10-23 02:45:24 -07:00
Nicholas Nethercote
ba13775319
Merge AnalysisDomain into Analysis.
...
With `GenKillAnalysis` gone, there is no need for them to be separate.
2024-10-14 16:35:47 +11:00
Michael Goulet
c682aa162b
Reformat using the new identifier sorting from rustfmt
2024-09-22 19:11:29 -04:00
Nicholas Nethercote
bed91f5065
Remove unnecessary lifetime in PlaceCollector.
2024-09-09 16:24:06 +10:00
Ralf Jung
35709be02d
rename AddressOf -> RawBorrow inside the compiler
2024-08-18 19:46:53 +02:00
Michael Goulet
c361c924a0
Use assert_matches around the compiler
2024-08-11 12:25:39 -04:00
Nicholas Nethercote
84ac80f192
Reformat use declarations.
...
The previous commit updated `rustfmt.toml` appropriately. This commit is
the outcome of running `x fmt --all` with the new formatting options.
2024-07-29 08:26:52 +10:00
Camille GILLOT
7ac7f135e3
Propagate places through assignments.
2024-07-13 12:02:10 +00:00
Camille GILLOT
76f5bc6a9f
Create mapped places upon seeing them in the body.
2024-07-13 11:54:25 +00:00
Maybe Waffle
484152d562
Support tail calls in mir via TerminatorKind::TailCall
2024-07-07 17:11:04 +02:00
Camille GILLOT
76244d4dbc
Make jump threading state sparse.
2024-07-01 15:41:21 +00:00
Camille GILLOT
1834f5a272
Swap encapsulation of DCP state.
2024-07-01 15:39:59 +00:00
Camille GILLOT
61ede075bf
Stop ICEing on impossible predicates.
2024-06-29 10:42:31 +00:00
Nicholas Nethercote
9287aede31
Remove #[macro_use] extern crate tracing from rustc_mir_dataflow.
2024-05-23 18:02:40 +10:00
Scott McMurray
95c0e5c6a8
Remove Rvalue::CheckedBinaryOp
2024-05-17 20:33:02 -07:00
Nicholas Nethercote
99e036bd21
Remove extern crate rustc_middle from numerous crates.
2024-04-29 14:50:45 +10:00
Michael Goulet
ff0c31e6b9
Programmatically convert some of the pat ctors
2024-03-22 11:13:29 -04:00
Michael Goulet
c98d6994a3
More comments, final tweaks
2024-02-06 02:22:58 +00:00
Michael Goulet
a82bae2172
Teach typeck/borrowck/solvers how to deal with async closures
2024-02-06 02:22:58 +00:00
Matthias Krüger
8479945c08
NFC don't convert types to identical types
2023-12-15 23:56:24 +01:00
Michael Goulet
079a2e865f
is_{some,ok}_and
2023-11-25 18:47:16 +00:00
Nicholas Nethercote
a65e68a43b
Remove unnecessary things from State and Map.
2023-11-23 18:49:58 +11:00
Nicholas Nethercote
b8d340db14
Remove unnecessary ValueAnalysisWrapper::Direction.
...
`Forward` is the default.
2023-11-23 15:29:26 +11:00
Nicholas Nethercote
64a8c4ddda
Reduce pub usage.
2023-11-23 15:29:24 +11:00
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
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
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
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
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
388f6a6413
Make TerminatorEdge plural.
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
5173d85043
Allow apply_terminator_effect to customize edges.
2023-08-16 18:12:17 +00:00
ouz-a
6df546281b
cleanup misinformation regarding has_deref
2023-08-06 17:29:09 +03:00
Matthias Krüger
3ce90b1649
inline format!() args up to and including rustc_codegen_llvm
2023-07-30 14:22:50 +02:00
Mahdi Dibaiee
e55583c4b8
refactor(rustc_middle): Substs -> GenericArg
2023-07-14 13:27:35 +01:00
Jason Newcomb
eaddc37075
Take MIR dataflow analyses by mutable reference.
2023-05-18 17:46:39 -04:00
Camille GILLOT
ccc1da247b
Prevent stack overflow.
2023-05-09 17:27:58 +00:00
Camille GILLOT
2aa1c23fed
Add a few comments.
2023-05-09 17:27:58 +00:00
Camille GILLOT
79c073746b
Do not flood on copy_nonoverlapping.
2023-05-09 17:27:58 +00:00