diff options
| author | Camille GILLOT <gillot.camille@gmail.com> | 2023-01-16 22:12:36 +0000 | 
|---|---|---|
| committer | Camille GILLOT <gillot.camille@gmail.com> | 2023-10-21 06:58:38 +0000 | 
| commit | 751a079413a920ab380d63cdffbe99cf2476fe89 (patch) | |
| tree | 9e4d9d302552943b52b3c779cd3f90f725b0b4ab /tests/mir-opt/jump_threading.mutable_ref.JumpThreading.panic-unwind.diff | |
| parent | 3cb0c2e3851c8ec129216f63fdf322276dd1eb96 (diff) | |
| download | rust-751a079413a920ab380d63cdffbe99cf2476fe89.tar.gz rust-751a079413a920ab380d63cdffbe99cf2476fe89.zip | |
Implement JumpThreading pass.
Diffstat (limited to 'tests/mir-opt/jump_threading.mutable_ref.JumpThreading.panic-unwind.diff')
| -rw-r--r-- | tests/mir-opt/jump_threading.mutable_ref.JumpThreading.panic-unwind.diff | 56 | 
1 files changed, 56 insertions, 0 deletions
| diff --git a/tests/mir-opt/jump_threading.mutable_ref.JumpThreading.panic-unwind.diff b/tests/mir-opt/jump_threading.mutable_ref.JumpThreading.panic-unwind.diff new file mode 100644 index 00000000000..80a42263643 --- /dev/null +++ b/tests/mir-opt/jump_threading.mutable_ref.JumpThreading.panic-unwind.diff @@ -0,0 +1,56 @@ +- // MIR for `mutable_ref` before JumpThreading ++ // MIR for `mutable_ref` after JumpThreading + + fn mutable_ref() -> bool { + let mut _0: bool; + let mut _1: i32; + let _3: (); + let mut _4: bool; + let mut _5: i32; + scope 1 { + debug x => _1; + let _2: *mut i32; + scope 2 { + debug a => _2; + scope 3 { + } + } + } + + bb0: { + StorageLive(_1); + _1 = const 5_i32; + StorageLive(_2); + _2 = &raw mut _1; + _1 = const 7_i32; + StorageLive(_3); + (*_2) = const 8_i32; + _3 = const (); + StorageDead(_3); + StorageLive(_4); + StorageLive(_5); + _5 = _1; + _4 = Eq(move _5, const 7_i32); + switchInt(move _4) -> [0: bb2, otherwise: bb1]; + } + + bb1: { + StorageDead(_5); + _0 = const true; + goto -> bb3; + } + + bb2: { + StorageDead(_5); + _0 = const false; + goto -> bb3; + } + + bb3: { + StorageDead(_4); + StorageDead(_2); + StorageDead(_1); + return; + } + } + | 
