35 Commits

Author SHA1 Message Date
Ohad Ravid 5632001f83 Improve copy_prop and GVN mir-opt passes to remove fewer storage calls 2026-04-17 16:55:43 +03:00
dianqk 37f83fb11d Use Copy in the SwitchInt terminator
Move can be used only when both the compared operand and the operand on switch are move operands.
This commit directly changes to Copy, because I don't know if Move has beneficial.
2026-01-12 18:16:39 +08:00
Jonas Platte 25ed28823a Update mir-opt expected output for matches! macro 2025-07-25 22:34:55 +02:00
dianqk 5881b7c68b mir-opt: execute MatchBranchSimplification after GVN
This can provide more opportunities for MatchBranchSimplification.
2025-04-21 21:46:44 +08:00
Michael Goulet d33946c3ab Inline FnOnce once again 2025-03-03 23:30:18 +00:00
Shunpoco 7061551498 Add FileCheck annotations to mir-opt/issues
From #123067, this test should ensure that there is no duplicated basic block against or-patterns.

Signed-off-by: Shunpoco <tkngsnsk313320@gmail.com>
2025-01-04 12:53:07 +00:00
clubby789 e32ec45c02 MatchBranchSimplification: Consider empty-unreachable otherwise branch 2024-12-27 10:57:46 +00:00
clubby789 ebfe0e4620 Emit error on skip-filecheck test containing filecheck directives 2024-10-19 13:24:07 +00:00
Scott McMurray 99cb0c6bc3 Bless *all* the mir-opt tests 2024-08-18 16:07:33 -07:00
Nicholas Nethercote c9c80d2c5f rustfmt tests/mir-opt.
The only non-obvious changes:
- `building/storage_live_dead_in_statics.rs` has a `#[rustfmt::skip]`
  attribute to avoid reformating a table of data.
- Two `.mir` files have slight changes involving line numbers.
- In `unusual_item_types.rs` an `EMIT_MIR` annotation is moved to
  outside a function, which is the usual spot, because `tidy` complains
  if such a comment is indented.

The commit also tweaks the comments in `rustfmt.toml`.
2024-06-03 14:17:16 +10:00
Scott McMurray d05545c05d At debuginfo=0, don't inline debuginfo when inlining 2024-04-18 09:35:35 -07:00
Matthew Jasper a277c901d9 Remove MIR unsafe check
This also remove safety information from MIR.
2024-04-03 08:50:12 +00:00
Nadrieril d1d9aa3108 Consistently merge simplifiable or-patterns 2024-03-25 23:52:17 +01:00
DianQK 3d7f8b4e5b Get all variants to eliminate the default branching if we cannot get the layout of type 2024-03-07 22:58:51 +08:00
许杰友 Jieyou Xu (Joe) 6e48b96692 [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
Scott McMurray 23483664a2 Split out option::unwrap_failed like we have result::unwrap_failed
...and like `option::expect_failed`
2024-01-14 12:45:01 -08:00
Camille GILLOT 4ff03cd1a4 Allow to run filecheck in mir-opt tests. 2023-10-19 15:51:52 +00:00
Camille GILLOT 27d6a57e58 Preserve DebugInfo in DeadStoreElimination. 2023-10-06 15:46:11 +00:00
Camille GILLOT e63d19c4dd Remove mir::LocalDecl::internal. 2023-10-04 17:55:15 +00:00
Camille GILLOT 933b618360 Revert "Implement references VarDebugInfo."
This reverts commit 2ec0071913.
2023-08-17 17:02:04 +00:00
Camille GILLOT f5feb3e3ca Turn copy into moves during DSE. 2023-07-19 09:59:12 +00:00
Camille GILLOT b74a144a5f Enable by default. 2023-07-10 16:01:18 +00:00
Gary Guo 19ce326a08 Bless tests 2023-06-23 18:36:25 +01:00
Ben Kimock 0a1fa411ed Remove comments from mir-opt MIR dumps 2023-06-15 15:19:11 -04:00
Pietro Albini 4668123945 bless mir-opt
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-12 09:34:17 +02:00
Pietro Albini 070cc836e9 properly mark tests that require panic=abort 2023-06-12 09:34:15 +02:00
Scott McMurray d69725d5d5 Normalize block and local orders in mir-opt tests
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-21 17:48:37 -07:00
Wesley Wiser 4e8b642646 Turn on ConstDebugInfo pass. 2023-04-22 23:41:48 +02:00
Gary Guo 04126398c2 Ignore many tests on wasm32 2023-04-06 10:08:07 +01:00
Scott McMurray 64cce5fc7d Add CastKind::Transmute to MIR
Updates `interpret`, `codegen_ssa`, and `codegen_cranelift` to consume the new cast instead of the intrinsic.

Includes `CastTransmute` for custom MIR building, to be able to test the extra UB.
2023-03-22 15:15:41 -07:00
Camille GILLOT 19a8bb16c8 Generalize operation. 2023-03-13 18:22:55 +00:00
Ben Kimock 640ede7b0a Enable CopyProp by default, tune the impl a bit 2023-02-12 13:23:53 -05:00
Camille GILLOT 6a0b218161 Stop deaggregating enums in MIR. 2023-02-02 23:20:27 +00:00
Ulrich Weigand 6885733c41 Fix mir-opt tests for big-endian platforms
The test cases src/test/mir-opt/building/custom/consts.rs and
src/test/mir-opt/const_prop/mutable_variable_no_prop.rs are
currently failing on big-endian platforms as the binary encoding
of some constants is hard-coded in the MIR test files.  Fix this
by choosing constant values that have the same encoding on big-
and little-endian platforms.

The test case src/test/mir-opt/issues/issue_75439.rs is failing
as well, but since the purpose of the test is to validate handling
of big-endian integer encodings on a little-endian platform, it does
not make much sense to run it on big-endian platforms in the first
place - we can just ignore it there.

Fixed part of https://github.com/rust-lang/rust/issues/105383.
2023-01-12 18:05:30 +01:00
Albert Larsan cf2dff2b1e Move /src/test to /tests 2023-01-11 09:32:08 +00:00