cranelift: Remove brz and brnz (#5630)
Remove the brz and brnz instructions, as their behavior is now redundant with brif.
This commit is contained in:
@@ -2,24 +2,23 @@ test domtree
|
||||
|
||||
function %test(i32) {
|
||||
block0(v0: i32):
|
||||
jump block1 ; dominates: block1
|
||||
jump block1 ; dominates: block1
|
||||
block1:
|
||||
brz v0, block3 ; dominates: block3
|
||||
jump block2 ; dominates: block2
|
||||
brif v0, block2, block3 ; dominates: block2 block3
|
||||
block2:
|
||||
jump block3
|
||||
block3:
|
||||
return
|
||||
}
|
||||
; check: cfg_postorder:
|
||||
; sameln: block2
|
||||
; sameln: block3
|
||||
; sameln: block2
|
||||
; sameln: block1
|
||||
; sameln: block0
|
||||
|
||||
; check: domtree_preorder {
|
||||
; nextln: block0: block1
|
||||
; nextln: block1: block3 block2
|
||||
; nextln: block3:
|
||||
; nextln: block1: block2 block3
|
||||
; nextln: block2:
|
||||
; nextln: block3:
|
||||
; nextln: }
|
||||
|
||||
@@ -2,33 +2,29 @@ test domtree
|
||||
|
||||
function %test(i32) {
|
||||
block0(v0: i32):
|
||||
brz v0, block1 ; dominates: block1 block3 block4 block5
|
||||
jump block2 ; dominates: block2
|
||||
brif v0, block2, block1 ; dominates: block1 block2 block3 block4 block5
|
||||
block1:
|
||||
jump block3
|
||||
block2:
|
||||
brz v0, block4
|
||||
jump block5
|
||||
brif v0, block5, block4
|
||||
block3:
|
||||
jump block4
|
||||
block4:
|
||||
brz v0, block3
|
||||
jump block5
|
||||
brif v0, block5, block3
|
||||
block5:
|
||||
brz v0, block4
|
||||
jump block6 ; dominates: block6
|
||||
brif v0, block6, block4 ; dominates: block6
|
||||
block6:
|
||||
return
|
||||
}
|
||||
; Fall-through-first, prune-at-source DFT:
|
||||
;
|
||||
; block0 {
|
||||
; block0:brz v0, block1 {
|
||||
; block0:brif v0, block1 {
|
||||
; block0:jump block2 {
|
||||
; block2 {
|
||||
; block2:brz v2, block2 -
|
||||
; block2:brz v3, block1 -
|
||||
; block2:brz v4, block4 {
|
||||
; block2:brif v2, block2 -
|
||||
; block2:brif v3, block1 -
|
||||
; block2:brif v4, block4 {
|
||||
; block2: jump block5 {
|
||||
; block5: jump block6 {
|
||||
; block6 {}
|
||||
@@ -49,42 +45,37 @@ function %test(i32) {
|
||||
; check: cfg_postorder:
|
||||
; sameln: block6
|
||||
; sameln: block5
|
||||
; sameln: block3
|
||||
; sameln: block4
|
||||
; sameln: block2
|
||||
; sameln: block3
|
||||
; sameln: block1
|
||||
; sameln: block2
|
||||
; sameln: block0
|
||||
|
||||
; check: domtree_preorder {
|
||||
; nextln: block0: block1 block2 block4 block3 block5
|
||||
; nextln: block1:
|
||||
; nextln: block0: block2 block1 block3 block4 block5
|
||||
; nextln: block2:
|
||||
; nextln: block4:
|
||||
; nextln: block1:
|
||||
; nextln: block3:
|
||||
; nextln: block4:
|
||||
; nextln: block5: block6
|
||||
; nextln: block6:
|
||||
; nextln: }
|
||||
|
||||
function %loop2(i32) system_v {
|
||||
block0(v0: i32):
|
||||
brz v0, block1 ; dominates: block1 block3 block4 block5
|
||||
jump block2 ; dominates: block2
|
||||
brif v0, block2, block1 ; dominates: block2 block1 block3 block4 block5
|
||||
block1:
|
||||
jump block3
|
||||
block2:
|
||||
brz v0, block4
|
||||
jump block5
|
||||
brif v0, block5, block4
|
||||
block3:
|
||||
jump block4
|
||||
block4:
|
||||
brz v0, block3
|
||||
jump block8 ; dominates: block8
|
||||
brif v0, block8, block3 ; dominates: block8
|
||||
block8:
|
||||
brnz v0, block5
|
||||
jump block6 ; dominates: block6
|
||||
brif v0, block5, block6 ; dominates: block6
|
||||
block5:
|
||||
brz v0, block4
|
||||
jump block9 ; dominates: block9
|
||||
brif v0, block9, block4 ; dominates: block9
|
||||
block9:
|
||||
trap user0
|
||||
block6:
|
||||
@@ -93,26 +84,26 @@ function %loop2(i32) system_v {
|
||||
return
|
||||
}
|
||||
; check: cfg_postorder:
|
||||
; sameln: block9
|
||||
; sameln: block5
|
||||
; sameln: block7
|
||||
; sameln: block6
|
||||
; sameln: block9
|
||||
; sameln: block5
|
||||
; sameln: block8
|
||||
; sameln: block3
|
||||
; sameln: block4
|
||||
; sameln: block2
|
||||
; sameln: block3
|
||||
; sameln: block1
|
||||
; sameln: block2
|
||||
; sameln: block0
|
||||
|
||||
; check: domtree_preorder {
|
||||
; nextln: block0: block1 block2 block4 block3 block5
|
||||
; nextln: block1:
|
||||
; nextln: block0: block2 block1 block3 block4 block5
|
||||
; nextln: block2:
|
||||
; nextln: block1:
|
||||
; nextln: block3:
|
||||
; nextln: block4: block8
|
||||
; nextln: block8: block6
|
||||
; nextln: block6: block7
|
||||
; nextln: block7:
|
||||
; nextln: block3:
|
||||
; nextln: block5: block9
|
||||
; nextln: block9:
|
||||
; nextln: }
|
||||
|
||||
@@ -2,30 +2,23 @@ test domtree
|
||||
|
||||
function %loop1(i32) {
|
||||
block0(v0: i32):
|
||||
brz v0, block1 ; dominates: block1 block6
|
||||
jump block10 ; dominates: block10
|
||||
brif v0, block10, block1 ; dominates: block10 block1 block6
|
||||
block10:
|
||||
brnz v0, block2 ; dominates: block2 block9
|
||||
jump block3 ; dominates: block3
|
||||
brif v0, block2, block3 ; dominates: block2 block9 block3
|
||||
block1:
|
||||
jump block6
|
||||
block2:
|
||||
brz v0, block4 ; dominates: block4 block7 block8
|
||||
jump block5 ; dominates: block5
|
||||
brif v0, block5, block4 ; dominates: block5 block4 block7 block8
|
||||
block3:
|
||||
jump block9
|
||||
block4:
|
||||
brz v0, block4
|
||||
jump block11 ; dominates: block11
|
||||
brif v0, block11, block4 ; dominates: block11
|
||||
block11:
|
||||
brnz v0, block6
|
||||
jump block7
|
||||
brif v0, block6, block7
|
||||
block5:
|
||||
brz v0, block7
|
||||
jump block12 ; dominates: block12
|
||||
brif v0, block12, block7 ; dominates: block12
|
||||
block12:
|
||||
brnz v0, block8
|
||||
jump block9
|
||||
brif v0, block8, block9
|
||||
block6:
|
||||
return
|
||||
block7:
|
||||
@@ -37,56 +30,52 @@ function %loop1(i32) {
|
||||
}
|
||||
|
||||
; check: domtree_preorder {
|
||||
; nextln: block0: block1 block10 block6
|
||||
; nextln: block1:
|
||||
; nextln: block0: block10 block1 block6
|
||||
; nextln: block10: block2 block3 block9
|
||||
; nextln: block2: block4 block5 block7 block8
|
||||
; nextln: block4: block11
|
||||
; nextln: block11:
|
||||
; nextln: block2: block5 block4 block7 block8
|
||||
; nextln: block5: block12
|
||||
; nextln: block12:
|
||||
; nextln: block4: block11
|
||||
; nextln: block11:
|
||||
; nextln: block7:
|
||||
; nextln: block8:
|
||||
; nextln: block3:
|
||||
; nextln: block9:
|
||||
; nextln: block1:
|
||||
; nextln: block6:
|
||||
; nextln: }
|
||||
|
||||
function %loop2(i32) system_v {
|
||||
block0(v0: i32):
|
||||
brz v0, block1 ; dominates: block1 block3 block4 block5
|
||||
jump block2 ; dominates: block2
|
||||
brif v0, block2, block1 ; dominates: block2 block1 block3 block4 block5
|
||||
block1:
|
||||
jump block3
|
||||
block2:
|
||||
brz v0, block4
|
||||
jump block5
|
||||
brif v0, block5, block4
|
||||
block3:
|
||||
jump block4
|
||||
block4:
|
||||
brz v0, block3
|
||||
jump block5
|
||||
brif v0, block5, block3
|
||||
block5:
|
||||
brz v0, block4
|
||||
jump block6 ; dominates: block6
|
||||
brif v0, block6, block4 ; dominates: block6
|
||||
block6:
|
||||
return
|
||||
}
|
||||
; check: cfg_postorder:
|
||||
; sameln: block6
|
||||
; sameln: block5
|
||||
; sameln: block3
|
||||
; sameln: block4
|
||||
; sameln: block2
|
||||
; sameln: block3
|
||||
; sameln: block1
|
||||
; sameln: block2
|
||||
; sameln: block0
|
||||
|
||||
; check: domtree_preorder {
|
||||
; nextln: block0: block1 block2 block4 block3 block5
|
||||
; nextln: block1:
|
||||
; nextln: block0: block2 block1 block3 block4 block5
|
||||
; nextln: block2:
|
||||
; nextln: block4:
|
||||
; nextln: block1:
|
||||
; nextln: block3:
|
||||
; nextln: block4:
|
||||
; nextln: block5: block6
|
||||
; nextln: block6:
|
||||
; nextln: }
|
||||
|
||||
@@ -2,11 +2,9 @@ test domtree
|
||||
|
||||
function %test(i32) {
|
||||
block0(v0: i32):
|
||||
brz v0, block1 ; dominates: block1
|
||||
jump block12 ; dominates: block12
|
||||
brif v0, block12, block1 ; dominates: block12 block1
|
||||
block12:
|
||||
brnz v0, block2 ; dominates: block2 block5
|
||||
jump block3 ; dominates: block3
|
||||
brif v0, block2, block3 ; dominates: block2 block5 block3
|
||||
block1:
|
||||
jump block4 ; dominates: block4
|
||||
block2:
|
||||
@@ -14,16 +12,13 @@ function %test(i32) {
|
||||
block3:
|
||||
jump block5
|
||||
block4:
|
||||
brz v0, block6 ; dominates: block6 block10
|
||||
jump block7 ; dominates: block7
|
||||
brif v0, block7, block6 ; dominates: block7 block6 block10
|
||||
block5:
|
||||
return
|
||||
block6:
|
||||
brz v0, block8 ; dominates: block11 block8
|
||||
jump block13 ; dominates: block13
|
||||
brif v0, block13, block8 ; dominates: block13 block11 block8
|
||||
block13:
|
||||
brnz v0, block9 ; dominates: block9
|
||||
jump block10
|
||||
brif v0, block9, block10 ; dominates: block9
|
||||
block7:
|
||||
jump block10
|
||||
block8:
|
||||
@@ -37,18 +32,18 @@ function %test(i32) {
|
||||
}
|
||||
|
||||
; check: domtree_preorder {
|
||||
; nextln: block0: block1 block12
|
||||
; nextln: block1: block4
|
||||
; nextln: block4: block6 block7 block10
|
||||
; nextln: block6: block8 block13 block11
|
||||
; nextln: block8:
|
||||
; nextln: block13: block9
|
||||
; nextln: block9:
|
||||
; nextln: block11:
|
||||
; nextln: block7:
|
||||
; nextln: block10:
|
||||
; nextln: block0: block12 block1
|
||||
; nextln: block12: block2 block3 block5
|
||||
; nextln: block2:
|
||||
; nextln: block3:
|
||||
; nextln: block5:
|
||||
; nextln: block1: block4
|
||||
; nextln: block4: block7 block6 block10
|
||||
; nextln: block7:
|
||||
; nextln: block6: block13 block8 block11
|
||||
; nextln: block13: block9
|
||||
; nextln: block9:
|
||||
; nextln: block8:
|
||||
; nextln: block11:
|
||||
; nextln: block10:
|
||||
; nextln: }
|
||||
|
||||
@@ -2,20 +2,15 @@ test domtree
|
||||
|
||||
function %test(i32) {
|
||||
block0(v0: i32):
|
||||
brz v0, block13 ; dominates: block13
|
||||
jump block1 ; dominates: block1
|
||||
brif v0, block1, block13 ; dominates: block1 block13
|
||||
block1:
|
||||
brz v0, block2 ; dominates: block2 block7
|
||||
jump block20 ; dominates: block20
|
||||
brif v0, block20, block2 ; dominates: block20 block2 block7
|
||||
block20:
|
||||
brnz v0, block3 ; dominates: block3
|
||||
jump block21 ; dominates: block21
|
||||
brif v0, block3, block21 ; dominates: block3 block21
|
||||
block21:
|
||||
brz v0, block4 ; dominates: block4
|
||||
jump block22 ; dominates: block22
|
||||
brif v0, block22, block4 ; dominates: block22 block4
|
||||
block22:
|
||||
brnz v0, block5 ; dominates: block5
|
||||
jump block6 ; dominates: block6
|
||||
brif v0, block5, block6 ; dominates: block5 block6
|
||||
block2:
|
||||
jump block7
|
||||
block3:
|
||||
@@ -27,21 +22,17 @@ function %test(i32) {
|
||||
block6:
|
||||
jump block7
|
||||
block7:
|
||||
brnz v0, block8 ; dominates: block8 block12
|
||||
jump block23 ; dominates: block23
|
||||
brif v0, block8, block23 ; dominates: block8 block12 block23
|
||||
block23:
|
||||
brz v0, block9 ; dominates: block9
|
||||
jump block24 ; dominates: block24
|
||||
brif v0, block24, block9 ; dominates: block24 block9
|
||||
block24:
|
||||
brnz v0, block10 ; dominates: block10
|
||||
jump block11 ; dominates: block11
|
||||
brif v0, block10, block11 ; dominates: block10 block11
|
||||
block8:
|
||||
jump block12
|
||||
block9:
|
||||
jump block12
|
||||
block10:
|
||||
brz v0, block13
|
||||
jump block12
|
||||
brif v0, block12, block13
|
||||
block11:
|
||||
jump block13
|
||||
block12:
|
||||
@@ -51,23 +42,23 @@ function %test(i32) {
|
||||
}
|
||||
|
||||
; check: domtree_preorder {
|
||||
; nextln: block0: block13 block1
|
||||
; nextln: block13:
|
||||
; nextln: block1: block2 block20 block7
|
||||
; nextln: block2:
|
||||
; nextln: block0: block1 block13
|
||||
; nextln: block1: block20 block2 block7
|
||||
; nextln: block20: block3 block21
|
||||
; nextln: block3:
|
||||
; nextln: block21: block4 block22
|
||||
; nextln: block4:
|
||||
; nextln: block21: block22 block4
|
||||
; nextln: block22: block5 block6
|
||||
; nextln: block5:
|
||||
; nextln: block6:
|
||||
; nextln: block4:
|
||||
; nextln: block2:
|
||||
; nextln: block7: block8 block23 block12
|
||||
; nextln: block8:
|
||||
; nextln: block23: block9 block24
|
||||
; nextln: block9:
|
||||
; nextln: block23: block24 block9
|
||||
; nextln: block24: block10 block11
|
||||
; nextln: block10:
|
||||
; nextln: block11:
|
||||
; nextln: block9:
|
||||
; nextln: block12:
|
||||
; nextln: block13:
|
||||
; nextln: }
|
||||
|
||||
Reference in New Issue
Block a user