Add a "cfg_postorder:" printout to the "test domtree" file tests and use that to check the computed CFG post-order instead of doing it manually with Rust code.
58 lines
1.0 KiB
Plaintext
58 lines
1.0 KiB
Plaintext
test domtree
|
|
|
|
function %test(i32) {
|
|
ebb0(v0: i32):
|
|
brz v0, ebb1 ; dominates: ebb1 ebb6
|
|
brnz v0, ebb2 ; dominates: ebb2 ebb9
|
|
jump ebb3 ; dominates: ebb3
|
|
ebb1:
|
|
jump ebb6
|
|
ebb2:
|
|
brz v0, ebb4 ; dominates: ebb4 ebb7 ebb8
|
|
jump ebb5 ; dominates: ebb5
|
|
ebb3:
|
|
jump ebb9
|
|
ebb4:
|
|
brz v0, ebb4
|
|
brnz v0, ebb6
|
|
jump ebb7
|
|
ebb5:
|
|
brz v0, ebb7
|
|
brnz v0, ebb8
|
|
jump ebb9
|
|
ebb6:
|
|
return
|
|
ebb7:
|
|
jump ebb8
|
|
ebb8:
|
|
return
|
|
ebb9:
|
|
return
|
|
}
|
|
|
|
function %test(i32) native {
|
|
ebb0(v0: i32):
|
|
brz v0, ebb1 ; dominates: ebb1 ebb3 ebb4 ebb5
|
|
jump ebb2 ; dominates: ebb2
|
|
ebb1:
|
|
jump ebb3
|
|
ebb2:
|
|
brz v0, ebb4
|
|
jump ebb5
|
|
ebb3:
|
|
jump ebb4
|
|
ebb4:
|
|
brz v0, ebb3
|
|
jump ebb5
|
|
ebb5:
|
|
brz v0, ebb4
|
|
return
|
|
}
|
|
; check: cfg_postorder:
|
|
; sameln: ebb5
|
|
; sameln: ebb3
|
|
; sameln: ebb4
|
|
; sameln: ebb2
|
|
; sameln: ebb1
|
|
; sameln: ebb0
|