annotate testc.rhope @ 157:37b999dbd12e

Small change to make String Cat trees a little more balanced
author Mike Pavone <pavone@retrodev.com>
date Thu, 23 Dec 2010 15:48:19 -0500
parents 90c20dc3f4e5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
1 Import cbackend.rhope
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
2
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
3 Main[]
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
4 {
19
90c20dc3f4e5 Initial work on compiling dataflow graphs to a backend
Mike Pavone <pavone@retrodev.com>
parents: 18
diff changeset
5 prog <- C Program[]
90c20dc3f4e5 Initial work on compiling dataflow graphs to a backend
Mike Pavone <pavone@retrodev.com>
parents: 18
diff changeset
6 base <- [[[[[[[prog]Create Function["Fib",("n"),("out"),""]
14
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
7 ]Allocate Var["work1", "Any Type"]
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
8 ]Allocate Var["work2", "Any Type"]
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
9 ]Null["out"]
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
10 ]Method Call["<", [[()]Append[AddRef["n"]]]Append[AddRef[Constant["const_2"]]]]
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
11 ]Move[Result[0], "work1"]
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
12 ]Method Call["If", [()]Append["work1"]]
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
13 {Print["base done"] }
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
14
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
15 stream1 <- [[[base]Instruction Stream
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
16 ]Release[Result[0]]
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
17 ]Move[AddRef[Constant["const_1"]], "out"]
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
18 {Print["stream1 done"]}
18
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 14
diff changeset
19
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 14
diff changeset
20 stream3 <- [[[base]Instruction Stream
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 14
diff changeset
21 ]Release["n"]
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 14
diff changeset
22 ]Tail Method Call["+", ("work1","work2")]
14
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
23
18
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 14
diff changeset
24 stream2 <- [[[[[[[[[[[base]Instruction Stream
14
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
25 ]Release[Result[0]]
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
26 ]Method Call["-", [[()]Append[AddRef["n"]]]Append[AddRef[Constant["const_1"]]]]
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
27 ]Move[Result[0], "work1"]
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
28 ]Method Call["-", [[()]Append[AddRef["n"]]]Append[AddRef[Constant["const_2"]]]]
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
29 ]Move[Result[0], "work2"]
18
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 14
diff changeset
30 ]Call["Fib", ("work1")]
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 14
diff changeset
31 ]Move[Result[0], "work1"]
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 14
diff changeset
32 ]Call["Fib", ("work2")]
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 14
diff changeset
33 ]Move[Result[0], "work2"]
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 14
diff changeset
34 ]Do If[NotCond["out"], stream3]
14
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
35 {Print["stream2 done"]}
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
36
18
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 14
diff changeset
37 func <- [[[base
14
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
38 ]Do If[Result[0], stream1]
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
39 ]Do If[Result[1], stream2]
18
ea991f95ae1f C backend working well enough to generate Fib test
Mike Pavone <pavone@retrodev.com>
parents: 14
diff changeset
40 ]Release["n"]
14
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
41 {Print["func done"] }
19
90c20dc3f4e5 Initial work on compiling dataflow graphs to a backend
Mike Pavone <pavone@retrodev.com>
parents: 18
diff changeset
42
90c20dc3f4e5 Initial work on compiling dataflow graphs to a backend
Mike Pavone <pavone@retrodev.com>
parents: 18
diff changeset
43 Print[[[prog]Store Function[func]]Text]
14
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
44
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
45 }
69dfca29565f C backend close to being useable
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
46