Michael Goulet
19c84c8812
Move codec module back into middle
2025-03-15 06:42:48 +00:00
bors
52daa7d835
Auto merge of #137152 - saethlin:bss-const-allocs, r=wesleywiser
...
Add a .bss-like scheme for encoded const allocs
This check if all bytes are zero feel like it should be too slow, and instead we should have a flag that we track, but that seems hard. Let's see how this perfs first.
Also we can probably stash the "it's all zero actually" flag inside one of the other struct members that's already not using an entire byte. This optimization doesn't fire all that often, so it's possible that by sticking it in the varint length field, this PR actually makes rmeta size worse.
2025-03-13 16:41:22 +00:00
Ralf Jung
3846f94230
miri native_calls: ensure we actually expose *mutable* provenance to the memory FFI can access
2025-03-11 14:34:21 +01:00
Michael Goulet
d21fc9d4f1
Rollup merge of #137920 - RalfJung:provenance-map-emptiness, r=oli-obk
...
interpret/provenance_map: consistently use range_is_empty
https://github.com/rust-lang/rust/pull/137704 started using this for per-ptr provenance; let's be consistent and use it also for the per-byte provenance check. Also rename the methods to avoid having both "get" and "is_empty" in the name.
r? ````@oli-obk````
2025-03-06 12:22:27 -05:00
Ralf Jung
0aacfe9d91
interpret/provenance_map: consistently use range_is_empty
2025-03-03 08:15:03 +01:00
Michael Goulet
a59a8f9e75
Revert "Auto merge of #135335 - oli-obk:push-zxwssomxxtnq, r=saethlin"
...
This reverts commit a7a6c64a65
, reversing
changes made to ebbe63891f
.
2025-03-02 18:52:48 +00:00
Ben Kimock
b75b67fa4a
Add a .bss-like scheme for encoded const allocs
2025-02-19 12:02:36 -05:00
bjorn3
1fcae03369
Rustfmt
2025-02-08 22:12:13 +00:00
SpecificProtagonist
eee9df43e6
miri: optimize zeroed alloc
...
Co-authored-by: Ralf Jung <post@ralfj.de>
2025-01-28 12:50:02 +01:00
Oli Scherer
8876cf7181
Also generate undef scalars and scalar pairs
2025-01-21 08:22:15 +00:00
Strophox
712ceaba35
extend Miri to correctly pass mutable pointers through FFI
...
Co-authored-by: Ralf Jung <post@ralfj.de>
2024-12-05 22:41:07 +01:00
Jubilee Young
236fe33345
compiler: Directly use rustc_abi in metadata and middle
...
Stop reexporting ReprOptions from middle::ty
2024-11-03 13:38:47 -08:00
Ralf Jung
eea74be5c1
interpret errors: add map_err_kind, rename InterpError -> InterpErrorKind
2024-10-19 09:22:38 +02:00
Ralf Jung
c4ce8c114b
make InterpResult a dedicated type to avoid accidentally discarding the error
2024-10-01 21:45:35 +02:00
Michael Goulet
c682aa162b
Reformat using the new identifier sorting from rustfmt
2024-09-22 19:11:29 -04:00
Stuart Cook
3ba12756d3
Rollup merge of #130235 - compiler-errors:nested-if, r=michaelwoerister
...
Simplify some nested `if` statements
Applies some but not all instances of `clippy::collapsible_if`. Some ended up looking worse afterwards, though, so I left those out. Also applies instances of `clippy::collapsible_else_if`
Review with whitespace disabled please.
2024-09-12 20:37:16 +10:00
Jubilee
a31a8fe0cf
Rollup merge of #130114 - eduardosm:needless-returns, r=compiler-errors
...
Remove needless returns detected by clippy in the compiler
2024-09-11 15:53:22 -07:00
Michael Goulet
954419aab0
Simplify some nested if statements
2024-09-11 13:45:23 -04:00
Eduardo Sánchez Muñoz
0b20ffcb63
Remove needless returns detected by clippy in the compiler
2024-09-09 13:32:22 +02:00
Ralf Jung
cbdcbf0d6a
interpret: reset provenance on typed copies
2024-09-08 16:53:23 +02:00
Strophox
7fde02ea53
enable Miri to pass const pointers through FFI
...
Co-authored-by: Ralf Jung <post@ralfj.de>
2024-08-30 16:05:53 +02:00
Ralf Jung
58dcd1c2e6
use the new Box methods in the interpreter
2024-08-14 14:32:17 +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
Strophox
b512bf6f77
add as_ptr to trait AllocBytes, fix 2 impls; add pub fn get_bytes_unchecked_raw in allocation.rs; add pub fn get_alloc_bytes_unchecked_raw[_mut] in memory.rs
2024-06-21 12:50:24 +02:00
Ralf Jung
eefb3ac8af
interpret: better error when we ran out of memory
2024-06-17 12:04:52 +02:00
Ralf Jung
869306418d
miri: avoid making a full copy of all new allocations
2024-05-27 23:33:54 +02:00
Strophox
38181cba79
remove trait bounds on AllocBytes
2024-05-03 15:00:37 +02:00
Strophox
235770c851
Cow::from(&*...) changed to Cow::Owned(Vec::from(...))
2024-05-03 13:47:16 +02:00
Strophox
47e2cc2ea1
generalize adjust_from_tcx
2024-05-03 13:47:16 +02:00
Nicholas Nethercote
6ce258f657
Remove extern crate rustc_macros
from rustc_middle
.
2024-04-29 11:19:16 +10:00
Ralf Jung
7be47b219d
interpret/allocation: fix aliasing issue in interpreter and refactor getters a bit
...
- rename mutating functions to be more scary
- add a new raw bytes getter
2024-03-15 15:58:37 +01:00
Nicholas Nethercote
2ea7a37e11
Add DiagCtxt::delayed_bug
.
...
We have `span_delayed_bug` and often pass it a `DUMMY_SP`. This commit
adds `delayed_bug`, which matches pairs like `err`/`span_err` and
`warn`/`span_warn`.
2024-01-10 07:33:07 +11:00
Nicholas Nethercote
99472c7049
Remove Session
methods that duplicate DiagCtxt
methods.
...
Also add some `dcx` methods to types that wrap `TyCtxt`, for easier
access.
2023-12-24 08:05:28 +11:00
Ralf Jung
cb86303342
ctfe interpreter: extend provenance so that it can track whether a pointer is immutable
2023-12-07 17:46:36 +01:00
Nicholas Nethercote
5d1d384443
Rename HandlerInner::delay_span_bug
as HandlerInner::span_delayed_bug
.
...
Because the corresponding `Level` is `DelayedBug` and `span_delayed_bug`
follows the pattern used everywhere else: `span_err`, `span_warning`,
etc.
2023-12-02 09:01:19 +11:00
Ralf Jung
9c417a4ad4
interpret: clean up AllocBytes
2023-10-14 12:29:16 +02:00
ouz-a
c41339a52f
Convert Const to Allocation in smir
2023-08-09 15:00:00 +03:00
Ralf Jung
7767cbb3b0
const validation: point at where we found a pointer but expected an integer
2023-08-02 18:51:50 +02:00
Ralf Jung
d127600511
add some sanity checks in write_immediate_no_validate
2023-07-25 14:30:58 +02:00
Deadbeef
4f83717cf7
Use translatable diagnostics in rustc_const_eval
2023-06-01 14:45:18 +00:00
Nilstrieb
cab94d29ff
fixup! Improve `Allocation::hash
2023-04-09 23:23:33 +02:00
Nilstrieb
6fceb0f645
Improve `Allocation::hash
...
Exhaustively destructure and ignore `()`
2023-04-09 23:22:14 +02:00
Rémy Rakic
a857ba25f9
address review comments
...
Move tests and limit the init mask's structures/fields visibility.
2023-03-28 13:22:01 +00:00
Rune Tynan
f26b0a2948
Format
2023-03-01 20:27:03 -05:00
Rune Tynan
3a87a18857
Make zeroed return an Option
2023-02-28 15:39:17 -05:00
Rune Tynan
936b567d2e
Minimal changes to make miri work
2023-02-20 13:50:20 -05:00
Rune Tynan
871c1dee33
Remove unused lifetime
2023-02-20 13:47:13 -05:00
Rune Tynan
b2455dc91c
Add mentioned from_raw_bytes constructor
2023-02-20 13:47:11 -05:00
Rune Tynan
6f407d67b8
Allow non-Box
allocations in preparation for aligned const allocations for miri. Credit to emarteca for the code.
2023-02-20 13:47:09 -05:00
Oli Scherer
46ba1545b8
Update documentation
2022-11-30 12:17:54 +00:00