| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2023-12-11 | End locals' live range before suspending coroutine | Tomasz Miąsko | -0/+2 | |
| State transforms retains storage statements for locals that are not stored inside a coroutine. It ensures those locals are live when resuming by inserting StorageLive as appropriate. It forgot to end the storage of those locals when suspending, which is fixed here. While the end of live range is implicit when executing return, it is nevertheless useful for inliner which would otherwise extend the live range beyond return. | ||||
| 2023-11-20 | Fix insertion of statements to be executed along return edge in inlining | Tomasz Miąsko | -533/+135 | |
| Inlining creates additional statements to be executed along the return edge: an assignment to the destination, storage end for temporaries. Previously those statements where inserted directly into a call target, but this is incorrect when the target has other predecessors. Avoid the issue by creating a new dedicated block for those statements. When the block happens to be redundant it will be removed by CFG simplification that follows inlining. Fixes #117355 | ||||
| 2023-11-01 | Auto merge of #117029 - rmehri01:mir_opt_filecheck_inline_tests, r=cjgillot | bors | -51/+156 | |
| Add FileCheck annotations to MIR-opt inlining tests Part of #116971, adds FileCheck annotations to MIR-opt tests in `tests/mir-opt/inline`. I left out a few (such as `inline_cycle`) where it mentioned that the particular outcome of inlining isn't important, just that the inliner doesn't get stuck in an infinite loop. r? cjgillot | ||||
| 2023-11-01 | fix spans for inline_couroutine panic-abort | Ryan Mehri | -11/+11 | |
| 2023-11-01 | Rollup merge of #115626 - clarfonthey:unchecked-math, r=thomcc | Matthias Krüger | -1/+1 | |
| Clean up unchecked_math, separate out unchecked_shifts Tracking issue: #85122 Changes: 1. Remove `const_inherent_unchecked_arith` flag and make const-stability flags the same as the method feature flags. Given the number of other unsafe const fns already stabilised, it makes sense to just stabilise these in const context when they're stabilised. 2. Move `unchecked_shl` and `unchecked_shr` into a separate `unchecked_shifts` flag, since the semantics for them are unclear and they'll likely be stabilised separately as a result. 3. Add an `unchecked_neg` method exclusively to signed integers, under the `unchecked_neg` flag. This is because it's a new API and probably needs some time to marinate before it's stabilised, and while it *would* make sense to have a similar version for unsigned integers since `checked_neg` also exists for those there is absolutely no case where that would be a good idea, IMQHO. The longer-term goal here is to prepare the `unchecked_math` methods for an FCP and stabilisation since they've existed for a while, their semantics are clear, and people seem in favour of stabilising them. | ||||
| 2023-10-31 | change inline_retag to after.mir | Ryan Mehri | -66/+60 | |
| 2023-10-31 | Only emit `!=` assumptions if the otherwise target is reachable. | Camille GILLOT | -32/+12 | |
| 2023-10-31 | Simplify assume of a constant. | Camille GILLOT | -70/+56 | |
| 2023-10-31 | Replace SwitchInt to unreachable by an assumption. | Camille GILLOT | -16/+44 | |
| 2023-10-25 | address review comments | Ryan Mehri | -70/+100 | |
| 2023-10-25 | FileCheck unwrap_unchecked | Ryan Mehri | -1/+2 | |
| 2023-10-25 | FileCheck unsized_argument | Ryan Mehri | -1/+2 | |
| 2023-10-25 | FileCheck unchecked_shifts | Ryan Mehri | -1/+8 | |
| 2023-10-25 | FileCheck issue_78442 | Ryan Mehri | -1/+5 | |
| 2023-10-25 | FileCheck inline_scopes_parenting | Ryan Mehri | -4/+8 | |
| 2023-10-25 | FileCheck inline_as_ref_as_mut | Ryan Mehri | -1/+8 | |
| 2023-10-25 | FileCheck inline_trait_method | Ryan Mehri | -1/+2 | |
| 2023-10-25 | FileCheck inline_trait_method_2 | Ryan Mehri | -1/+3 | |
| 2023-10-25 | FileCheck inline_specialization | Ryan Mehri | -1/+2 | |
| 2023-10-25 | FileCheck inline_retag | Ryan Mehri | -1/+2 | |
| 2023-10-25 | FileCheck inline_options | Ryan Mehri | -1/+3 | |
| 2023-10-25 | FileCheck inline_into_box_place | Ryan Mehri | -1/+2 | |
| 2023-10-25 | FileCheck inline_instruction_set | Ryan Mehri | -1/+10 | |
| 2023-10-25 | FileCheck inline_coroutine | Ryan Mehri | -12/+14 | |
| 2023-10-25 | FileCheck inline_diverging | Ryan Mehri | -1/+7 | |
| 2023-10-25 | FileCheck inline_closure | Ryan Mehri | -1/+3 | |
| 2023-10-25 | FileCheck inline_closure_captures | Ryan Mehri | -1/+3 | |
| 2023-10-25 | FileCheck inline_closure_borrows_arg | Ryan Mehri | -1/+3 | |
| 2023-10-25 | FileCheck inline_box_fn | Ryan Mehri | -1/+2 | |
| 2023-10-25 | FileCheck inline_any_operand | Ryan Mehri | -1/+2 | |
| 2023-10-25 | FileCheck exponential_runtime | Ryan Mehri | -1/+8 | |
| 2023-10-25 | FileCheck dyn_trait | Ryan Mehri | -1/+8 | |
| 2023-10-25 | FileCheck dont_ice_on_generic_rust_call | Ryan Mehri | -1/+2 | |
| 2023-10-25 | FileCheck cycle | Ryan Mehri | -1/+8 | |
| 2023-10-25 | FileCheck caller_with_trivial_bound | Ryan Mehri | -1/+2 | |
| 2023-10-25 | FileCheck asm_unwind | Ryan Mehri | -1/+2 | |
| 2023-10-24 | Require target features to match exactly during inlining | Tomasz Miąsko | -1/+1 | |
| In general it is not correct to inline a callee with a target features that are subset of the callee. Require target features to match exactly during inlining. The exact match could be potentially relaxed, but this would require identifying specific feature that are allowed to differ, those that need to match, and those that can be present in caller but not in callee. This resolves MIR part of #116573. For other concerns with respect to the previous implementation also see areInlineCompatible in LLVM. | ||||
| 2023-10-24 | Precommit target features compatibility test | Tomasz Miąsko | -0/+8 | |
| 2023-10-24 | Migrate inline_compatibility.rs test to FileCheck | Tomasz Miąsko | -226/+34 | |
| 2023-10-21 | Do not create move paths that do not need dropping. | Camille GILLOT | -16/+8 | |
| 2023-10-20 | s/generator/coroutine/ | Oli Scherer | -27/+27 | |
| 2023-10-20 | s/Generator/Coroutine/ | Oli Scherer | -10/+10 | |
| 2023-10-19 | FileCheck inline_shims. | Camille GILLOT | -1/+4 | |
| 2023-10-19 | FileCheck issue_106141. | Camille GILLOT | -1/+6 | |
| 2023-10-19 | Allow to run filecheck in mir-opt tests. | Camille GILLOT | -25/+58 | |
| 2023-10-18 | Only check in a single place if a pass is enabled. | Camille GILLOT | -0/+19 | |
| 2023-10-17 | Automatically enable cross-crate inlining for small functions | Ben Kimock | -19/+35 | |
| 2023-10-13 | Clean up unchecked_math, separate out unchecked_shifts | ltdk | -1/+1 | |
| 2023-10-08 | Also consider call and yield as MIR SSA. | Camille GILLOT | -3/+3 | |
| 2023-10-05 | move subtyper change reveal_all | ouz-a | -52/+44 | |
