Ralf Jung
35709be02d
rename AddressOf -> RawBorrow inside the compiler
2024-08-18 19:46:53 +02:00
Ralf Jung
212417b87f
custom MIR: add support for tail calls
2024-08-05 18:23:14 +02: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
Scott McMurray
b28efb11af
Save 2 pointers in TerminatorKind
(96 → 80 bytes)
...
These things don't need to be `Vec`s; boxed slices are enough.
The frequent one here is call arguments, but MIR building knows the number of arguments from the THIR, so the collect is always getting the allocation right in the first place, and thus this shouldn't ever add the shrink-in-place overhead.
2024-06-21 18:02:05 -07:00
Scott McMurray
55d13379ac
[GVN] Add tests for generic pointees with PtrMetadata
2024-06-20 22:16:59 -07:00
Nicholas Nethercote
5a5e2489c5
Reduce pub
exposure.
...
A lot of errors don't need to be visible outside the crate, and some
other things as well.
2024-06-04 16:55:55 +10:00
Scott McMurray
7150839552
Add custom mir support for PtrMetadata
2024-05-28 09:28:51 -07:00
Scott McMurray
95c0e5c6a8
Remove Rvalue::CheckedBinaryOp
2024-05-17 20:33:02 -07:00
Camille GILLOT
161c674ef0
Add Assume custom MIR.
2024-01-22 23:55:10 +00:00
Martin Nordholts
16ba56c242
compiler: Lower fn call arg spans down to MIR
...
To enable improved accuracy of diagnostics in upcoming commits.
2024-01-15 19:07:11 +01:00
Ralf Jung
0f9baa8a31
custom mir: make it clear what the return block is
2023-12-26 20:15:26 +01:00
Tomasz Miąsko
78da577650
Custom MIR: Support cleanup blocks
...
Cleanup blocks are declared with `bb (cleanup) = { ... }`.
`Call` and `Drop` terminators take an additional argument describing the
unwind action, which is one of the following:
* `UnwindContinue()`
* `UnwindUnreachable()`
* `UnwindTerminate(reason)`, where reason is `ReasonAbi` or `ReasonInCleanup`
* `UnwindCleanup(block)`
Also support unwind resume and unwind terminate terminators:
* `UnwindResume()`
* `UnwindTerminate(reason)`
2023-11-14 08:23:58 +01:00
Ralf Jung
c94410c145
rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const
2023-09-21 08:12:30 +02:00
Ralf Jung
a2374e65aa
the Const::eval_bits methods don't need to be given the Ty
2023-09-20 07:27:21 +02:00
Ralf Jung
5a0a1ff0cd
move ConstValue into mir
...
this way we have mir::ConstValue and ty::ValTree as reasonably parallel
2023-09-19 11:11:02 +02:00
Camille GILLOT
6cec91d647
Support debuginfo for custom MIR.
2023-09-01 16:16:31 +00:00
Ralf Jung
7a6346660e
custom_mir: change Call() terminator syntax to something more readable
2023-08-19 22:41:33 +02:00
Esteban Küber
5021dde1a0
Move scrutinee HirId
into MatchSource::TryDesugar
2023-08-14 21:43:56 +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
Deadbeef
89c24af133
Better error for non const PartialEq
call generated by match
2023-06-18 05:24:38 +00:00
Camille GILLOT
844c1cc5fe
Remove DesugaringKind::Replace.
2023-05-25 17:40:46 +00:00
Andy Wang
c3ab4f28d3
Add CopyForDeref to custom MIR
2023-05-15 12:05:10 +02:00
Andy Wang
cecb901e68
Add Offset binary op to custom mir
2023-04-11 16:23:35 +02:00
Gary Guo
c5829c2ee5
Fix new usage of old api
2023-04-06 09:34:16 +01:00
Scott McMurray
b5b6def021
Use FieldIdx
in various things related to aggregates
...
Shrank `AggregateKind` by 8 bytes on x64, since the active field of a union is tracked as an `Option<FieldIdx>` instead of `Option<usize>`.
2023-04-01 20:32:50 -07:00
Scott McMurray
5bbaeadc01
Move mir::Field
→ abi::FieldIdx
...
The first PR for https://github.com/rust-lang/compiler-team/issues/606
This is just the move-and-rename, because it's plenty big-and-bitrotty already. Future PRs will start using `FieldIdx` more broadly, and concomitantly removing `FieldIdx::new`s.
2023-03-28 22:22:37 -07:00
Scott McMurray
64cce5fc7d
Add CastKind::Transmute
to MIR
...
Updates `interpret`, `codegen_ssa`, and `codegen_cranelift` to consume the new cast instead of the intrinsic.
Includes `CastTransmute` for custom MIR building, to be able to test the extra UB.
2023-03-22 15:15:41 -07:00
Andy Wang
f404f33c21
Use builtin_index instead of match
...
Co-authored-by: Oli Scherer <github35764891676564198441@oli-obk.de>
2023-03-20 16:27:44 +01:00
Andy Wang
8e4e55e524
Support aggregate expressions
2023-03-20 15:25:11 +01:00
Matthias Krüger
4e84fbf8a0
Rollup merge of #108856 - Zeegomo:remove-drop-and-rep, r=tmiasko
...
Remove DropAndReplace terminator
#107844 made DropAndReplace unused, let's remove it completely from the codebase.
2023-03-08 21:26:51 +01:00
Giacomo Pasini
c5d4e4d907
Remove DropAndReplace terminator
...
PR 107844 made DropAndReplace unused, let's remove it completely
from the codebase.
2023-03-07 14:25:22 +01:00
Andy Wang
7281cd0c21
Custom MIR: Support as casts
2023-03-07 11:42:34 +01:00
Jakob Degen
d7f59e91e0
Custom mir: Add support for some remaining, easy to support constructs
2023-01-26 03:29:28 -08:00
Matthias Krüger
f3644ca64d
Rollup merge of #107085 - tmiasko:custom-mir-operators, r=oli-obk
...
Custom MIR: Support binary and unary operations
Lower binary and unary operations directly to corresponding unchecked MIR
operations. Ultimately this might not be syntax we want, but it allows for
experimentation in the meantime.
r? ````@oli-obk```` ````@JakobDegen````
2023-01-26 06:15:24 +01:00
Tomasz Miąsko
d3cfe97a8a
Custom MIR: Support binary and unary operations
2023-01-19 22:00:33 +01:00
Tomasz Miąsko
ca3d55e32d
Custom MIR: Support storage statements
2023-01-19 11:53:33 +01:00
Jakob Degen
cb2c7bb833
Clarify that raw retags are not permitted in Mir
2022-12-21 10:32:01 -08:00
Matthias Krüger
3af7df91fc
use &str / String literals instead of format!()
2022-12-18 16:17:46 +01:00
Jakob Degen
3d849ae44c
Support call and drop terminators in custom mir
2022-12-16 22:26:33 -08:00
Jakob Degen
e59839454d
Support more projections in custom mir
2022-12-14 01:10:19 -08:00
Jakob Degen
409f4d2adb
Support common enum operations in custom mir
2022-12-14 01:10:16 -08:00
Jakob Degen
52ce1f7697
Support statics in custom mir
2022-11-29 19:27:26 -08:00
Jakob Degen
7578100317
Support most constant kinds in custom mir
2022-11-29 19:26:04 -08:00
Jakob Degen
ba359d8a51
Add support for custom MIR parsing
2022-11-08 23:13:15 -08:00