Camille Gillot
53b91ea87f
Remove Rvalue::Len.
2025-09-16 22:23:19 +00:00
Boxy
e379c77586
erase_regions to erase_and_anonymize_regions
2025-09-09 14:49:16 +02:00
Kivooeo
b8eb046e6e
use let chains in mir, resolve, target
2025-07-28 06:10:36 +05:00
dianqk
24e553e6bc
mir: Use the new method for BasicBlockData
2025-06-29 20:39:13 +08:00
dianqk
9f9cd5e283
mir: Add a new method to statement
...
Avoid introducing a large number of changes when adding optional initialization fields.
2025-06-29 20:13:36 +08:00
Yotam Ofek
4b63362f3d
Use newtype_index!-generated types more idiomatically
2025-04-14 16:17:06 +00:00
bjorn3
1fcae03369
Rustfmt
2025-02-08 22:12:13 +00:00
Felix S. Klock II
bcb8565f30
Contracts core intrinsics.
...
These are hooks to:
1. control whether contract checks are run
2. allow 3rd party tools to intercept and reintepret the results of running contracts.
2025-02-03 12:53:57 -08:00
Michael Goulet
fc1a9186dc
Implement MIR, CTFE, and codegen for unsafe binders
2025-01-31 17:19:53 +00:00
clubby789
7a9661d768
Disable non-required MIR opts with optimize(none)
...
Co-authored-by: Waffle Lapkin <waffle.lapkin@gmail.com>
2025-01-23 17:40:41 +00:00
Rémy Rakic
ca1c17c88d
Revert "Auto merge of #134330 - scottmcm:no-more-rvalue-len, r=matthewjasper"
...
This reverts commit e108481f74ff123ad98a63bd107a18d13035b275, reversing
changes made to 303e8bd768526a5812bb1776e798e829ddb7d3ca.
2025-01-18 22:09:34 +00:00
Scott McMurray
5ba54c9e31
Delete Rvalue::Len
...
Everything's moved to `PtrMetadata` instead.
2024-12-22 06:12:39 -08:00
lcnr
9cba14b95b
use TypingEnv when no infcx is available
...
the behavior of the type system not only depends on the current
assumptions, but also the currentnphase of the compiler. This is
mostly necessary as we need to decide whether and how to reveal
opaque types. We track this via the `TypingMode`.
2024-11-18 10:38:56 +01:00
Ralf Jung
8849ac6042
tcx.is_const_fn doesn't work the way it is described, remove it
...
Then we can rename the _raw functions to drop their suffix, and instead
explicitly use is_stable_const_fn for the few cases where that is really what
you want.
2024-10-25 20:52:39 +02:00
Michael Goulet
e83e4e8112
Get rid of const eval_* and try_eval_* helpers
2024-10-19 18:07:35 +00:00
Michael Goulet
c682aa162b
Reformat using the new identifier sorting from rustfmt
2024-09-22 19:11:29 -04:00
Nicholas Nethercote
51e1c3958d
Add a useful comment about PromoteTemps.
...
This was non-obvious to me.
2024-09-10 08:54:45 +10:00
Nicholas Nethercote
8235af07d2
Improve comment formatting.
...
By reflowing comment lines that are too long, and a few that are very
short. Plus some other very minor formatting tweaks.
2024-09-10 08:42:30 +10:00
Nicholas Nethercote
6af470e360
Reduce visibilities, and add warn(unreachable_pub).
...
Lots of unnecessary `pub`s in this crate. Most are downgraded to
`pub(super)`, though some don't need any visibility.
2024-09-09 08:48:09 +10:00
Matthias Krüger
4ed0f0d384
Rollup merge of #129926 - nnethercote:mv-SanityCheck-and-MirPass, r=cjgillot
...
Move `SanityCheck` and `MirPass`
They are currently in `rustc_middle`. This PR moves them to `rustc_mir_transform`, which makes more sense.
r? ``@cjgillot``
2024-09-03 19:13:27 +02:00
Nicholas Nethercote
2aae619edb
Move MirPass to rustc_mir_transform.
...
Because that's now the only crate that uses it.
Moving stuff out of `rustc_middle` is always welcome.
I chose to use `impl crate::MirPass`/`impl crate::MirLint` (with
explicit `crate::`) everywhere because that's the only mention of
`MirPass`/`MirLint` used in all of these files. (Prior to this change,
`MirPass` was mostly imported via `use rustc_middle::mir::*` items.)
2024-09-03 16:03:46 +10:00
Alexander Cyon
00de006f22
chore: Fix typos in 'compiler' (batch 2)
2024-09-02 07:50:22 +02:00
Nicholas Nethercote
ed5161c5ac
Remove #[macro_use] extern crate tracing from rustc_mir_transform.
2024-08-30 10:01:34 +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
Ralf Jung
6d312d7bd1
MIR required_consts, mentioned_items: ensure we do not forget to fill these lists
2024-08-01 15:49:25 +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
hattizai
ada9fda7c3
chore: remove duplicate words
2024-07-02 11:25:31 +08:00
bors
5ced3dad57
Auto merge of #125853 - tesuji:promote-fail-fast, r=cjgillot
...
promote_consts: some clean-up after experimenting
This is some clean-up after experimenting in #125916 ,
Prefer to review commit-by-commit.
2024-06-21 16:00:14 +00:00
Lzu Tao
62a287528a
Reuse allocation for Vec<Candidate>
2024-06-21 13:51:33 +00:00
Lzu Tao
c03659443a
promote_consts: eargerly return when there are no candidates
...
There is no need to do it when mustn't.
2024-06-16 09:39:42 +00:00
Lzu Tao
28708912fb
prefer tracing::instrument over debug strings
2024-06-16 09:39:42 +00:00
Ralf Jung
ed1618dedc
MIR visitor: constant -> const_operand
2024-06-13 15:37:13 +02:00
Ralf Jung
3c57ea0df7
ScalarInt: size mismatches are a bug, do not delay the panic
2024-06-10 13:43:16 +02:00
Scott McMurray
459ce3f6bb
Add an intrinsic for ptr::metadata
2024-05-28 09:28:51 -07:00
Jubilee Young
87048a46fc
compiler: unnest rustc_const_eval::check_consts
2024-05-24 09:56:56 -07:00
Scott McMurray
95c0e5c6a8
Remove Rvalue::CheckedBinaryOp
2024-05-17 20:33:02 -07:00
Nicholas Nethercote
d49d4ae192
Remove extern crate rustc_middle from rustc_mir_transform.
2024-05-13 08:20:18 +10:00
Ralf Jung
173d1bd36b
properly fill a promoted's required_consts
...
then we can also make all_required_consts_are_checked a constant instead of a function
2024-04-23 23:02:54 +02:00
Ralf Jung
b2b617a88e
compute required_consts before promotion, and add promoteds that may fail
2024-04-23 22:52:43 +02:00
Ralf Jung
7183fa09bb
promotion: do not promote const-fn calls in const when that may fail without the entire const failing
2024-04-23 22:52:43 +02:00
Nadrieril
50531806ee
Add a non-shallow fake borrow
2024-04-20 16:01:35 +02:00
Ralf Jung
42220f0930
ScalarInt: add methods to assert being a (u)int of given size
2024-04-19 13:51:52 +02:00
joboet
989660c3e6
rename expose_addr to expose_provenance
2024-04-03 16:00:38 +02:00
Scott McMurray
3da115a93b
Add+Use mir::BinOp::Cmp
2024-03-23 23:23:41 -07:00
Ralf Jung
6177530420
refactor check_{lang,library}_ub: use a single intrinsic, put policy into library
2024-03-23 18:45:05 +01:00
Michael Goulet
ff0c31e6b9
Programmatically convert some of the pat ctors
2024-03-22 11:13:29 -04:00
Michael Goulet
f0f224a37f
Ty::new_ref and Ty::new_ptr stop using TypeAndMut
2024-03-22 11:13:27 -04:00
Ben Kimock
5a93a59fd5
Distinguish between library and lang UB in assert_unsafe_precondition
2024-03-08 18:53:58 -05:00
Ralf Jung
f32095cd8d
promotion: don't promote int::MIN / -1
2024-02-24 12:17:37 +01:00