summary refs log tree commit diff
path: root/lisc/test
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2015-07-21 13:02:08 -0400
committerQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2015-09-15 23:01:28 -0400
commit18cdbc1e7d6b0d9dcb6f051cf3c2afcf45448453 (patch)
tree788354faa6917e403111690ebac659e404a28987 /lisc/test
parent226bbb5b71174bf997c7ac91df73bcffa5b9c46d (diff)
downloadroux-18cdbc1e7d6b0d9dcb6f051cf3c2afcf45448453.tar.gz
add fun example!
Diffstat (limited to 'lisc/test')
-rw-r--r--lisc/test/alt.ssa23
1 files changed, 23 insertions, 0 deletions
diff --git a/lisc/test/alt.ssa b/lisc/test/alt.ssa
new file mode 100644
index 0000000..57e82c2
--- /dev/null
+++ b/lisc/test/alt.ssa
@@ -0,0 +1,23 @@
+# an example with reducible control
+# flow graph that exposes poor
+# handling of looping constructs
+
+@start
+	%ten = copy 10
+@loop
+	%alt = phi @start 0, @left %alt1, @right %alt1
+	%cnt = phi @start 100, @left %cnt, @right %cnt2
+	%alt1 = sub 1, %alt
+	jez %alt1, @left, @right
+@left
+	%x = phi @loop 10, @left %x1
+	%x1 = sub %x, 1
+	jez %x, @loop, @left
+@right
+	%cnt1 = phi @loop %cnt, @right %cnt2
+	%cnt2 = sub %cnt1, %ten
+	jez %cnt2, @end, @loop
+@end
+	%ret = copy %cnt # a dummy use, no return
+	                 # values are available yet
+	ret