| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2024-04-23 | Merge commit 'de5d6523738fd44a0521b6abf3e73ae1df210741' into ↵ | bjorn3 | -1/+9 | |
| sync_cg_clif-2024-04-23 | ||||
| 2024-04-21 | Also handle AggregateKind::RawPtr in cg_cranelift | Scott McMurray | -0/+13 | |
| 2024-04-11 | Merge commit '89f54caacf90e99fc8ba0d60a28bdadea3cfdf1e' into ↵ | bjorn3 | -1/+10 | |
| sync_cg_clif-2024-04-11 | ||||
| 2024-04-07 | Only traverse mono-reachable blocks in cg_clif | Ben Kimock | -1/+1 | |
| 2024-04-06 | Put checks that detect UB under their own flag below debug_assertions | Ben Kimock | -1/+1 | |
| 2024-04-03 | rename `expose_addr` to `expose_provenance` | joboet | -1/+1 | |
| 2024-04-02 | Rollup merge of #122935 - RalfJung:with-exposed-provenance, r=Amanieu | Jacob Pratt | -1/+1 | |
| rename ptr::from_exposed_addr -> ptr::with_exposed_provenance As discussed on [Zulip](https://rust-lang.zulipchat.com/#narrow/stream/136281-t-opsem/topic/To.20expose.20or.20not.20to.20expose/near/427757066). The old name, `from_exposed_addr`, makes little sense as it's not the address that is exposed, it's the provenance. (`ptr.expose_addr()` stays unchanged as we haven't found a better option yet. The intended interpretation is "expose the provenance and return the address".) The new name nicely matches `ptr::without_provenance`. | ||||
| 2024-03-29 | Auto merge of #122671 - Mark-Simulacrum:const-panic-msg, r=Nilstrieb | bors | -16/+8 | |
| Codegen const panic messages as function calls This skips emitting extra arguments at every callsite (of which there can be many). For a librustc_driver build with overflow checks enabled, this cuts 0.7MB from the resulting shared library (see [perf]). A sample improvement from nightly: ``` leaq str.0(%rip), %rdi leaq .Lalloc_d6aeb8e2aa19de39a7f0e861c998af13(%rip), %rdx movl $25, %esi callq *_ZN4core9panicking5panic17h17cabb89c5bcc999E@GOTPCREL(%rip) ``` to this PR: ``` leaq .Lalloc_d6aeb8e2aa19de39a7f0e861c998af13(%rip), %rdi callq *_RNvNtNtCsduqIKoij8JB_4core9panicking11panic_const23panic_const_div_by_zero@GOTPCREL(%rip) ``` [perf]: https://perf.rust-lang.org/compare.html?start=a7e4de13c1785819f4d61da41f6704ed69d5f203&end=64fbb4f0b2d621ff46d559d1e9f5ad89a8d7789b&stat=instructions:u | ||||
| 2024-03-28 | Merge commit '09fae60a86b848a2fc0ad219ecc4e438dc1eef86' into ↵ | bjorn3 | -4/+6 | |
| sync_cg_clif-2024-03-28 | ||||
| 2024-03-23 | move assert_unsafe_preconditions to its own file | Ralf Jung | -1/+1 | |
| These macros and functions are not intrinsics, after all. | ||||
| 2024-03-23 | rename MIR int2ptr casts to match library name | Ralf Jung | -1/+1 | |
| 2024-03-22 | Codegen const panic messages as function calls | Mark Rousskov | -16/+8 | |
| This skips emitting extra arguments at every callsite (of which there can be many). For a librustc_driver build with overflow checks enabled, this cuts 0.7MB from the resulting binary. | ||||
| 2024-03-16 | Handle calls to upstream monomorphizations in compiler_builtins | Ben Kimock | -0/+7 | |
| 2024-03-08 | Distinguish between library and lang UB in assert_unsafe_precondition | Ben Kimock | -1/+1 | |
| 2024-02-24 | Change InlineAsm to allow multiple targets instead | Gary Guo | -2/+14 | |
| 2024-02-08 | Add a new debug_assertions instrinsic (compiler) | Ben Kimock | -0/+9 | |
| And in clippy | ||||
| 2024-01-22 | Do not normalize closure signature when building FnOnce shim | Michael Goulet | -1/+0 | |
| 2023-12-24 | Remove `Session` methods that duplicate `DiagCtxt` methods. | Nicholas Nethercote | -4/+4 | |
| Also add some `dcx` methods to types that wrap `TyCtxt`, for easier access. | ||||
| 2023-12-23 | Rename `EarlyDiagCtxt` methods to match `DiagCtxt`. | Nicholas Nethercote | -1/+1 | |
| - `early_error_no_abort` -> `early_err` - `early_error` -> `early_fatal` - `early_struct_error` -> `early_struct_fatal` | ||||
| 2023-12-19 | Merge commit '3a9bf729322fb5035518f99b9d76a742bf7c124e' into ↵ | bjorn3 | -8/+8 | |
| sync_cg_clif-2023-12-19 | ||||
| 2023-12-18 | Rename many `DiagCtxt` and `EarlyDiagCtxt` locals. | Nicholas Nethercote | -2/+2 | |
| 2023-12-18 | Rename `EarlyErrorHandler` as `EarlyDiagCtxt`. | Nicholas Nethercote | -1/+1 | |
| 2023-11-16 | Merge commit 'def04540a4e2541b995195c752c751295606a388' into ↵ | bjorn3 | -1/+1 | |
| sync_cg_clif-2023-11-16 | ||||
| 2023-10-31 | Support enum variants in offset_of! | George Bateman | -1/+1 | |
| 2023-10-20 | s/Generator/Coroutine/ | Oli Scherer | -1/+1 | |
| 2023-10-09 | Merge commit '81dc066758ec150b43822d4a0c84aae20fe10f40' into ↵ | bjorn3 | -4/+3 | |
| sync_cg_clif-2023-10-09 | ||||
| 2023-10-06 | Rollup merge of #116277 - RalfJung:post-mono, r=oli-obk | Jubilee | -11/+0 | |
| dont call mir.post_mono_checks in codegen It seems like all tests are still passing when I remove this... let's see what CI says. | ||||
| 2023-10-02 | change is_subtype to relate_types | ouz-a | -1/+1 | |
| 2023-10-02 | Add docs, remove code, change subtyper code | ouz-a | -3/+1 | |
| 2023-10-02 | subtyping_projections | ouz-a | -0/+3 | |
| 2023-09-30 | dont call mir.post_mono_checks in codegen | Ralf Jung | -11/+0 | |
| 2023-09-28 | Strip `OpaqueCast` during `RevealAll`. | Oli Scherer | -1/+1 | |
| 2023-09-14 | don't point at const usage site for resolution-time errors | Ralf Jung | -16/+9 | |
| also share the code that emits the actual error | ||||
| 2023-09-14 | move required_consts check to general post-mono-check function | Ralf Jung | -6/+16 | |
| 2023-09-13 | make the eval() functions on our const types return the resulting value | Ralf Jung | -5/+2 | |
| 2023-08-24 | when terminating during unwinding, show the reason why | Ralf Jung | -4/+5 | |
| 2023-08-20 | give some unwind-related terminators a more clear name | Ralf Jung | -2/+2 | |
| 2023-07-22 | Merge commit '1eded3619d0e55d57521a259bf27a03906fdfad0' into ↵ | bjorn3 | -2/+18 | |
| sync_cg_clif-2023-07-22 | ||||
| 2023-07-14 | refactor(rustc_middle): Substs -> GenericArg | Mahdi Dibaiee | -5/+5 | |
| 2023-07-07 | Rename `adjustment::PointerCast` and variants using it to `PointerCoercion` | Nilstrieb | -7/+11 | |
| It makes it sound like the `ExprKind` and `Rvalue` are supposed to represent all pointer related casts, when in reality their just used to share a some enum variants. Make it clear there these are only coercion to make it clear why only some pointer related "casts" are in the enum. | ||||
| 2023-07-05 | Move `TyCtxt::mk_x` to `Ty::new_x` where applicable | Boxy | -2/+2 | |
| 2023-07-05 | Deal with fallout | Boxy | -1/+0 | |
| 2023-06-18 | Better error for non const `PartialEq` call generated by `match` | Deadbeef | -1/+1 | |
| 2023-06-15 | Merge commit '8830dccd1d4c74f1f69b0d3bd982a3f1fcde5807' into ↵ | bjorn3 | -0/+1 | |
| sync_cg_clif-2023-06-15 | ||||
| 2023-05-25 | Remove DesugaringKind::Replace. | Camille GILLOT | -1/+1 | |
| 2023-05-24 | Use `is_some_and`/`is_ok_and` in less obvious spots | Maybe Waffle | -4/+4 | |
| 2023-05-16 | Remove `LangItems::require` | Nilstrieb | -5/+1 | |
| It's just a short wrapper used by `tcx.require_lang_item`. Deleting it gives us a negative diff. | ||||
| 2023-05-03 | Restrict `From<S>` for `{D,Subd}iagnosticMessage`. | Nicholas Nethercote | -2/+2 | |
| Currently a `{D,Subd}iagnosticMessage` can be created from any type that impls `Into<String>`. That includes `&str`, `String`, and `Cow<'static, str>`, which are reasonable. It also includes `&String`, which is pretty weird, and results in many places making unnecessary allocations for patterns like this: ``` self.fatal(&format!(...)) ``` This creates a string with `format!`, takes a reference, passes the reference to `fatal`, which does an `into()`, which clones the reference, doing a second allocation. Two allocations for a single string, bleh. This commit changes the `From` impls so that you can only create a `{D,Subd}iagnosticMessage` from `&str`, `String`, or `Cow<'static, str>`. This requires changing all the places that currently create one from a `&String`. Most of these are of the `&format!(...)` form described above; each one removes an unnecessary static `&`, plus an allocation when executed. There are also a few places where the existing use of `&String` was more reasonable; these now just use `clone()` at the call site. As well as making the code nicer and more efficient, this is a step towards possibly using `Cow<'static, str>` in `{D,Subd}iagnosticMessage::{Str,Eager}`. That would require changing the `From<&'a str>` impls to `From<&'static str>`, which is doable, but I'm not yet sure if it's worthwhile. | ||||
| 2023-05-01 | Box AssertKind | Ben Kimock | -1/+1 | |
| 2023-04-29 | Merge commit 'ef07e8e60f994ec014d049a95591426fb92ebb79' into ↵ | bjorn3 | -42/+12 | |
| sync_cg_clif-2023-04-29 | ||||
