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.dfa.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.dfa.JumpThreading.panic-unwind.diff')
| -rw-r--r-- | tests/mir-opt/jump_threading.dfa.JumpThreading.panic-unwind.diff | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/tests/mir-opt/jump_threading.dfa.JumpThreading.panic-unwind.diff b/tests/mir-opt/jump_threading.dfa.JumpThreading.panic-unwind.diff new file mode 100644 index 00000000000..bad733268a3 --- /dev/null +++ b/tests/mir-opt/jump_threading.dfa.JumpThreading.panic-unwind.diff @@ -0,0 +1,87 @@ +- // MIR for `dfa` before JumpThreading ++ // MIR for `dfa` after JumpThreading + + fn dfa() -> () { + let mut _0: (); + let mut _1: DFA; + let mut _2: !; + let mut _3: (); + let mut _4: isize; + let mut _5: DFA; + let mut _6: DFA; + let mut _7: DFA; + let mut _8: !; + scope 1 { + debug state => _1; + } + + bb0: { + StorageLive(_1); + _1 = DFA::A; + StorageLive(_2); +- goto -> bb1; ++ goto -> bb7; + } + + bb1: { + _4 = discriminant(_1); +- switchInt(move _4) -> [0: bb4, 1: bb5, 2: bb6, 3: bb2, otherwise: bb3]; ++ goto -> bb2; + } + + bb2: { + _0 = const (); + StorageDead(_2); + StorageDead(_1); + return; + } + + bb3: { + unreachable; + } + + bb4: { + StorageLive(_5); + _5 = DFA::B; + _1 = move _5; + _3 = const (); + StorageDead(_5); +- goto -> bb1; ++ goto -> bb8; + } + + bb5: { + StorageLive(_6); + _6 = DFA::C; + _1 = move _6; + _3 = const (); + StorageDead(_6); +- goto -> bb1; ++ goto -> bb9; + } + + bb6: { + StorageLive(_7); + _7 = DFA::D; + _1 = move _7; + _3 = const (); + StorageDead(_7); + goto -> bb1; ++ } ++ ++ bb7: { ++ _4 = discriminant(_1); ++ goto -> bb4; ++ } ++ ++ bb8: { ++ _4 = discriminant(_1); ++ goto -> bb5; ++ } ++ ++ bb9: { ++ _4 = discriminant(_1); ++ goto -> bb6; + } + } + |
