about summary refs log tree commit diff
path: root/tests/mir-opt/inline
AgeCommit message (Collapse)AuthorLines
2023-10-20s/Generator/Coroutine/Oli Scherer-10/+10
2023-10-19FileCheck inline_shims.Camille GILLOT-1/+4
2023-10-19FileCheck issue_106141.Camille GILLOT-1/+6
2023-10-19Allow to run filecheck in mir-opt tests.Camille GILLOT-25/+58
2023-10-18Only check in a single place if a pass is enabled.Camille GILLOT-0/+19
2023-10-17Automatically enable cross-crate inlining for small functionsBen Kimock-19/+35
2023-10-13Clean up unchecked_math, separate out unchecked_shiftsltdk-1/+1
2023-10-08Also consider call and yield as MIR SSA.Camille GILLOT-3/+3
2023-10-05move subtyper change reveal_allouz-a-52/+44
2023-10-04Remove mir::LocalDecl::internal.Camille GILLOT-0/+52
2023-10-02have better explanation for `relate_types`ouz-a-2/+2
2023-10-02change is_subtype to relate_typesouz-a-45/+51
2023-10-02Add docs, remove code, change subtyper codeouz-a-1/+3
2023-09-28Unconditionally run `RevealAll` pass and run it earlierOli Scherer-13/+37
2023-09-24Embed simplification into VnState.Camille GILLOT-4/+4
2023-09-24Add global value numbering pass.Camille GILLOT-12/+4
2023-09-23Bless mir-optCamille GILLOT-49/+66
2023-09-21adjust how closure/generator types and rvalues are printedRalf Jung-42/+42
2023-08-30lower ExprKind::Use, LogicalOp::Or and UnOp::NotDing Xiang Fei-2/+4
Co-authored-by: Abdulaziz Ghuloum <aghuloum@gmail.com>
2023-08-24make MIR less verboseRalf Jung-13/+13
2023-08-24bless more mir-opt tests by handRalf Jung-1/+1
2023-08-24when terminating during unwinding, show the reason whyRalf Jung-12/+12
2023-08-17Bless mir-opt tests.Camille GILLOT-10/+22
2023-08-03blessMichael Goulet-0/+79
2023-08-03Explicitly don't inline user-written rust-call fnsMichael Goulet-200/+94
2023-08-03Only unpack tupled args in inliner if we expect args to be unpackedMichael Goulet-6/+80
2023-08-03Negative test for inlining `<Box<dyn Fn()> as Fn<()>>::call`Michael Goulet-0/+39
2023-07-20Always propagate into operands.Camille GILLOT-60/+28
2023-07-19Turn copy into moves during DSE.Camille GILLOT-10/+10
2023-07-10Enable by default.Camille GILLOT-22/+10
2023-07-07Rename `adjustment::PointerCast` and variants using it to `PointerCoercion`Nilstrieb-8/+8
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-06-23Bless testsGary Guo-61/+61
2023-06-19Promote unchecked_add/sub/mul/shl/shr to mir::BinOpScott McMurray-64/+40
2023-06-19Auto merge of #112724 - scottmcm:simpler-unchecked-shifts, r=Mark-Simulacrumbors-8/+420
[libs] Simplify `unchecked_{shl,shr}` There's no need for the `const_eval_select` dance here. And while I originally wrote the `.try_into().unwrap_unchecked()` implementation here, it's kinda a mess in MIR -- this new one is substantially simpler, as shown by the old one being above the inlining threshold but the new one being below it in the `mir-opt/inline/unchecked_shifts` tests. We don't need `u32::checked_shl` doing a dance through both `Result` *and* `Option` 🙃
2023-06-17Auto merge of #100036 - DrMeepster:box_free_free_box, r=oli-obkbors-12/+17
Remove `box_free` lang item This PR removes the `box_free` lang item, replacing it with `Box`'s `Drop` impl. Box dropping is still slightly magic because the contained value is still dropped by the compiler.
2023-06-16[libs] Simplify `unchecked_{shl,shr}`Scott McMurray-8/+420
There's no need for the `const_eval_select` dance here. And while I originally wrote the `.try_into().unwrap_unchecked()` implementation here, it's kinda a mess in MIR -- this new one is substantially simpler, as shown by the old one being above the inlining threshold but the new one being below it.
2023-06-16remove box_free and replace with drop implDrMeepster-12/+17
2023-06-16Ignore the always part of #[inline(always)] in MIR inliningBen Kimock-929/+343
2023-06-15Remove comments from mir-opt MIR dumpsBen Kimock-2902/+2325
2023-06-12bless mir-optPietro Albini-7/+2060
To reproduce the changes in this commit locally: - Run `./x test tidy` and remove all the output files not associated with a test file anymore, as reported by tidy. - Run `./x test tests/mir-opt --bless` to generate the new outputs.
2023-06-12properly mark tests that require panic=abortPietro Albini-19/+20
2023-06-03Only check inlining counter after recusing.Camille GILLOT-43/+140
2023-05-31Enable ScalarReplacementOfAggregatesBen Kimock-216/+184
2023-05-28Auto merge of #111813 - scottmcm:pretty-mir, r=cjgillotbors-210/+210
MIR: opt-in normalization of `BasicBlock` and `Local` numbering This doesn't matter at all for actual codegen, but after spending some time reading pre-codegen MIR, I was wishing I didn't have to jump around so much in reading post-inlining code. So this add two passes that are off by default for every mir level, but can be enabled (`-Zmir-enable-passes=+ReorderBasicBlocks,+ReorderLocals`) for humans.
2023-05-21Normalize block and local orders in mir-opt testsScott McMurray-210/+210
Since this only affects `PreCodegen MIR, and it would be nice for that to be resilient to permutations of things that don't affect the actual semantic behaviours.
2023-05-20Don't inline functions with unsized argsJakob Degen-0/+65
2023-05-14Merge return place with other locals in CopyProp.Camille GILLOT-86/+468
2023-05-08Disable nrvo mir optJakob Degen-468/+86
2023-04-23Auto merge of #110705 - saethlin:ignore-locals-cost, r=cjgillotbors-48/+450
Remove the size of locals heuristic in MIR inlining This heuristic doesn't necessarily correlate to complexity of the MIR Body. In particular, a lot of straight-line code in MIR tends to never reuse a local, even though any optimizer would effectively reuse the storage or just put everything in registers. So it doesn't even necessarily make sense that this would be a stack size heuristic. So... what happens if we just delete the heuristic? The benchmark suite improves significantly. Less heuristics better? r? `@cjgillot`
2023-04-22Remove the size of locals heuristic in MIR inliningBen Kimock-48/+450