| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2024-09-30 | panic when an interpreter error gets unintentionally discarded | Ralf Jung | -1/+3 | |
| 2024-09-22 | Reformat using the new identifier sorting from rustfmt | Michael Goulet | -1/+1 | |
| 2024-09-16 | layout computation: eagerly error for unexpected unsized fields | Lukas Markeffsky | -3/+5 | |
| 2024-09-16 | make `LayoutCx` not generic | Lukas Markeffsky | -2/+2 | |
| 2024-09-08 | clarify comments and names in check_validity_requirement | Ralf Jung | -9/+11 | |
| 2024-09-08 | interpret: reset padding during validation | Ralf Jung | -1/+1 | |
| 2024-09-08 | interpret: reset provenance on typed copies | Ralf Jung | -4/+8 | |
| 2024-08-14 | Auto merge of #128812 - nnethercote:shrink-TyKind-FnPtr, r=compiler-errors | bors | -1/+1 | |
| Shrink `TyKind::FnPtr`. By splitting the `FnSig` within `TyKind::FnPtr` into `FnSigTys` and `FnHeader`, which can be packed more efficiently. This reduces the size of the hot `TyKind` type from 32 bytes to 24 bytes on 64-bit platforms. This reduces peak memory usage by a few percent on some benchmarks. It also reduces cache misses and page faults similarly, though this doesn't translate to clear cycles or wall-time improvements on CI. r? `@compiler-errors` | ||||
| 2024-08-09 | Shrink `TyKind::FnPtr`. | Nicholas Nethercote | -1/+1 | |
| By splitting the `FnSig` within `TyKind::FnPtr` into `FnSigTys` and `FnHeader`, which can be packed more efficiently. This reduces the size of the hot `TyKind` type from 32 bytes to 24 bytes on 64-bit platforms. This reduces peak memory usage by a few percent on some benchmarks. It also reduces cache misses and page faults similarly, though this doesn't translate to clear cycles or wall-time improvements on CI. | ||||
| 2024-08-08 | Rename struct_tail_erasing_lifetimes to struct_tail_for_codegen | Michael Goulet | -1/+1 | |
| 2024-08-08 | Normalize struct tail properly in disalignment check | Michael Goulet | -1/+1 | |
| 2024-08-06 | pass the right `ParamEnv` to `might_permit_raw_init_strict` | y21 | -5/+5 | |
| 2024-08-03 | Miri: add a flag to do recursive validity checking | Ralf Jung | -1/+1 | |
| 2024-07-29 | Reformat `use` declarations. | Nicholas Nethercote | -8/+5 | |
| The previous commit updated `rustfmt.toml` appropriately. This commit is the outcome of running `x fmt --all` with the new formatting options. | ||||
| 2024-06-13 | rename CompileTimeInterpreter -> CompileTimeMachine, CompileTimeEvalContext ↵ | Ralf Jung | -4/+4 | |
| -> CompileTimeInterpCx to match the terms used in the shared interpreter infrastructure | ||||
| 2024-05-27 | interpret: get rid of 'mir lifetime everywhere | Ralf Jung | -2/+2 | |
| 2024-05-23 | Remove `#[macro_use] extern crate tracing` from `rustc_const_eval`. | Nicholas Nethercote | -0/+2 | |
| 2024-05-17 | Remove `Rvalue::CheckedBinaryOp` | Scott McMurray | -3/+6 | |
| 2024-05-13 | Remove `extern crate rustc_middle` from `rustc_const_eval`. | Nicholas Nethercote | -0/+3 | |
| This requires exporting the interpreter macros so they can be used with `use crate::interpret::*`. | ||||
| 2024-05-09 | Make builtin_deref just return a Ty | Michael Goulet | -1/+1 | |
| 2024-04-08 | Actually create ranged int types in the type system. | Oli Scherer | -0/+1 | |
| 2024-03-23 | Add+Use `mir::BinOp::Cmp` | Scott McMurray | -2/+2 | |
| 2024-03-22 | Programmatically convert some of the pat ctors | Michael Goulet | -1/+1 | |
| 2024-03-02 | Rollup merge of #121731 - oli-obk:eager_opaque_checks, r=compiler-errors | Guillaume Boisseau | -22/+3 | |
| Now that inlining, mir validation and const eval all use reveal-all, we won't be constraining hidden types here anymore r? `@compiler-errors` one bubble down, two more to go the test is unrelated, just something I noticed would be good to test in both the old solver and the new. | ||||
| 2024-02-28 | Now that inlining, mir validation and const eval all use reveal-all, we ↵ | Oli Scherer | -22/+3 | |
| won't be constraining hidden types here anymore | ||||
| 2024-02-27 | Split rustc_type_ir to avoid rustc_ast from depending on it | Oli Scherer | -2/+1 | |
| 2024-02-21 | make it possible for outside crates to inspect a mir::ConstValue with the ↵ | Ralf Jung | -2/+7 | |
| interpreter | ||||
| 2024-02-10 | unstably allow constants to refer to statics and read from immutable statics | Ralf Jung | -4/+4 | |
| 2024-02-06 | Add CoroutineClosure to TyKind, AggregateKind, UpvarArgs | Michael Goulet | -0/+1 | |
| 2024-01-25 | Auto merge of #119627 - oli-obk:const_prop_lint_n̵o̵n̵sense, r=cjgillot | bors | -2/+2 | |
| Remove all ConstPropNonsense We track all locals and projections on them ourselves within the const propagator and only use the InterpCx to actually do some low level operations or read from constants (via `OpTy` we get for said constants). This helps moving the const prop lint out from the normal pipeline and running it just based on borrowck information. This in turn allows us to make progress on https://github.com/rust-lang/rust/pull/108730#issuecomment-1875557745 there are various follow up cleanups that can be done after this PR (e.g. not matching on Rvalue twice and doing binop checks twice), but lets try landing this one first. r? `@RalfJung` | ||||
| 2024-01-23 | partially inline `eval_rvalue_into_place` for const prop lint | Oli Scherer | -2/+2 | |
| 2024-01-22 | const-eval interner: from-scratch rewrite using mutability information from ↵ | Ralf Jung | -0/+1 | |
| provenance rather than types | ||||
| 2023-12-28 | Remove movability from TyKind::Coroutine | Michael Goulet | -1/+1 | |
| 2023-12-10 | Revert "Don't print host effect param in pretty path_generic_args" | Deadbeef | -1/+0 | |
| This reverts commit f1bf874fb13703d706fc8184407c6df12555d8e9. | ||||
| 2023-12-09 | Don't print host effect param in pretty path_generic_args | Michael Goulet | -0/+1 | |
| 2023-10-31 | Turn const_caller_location from a query to a hook | Oli Scherer | -5/+8 | |
| 2023-10-28 | interpret: call caller_location logic the same way codegen does, and share ↵ | Ralf Jung | -0/+64 | |
| some code | ||||
| 2023-10-21 | Make `ty::print::Printer` take `&mut self` instead of `self` | Nilstrieb | -37/+39 | |
| This simplifies the code by removing all the `self` assignments and makes the flow of data clearer - always into the printer. Especially in v0 mangling, which already used `&mut self` in some places, it gets a lot more uniform. | ||||
| 2023-10-20 | s/Generator/Coroutine/ | Oli Scherer | -2/+2 | |
| 2023-10-17 | Remove `Print::Error` | Nilstrieb | -1/+1 | |
| All printing goes through `fmt::Error` now. | ||||
| 2023-10-17 | Remove `Printer::Error` | Nilstrieb | -19/+17 | |
| It's always a `fmt::Error` except in some cases where it was `!`, but we're not really winning anything in that case. | ||||
| 2023-10-17 | Remove `Print::Output` | Nilstrieb | -1/+1 | |
| Now that `Printer` doesn't have subprinters anymore, the output of a printing operation is always the same. | ||||
| 2023-10-17 | Remove "subprinter" types from `Printer` | Nilstrieb | -18/+12 | |
| These are `Self` in almost all printers except one, which can just store the state as a field instead. This simplifies the printer and allows for further simplifications, for example using `&mut self` instead of passing around the printer. | ||||
| 2023-10-07 | Auto merge of #115583 - RalfJung:packed-unsized, r=lcnr | bors | -1/+9 | |
| fix detecting references to packed unsized fields Fixes https://github.com/rust-lang/rust/issues/115396 This is a breaking change, but permitted as a soundness fix. | ||||
| 2023-10-02 | have better explanation for `relate_types` | ouz-a | -3/+3 | |
| 2023-10-02 | change is_subtype to relate_types | ouz-a | -5/+11 | |
| 2023-09-23 | Remove GeneratorWitness and rename GeneratorWitnessMIR. | Camille GILLOT | -2/+1 | |
| 2023-09-06 | still accept references to u8 slices and str in packed fields | Ralf Jung | -2/+8 | |
| 2023-09-05 | fix detecting references to packed unsized fields | Ralf Jung | -1/+3 | |
| 2023-09-04 | interpret: make MemPlace, Place, Operand types private to the interpreter | Ralf Jung | -1/+1 | |
