about summary refs log tree commit diff
path: root/tests/mir-opt/inline
AgeCommit message (Collapse)AuthorLines
2023-04-22Turn on ConstDebugInfo pass.Wesley Wiser-1/+1
2023-04-20Run combine_duplicate_switch_targets after the simplification that produces themBen Kimock-1/+1
2023-04-17fix codegen differenceDeadbeef-26/+66
2023-04-17bless mir-optDeadbeef-438/+28
2023-04-07./x.py test --blessTomasz Miąsko-182/+296
2023-04-06Ignore many tests on wasm32Gary Guo-108/+118
2023-04-06Bless testsGary Guo-24/+24
2023-04-05Bless testsThom Chiovoloni-11/+8
2023-03-31Auto merge of #98112 - saethlin:mir-alignment-checks, r=oli-obkbors-4/+5
Insert alignment checks for pointer dereferences when debug assertions are enabled Closes https://github.com/rust-lang/rust/issues/54915 - [x] Jake tells me this sounds like a place to use `MirPatch`, but I can't figure out how to insert a new basic block with a new terminator in the middle of an existing basic block, using `MirPatch`. (if nobody else backs up this point I'm checking this as "not actually a good idea" because the code looks pretty clean to me after rearranging it a bit) - [x] Using `CastKind::PointerExposeAddress` is definitely wrong, we don't want to expose. Calling a function to get the pointer address seems quite excessive. ~I'll see if I can add a new `CastKind`.~ `CastKind::Transmute` to the rescue! - [x] Implement a more helpful panic message like slice bounds checking. r? `@oli-obk`
2023-03-25Ignore the unwrap_unchecked test on wasm32-unknown-unknownBen Kimock-3/+4
2023-03-23A MIR transform that checks pointers are alignedBen Kimock-4/+5
2023-03-18Enable inlining of diverging functionsBen Kimock-0/+557
2023-03-13Generalize operation.Camille GILLOT-58/+58
2023-03-13Replace ZST operands and debuginfo by constants.Camille GILLOT-31/+29
2023-03-12Remove uses of `box_syntax` in rustc and toolsclubby789-59/+55
2023-03-02Revert "Stabilize `#![feature(target_feature_11)]`"Léo Lanteri Thauvin-7/+8
This reverts commit b379d216eefaba083a0627b1724d73f99d4bdf5c.
2023-02-28Auto merge of #99767 - LeSeulArtichaut:stable-target-feature-11, r=estebankbors-8/+7
Stabilize `#![feature(target_feature_11)]` ## Stabilization report ### Summary Allows for safe functions to be marked with `#[target_feature]` attributes. Functions marked with `#[target_feature]` are generally considered as unsafe functions: they are unsafe to call, cannot be assigned to safe function pointers, and don't implement the `Fn*` traits. However, calling them from other `#[target_feature]` functions with a superset of features is safe. ```rust // Demonstration function #[target_feature(enable = "avx2")] fn avx2() {} fn foo() { // Calling `avx2` here is unsafe, as we must ensure // that AVX is available first. unsafe { avx2(); } } #[target_feature(enable = "avx2")] fn bar() { // Calling `avx2` here is safe. avx2(); } ``` ### Test cases Tests for this feature can be found in [`src/test/ui/rfcs/rfc-2396-target_feature-11/`](https://github.com/rust-lang/rust/tree/b67ba9ba208ac918228a18321fc3a11a99b1c62b/src/test/ui/rfcs/rfc-2396-target_feature-11/). ### Edge cases - https://github.com/rust-lang/rust/issues/73631 Closures defined inside functions marked with `#[target_feature]` inherit the target features of their parent function. They can still be assigned to safe function pointers and implement the appropriate `Fn*` traits. ```rust #[target_feature(enable = "avx2")] fn qux() { let my_closure = || avx2(); // this call to `avx2` is safe let f: fn() = my_closure; } ``` This means that in order to call a function with `#[target_feature]`, you must show that the target-feature is available while the function executes *and* for as long as whatever may escape from that function lives. ### Documentation - Reference: https://github.com/rust-lang/reference/pull/1181 --- cc tracking issue #69098 r? `@ghost`
2023-02-16Enable instcombine for mutable reborrowsBen Kimock-18/+6
2023-02-12Enable CopyProp by default, tune the impl a bitBen Kimock-34/+26
2023-02-02Bless tests.Camille GILLOT-33/+58
2023-02-02Stop deaggregating enums in MIR.Camille GILLOT-6/+2
2023-02-01Stabilize `#![feature(target_feature_11)]`Léo Lanteri Thauvin-8/+7
2023-01-27Implement SSA CopyProp pass.Camille GILLOT-7/+7
2023-01-14Make the inlining destination a `Local`.Camille GILLOT-7/+68
2023-01-14Add test.Camille GILLOT-0/+22
2023-01-11Move /src/test to /testsAlbert Larsan-0/+2644