Convert the DFG tests to use filecheck.
This commit is contained in:
@@ -1,12 +1,13 @@
|
|||||||
; For testing cfg generation. This code is nonsense.
|
; For testing cfg generation. This code is nonsense.
|
||||||
|
|
||||||
function nonsense(i32, i32) -> f32 {
|
function nonsense(i32, i32) -> f32 {
|
||||||
|
; check: digraph nonsense {
|
||||||
|
|
||||||
ebb0(v1: i32, v2: i32):
|
ebb0(v1: i32, v2: i32):
|
||||||
v3 = f64const 0x0.0
|
v3 = f64const 0x0.0
|
||||||
brz v2, ebb2 ;;;; ebb0:inst1 -> ebb2
|
brz v2, ebb2 ; unordered: ebb0:inst1 -> ebb2
|
||||||
v4 = iconst.i32 0
|
v4 = iconst.i32 0
|
||||||
jump ebb1(v4) ;;;; ebb0:inst3 -> ebb1
|
jump ebb1(v4) ; unordered: ebb0:inst3 -> ebb1
|
||||||
|
|
||||||
ebb1(v5: i32):
|
ebb1(v5: i32):
|
||||||
v6 = imul_imm v5, 4
|
v6 = imul_imm v5, 4
|
||||||
@@ -17,7 +18,7 @@ ebb1(v5: i32):
|
|||||||
v11 = fadd v9, v10
|
v11 = fadd v9, v10
|
||||||
v12 = iadd_imm v5, 1
|
v12 = iadd_imm v5, 1
|
||||||
v13 = icmp ult, v12, v2
|
v13 = icmp ult, v12, v2
|
||||||
brnz v13, ebb1(v12) ;;;; ebb1:inst12 -> ebb1
|
brnz v13, ebb1(v12) ; unordered: ebb1:inst12 -> ebb1
|
||||||
v14 = f64const 0.0
|
v14 = f64const 0.0
|
||||||
v15 = f64const 0.0
|
v15 = f64const 0.0
|
||||||
v16 = fdiv v14, v15
|
v16 = fdiv v14, v15
|
||||||
|
|||||||
@@ -16,9 +16,7 @@ fi
|
|||||||
declare -a fails
|
declare -a fails
|
||||||
|
|
||||||
for testcase in $(find cfg -name '*.cton'); do
|
for testcase in $(find cfg -name '*.cton'); do
|
||||||
annotations=$(cat $testcase | awk /';;;;'/ | awk -F ";;;;" '{print $2}' | sort)
|
if "${CTONUTIL}" print-cfg "$testcase" | "${CTONUTIL}" filecheck "$testcase"; then
|
||||||
connections=$("${CTONUTIL}" print-cfg "$testcase" | awk /"->"/ | sort)
|
|
||||||
if diff -u <(echo $annotations) <(echo $connections); then
|
|
||||||
echo OK $testcase
|
echo OK $testcase
|
||||||
else
|
else
|
||||||
fails=(${fails[@]} "$testcase")
|
fails=(${fails[@]} "$testcase")
|
||||||
|
|||||||
@@ -2,16 +2,17 @@
|
|||||||
; a terminating instruction before any connections have been made.
|
; a terminating instruction before any connections have been made.
|
||||||
|
|
||||||
function nonsense(i32) {
|
function nonsense(i32) {
|
||||||
|
; check: digraph nonsense {
|
||||||
|
|
||||||
ebb0(v1: i32):
|
ebb0(v1: i32):
|
||||||
trap
|
trap
|
||||||
brnz v1, ebb2 ;;;; ebb0:inst1 -> ebb2
|
brnz v1, ebb2 ; unordered: ebb0:inst1 -> ebb2
|
||||||
jump ebb1 ;;;; ebb0:inst2 -> ebb1
|
jump ebb1 ; unordered: ebb0:inst2 -> ebb1
|
||||||
|
|
||||||
ebb1:
|
ebb1:
|
||||||
v2 = iconst.i32 0
|
v2 = iconst.i32 0
|
||||||
v3 = iadd v1, v3
|
v3 = iadd v1, v3
|
||||||
jump ebb0(v3) ;;;; ebb1:inst5 -> ebb0
|
jump ebb0(v3) ; unordered: ebb1:inst5 -> ebb0
|
||||||
|
|
||||||
ebb2:
|
ebb2:
|
||||||
return v1
|
return v1
|
||||||
|
|||||||
@@ -1,15 +1,19 @@
|
|||||||
; For testing cfg generation where some block is never reached.
|
; For testing cfg generation where some block is never reached.
|
||||||
|
|
||||||
function not_reached(i32) -> i32 {
|
function not_reached(i32) -> i32 {
|
||||||
|
; check: digraph not_reached {
|
||||||
|
; check: ebb0 [shape=record, label="{ebb0 | <inst0>brnz ebb2}"]
|
||||||
|
; check: ebb1 [shape=record, label="{ebb1 | <inst4>jump ebb0}"]
|
||||||
|
; check: ebb2 [shape=record, label="{ebb2}"]
|
||||||
|
|
||||||
ebb0(v0: i32):
|
ebb0(v0: i32):
|
||||||
brnz v0, ebb2 ;;;; ebb0:inst0 -> ebb2
|
brnz v0, ebb2 ; unordered: ebb0:inst0 -> ebb2
|
||||||
trap
|
trap
|
||||||
|
|
||||||
ebb1:
|
ebb1:
|
||||||
v1 = iconst.i32 1
|
v1 = iconst.i32 1
|
||||||
v2 = iadd v0, v1
|
v2 = iadd v0, v1
|
||||||
jump ebb0(v2) ;;;; ebb1:inst4 -> ebb0
|
jump ebb0(v2) ; unordered: ebb1:inst4 -> ebb0
|
||||||
|
|
||||||
ebb2:
|
ebb2:
|
||||||
return v0
|
return v0
|
||||||
|
|||||||
Reference in New Issue
Block a user