diff --git a/cranelift/filetests/filetests/domtree/loops.clif b/cranelift/filetests/filetests/domtree/loops.clif index fda2984e94..3f3fafb01d 100644 --- a/cranelift/filetests/filetests/domtree/loops.clif +++ b/cranelift/filetests/filetests/domtree/loops.clif @@ -16,6 +16,8 @@ function %test(i32) { jump ebb5 ebb5: brz v0, ebb4 + jump ebb6 ; dominates: ebb6 + ebb6: return } ; Fall-through-first, prune-at-source DFT: @@ -28,7 +30,9 @@ function %test(i32) { ; ebb2:brz v3, ebb1 - ; ebb2:brz v4, ebb4 { ; ebb2: jump ebb5 { -; ebb5 {} +; ebb5: jump ebb6 { +; ebb6 {} +; } ; } ; ebb4 {} ; } @@ -43,6 +47,7 @@ function %test(i32) { ; } ebb0 ; ; check: cfg_postorder: +; sameln: ebb6 ; sameln: ebb5 ; sameln: ebb3 ; sameln: ebb4 @@ -56,7 +61,8 @@ function %test(i32) { ; nextln: ebb2: ; nextln: ebb4: ; nextln: ebb3: -; nextln: ebb5: +; nextln: ebb5: ebb6 +; nextln: ebb6: ; nextln: } function %loop2(i32) system_v { @@ -72,10 +78,14 @@ function %loop2(i32) system_v { jump ebb4 ebb4: brz v0, ebb3 + jump ebb8 ; dominates: ebb8 + ebb8: brnz v0, ebb5 jump ebb6 ; dominates: ebb6 ebb5: brz v0, ebb4 + jump ebb9 ; dominates: ebb9 + ebb9: trap user0 ebb6: jump ebb7 ; dominates: ebb7 @@ -83,9 +93,11 @@ function %loop2(i32) system_v { return } ; check: cfg_postorder: +; sameln: ebb9 ; sameln: ebb5 ; sameln: ebb7 ; sameln: ebb6 +; sameln: ebb8 ; sameln: ebb3 ; sameln: ebb4 ; sameln: ebb2 @@ -96,9 +108,11 @@ function %loop2(i32) system_v { ; nextln: ebb0: ebb1 ebb2 ebb4 ebb3 ebb5 ; nextln: ebb1: ; nextln: ebb2: -; nextln: ebb4: ebb6 +; nextln: ebb4: ebb8 +; nextln: ebb8: ebb6 ; nextln: ebb6: ebb7 ; nextln: ebb7: ; nextln: ebb3: -; nextln: ebb5: +; nextln: ebb5: ebb9 +; nextln: ebb9: ; nextln: } diff --git a/cranelift/filetests/filetests/domtree/loops2.clif b/cranelift/filetests/filetests/domtree/loops2.clif index 80e00ca278..84712c112f 100644 --- a/cranelift/filetests/filetests/domtree/loops2.clif +++ b/cranelift/filetests/filetests/domtree/loops2.clif @@ -3,6 +3,8 @@ test domtree function %loop1(i32) { ebb0(v0: i32): brz v0, ebb1 ; dominates: ebb1 ebb6 + jump ebb10 ; dominates: ebb10 + ebb10: brnz v0, ebb2 ; dominates: ebb2 ebb9 jump ebb3 ; dominates: ebb3 ebb1: @@ -14,10 +16,14 @@ function %loop1(i32) { jump ebb9 ebb4: brz v0, ebb4 + jump ebb11 ; dominates: ebb11 + ebb11: brnz v0, ebb6 jump ebb7 ebb5: brz v0, ebb7 + jump ebb12 ; dominates: ebb12 + ebb12: brnz v0, ebb8 jump ebb9 ebb6: @@ -31,16 +37,19 @@ function %loop1(i32) { } ; check: domtree_preorder { -; nextln: ebb0: ebb1 ebb2 ebb6 ebb3 ebb9 +; nextln: ebb0: ebb1 ebb10 ebb6 ; nextln: ebb1: +; nextln: ebb10: ebb2 ebb3 ebb9 ; nextln: ebb2: ebb4 ebb5 ebb7 ebb8 -; nextln: ebb4: -; nextln: ebb5: +; nextln: ebb4: ebb11 +; nextln: ebb11: +; nextln: ebb5: ebb12 +; nextln: ebb12: ; nextln: ebb7: ; nextln: ebb8: -; nextln: ebb6: ; nextln: ebb3: ; nextln: ebb9: +; nextln: ebb6: ; nextln: } function %loop2(i32) system_v { @@ -59,9 +68,12 @@ function %loop2(i32) system_v { jump ebb5 ebb5: brz v0, ebb4 + jump ebb6 ; dominates: ebb6 + ebb6: return } ; check: cfg_postorder: +; sameln: ebb6 ; sameln: ebb5 ; sameln: ebb3 ; sameln: ebb4 @@ -75,5 +87,6 @@ function %loop2(i32) system_v { ; nextln: ebb2: ; nextln: ebb4: ; nextln: ebb3: -; nextln: ebb5: +; nextln: ebb5: ebb6 +; nextln: ebb6: ; nextln: } diff --git a/cranelift/filetests/filetests/domtree/tall-tree.clif b/cranelift/filetests/filetests/domtree/tall-tree.clif index cad763fc36..6f93c023e8 100644 --- a/cranelift/filetests/filetests/domtree/tall-tree.clif +++ b/cranelift/filetests/filetests/domtree/tall-tree.clif @@ -3,6 +3,8 @@ test domtree function %test(i32) { ebb0(v0: i32): brz v0, ebb1 ; dominates: ebb1 + jump ebb12 ; dominates: ebb12 + ebb12: brnz v0, ebb2 ; dominates: ebb2 ebb5 jump ebb3 ; dominates: ebb3 ebb1: @@ -18,6 +20,8 @@ function %test(i32) { return ebb6: brz v0, ebb8 ; dominates: ebb11 ebb8 + jump ebb13 ; dominates: ebb13 + ebb13: brnz v0, ebb9 ; dominates: ebb9 jump ebb10 ebb7: @@ -33,15 +37,17 @@ function %test(i32) { } ; check: domtree_preorder { -; nextln: ebb0: ebb1 ebb2 ebb3 ebb5 +; nextln: ebb0: ebb1 ebb12 ; nextln: ebb1: ebb4 ; nextln: ebb4: ebb6 ebb7 ebb10 -; nextln: ebb6: ebb8 ebb9 ebb11 +; nextln: ebb6: ebb8 ebb13 ebb11 ; nextln: ebb8: +; nextln: ebb13: ebb9 ; nextln: ebb9: ; nextln: ebb11: ; nextln: ebb7: ; nextln: ebb10: +; nextln: ebb12: ebb2 ebb3 ebb5 ; nextln: ebb2: ; nextln: ebb3: ; nextln: ebb5: diff --git a/cranelift/filetests/filetests/domtree/wide-tree.clif b/cranelift/filetests/filetests/domtree/wide-tree.clif index ae943dd7c2..fdfdc169a1 100644 --- a/cranelift/filetests/filetests/domtree/wide-tree.clif +++ b/cranelift/filetests/filetests/domtree/wide-tree.clif @@ -6,8 +6,14 @@ function %test(i32) { jump ebb1 ; dominates: ebb1 ebb1: brz v0, ebb2 ; dominates: ebb2 ebb7 + jump ebb20 ; dominates: ebb20 + ebb20: brnz v0, ebb3 ; dominates: ebb3 + jump ebb21 ; dominates: ebb21 + ebb21: brz v0, ebb4 ; dominates: ebb4 + jump ebb22 ; dominates: ebb22 + ebb22: brnz v0, ebb5 ; dominates: ebb5 jump ebb6 ; dominates: ebb6 ebb2: @@ -22,7 +28,11 @@ function %test(i32) { jump ebb7 ebb7: brnz v0, ebb8 ; dominates: ebb8 ebb12 + jump ebb23 ; dominates: ebb23 + ebb23: brz v0, ebb9 ; dominates: ebb9 + jump ebb24 ; dominates: ebb24 + ebb24: brnz v0, ebb10 ; dominates: ebb10 jump ebb11 ; dominates: ebb11 ebb8: @@ -43,16 +53,21 @@ function %test(i32) { ; check: domtree_preorder { ; nextln: ebb0: ebb13 ebb1 ; nextln: ebb13: -; nextln: ebb1: ebb2 ebb3 ebb4 ebb5 ebb6 ebb7 +; nextln: ebb1: ebb2 ebb20 ebb7 ; nextln: ebb2: +; nextln: ebb20: ebb3 ebb21 ; nextln: ebb3: +; nextln: ebb21: ebb4 ebb22 ; nextln: ebb4: +; nextln: ebb22: ebb5 ebb6 ; nextln: ebb5: ; nextln: ebb6: -; nextln: ebb7: ebb8 ebb9 ebb10 ebb12 ebb11 +; nextln: ebb7: ebb8 ebb23 ebb12 ; nextln: ebb8: +; nextln: ebb23: ebb9 ebb24 ; nextln: ebb9: +; nextln: ebb24: ebb10 ebb11 ; nextln: ebb10: -; nextln: ebb12: ; nextln: ebb11: +; nextln: ebb12: ; nextln: }