| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2024-08-30 | introduce `PrettyPrintMirOptions` for cosmetic MIR dump options | Rémy Rakic | -2/+3 | |
| initially starting with `-Z mir-include-spans` because we want them in the NLL mir dump pass | ||||
| 2024-08-18 | rename AddressOf -> RawBorrow inside the compiler | Ralf Jung | -1/+1 | |
| 2024-07-15 | Move compiler_builtin check to the use case | Mohammad Omidvar | -1/+1 | |
| 2024-07-07 | Support tail calls in mir via `TerminatorKind::TailCall` | Maybe Waffle | -0/+5 | |
| 2024-06-30 | Merge commit '49cd5dd454d0115cfbe9e39102a8b3ba4616aa40' into ↵ | bjorn3 | -4/+1 | |
| sync_cg_clif-2024-06-30 | ||||
| 2024-06-19 | `bug!` more uses of these in runtime stuff | Scott McMurray | -10/+11 | |
| 2024-06-08 | offset_of: allow (unstably) taking the offset of slice tail fields | Ralf Jung | -3/+4 | |
| 2024-05-29 | Rollup merge of #124251 - scottmcm:unop-ptr-metadata, r=oli-obk | 许杰友 Jieyou Xu (Joe) | -13/+25 | |
| Add an intrinsic for `ptr::metadata` The follow-up to #123840, so we can remove `PtrComponents` and `PtrRepr` from libcore entirely (well, after a bootstrap update). As discussed in <https://rust-lang.zulipchat.com/#narrow/stream/189540-t-compiler.2Fwg-mir-opt/topic/.60ptr_metadata.60.20in.20MIR/near/435637808>, this introduces `UnOp::PtrMetadata` taking a raw pointer and returning the associated metadata value. By no longer going through a `union`, this should also help future PRs better optimize pointer operations. r? ``@oli-obk`` | ||||
| 2024-05-28 | Add an intrinsic for `ptr::metadata` | Scott McMurray | -13/+25 | |
| 2024-05-27 | Omit non-needs_drop drop_in_place in vtables | Mark Rousskov | -4/+1 | |
| This replaces the drop_in_place reference with null in vtables. On librustc_driver.so, this drops about ~17k dynamic relocations from the output, since many vtables can now be placed in read-only memory, rather than having a relocated pointer included. This makes a tradeoff by adding a null check at vtable call sites. That's hard to avoid without changing the vtable format (e.g., to use a pc-relative relocation instead of an absolute address, and avoid the dynamic relocation that way). But it seems likely that the check is cheap at runtime. | ||||
| 2024-05-17 | Remove `Rvalue::CheckedBinaryOp` | Scott McMurray | -8/+5 | |
| 2024-05-13 | Merge commit '3270432f4b0583104c8b9b6f695bf97d6bbf3ac2' into ↵ | bjorn3 | -2/+35 | |
| sync_cg_clif-2024-05-13 | ||||
| 2024-05-09 | Make builtin_deref just return a Ty | Michael Goulet | -5/+2 | |
| 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 | |
